답변:
Gilles가 말한 것을 자세히 설명하기 위해 Putty를 사용하여 Windows에서 우분투에 원격으로 연결한다고 가정하십시오.
퍼티 구성 옵션의 연결-> 데이터 아래에 터미널 유형 문자열이라는 설정이 있습니다. TERM을 설정할 수 있으며 putty는 SSH에게 해당 환경 변수를 설정하도록 지시합니다. 그 후 어느 시점에서 쉘은 / bin / bash 일 것이고 아마도 부모 프로세스, 아마도 sshd 프로세스에서 환경을 얻습니다.
원격 Linux 상자에서 ssh를 사용하는 경우 로컬 TERM 환경 변수가 ssh를 통해 원격 연결로 전달되는 것만 같습니다.
터미널 에뮬레이터의 경우 TERM 환경 변수를 설정하는 것이 터미널 에뮬레이터의 작업입니다. 예를 들어 getty는 TERM을 "linux"로 설정하고 쉘 프로세스 (/ bin / bash)를 분기합니다. 또는 gnome-terminal은 TERM을 "xterm"으로 설정하고 쉘 프로세스를 분기합니다.
말 그대로 질문에 대답하기 위해 터미널 에뮬레이터는으로 설정됩니다 $TERM.¹
문제를 해결하려면 최소한 사용하는 터미널 에뮬레이터를 알아야합니다. 그것은 버그 또는 잘못된 터미널 에뮬레이터 또는 쉘 시작 파일에 문제가 (아마이 될 수 ~/.bashrc있지만, 아마도 ~/.bash_profile, /etc/bashrc, /etc/profile, ...).
¹ 하드웨어 터미널을 사용하지 않는다고 가정합니다. 그러면 (SysVinit를 사용하는 이전 릴리스) 또는 (Ubuntu ≥9.10, Upstart를 사용하여 ) getty에서 호출되는 인수가됩니다.inittab/etc/init/tty*.conf
터미널을 변경하려면 업데이트 대안 기능을 확인하십시오.
예를 들어 :
update-alternatives --config x-terminal-emulator
우분투의 다양한 시스템 기본 옵션 중 다수는이 방법을 통해 설정됩니다. 또 다른 일반적인 것은 www-browser입니다.
update-alternatives --config x-www-browser