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

У этого вопроса уже есть ответ здесь: Как я могу сократить приглашение командной строки (bash)? 5 ответов

Я использую 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. Я хочу сделать это в пути. например, пока я использую терминал, могу ли я сделать это за небольшую работу.

131
задан 20 December 2017 в 06:22

3 ответа

Вы можете добавить эту функцию в свою оболочку, изменив ваш файл ~/.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 s на ${PROMPT:-\w}.

В подсказке string, \w означает текущий каталог. [F12] означает использование VALUE, если переменная VAR не установлена ​​и не равна нулю. Поэтому можно переопределить показ текущего каталога, когда установлена ​​переменная оболочки.

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

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

И отключить его с помощью: [!d6 ]

sbmaruf@lenovo:proj1$ unset PROMPT

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

sbmaruf@lenovo:proj1$ PROMPT=
sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$
4
ответ дан 22 May 2018 в 16:53

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

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

2
ответ дан 22 May 2018 в 16:53

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

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

2
ответ дан 18 July 2018 в 00:49

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

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