Введение
Я люблю терминал. Возможность быстро выполнять задачи с помощью одной команды, которая потребовала бы времени пользователя графического интерфейса для поиска в меню, поиска нужной кнопки и выполнения нескольких шагов, — это очень приятный опыт. Иметь всю мощь вашего компьютера под рукой — это взрыв. Не помешает и то, что умение работать с терминалом заставляет вас чувствовать, что вы вошли в матрицу!
Настройка приглашения терминала может быть простым способом персонализировать вашу рабочую среду и повысить эффективность выполнения некоторых задач. Я также обнаружил, что мне действительно нравится время от времени менять подсказки и просто возиться с рабочей средой просто для удовольствия.
Я надеюсь, что смогу помочь упростить задачу настройки вашей подсказки и предоставить полезную справку о том, что вы можете сделать с терминалом bash.
Где хранится переменная PS1?
Если вы совсем не знакомы с bash, вас может немного сбить с толку, когда кто-то скажет заглянуть в файл конфигурации. Первой проблемой может быть даже поиск файла из-за того, что файлы конфигурации bash начинаются с точки, что делает их невидимыми в файловом браузере. Самый простой способ найти этот файл в Linux, Mac и WSL — открыть терминал и убедиться, что вы находитесь в своем домашнем каталоге. Самый простой способ убедиться, что вы находитесь в правильном месте, это запустить cd
без аргументов, это по умолчанию приведет вас в ваш домашний каталог.
Как только вы окажетесь в нужном месте, запустите команду ls -a
. Это покажет вам все файлы в вашем рабочем каталоге, включая скрытые файлы. Файл, с которым мы будем работать, — это файл .bashrc
, который является исходным файлом bash каждый раз, когда терминал открывается для его настройки.
Чтобы открыть этот файл, используйте любой удобный текстовый редактор и откройте файл .bashrc
. Vim, Nano, VSCode, Sublime Text и Atom — все это легкодоступные и качественные текстовые редакторы. Обычно в текстовых редакторах есть команды, которые открывают файл прямо из терминала; vim .bashrc
, code .bashrc
, nano .bashrc
например.
Основы
После того, как вы нашли файл и открыли его в своем любимом текстовом редакторе, вы захотите найти строку с export PS1="some crazy looking code"
, если у вас нет строки, которая определяет вашу переменную PS1, напишите ее. Просто убедитесь, что между именем переменной (PS1), знаком равенства и кавычками, которые будут определением подсказки, нет пробела.
Я покажу, как построить подсказку, которую использую я, которая не будет идеальной для каждого отдельного пользователя, но я думаю, что она будет работать, чтобы показать некоторые различные вещи, которые можно сделать с помощью вашей подсказки, и представить достаточное количество концепций, которые вы будете использовать. возможность разработать собственную версию.
Вот список опций, как это показано в bash manual
\a
: Символ колокольчика.\d
: Дата в формате «День недели, месяц, дата» (например, «Вторник, 26 мая»).\D{format}
: Формат передается в strftime(3) и результат вставляется в строку подсказки; пустой формат приводит к представлению времени в зависимости от локали. Брекеты обязательны.\e
: escape-символ.\h
: Имя хоста, до первой «.».\H
: Имя хоста.\j
: количество заданий, которыми в настоящее время управляет оболочка.\l
: Базовое имя терминального устройства оболочки.\n
: перевод строки.\r
: Возврат каретки.\s
: Имя оболочки, базовое имя $0 (часть после последней косой черты).\t
: время в 24-часовом формате ЧЧ:ММ:СС.\T
: время в 12-часовом формате ЧЧ:ММ:СС.\@
: Время в 12-часовом формате am/pm.\A
: время в 24-часовом формате ЧЧ:ММ.\u
: Имя текущего пользователя.\v
: Версия Bash (например, 2.00).V
: выпуск Bash, версия + уровень исправления (например, 2.00.0).\w
: текущий рабочий каталог с $HOME, сокращенно тильдой (используется переменная $PROMPT_DIRTRIM).\W
: Базовое имя $PWD с сокращением $HOME с тильдой.\!
: Номер истории этой команды.\#
: Номер этой команды.\$
: Если эффективный uid равен 0, #, иначе $.\nnn
: Символ, код ASCII которого представляет собой восьмеричное значение nnn.\
: обратная косая черта.\[
: Начать последовательность непечатаемых символов. Это можно использовать для встраивания последовательности управления терминалом в подсказку.\]
: Конец последовательности непечатаемых символов.
Вот несколько простых примеров того, как это можно построить.
Помните, что каждый раз, когда вы изменяете переменную PS1, чтобы увидеть изменение, вам нужно либо закрыть и снова открыть терминал, либо выполнить эту команду source ~/.bashrc
. Это заставит bash перезагрузить конфигурацию.
Подсказка только с пользователем.
export PS1="\u "
Подсказка с пользователем и полным путем, разделенными знаком @.
export PS1="\u @ \w "
Итак, с этого момента я буду показывать пошаговые инструкции о том, как создать подсказку, которую я использую каждый день.
Мне нравится указывать дату и время в моем приглашении, потому что я постоянно забываю, какой сегодня день, и может быть приятно иметь эту информацию под рукой. Мне также нравится заключать эту информацию в квадратные скобки, чтобы визуально отделить ее от остальной части подсказки.
export PS1="[\d / \@] "
Я действительно ненавижу указывать полный путь в моем приглашении, но очень важно указать текущий каталог, поэтому я использую частичное приглашение.
export PS1="[\d / \@] \W "
Я предпочитаю многострочные подсказки, потому что это дает мне больше места для написания более длинных команд без переноса и не требует уменьшения объема информации, отображаемой в подсказке. Вы можете вставить новую строку, экранировав c У меня есть символ стрелки, означающий, что здесь будут появляться команды, которые я набираю.
export PS1="[\d / \@] \W\n[=>] "
Далее мы добавим забавные части!
Отображение текущей ветки Git
Вот функция, которую нам нужно будет внедрить в нашу подсказку, чтобы она читала текущую ветку git, если мы находимся в репозитории git.
function parse_git_branch {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
Вы можете добавить это прямо в файл .bashrc
.
function parse_git_branch { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' }
export PS1="[\d / \@] \W \$(parse_git_branch)\n[=>] "
Добавление цвета к вашей подсказке
Добавление цвета к вашей подсказке может добавить индивидуальности и упростить распознавание информации, которую вы ищете, с первого взгляда. Вот коды цветов переднего плана bash.
- Черный: 30
- Синий: 34
- Голубой: 36
- Зеленый: 32
- Фиолетовый: 35
- Красный: 31
- Белый: 37
- Желтый: 33
Я настоятельно рекомендую хранить цвета, которые вы хотите использовать в переменных, в вашем файле bash, просто чтобы переменную PS1 было легче читать, и чтобы было меньше вероятности, что вы в конечном итоге столкнетесь с ошибками в приглашении.
Цветовые коды должны быть заключены в непечатаемые символьные символы. \[
и \]
, чтобы они работали правильно и не вызывали раздражающих проблем с переносом строк в вашем терминале.
Вот раскрашенная версия подсказки, над которой мы работали до сих пор!
green="\[\e[32m\]" purple="\[\e[35m\]" blue="\[\e[36m\]" white="\[\e[00m\]"
function parse_git_branch { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' }
export PS1="${green}[\d / \@] ${purple}\W ${blue}\$(parse_git_branch)\n${green}[=>]${white} "
Вывод
Я надеюсь, что эта статья помогла вам познакомиться с тем, что можно сделать с помощью командной строки терминала, и предоставила вам достаточно информации для разработки собственной индивидуальной рабочей среды. Удачного взлома!
Загляните в мой личный блог!