아시다시피 X 터미널(rxvt, gnome-terminal...)에서 서버로 ssh를 실행할 때 ssh는 user@host를 반영하도록 창 제목을 변경합니다.하지만다시는 바뀌지 않습니다.
이 문제를 해결하기 위한 많은 팁이 인터넷에 있습니다. 나는 또 다른 1을 요구하지 않습니다 .
내가 찾고 있는 것은 왜 이런 일이 일어나는지에 대한 설명입니다. 그래서 나는 그것과 함께 사는 법을 배울 수 있습니다. SSH가 헤더를 설정하지 않는 이유는 무엇입니까?
더 적절하게는: vim이 할 수 있다면 왜 ssh를 할 수 없습니까?
1 ...문제가 오로지 ssh의 잘못된 구성으로 인해 발생했다는 설명이 없다면, 이 경우 문제에 대한 해결책을 환영합니다.
답변1
터미널의 창 제목은 터미널에서 실행되는 모든 항목의 출력에 포함된 제어 문자에 의해 설정됩니다. ssh는 원격 측에서 생성된 모든 문자를 클라이언트의 표준 출력으로 다시 전달하기 때문에 이를 인식하지 못합니다. 일반적으로 "창 제목 설정"을 수행하는 대부분의 UNIX/Linux 시스템은 기본 창 이나 사용자의 기본값 또는 (또는 선택한 쉘에서 사용하는) 구성 파일 에 있는 쉘의 프롬프트 변수에 제어 문자를 내장하여 PS1
이를 수행합니다. )./etc/bash_profile
$HOME/.bashrc
$HOME/.bash_profile
이 페이지다양한 셸에서 이 작업을 수행하는 방법을 설명합니다.
따라서 이것을 설명하면 이러한 항목이 설정된 원격 시스템에 로그인하고 창 제목이 설정되며 창 제목이 "다시 변경"되지 않는 이유는 아마도 로컬 시스템에 이러한 컨트롤이 내장되어 있지 않기 때문일 것입니다. 창 제목을 재설정하려면 로컬 프롬프트 문자를 사용하세요. 즉, 창 제목이 이러한 제어 문자를 통해 설정되면 자동으로 설정이 해제되지 않습니다. 제어 문자를 변경하려면 일반적으로 로컬 프롬프트 변수에 배치하여 실제로 제어 문자를 다시 출력해야 합니다.
로컬 컴퓨터에서 실행 중인 VIM은 X 서버에서 창 제목을 쿼리하고(참조의 창 ID를 통해 $WINDOWID
) 종료 시 복원할 수 있도록 제목을 저장할 수 있습니다. 이는 VIM 옵션을 통해 제어할 수 있습니다 title
( titlestring
참조 :help 'title'
). ssh 클라이언트는 이 작업을 전혀 수행하지 않는 것 같습니다. 이는 ssh가 창 제목을 직접 관리하지 않고 원격 셸에서 문자를 출력하기만 하기 때문일 수 있습니다.
편집: 댓글의 VIM 헤더 동작을 수정한 Stephane Chazelas에게 감사드립니다.