Покажите только имя текущего каталога (не полный путь) на подсказке удара

Путем моя подсказка удара в настоящее время настраивается, она показывает целый путь к текущему каталогу. Это является раздражающим, когда я глубоко в дереве каталогов, поскольку подсказка становится такой длинной, который каждая команда переносит в следующую строку. Как я заставляю его показать только последнюю часть пути?

Это - то, что я имею в моем .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
73
задан 25.10.2009, 23:38

1 ответ

Изменитесь \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. Системные файлы обычно (но не всегда) выполнены перед пользовательскими файлами.

101
ответ дан 07.12.2019, 08:09

Теги

Похожие вопросы