У меня есть несколько экземпляров терминалов, работающих в моей рабочей среде, и я хотел бы установить для каждого из них определенный заголовок, чтобы иметь четкое представление о том, для чего служит конкретный терминал, например, Apache, edit_ini, postgres и т. Д. ..
Конечно, из командной строки.
Argh, столько ответов...
Я попробовал wmctrl
, который почти работал, кроме я не мог заставить это изменять заголовок значка, по крайней мере, не постоянно.
Проблема состоит в том, что PS1 в избивают наборы Ubuntu заголовок.
PS1 по умолчанию
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
... который устанавливает заголовок в первой escape-последовательности: \e]0;\u@\h: \w\a
Таким образом существует два решения:
Измените PS1 на что-то более простое:
PS1="\u@\h:\w\$ "
Затем используйте PROMPT_COMMAND:
PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
Просто измените PS1 с новым заголовком:
PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Другой способ изменить заголовок gnome-terminal
при помощи gconftool-2
; это изменяет первоначальный терминальный заголовок для выбранного профиля, таким образом, Вам можно было связать различные профили с заголовками, такими как 'Apache', 'Редактирование', и т.д. Вы затем запустились бы gnome-terminal
с соответствующим профилем для получения терминального заголовка Вы указали. Это в отличие от gnome-terminal --title "name"
который изменяет заголовок на терминал, но не влияет на первоначальный заголовок, указанный в профиле.
Вы могли использовать следующую команду в сценарии для определения имени терминала для профиля, и у Вас могло быть название терминального изменения в определенное время в день для напоминания Вам о вещах:
gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"
Это для профиля по умолчанию, но Вы могли установить заголовок для других профилей также путем изменения, например, Default
к другому профилю как Profile0
:
gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"
Я думал, что этот способ изменить заголовок полезен из-за способа, которым он мог использоваться в сценариях, или так же, как быстрая командная строка способ установить заголовок для профиля. Обратите внимание, что иногда необходимо повторно запустить терминал с указанным профилем для gconftool-2
установка для взятия влияния. Полные настройки, доступные для gnome-terminal
может быть перечислен с gconftool-2 -R /apps/gnome-terminal
.
Если вы пользователь Ubuntu, вы можете изменить заголовок вкладки терминала gnome, используя HUD .
Находясь в терминале гнома, нажмите Alt, чтобы вызвать HUD, введите первые несколько букв, например, «tit», нажмите ввод и введите новый заголовок.
Это очень быстрый метод, позволяющий избежать использования мыши.
Для полноты картины я бы добавил, что вы также можете установить заголовок gnome-terminal
с помощью этой команды:
wmctrl -r :ACTIVE: -N "MyWindowTitle"
Вам необходимо установить пакет wmctrl сначала.
Если вы используете редактор Vim, вы также можете включить эту опцию в вашем vimrc:
:set title
, которая по умолчанию отключена. Он установит классные заголовки терминалов, показывающие имя файла, который вы редактируете в данный момент, и некоторые другие вещи.
Ответ Уорда великолепен, если вы хотите устанавливать заголовок в зависимости от того, на каком хосте вы находитесь и т. Д. Каждый раз, когда открываете терминал. Если вы просто хотите быстро установить заголовок, вы можете просто запустить echo самостоятельно:
echo -ne "\033]0;SOME TITLE HERE\007"
или создать простой скрипт bash, скажем termtitle
#!/bin/bash
echo -ne "\033]0;${1}\007"
, который вы может работать с termtitle "some title here"
Чтобы отобразить только текущий рабочий каталог в заголовке, попробуйте это в вашем .bashrc:
PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'
или
PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"'
Это работало в моем Редактирование Терминала 3.18.3 .
Gnome Ваш файл .bashrc , и добавьте, что эта функция
# Update gnome terminal title
function termtitle() {
# take argument
TITLE=$1
shift
# update title
PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}
не забывает к source
Ваш файл
$ source ~/.bashrc
.bashrc , И затем можно просто обновить, Вы сможете изменить терминальный заголовок как это:
$ termtitle "MariaDB CLI"
Наиболее удобный способ - выбрать его из меню «Терминал» -> «Установить заголовок ...».
Существуют и другие способы, однако вы также можете использовать
gnome-terminal --title="SOME TITLE HERE"
. Это может не дать желаемого эффекта, поскольку есть большая вероятность того, что ваши .bashrc
перезапишут это поведение.
Приводит нас к последнему методу, который я бесстыдно вырвал из моего .bashrc
.
PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
В качестве дополнительной ссылки, это особая строка в моем .bashrc
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
Вам также может понадобиться закомментировать этот код в вашем ~ /. bashrc
case "$TERM" in
xterm*|rxvt*)
# JEFFYEE REMOVED because it makes commands to title() not work
#PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
Другим решением является использование xdotool для имитации нажатий клавиш, что может быть полезно в скриптах:
Установите сочетание клавиш в gnome-terminal:
Edit > Keyboard Shortcuts... > Terminal > Set Title
Например Assing Shift+Ctrl+Y
.
Установите xdotool
, если у вас его еще нет:
sudo apt-get install xdotool
Следующая последовательность команд (которую вы также можете использовать в скрипте bash) установит заголовок терминала / табуляции (экранируйте пробел с помощью \
):
xdotool key ctrl+shift+y
xdotool type My\ new\ fabulous\ title
xdotool key Return
[опционально] Вы также можете использовать xdotool, например, откройте новую вкладку и установите заголовок с помощью вышеуказанных команд, используя:
xdotool key ctrl+shift+t
Рассмотрите возможность добавления времени ожидания до и после открытия новой вкладки, например, sleep 1
(ждать 1 секунду).
Это не самое элегантное решение, но оно сработало для меня! Предыдущие ответы не сработали в моем случае. Я использую gnome-терминал в Ubuntu 14.04, и я хотел сделать скрипт bash.
Если какая-либо бедная душа, такая как я, вынуждена использовать tcsh, попробуйте что-нибудь подобное в вашем .cshrc:
set prompt='%{\033]0;%n@%m\007%}%~%# '
Источник и более подробная информация: http://tldp.org/ HOWTO / Xterm-Title-4.html
Если вы используете гном 3, удобная опция меню Terminal > Set Title
была удалена. Вы можете установить раздвоенный терминал gnome 2, у которого все еще есть пункт меню «Задать заголовок», и запустить его вместо:
sudo apt-get install mate-terminal
Вместо запуска «Терминал», запустите «Терминал MATE». Возможно, вам также следует выбрать mate-терминал в sudo update-alternatives --config x-terminal-emulator
.
Мой ответ подобен более новому ответу, который не работал на меня. Самые старые ответы больше не работают. Средний старый ответ очень вводит так, я создал функцию в моем ~/.bashrc
файл:
function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }
После добавления или изменения функции или, если Вы хотите сбросить заголовок использование второго раза:
. ~/.bashrc
termtitle Special Projects
Иначе ежедневно просто использование termtitle
с новым заголовком.
В дополнение к другим действительным ответам, xdotool
имеет функциональность, позволяющую изменить название любое приложение и окно.
xdotool getactivewindow set_window --name "WINDOW NAME HERE"
Обратите внимание, что изменение не будет постоянным, оно изменится при смене каталога и, возможно, будет установлено на ваш PWD.
Чтобы навсегда изменить его, вы можете изменить переменную PS1
внутри ~/.bashrc
, как указано выше.
PS1="${PS1}\[\e]0;New Title\a\]"
Эта модификация является постоянной. На самом деле, после этого изменения, сделанные с помощью xdotool
, также будут постоянными и не изменятся с помощью cd
.