Зависит от вашей оболочки.
Эта статья отображает несколько методов.
Я лично использую zsh, который имеет удобную функцию precmd (), которая запускается перед каждым приглашением.
precmd () { print -Pn "\e]2;%n@%M | %~\a" } # title bar prompt
Хотя другие вопросы перечислены методы bash, они псевдоним CD. Bash предоставляет собственный метод, который блокирует только подсказку.
удар
bash предоставляет переменную PROMPT_COMMAND, которая содержит команду для выполнения перед приглашением. Этот пример (вставленный в ~ / .bashrc) устанавливает заголовок «username @ hostname: directory»:
PROMPT_COMMAND='echo -ne "\033]0;$@$: $\007"'
где \ 033 - это код символа для ESC и \ 007 для BEL. Обратите внимание, что здесь важно заключить в кавычки: переменные раскрываются в «...», а не в «...». Таким образом, PROMPT_COMMAND установлен в нерасширенное значение, но переменные внутри "..." раскрываются при использовании PROMPT_COMMAND.
Однако PWD выдает полный путь к каталогу. Если мы хотим использовать сокращение «~», нам нужно встроить escape-строку в приглашение, что позволяет нам использовать следующие расширения приглашения, предоставляемые оболочкой:
\u expands to $USERNAME \h expands to hostname up to first '.' \w expands to directory, replacing $HOME with '~' \[...\] embeds a sequence of non-printing characters
Таким образом, следующее создает приглашение «bash $» и заголовок xterm «username @ hostname: directory» ...
case $TERM in xterm*) PS1="\[\033]0;\u@\h: \w\007\]bash\$ " ;; *) PS1="bash\$ " ;; esac
Обратите внимание на использование [...], которое говорит bash игнорировать непечатные управляющие символы при расчете ширины приглашения. В противном случае команды редактирования строки будут запутаны при установке курсора.