Как настроить командную строку в bash

В командной оболочке bash командная строка — это текст, отображаемый при запросе ввода. На большинстве систем это выглядит так:

Командная строка в bash.

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

  1. кто вы (пользователь с именем user)
  2. где вы находитесь (компьютер с именем myhost)
  3. каков ваш рабочий каталог (~, что является сокращением для вашего домашнего каталога)

Возможно, наиболее важным является знак доллара («$»), который представляет собой специальный символ, который указывает, что вы вошли в систему как пользователь без полномочий root. Если вы в настоящее время вошли в систему как root, этот символ будет вместо знака решетки («#»).

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

"\ [электронная почта защищена] \ h: \ W \ $"

В этой строке четыре специальных символа: \ u, \ h, \ W, \ $. Это экранированные последовательности символов, которые заменяются фактическими значениями каждый раз, когда отображается приглашение.

Специальные символы

Последовательности специальных символов, перечисленные в таблице ниже, можно использовать в приглашении оболочки bash.

Последовательность символов
Переводит на
\ а«Тревожный» персонаж. Запускает звуковой сигнал или вспышку экрана
\ dТекущая дата отображается в формате «День недели, месяц, дата» (например, среда, 13 мая).
\ D {формат}Текущая дата и время отображаются в соответствии с форматом, интерпретируемым strftime. Если формат опущен, \ D {} отображает текущее 12-часовое A.M./P.M. время (например, 07:23:01 PM).
\ еЭкранирующий персонаж (ASCII 27)
\ Е [NUMBER минОбозначает начало последовательности для цветного отображения, где число — это число или пара чисел, которое указывает, какой цвет и стиль использовать. Ниже приведен список цветов и их пар номеров.
\ЭмОбозначает конец последовательности для отображения в цвете.
\часИмя хоста машины, до первого
«» Например, если системным именем хоста является myhost.mydomain, \ h отображает myhost
\ЧАСПолное имя хоста машины.
\ JКоличество заданий, управляемых оболочкой.
\ лИдентификатор оконечного устройства оболочки, обычно однозначный номер.
\ пНовая строка
Возврат каретки
\ sИмя оболочки (базовое имя процесса, инициировавшего текущий сеанс bash).
\ тТекущее время отображается в 24-часовом формате ЧЧ: ММ: СС (например, 19:23:01).
\ TТекущее время отображается в 12-часовом формате ЧЧ: ММ: СС (например, 07:23:01).
\ @Текущее время отображается в 12-часовом формате ЧЧ: ММ: СС А.М. / ПО.М. формат (например, 07:23:01 вечера).
\ AТекущее время в 24-часовом формате ЧЧ: ММ (например, 19:23).
\ иИмя пользователя текущего пользователя.
\ vНомер версии Bash (например, 4.3).
\ VВерсия Bash и номер патча (например, 4.3.30).
\ шТекущий каталог. Домашний каталог пользователя сокращен до тильды («~»). Например, / usr / bin, ~ или ~ / documents
\ WБазовое имя текущего рабочего каталога (например, bin, ~ или Documents).
\!Номер истории текущей команды.
\ #Номер команды текущей команды (номера команд похожи на номера истории, но они сбрасываются в ноль при запуске нового сеанса bash).
\ NNNСимвол ASCII, восьмеричное значение которого равно nnn.
\\Обратная косая черта
\ [Отмечает начало любой последовательности непечатных символов, таких как управляющие коды терминала.
\]Отмечает конец непечатной последовательности.
\ $Выведите #, если UID равен нулю (суперпользователь), или $, если больше нуля (любой другой).

Изменение приглашения для текущего сеанса

Вы можете установить переменную среды PS1 так же, как и любую другую переменную в bash, с помощью формы оператора NAME = VALUE. Таким образом, чтобы установить стандартное приглашение, вы можете ввести в командной строке следующее.

PS1 = "\ [электронная почта защищена] \ h: \ W \ $"

… И ваша подсказка немедленно изменится. Обратите внимание на последний пробел после знака доллара в строке для дополнительного пробела после вашего приглашения, что упрощает различие между набираемыми вами командами и приглашением. Дополнительное пространство не обязательно, но рекомендуется.

Обратите внимание, что в команде нет пробелов между PS1, = и строкой.

Изменение подсказки для всех будущих сессий

Если вы хотите менять подсказку для каждого нового сеанса, вам нужно отредактировать файлы запуска bash. Каждый раз, когда вы запускаете терминальную сессию, следующие файлы, если они существуют, считываются и выполняются как сценарии:

/ И т.д. / профиль
~ / .Bash_profile
~ / .Bash_login
~ / .Profile

Первый файл / etc / profile представляет собой сценарий запуска для любого пользователя системы, который запускает сеанс bash. Чтобы изменить подсказку для каждого пользователя, вам нужно отредактировать этот файл, и для этого вам нужны привилегии суперпользователя.

sudo vi / etc / profile

Например, приведенная выше команда запрашивает ваш пароль, и, если вы находитесь в списке sudoers, откройте загрузочный файл универсального bash в качестве суперпользователя, используя редактор vi.

Остальные три файла ищутся в указанном выше порядке и выполняются после / etc / profile. Эти три файла находятся в вашем домашнем каталоге, поэтому они выполняются только для вас. Они могут определять PS1 в нескольких местах, поэтому вам следует внимательно прочитать файлы, чтобы увидеть, как они настроены в вашей системе. Например, многие системы используют другое значение PS1 в зависимости от того, поддерживает ли ваш терминал цвет.

Любой из трех файлов может существовать и использоваться для вашей сессии bash, но если их несколько, они будут выполняться в указанном порядке.

Если вы не хотите удалять или изменять строки в ваших файлах запуска, вы также можете добавить новую инструкцию PS1 = в конец одного из ваших файлов, чтобы применить настраиваемое приглашение.

Добавление цвета в вашу подсказку

Если вы используете терминал, который поддерживает цвет (и вы, вероятно, есть), вы можете добавить цвет к вашему приглашению. Цвета добавляются с использованием специальных последовательностей символов, следующих за этим форматом:

\ Е [NUMBER минНачинается цветной раздел. Числовое значение — это специальное число или пара чисел, которые определяют цвет.
\Эмобозначает конец цветного сечения; сбрасывает цвет по умолчанию

Например, строка приглашения:

PS1 = "\ e [1; 35 м. Это ярко-фиолетовый. \ E [0; 35 м ... и это темно-фиолетовый. \ E [м"

Будет выдано приглашение, которое выглядит так:

подсказка bash с цветом

Вот список цветов, которые вы можете использовать, и номера, которые их определяют:

Номер (а)
Цвет / Стиль
Номер (а)
Цвет / Стиль
0; 30черный1; 30Темно-серый
0; 31красный1; 31Ярко-красный
0; 32зеленый1; 32Ярко зеленый
0; 33коричневый1; 33желтый
0; 34синий1; 34Ярко-голубой
0; 35Фиолетовый1; 35Ярко-фиолетовый
0; 36Cyan1; 36Яркий голубой
0; 37Серый1; 37белый
4; 30Черный, подчеркнутый40фон: темно-серый
4; 31Красный, подчеркнутый41фон: красный
4; 32Зеленый, подчеркнутый42фон: зеленый
4; 33Коричневый, подчеркнутый43фон: желтый
4; 34Синий, подчеркнутый44фон: синий
4; 35Фиолетовый, подчеркнутый45фон: фиолетовый
4; 36Голубой, подчеркнутый46фон: голубой
4; 37Серый, подчеркнутый47Фон: серый

Вот несколько примеров, и как они выглядят:

PS1 = "\ e [0; 31mRed \ e [0; 32mGreen \ e [0; 33mBrown \ e [0; 34mBlue \ e [0; 35mPurple \ e [0; 36mCyan \ e [0; 37mGray \ e [m"]
bash color, пример 2
PS1 = "Подчеркнуто: \ e [4; 31mRed \ e [4; 32mGreen \ e [4; 33mBrown \ e [4; 34mBlue \ e [4; 35mPurple \ e [4; 36mCyan \ e [4; 37mGray \ e [ м»

подсказка bash color, пример 3

PS1 = "\ e [44m \ e [1; 35м. Яркий фиолетовый на синем фоне \ e [m"

подсказка bash color, пример 4

Ссылка на основную публикацию