나는 터미널 공간을 차지하는 모든 긴 디렉토리 경로를 좋아하지 않으므로 Python 스크립트를 통해 경로를 자릅니다. .bashrc 파일을 편집하고 PS1을 다음으로 교체했습니다.
export PROMPT_COMMAND='PS1="$(python /home/vinay/bash_promt.py)"'.
그리고 내가 그렇게 하면 해당 터미널의 제목이 더 이상 작동하지 않습니다. 그것은 단순히 Terminal
짜증나는 것을 표시합니다. Bash에서 다음 명령을 실행하여 제목을 수동으로 변경할 수 있습니다.
PROMPT_COMMAND='echo -ne "\033]0;CUSTOM TITLE\007"'
내 bash에 설정되는 사용자 정의 프롬프트에 터미널 제목을 설정하는 방법이 있습니까?
답변1
gnome-terminal의 경우 터미널 제목은 PROMPT_COMMAND
에 정의된 대로 설정됩니다 /etc/profile.d/vte-2.91.sh
.
PROMPT_COMMAND
는 이 스크립트에 정의된 대로 다음 두 가지 작업을 수행합니다.
OSC 0 이스케이프 시퀀스(
\033]0;NEW_TITLE\007
)를 사용하여 터미널 제목을 변경합니다.OSC 7 이스케이프 시퀀스를 사용하여 현재 디렉토리에 대한 터미널의 개념을 변경합니다(
\033]7;NEW_CURRENT_DIRECTORY\007
, 이는 함수에서 제외됩니다__vte_osc7
).
에서 두 번째 항목을 제거하면 PROMPT_COMMAND
새로 열린 터미널 창이나 탭이 이전 터미널에 있던 디렉터리에서 열리지 않습니다. 아마도 당신은 이것을 원하지 않을 것입니다.
따라서 쉘 시작 스크립트에서 소스를 가져온 후 제목을 와 비슷한 방식으로 설정 하고 현재 작업 디렉토리를 기본적으로 수행된 것과 정확히 동일하게 설정하는 vte-2.91.sh
기본 설정을 구성해야 합니다 .PROMPT_COMMAND
vte-2.91.sh
PS1
나는 의 확인된 값(즉, 사용자 이름 등을 대체한 후)을 내부 또는 다른 곳에서 참조하는 방법을 알지 못합니다 PROMPT_COMMAND
(색상 변경과 같은 이스케이프 시퀀스를 필터링하는 것은 물론입니다). 프롬프트와 창 제목에서 동일한 문자열을 보려면 PS1
및 에 대한 해당 문자열 구성을 복제해야 한다고 생각합니다 PROMPT_COMMAND
.
답변2
이것은 당신에게 도움이 될 것입니다
열려 있는 ~/.bashrc
. 다음과 같은 줄을 찾으세요.
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#
이 줄 앞에 문자를 넣어 주석 처리합니다 .
# PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
이제 다음 줄을 추가합니다(주석 처리된 줄 바로 뒤에 넣을 수도 있습니다).
PROMPT_COMMAND='echo -ne "\033]0;Custom Name\007"'
바꾸다Custom Name
터미널 제목을 변경하고 싶은 대로 바꾸세요.
도움이 되었기를 바랍니다.
답변3
사용할 이스케이프 시퀀스는 다음과 같습니다.ESC]2;새 제목BEL어디ESC그리고벨탈출 및 벨 문자입니다. 좋다 \[\e]2;NEWTITLE\a\]
. #Bash 이스케이프 시퀀스를 사용하여 프롬프트 제목을 변경하면 다음과 같습니다.
export PS1='\[\e]2;new title\a\]prompt > '
문서 참조
따라서 사용자 정의 터미널 제목도 있는 다색 잘린 bash 프롬프트의 예는 다음과 같습니다.
export PS1='\[\e]2;$PWD\a\]\e[93m$USER\e[97m@\e[90m$HOSTNAME \e[93m$ \e[0m'
이 예에서 터미널 제목은 항상 현재 작업 디렉터리( $PWD
)를 반영하며 터미널 프롬프트는 현재 있는 디렉터리에 관계없이 항상 다음과 같이 표시됩니다 user@hostname $
.
터미널 제목이 항상 를 반영하도록 $PWD
로 바꿀 수 있습니다 .CUSTOM TITLE
CUSTOM TITLE
업데이트\[
및 에서 인쇄되지 않은 문자를 래핑하지 않을 때는 주의하세요 \]
. 그것은 그것 없이도 작동하며 나는 몇 년 동안 그것 없이도 그것을 해왔습니다. 하지만 오늘 몇 가지 설정을 통해 알게 된 것처럼몇 가지 문제가 발생할 수 있습니다터미널에서. 다음은 변수를 사용하고 색상 코드를 래핑한 더욱 깔끔한 버전입니다.
T_YELLOW='\[\e[93m\]'
T_WHITE='\[\e[97m\]'
T_GRAY='\[\e[90m\]'
T_DEFAULT='\[\e[0m\]'
T_TITLE='\[\e]2;$PWD\a\]'
export PS1="${T_TITLE}${T_YELLOW}$USER${T_WHITE}@${T_GRAY}$HOSTNAME${T_YELLOW} $ ${T_DEFAULT}"