Как настроить (и раскрасить) вашу подсказку Bash

Оглавление:

Как настроить (и раскрасить) вашу подсказку Bash
Как настроить (и раскрасить) вашу подсказку Bash

Видео: Как настроить (и раскрасить) вашу подсказку Bash

Видео: Как настроить (и раскрасить) вашу подсказку Bash
Видео: Загорелся CHECK (ЧЕК) Что делать,неполадки двигателя. - YouTube 2024, Ноябрь
Anonim
Большинство дистрибутивов Linux настраивают приглашение Bash, чтобы посмотреть что-то вроде
Большинство дистрибутивов Linux настраивают приглашение Bash, чтобы посмотреть что-то вроде

username@hostname:directory$

Но вы можете настроить приглашение Bash, чтобы содержать все, что вам нравится, и даже выбирать любые цвета, которые вам нравятся.

Примеры шагов здесь были выполнены на Ubuntu 16.04 LTS. В других дистрибутивах Linux этот процесс должен быть одинаковым, хотя приглашение Bash по умолчанию и настройки в файле.bashrc могут быть немного разными.

Где хранится переменная запроса

Конфигурация приглашения Bash хранится в файле.bashrc вашей учетной записи пользователя, который находится в

~/.bashrc

Итак, если ваше имя пользователя - bob, файл находится на

/home/bob/.bashrc

Вы можете открыть файл, чтобы просмотреть текущую переменную Bash. Мы будем использовать nano в качестве нашего текстового редактора, хотя вы также можете использовать vi, emacs или любой другой текстовый редактор, с которым вам удобно. Откройте терминал и запустите:

nano ~/.bashrc

Прокрутите вниз до
Прокрутите вниз до

PS1=

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

${debian_chroot:+($debian_chroot)}u@h:w$

Это все еще немного сложно из-за
Это все еще немного сложно из-за

${debian_chroot:+($debian_chroot)}

биты. Они просто говорят Bash, чтобы вы знали, используете ли вы среду chroot Debian и обычно не показываетесь. Игнорируя это, вот структура по умолчанию переменной запроса Bash:

u@h:w$

u

указывает ваше имя пользователя,

@

указывает знак @,

h

указывает имя хоста (имя компьютера),

:

указывает символ:

w

указывает рабочий каталог и

$

указывает $, если вы обычная учетная запись пользователя или #, если вы являетесь пользователем root. Итак, положив это все вместе, вы получите

username@hostname:working_directory$

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

Оставьте текстовый редактор для nano, нажмите Ctrl + X, чтобы выйти. Мы покажем вам, как экспериментировать с переменными, прежде чем писать новый в ваш.bashrc-файл.

Как создать пользовательскую подсказку Bash

Конфигурация приглашения Bash хранится в переменной PS1. Чтобы сохранить содержимое переменной PS1 в новой переменной, выполните следующую команду:

DEFAULT=$PS1

Теперь вы можете установить переменную PS1 для разных значений для экспериментов. Например, первая строка здесь установит ваше приглашение на базовое приглашение пользователя «$», в то время как второе задает приглашение базовому запросу «user: working_directory $».

PS1='u$ ' PS1='u:w$ '

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

PS1=$DEFAULT

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

Вы можете добавить в переменную любые символы или текст. Итак, чтобы префикс приглашения по умолчанию с «Hello World», вы можете использовать:
Вы можете добавить в переменную любые символы или текст. Итак, чтобы префикс приглашения по умолчанию с «Hello World», вы можете использовать:

PS1='Hello World u@h:w$ '

