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

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

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

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

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

michael:controllers$

7 ответов

Решение

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

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


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

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

if ["$ color_prompt" = yes]; затем
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\ и @\ ч \[\033[00m\]:\[\033[01;34m\]\ ш \[\033[00m\]\$ '
еще
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
фи

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

if ["$ color_prompt" = yes]; затем
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\ и \[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
еще
    PS1='${debian_chroot:+($debian_chroot)}\u:\W\$ '
фи

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


Тонны больше вариантов!

  • Смотрите здесь для более подробного руководства, с большим количеством опций
  • Посмотрите этот ответ, чтобы узнать, как использовать крошечный скрипт Python для установки приглашения, чтобы сокращение происходило только тогда, когда вы глубоко в структуре каталогов.

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

PROMPT_DIRTRIM=3

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

Эффект:

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

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

PROMPT_DIRTRIM=3

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

Это мой предпочтительный параметр приглашения:

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

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

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

[user@hostname dirname]$

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

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

PS1='\W\$ '

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

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

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

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

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

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+ без цвета, xterm+ цвет, без xterm + без цвета, без xterm + цвет). Этот ответ поддерживает все четыре текущих метода и, возможно, будущие методы тоже.

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

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

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

      [ folder ]$ Command

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

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

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

      echo "PS1='\[\033[01;34m\][ \W ]\[\033[00m\]\$ '" >> ~/.bashrc
Другие вопросы по тегам