경로없이 터미널 제목을 디렉토리 이름으로 자동 설정하는 방법


11

현재 내 bash 터미널 / 탭 제목은 내가있는 디렉토리를 기반으로 설정되어 있습니다. 예를 들면 다음과 같습니다.

bob@bobscomputer:~/i/had/some/great/pie/yesterday

여러 개의 탭을 나란히 열면 유용하지 않습니다. 예를 들어, 위의 dir의 4 개의 탭이 나란히 열려있는 경우

bob@bobscomputer:~/i/had...

4 번.

모든 터미널 제목을 경로의 마지막 부분으로 자동 설정하고 싶습니다. 위의 예에서 제목을

yesterday

디렉토리를 변경하면 제목이 변경되어야합니다. 프롬프트를 변경하지 않고이 작업을 수행하려고하므로 프롬프트와 터미널 제목이 달라야합니다.

이것을 할 수있는 방법이 있습니까?


답변:


11

PS1 변수를 수정하지 않고 왜 하시겠습니까? 그것이 올바른 방법입니다.

다음을 실행하면 원하는 것을 얻을 수 있습니다.

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

이것은 기본 프롬프트를 취하는 것입니다.

export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

...로 교체 \u@\h: \w합니다 \W.

올바른 이스케이프 코드를 에코하는 명령으로 동일한 작업을 수행 할 수 있습니다.

echo -en "\e]0;${PWD##*/}\a"

...하지만 당신은 PS1 (가장 좋은 방법)을 사용하여 그것을 막기 위해 끊임없이 bash와 싸울 것입니다.


2
감사합니다-PS1이 제목과 프롬프트를 독립적으로 설정한다는 것을 깨닫지 못했습니다. 내 .bashrc에서 xterm * | rxvt *의 "$ TERM"인 경우 PS1 = "[\ e] 0; $ {debian_chroot : + ($ debian_chroot)} \ W \ a] $ PS1"로 설정했습니다. 내가 원하는 것을 정확하게 수행합니다.
Staring Frog

이 질문은 PS1 gobbledygook의
congusbongus

3

예. 접두사 : \[\e]0;\W\a\]PS1. 이것은 프롬프트 모양을 변경하지 않지만 터미널 탭 제목을 현재 작업 디렉토리의 기본 이름으로 자동 설정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.