Теперь, когда у вас есть основы, вам просто нужно знать, каковы все специальные символы. Вероятно, вам это не понравится, но вот полный список, как показано в руководстве Bash:
Теперь, когда у вас есть основы, вам просто нужно знать, каковы все специальные символы. Вероятно, вам это не понравится, но вот полный список, как показано в руководстве Bash:
  • Символ колокола:

    a

  • Дата в формате «День недели месяца» (например, «Вт май 26»):

    d

  • Формат передается в strftime (3), и результат вставляется в строку приглашения; пустой формат приводит к представлению времени, специфичному для локали. Необходимы фигурные скобки:

    D{format}

  • Управляющий символ:

    e

  • Имя хоста, до первого '.':

    h

  • Имя хоста:

    H

  • Количество рабочих мест, которыми в настоящее время управляет оболочка:

    j

  • Базовое имя терминального устройства оболочки:

    l

  • Новая строка:
  • Возврат каретки:
  • Имя оболочки, базовое имя $ 0 (часть, следующая за последней косой чертой):

    s

  • Время в 24-часовом формате ЧЧ: ММ: СС:

  • Время в 12-часовом формате ЧЧ: ММ: СС:

    T

  • Время, в 12-часовом формате am / pm:

    @

  • Время в 24-часовом формате ЧЧ: ММ:

    A

  • Имя пользователя текущего пользователя:

    u

  • Версия Bash (например, 2.00):

    v

  • Выпуск Bash, версия + patchlevel (например, 2.00.0):

    V

  • Текущий рабочий каталог с $ HOME сокращенно с тильдой (использует переменную $ PROMPT_DIRTRIM):

    w

  • Базисное имя $ PWD, с $ HOME сокращенно с тильдой:

    W

  • Номер истории этой команды:

    !

  • Номер команды этой команды:

    #

  • Если эффективный uid равен 0, #, в противном случае $:

    $

  • Символ, код которого ASCII является восьмеричным значением nnn:

    nn

  • Обратная косая черта:

  • Начните последовательность непечатаемых символов. Это можно использовать для встраивания управляющей последовательности терминала в приглашение:

    [

  • Завершить последовательность непечатаемых символов:

    ]

Итак, если вы хотите добавить дату и время к вашему приглашению Bash и поместить рабочий каталог во вторую строку, вы можете использовать следующую конструкцию:

PS1='[d ] u@h

w$ '

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

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

