Gnu 화면을 사용할 때 다른 탭에서 다른 컴퓨터로 ssh를 실행하고 그에 따라 탭 이름을 바꾸면 제대로 작동합니다. 탭 이름은 유지됩니다.
원래 컴퓨터의 터미널인 새 탭에서 명령을 입력할 때마다 탭 이름이 현재 작업 디렉터리로 변경됩니다.
예:
/////////// 이것이 이전의 모든 모습이었습니다.
[me@mac ~]$
[ me ][0*$ me@mac:~ 1-$ web01 2$ dev03
////////// 탭 이름 설정
[me@mac ~]$
Set window's title to: test
[ me ][0*$ test 1-$ web01 clone 2$ dev03 clone
//////// 명령을 입력합니다.pwd
[me@mac ~]$ pwd
/home/me
[me@mac ~]$
[ me ][0*$ me@mac:~ 1-$ web01 clone 2$ dev03 clone
탭의 이름은 다시 현재 작업 디렉터리로 변경됩니다. 다른 컴퓨터로 SSH를 연결하는 탭에서는 이런 일이 발생하지 않습니다. 그래서 개인 설정 문제일지도 모른다고 생각했는데, .bashrc, .bash_profile, .screenrc 파일에는 헤더와 관련된 내용이 없는 것 같습니다.
답변1
쉘 구성은 터미널 제목을 현재 실행 중인 명령으로 설정하고 있습니다. 이는 상당히 일반적인 구성입니다. 이는 쉘에 의해 수행되므로 쉘이 다른 쉘 구성을 가진 다른 시스템에서 실행 중인 경우에는 수행되지 않습니다. 화면 창 제목을 설정하는 이스케이프 시퀀스는 이스케이프 문자(바이트 값 27)입니다.␛kTITLE␛\
␛
Bash에서 이 이스케이프 시퀀스를 내보내는 코드를 찾으세요. 이스케이프 문자는 \e
또는 로 표시될 수 있습니다 \033
. 이 코드는 프롬프트( PS1
)에 있거나 명령( )을 실행한 후 새 프롬프트가 표시되기 전에 실행되는 명령에 있을 수 있습니다 PROMPT_COMMAND
. 해당 값을 확인하십시오(리터럴 이스케이프 문자가 포함된 경우 터미널에 이스케이프 시퀀스를 보내지 않도록 주의하십시오).
printf 'PS1=%s\nPROMPT_COMMAND=%s\n' "$PS1" "$PROMPT_COMMAND" | cat -v
DEBUG
이 이스케이프 시퀀스는 명령을 실행하기 전에 트랩을 통해 실행될 수도 있지만 덜 일반적입니다.
trap -p DEBUG
이러한 변수(또는 트랩)는 사용자 또는 시스템 전체 구성인 bash 구성에서 설정되어야 합니다. 일반적으로 ~/.bashrc
일부 /etc/bash.bashrc
시스템에서는 , ~/.bash_profile
, ~/.profile
또는 , 또는 그 중 하나에 포함된 파일일 /etc/profile
수도 있습니다. ~/.bash_login
더 적은 수의 설정으로 새 셸을 실행하여 범위를 좁힐 수 있습니다.
env -i bash # no environment variables or per-user settings
env -i HOME="$HOME" bash # no environment variables, normal interactive shell
env -i HOME="$HOME" bash -l # no environment variables, login shell
HOME=/none bash # skips your per-user settings
.bashrc
이들 중 어느 것이 문제를 일으키는지 비교함으로써 설정이 사용자 설정에서 왔는지 시스템 전체 설정에서 왔는지, 대화형 셸에서 읽은 설정인지 로그인 시간 파일( .profile
등) 에서 왔는지 알 수 있습니다 .
답변2
PROMPT_COMMAND는 /etc/bashrc에 설정되어 있습니다:
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
.
.
.
;;
screen*)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
fi
;;
따라서 ~/.bashrc에서 PROMPT_COMMAND를 ''로 설정하면 탭 이름 업데이트를 중지할 수 있습니다.
export PROMPT_COMMAND=''
또는 창 이름을 유지하려는 경우 설정을 해제할 수 있습니다.
unset PROMPT_COMMAND
그런 다음 CTRL-a A를 사용하여 창 이름을 변경하십시오.