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

133

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

[email protected]:~/Dropnot/webs/rails_v3/linker/spec/controllers$

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

Как я могу сделать это более похожим:

michael:controllers$
    
задан Michael Durrant 02.06.2012 в 20:48
источник

5 ответов

200

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

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

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

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

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

Удалите @\h и замените \w на верхний регистр \W , чтобы он стал:

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

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

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

  • См. здесь для более обширного руководства, со многими другими параметры
  • См. этот ответ для использования крошечного сценария Python для установки приглашения, чтобы укорачивание происходило только тогда, когда вы глубоко в структуре каталогов.
ответ дан izx 02.06.2012 в 21:04
источник
77

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

PROMPT_DIRTRIM=3

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

Эффект:

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

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

PROMPT_DIRTRIM=3

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

    
ответ дан santosh Mahto 02.05.2014 в 08:49
15

Это моя рекомендуемая настройка:

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

PS1='[\[email protected]\h \W]$ '    

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

[[email protected] dirname]$

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

    
ответ дан unwastable 10.10.2014 в 05:08
5

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

PS1='\W$ '

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

    
ответ дан Rajeev Jayaswal 20.05.2017 в 13:01
1

Я понимаю, что это супер старый, но так как никто не предложил создать псевдоним, который, как я понял, я бы опубликовал. С помощью Последовательности побега в Bash Я сделал псевдоним shorten

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

alias c='clear'

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

Чтобы добиться желаемой строки запроса OP:

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

У меня есть цвета, определенные в копии ~/.bashrc и вставляемые из Ссылка . На стороне заметьте, что с цветами кода ansi? Я смущен, просто смотрю на это.

Blue='\e[0;34m'         # Blue
    
ответ дан Allie Carver 26.10.2015 в 22:03