Как я могу сократить приглашение командной строки (bash)?

В настоящее время это:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

За пределами переименования моей машины и структуры каталогов ...

Как я мог сделать это что-то вроде:

michael:controllers$
205
задан 18 July 2014 в 04:30

7 ответов

Чтобы изменить его только для текущего экземпляра терминала

Просто введите PS1 = '\ u: \ W \ $' и нажмите ввод.


Чтобы изменить его "навсегда"

В вашем ~ / .bashrc найдите следующий раздел:

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

Удалите @ \ h и замените \ w заглавными буквами \ W , чтобы он стал следующим:

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

Сохранить, выйти, закрыть терминал и запустить другой, чтобы увидеть результат.


Еще тонны параметров!

  • См. здесь для более подробной информации как, с множеством других опций
  • См. этот ответ для использования крошечного скрипта Python для настройки подсказки, чтобы сокращение происходило только тогда, когда вы находитесь глубоко в структуре каталогов.
276
ответ дан 18 July 2014 в 04:30

Запустить этот код в текущем терминале

PROMPT_DIRTRIM=3

Теперь в приглашении bash будут отображаться только последние 3 имени каталога. Вы можете выбрать 1, чтобы показать только текущий каталог. Дополнительная информация доступна в документации GNU .

Эффект:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Если вы хотите сделать это навсегда, добавьте следующую строку в ~ / .bashrc в начале :

PROMPT_DIRTRIM=3

или другое число больше нуля.

134
ответ дан 18 July 2014 в 04:30

Это мой предпочтительный параметр подсказки:

добавлен в ~ / .bashrc

PS1='[\u@\h \W]\$ '    

] это выглядит так:

[user@hostname dirname]$

(с пробелом после знака $ )

19
ответ дан 18 July 2014 в 04:30

Лично я предпочитаю видеть только текущую папку в приглашении bash. Я могу сделать это с помощью следующей команды:

PS1='\W\$ '

Если вы хотите, чтобы она вступала в силу после каждого запуска, добавьте указанную выше команду в ваш ~ / .bashrc.

7
ответ дан 18 July 2014 в 04:30

Я понимаю, что это очень старо, но так как никто не предлагал создавать псевдоним, я решил поместить его. Используя Bash Prompt Escape Sequences я сделал псевдоним shorten

В ~/.bash_aliases здесь вы заметите вариатор $Blue для установки цвета подсказки, который вы можете пропустить или изменить в зависимости от предпочтений Я также очищаю терминал при вызове shorten.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Для достижения желаемой строки запроса оператора:

alias shorten='PS1="$USER:\W$ "'

у меня есть цвета, определенные в ~/.bashrc, скопированные и вставленные с https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Обратите внимание, что такое кодовые цвета ansi? Я запутался, просто глядя на это.

Blue='\e[0;34m'         # Blue
2
ответ дан 18 July 2014 в 04:30

Я написал функцию вы можете изменить в соответствии с вашими потребностями:

function termprompt() {
    PS1="${PS1//@\\h/}"     # Remove @host
    PS1="${PS1//\\w/\\W}"   # Change from full directory to last name
}

Поместите эту функцию в конец ~ / .bashrc или рядом с ним после того, как строка PS1 будет полностью вычислена.

Вы должны набирать termprompt всякий раз, когда хотите сократить вашу подсказку, или вызывать termprompt из нижней части вашего ~ / .bashrc для постоянства.

Преимущество этого метода перед многими другими ответами заключается в том, что .bashrc может настроить PS1 четырьмя различными способами (xterm + no-color, xterm + color, no-xterm + no-color, no -xterm + цвет). Этот ответ поддерживает все четыре текущих метода и, вероятно, будущие методы.

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

0
ответ дан 22 October 2019 в 13:43

Отмечая ответы, которые я нашел в этом посте, я придумал шаблон, который я предпочитаю использовать. Я также включаю цвета в команду.

Это выглядит так:

[ folder ]$ Command

Чтобы протестировать его для текущего экземпляра терминала

PS1='\[\033[01;34m\][ \W ]\[\033[00m\]$ '

Чтобы сделать его постоянным для каждого экземпляра терминала

echo "PS1='\[\033[01;34m\][ \W ]\[\033[00m\]\$ '" >> ~/.bashrc
0
ответ дан 14 February 2022 в 14:04

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

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