Есть много вариантов настройки bash
. Я использую следующие команды для облегчения доступа к истории команд:
bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward'
Настраивает Upи Downстрелки для сканирования вверх и вниз по истории команд для команд, начинающихся с символов перед курсором в командной строке (как TCC делает в Windows).
Что касается приглашения, вы можете вводить команды, которые будут запускаться при каждом выводе приглашения. Я использую:-
PS1="\`curspos -n>/dev/tty\`\`[ \$BASH_LEVEL != 1 ]&&echo \"[\$BASH_LEVEL]\"\`\\t[\\w/]\\\$ "
Это вызывает две команды в каждой строке:
curspos
скрипт, который я написал, чтобы проверить положение курсора и вывести новую строку, если не в первом столбце (меня раздражали ненужные пустые строки).- В
BASH_LEVEL
проверках предшествуют строку с уровнем в квадратных скобках, если это не один, так что сразу видно, если вы находитесь в детской оболочке (например[2]15:55:32[~/]$
).
Ни один из этих ответов не отвечает вашим требованиям напрямую, но они иллюстрируют возможности, которые вы можете использовать в строке приглашения. В вашем случае вы можете просто добавить сценарий или функцию (например, gitcheck
) для выполнения до остальной части вашего приглашения, и это может вывести любую информацию, которую вы хотите видеть, в формате, который вы хотите, как часть приглашения.
В заключение я бы прокомментировал, что fish
это доступно во многих дистрибутивах Linux (например, в репозитории Ubuntu), поэтому вам нужно выполнять эти bash
настройки только в том случае, если вы не можете устанавливать пакеты.