`

персонажи. Это не апостроф - это серьезный акцент, который появляется над клавишей Tab на клавиатуре.

Например, предположим, что вы хотите просмотреть версию ядра Linux в приглашении. Вы можете использовать следующую строку:

PS1='u@h on `uname -s -r` w$ '

В качестве другого примера предположим, что вы хотите просмотреть время автономной работы и среднее значение нагрузки, отображаемое
В качестве другого примера предположим, что вы хотите просмотреть время автономной работы и среднее значение нагрузки, отображаемое

uptime

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

PS1='(`uptime`)

u@h:w$ '

Не стесняйтесь экспериментировать с различными специальными символами и командами, чтобы собрать идеальную командную строку.
Не стесняйтесь экспериментировать с различными специальными символами и командами, чтобы собрать идеальную командную строку.

Как добавить цвета в вашу подсказку Bash

После того, как вы выберете свое предпочтительное приглашение, вы можете добавить в него цвета. Это на самом деле очень просто, но при этом переменная выглядит ужасно грязной и сложной, если вы не понимаете, на что вы смотрите.

Например, переменная запроса цвета по умолчанию из ранее была:

${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

Или, удалив бит debian_chroot еще раз:

[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

На самом деле это просто
На самом деле это просто

u@h:w$

переменная от ранее, но с информацией о цвете. Действительно, мы можем разбить его на несколько разделов:

[33[01;32m] u@h [33[00m] : [33[01;34m] w [33[00m] $

Первый раздел - это

u@h

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

:

символ, которому предшествует информация о цвете, которая удаляет любую окраску. Третьим является

w

бит, которому предшествует информация о цвете, которая превращает его в синий цвет. Четвертый - это

$

бит, которому предшествует информация о цвете, которая удаляет любую окраску.

Как только вы поймете, как создавать собственные цветовые метки, вы можете добавлять любые цвета, которые вам нравятся, в любые разделы вашего приглашения Bash, которые вам нравятся.
Как только вы поймете, как создавать собственные цветовые метки, вы можете добавлять любые цвета, которые вам нравятся, в любые разделы вашего приглашения Bash, которые вам нравятся.

Вот что вам нужно знать: вы должны включить всю информацию о цветовых кодах между

[

а также

] character

s. Внутри тега вы должны начать с

33[

или же

e[

чтобы указать Bash, что это информация о цвете. И то и другое

33[

а также

e[

делайте то же самое.

e[

короче, поэтому было бы удобнее использовать, но мы будем использовать

33[

здесь, поскольку он соответствует тому, что используется по умолчанию. В конце тега вы должны закончить

m

для указания конца цветового тега.

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

[33[ COLORm]

Bash позволяет вам изменить цвет текста переднего плана, добавить в текст атрибуты типа «полужирный» или «подчеркивание» и установить цвет фона.

Вот значения для текста переднего плана:

  • Черный: 30
  • Синий: 34
  • Голубой: 36
  • Зеленый: 32
  • Фиолетовый: 35
  • Красный: 31
  • Белый: 37
  • Желтый: 33

Например, поскольку фиолетовый текст является цветовым кодом 32, вы должны использовать

[33[ 32m]

для фиолетового текста.

Вы также можете указать атрибут для текста. Этот атрибут должен быть добавлен перед номером цвета, разделенным точкой с запятой (;). Текст с этими атрибутами будет выглядеть по-разному в разных эмуляторах терминалов.
Вы также можете указать атрибут для текста. Этот атрибут должен быть добавлен перед номером цвета, разделенным точкой с запятой (;). Текст с этими атрибутами будет выглядеть по-разному в разных эмуляторах терминалов.

Вот значения для атрибутов текста:

  • Обычный текст: 0
  • Полужирный или светлый текст: 1 (зависит от эмулятора терминала).
  • Dim Текст: 2
  • Подчеркнутый текст: 4
  • Мигающий текст: 5 (Это не работает в большинстве эмуляторов терминалов).
  • Обратный текст: 7 (Это инвертирует цвета переднего плана и фона, поэтому вы увидите черный текст на белом фоне, если текущий текст - белый текст на черном фоне.)
  • Скрытый текст: 8

На самом деле вам не нужно включать обычный текстовый атрибут. Во всяком случае, это по умолчанию.

Например, поскольку красный текст - это код 31, а полужирный текст - код 1, вы должны использовать

[33[ 1;31m]

для жирного красного текста.

Вы также можете указать цвет фона, но вы не можете добавить атрибут к цвету фона.
Вы также можете указать цвет фона, но вы не можете добавить атрибут к цвету фона.

Вот значения цветов фона:

  • Черный фон: 40
  • Голубой фон: 44
  • Голубой фон: 46
  • Зеленый фон: 42
  • Фиолетовый фон: 45
  • Красный фон: 41
  • Белый фон: 47
  • Желтый фон: 43

Например, поскольку синий фон является кодом 44,

[33[ 44m]

будет указывать синий фон.

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

PS1='[33[ 42m][33[ 31m]u@h:w$ '

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

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

$

персонаж.

PS1='[33[ 42m][33[ 31m]u@h:w\[33[ 00m]$ '

Image
Image

Как установить новую подсказку по умолчанию

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

Для этого вам просто нужно изменить содержимое переменной PS1 в файле.bashrc, который мы рассмотрели ранее.

Откройте файл.bashrc в предпочтительном текстовом редакторе, например:

nano ~/.bashrc

Прокрутите вниз и найдите раздел PS1 =.Просто замените переменную по умолчанию своей настраиваемой переменной. Вероятно, вы захотите оставить

${debian_chroot:+($debian_chroot)}

в одиночку, однако - они не появятся, если вы не находитесь в среде chroot, так или иначе.

Введите цветную переменную PS1 под

if [ '$color_prompt' = yes ]; then

линия. Введите переменную без цветов под

else

линия.

Сохраните файл и закройте текстовый редактор. Например, чтобы сохранить файл в nano, нажмите Ctrl + O, нажмите Enter, а затем нажмите Ctrl + X для выхода.
Сохраните файл и закройте текстовый редактор. Например, чтобы сохранить файл в nano, нажмите Ctrl + O, нажмите Enter, а затем нажмите Ctrl + X для выхода.

В следующий раз, когда вы запустите новую оболочку Bash, например, выполнив вход на терминал или открыв новое окно терминала, вы увидите свое настроенное приглашение.

Рекомендуемые: