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

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

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

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

Как я мог бы сделать так, чтобы это было что-то более похожее:

michael:controllers$

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

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


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

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

если [ "$color_prompt" = да ]; тогда PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01; 34 м\]\вт\[\033[00m\]\$ 'else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w \$ 'fi

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

если [ "$color_prompt" = да ]; тогда 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 для настройки приглашения таким образом, чтобы сокращение происходило только тогда, когда вы глубоко погружены в структуру каталогов.

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

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.

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

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

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

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

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

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

Чтобы получить желаемую строку запроса OP:

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

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

Blue='\e[0;34m'         # Blue