Контекст:
Проблема возникает из-за расположения рабочей папки: если я должен работать в подпапке подпапки подпапки и так далее... Командная строка оболочки bask в Linux настолько длинная, что для правильной печати можно использовать две строки.
Вопрос:
Есть ли способ показать только последнюю (или несколько последних) рабочих подпапок?
Пример:
Что на самом деле напечатано:
user@user-pc:~/Documents/robotic_arm/Monitoring/difference/develop/component/example/subfolder/subexample/module$
Что я хотел бы увидеть:
user@user-pc:~/.../subexample/module$
Больше информации:
Terminator
используется вместо стандартного «эмулятора терминала Linux».Загляните в раздел ПОДСКАЗКИ man bash
. Вы настраиваете приглашение, устанавливая PS1, и я подозреваю, что ваши текущие настройки примерно такие:
$ echo $PS1
\u@\h:\w\$
Если вы измените его на
$ PS1='\u@\h:\W\$ '
он будет печатать только базовое имя текущего рабочего каталога.
Да, это с добавлением некоторых цветов. Вам нужно изменить его так, чтобы \w
был заменен на \W
.
Положите сдачу в ~/.bashrc
или ~/.bash_profile
с export PS1=...
не работает и теперь: echo $PS1
\[\e]0;\u@\h: \W\a\]$ ...
Я только что нашел другое решение и использовал его как еще один альтернативный ответ. Можно ли использовать Terminator
мою проблему с вашим предложением?
Я не знаю почему, но предыдущий ответ не работает на моей машине. Однако альтернативное решение, которое отлично работает:
PROMPT_DIRTRIM=N
где N
— количество подпапок, которые вы хотите видеть.
Пример:
user@user-pc:~/Documents/robotic_arm/difference/develop/component/ $ PROMPT_DIRTRIM=2
user@user-pc:~/.../develop/component/ $
Решение было предложено одним из ответов выше этот вопрос.
echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$