![백스페이스, 탭이 터미널에서 작동하지 않음(Ssh 사용)](https://rvso.com/image/23946/%EB%B0%B1%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4%2C%20%ED%83%AD%EC%9D%B4%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C(Ssh%20%EC%82%AC%EC%9A%A9).png)
내 계정(sudo 권한 포함)으로 Debian이 있는 다른 컴퓨터에 SSH로 접속할 때 백스페이스 키를 누르면 이상한 기호가 생성됩니다. 또한 Tab& del키도 작동하지 않습니다.
반면에 동일한 컴퓨터에 다른 계정도 있는데 이 계정을 통해 ssh를 사용하면 해당 터미널이 완벽하게 작동합니다. 왜 이런 일이 일어나는지 알 수 없었습니다.
답변1
"stty" 솔루션 외에 "TERM" 솔루션을 사용해 볼 수도 있습니다.
일부 터미널(putty, Solaris dterm, debain xterm, you-name-it)에서 데비안으로 SSH를 통해 연결하면 이 터미널은 TERM 환경 변수를 통해 기능(백스페이스 및 탭과 같은 키 포함)을 알립니다.
따라서 유닉스 호스트에 대한 ssh 이후(데비안이나 다른 호스트에 의존하지 않음) 터미널에 따라 TERM 변수를 설정하십시오. bash를 쉘로 사용하고 vt100을 터미널로 사용한다고 가정하십시오.
export TERM=vt100
ps: TERM은 ssh를 통해 자동으로 발표되어야 하지만 어떤 상황에서는 이 마법이 실패합니다.
답변2
나는 전에도 그런 문제를 본 적이 있습니다.
예를 들어 백스페이스를 사용하면 원격 호스트는 일부 문자가 "삭제/백스페이스"로 사용될 것으로 예상합니다. 터미널에서 백스페이스를 누르는 동안 원격 호스트가 예상하는 내용이 다른 경우 터미널 프로그램은 원격 호스트에 일부 문자를 보냅니다. 터미널 프로그램에서 보낸 문자를 사용하면 이 문제가 발생합니다. 따라서 빠른 수정은 다음과 같습니다.
- 원격 호스트에서 명령을 실행
#stty -a
하고 출력에서 삭제 코드로 예상되는 내용을 찾으세요. 말하다erase=^?
. - 터미널에서 Ctrl+를 누르고 v백스페이스를 누르세요. 어떤 코드가 "삭제"로 전송되는지 확인할 수 있습니다. 이라고 말해보세요
^H
. - 원격 호스트에서 를 실행합니다
#stty erase ^H
.
(참고: Ctrlv+ 를 사용하고 Backspace^를 수동으로 입력하지 마세요)
위와 동일하게 탭 문제를 해결할 수 있습니다.
답변3
이는 기본 셸이 이기 때문입니다. 을 sh
사용하려면 셸에서 bash
실행하면 됩니다 .bash
bash
bash
기본 셸로 설정하려면 다음 안내를 따르세요.
chsh -s /bin/bash
또는
sudo chsh -s /bin/bash yourusername
답변4
쉘이 /bin/sh
다음으로 설정되었을 수 있습니다./bin/bash