Путем моя подсказка удара в настоящее время настраивается, она показывает целый путь к текущему каталогу. Это является раздражающим, когда я глубоко в дереве каталогов, поскольку подсказка становится такой длинной, который каждая команда переносит в следующую строку. Как я заставляю его показать только последнюю часть пути?
Это - то, что я имею в моем .bashrc
:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
*)
;;
esac
Изменитесь \w
(нижний регистр) к \W
(верхний регистр):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
^^
this one waaaaaay over here ------------------------------------------------+
Взгляните на ПРАКТИЧЕСКОЕ РУКОВОДСТВО Подсказки Bash для большого количества забавных деталей. пример:
user@host:/usr/local/bin$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$
user@host:/usr/local/bin$ export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\W\[\033[00m\]\$ '
user@host:bin$
PROMPT_COMMAND
переменная, если установлено, является командой, которая выполняется прежде, чем отобразить подсказку, указанную в PS1
. В Вашем случае, PROMPT_COMMAND
выполнения echo
оператор с определенными escape-последовательностями ANSI, которые управляют строкой заголовка Xterm.
Если Вы подозреваете Ваш PROMPT_COMMAND
переопределяет Ваш PS1
подсказка, Вы можете unset
это и проверяет вещи:
$ unset PROMPT_COMMAND
Наконец, убедитесь, что Вы изменяетесь PS1
определение, которое на самом деле привыкает. Общие местоположения /etc/bash.bashrc
, /etc/profile
, ~/.bashrc
, ~/.bash_profile
, ~/.profile
. Системные файлы обычно (но не всегда) выполнены перед пользовательскими файлами.