Мне не нравится, когда все длинные пути к каталогам занимают место в моем терминале, поэтому я обрезаю их через скрипт на 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.
Для терминала гнома терминальный заголовок установлен через PROMPT_COMMAND
который определяется в /etc/profile.d/vte-2.91.sh
.
PROMPT_COMMAND
, как определено в этом сценарии, делает две вещи:
изменяет терминальный заголовок с помощью OSC 0 escape-последовательностей (\033]0;NEW_TITLE\007
),
изменяет понятие терминала текущего каталога с помощью escape-последовательности 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
или где-либо еще (уже не говоря об отфильтровывают escape-последовательности, такие как цветные изменения). Если Вы хотите видеть ту же строку в своей подсказке и в заголовке окна, я полагаю, что необходимо копировать конструкцию той строки для PS1
и PROMPT_COMMAND
.
Это будет работать на Вас
, открывают ~/.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
с тем, чем Вы хотите изменить Терминальный заголовок, чтобы быть.
Hope это помогает.
Escape-последовательностью для использования является ESC] 2; новый titleBEL, где ESC и BEL являются Escape и символами звонковой сигнализации. Как \[\e]2;NEWTITLE\a\]
. Используя escape-последовательности #Bash, изменяя заголовок в Вашей подсказке похож:
export PS1='\[\e]2;new title\a\]prompt > '
документ касательно
Таким образом, пример многоцветной усеченной подсказки удара, которая также имеет пользовательский терминальный заголовок:
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}"
sudo apt update
для обновления баз данных репозитория иsudo apt upgrade
для обновления пакетов. ИЛИ в Ununtu Software, выберите Updates-tab, нажмите на значок обновления (круглая стрелка) и когда это закончилось, нажмите на Update. Лично, я предпочитаю терминальный путь, так как легче видеть то, что продолжается. – Soren A 31 October 2017 в 01:21