Содержание
В командной оболочке bash командная строка — это текст, отображаемый при запросе ввода. На большинстве систем это выглядит так:
В командной строке вы можете получить информацию, прежде чем запускать какие-либо команды. Например, приведенная выше подсказка показывает следующее.
- кто вы (пользователь с именем user)
- где вы находитесь (компьютер с именем myhost)
- каков ваш рабочий каталог (~, что является сокращением для вашего домашнего каталога)
Возможно, наиболее важным является знак доллара («$»), который представляет собой специальный символ, который указывает, что вы вошли в систему как пользователь без полномочий 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 [м"
Будет выдано приглашение, которое выглядит так:
Вот список цветов, которые вы можете использовать, и номера, которые их определяют:
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; 36 | Cyan | 1; 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"]
PS1 = "Подчеркнуто: \ e [4; 31mRed \ e [4; 32mGreen \ e [4; 33mBrown \ e [4; 34mBlue \ e [4; 35mPurple \ e [4; 36mCyan \ e [4; 37mGray \ e [ м»
PS1 = "\ e [44m \ e [1; 35м. Яркий фиолетовый на синем фоне \ e [m"