Как переименовать текущий рабочий каталог оболочки [дубликат]

На этот вопрос уже есть ответ здесь:

Я используя gnome-terminal. Я часто работаю над большими проектами, где много подкаталогов, и мне приходится компилировать их из терминала. Очень проблематично работать с подсказкой терминала с длинным путем, когда у вас один монитор.

Предположим, вы находитесь в каталоге.

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$

Теперь, когда я использую терминал, есть ли какие-нибудь уловки или ярлыки, чтобы преобразовать текущий адрес в фиктивную строку или текст, чтобы с ним было легко работать. Например, если я хочу показать адрес, указанный выше, как,

sbmaruf@lenovo:proj1$

, где proj1 = / sys / dev / block / 7: 6 / bdi / subsystem / 7: 7 / power . Я хочу делать это на ходу. например, пока я использую терминал, могу ли я сделать это за небольшой объем работы.

2
задан 20 December 2017 в 05:22

2 ответа

Вы можете добавить эту функцию в свою оболочку, изменив файл ~/.bashrc.

Предполагая стандартную конфигурацию, в вашем файле ~/.bashrc измените определение PS1, которое является подсказкой, с:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

на следующее:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]${PROMPT:-\w}\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:${PROMPT:-\w}\$ '
fi

Вы заменяете оба \w на ${PROMPT:-\w}.

В строке приглашения \w означает текущий каталог. ${VAR:-VALUE} означает использование VALUE, если переменная VAR не установлена ​​и не равна нулю. Поэтому можно переопределить показ текущего каталога, когда установлена ​​переменная оболочки.

Теперь вы можете установить псевдоним с помощью:

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$ PROMPT=proj1
sbmaruf@lenovo:proj1$

И сбросить его с помощью:

sbmaruf@lenovo:proj1$ unset PROMPT

Или установить его как ноль:

sbmaruf@lenovo:proj1$ PROMPT=
sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$
4
ответ дан 20 December 2017 в 05:22

Если ваша подсказка использует pwd, вы можете определить символическую ссылку, например, в вашем домашнем каталоге: ln -s /sys/dev/block/7:6/bdi/subsystem/7:7/power ~/proj1.

Тогда cd ~/proj1 и ваш запрос должен стать (почти) тем, что вы хотите, т.е. sbmaruf@lenovo:~/proj1$

2
ответ дан 20 December 2017 в 05:22

Другие вопросы по тегам:

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