Домашня » як » Як налаштувати (і розфарбувати) ваш Bash Prompt

    Як налаштувати (і розфарбувати) ваш Bash Prompt

    Більшість дистрибутивів Linux налаштовують підказку Bash на те, щоб виглядати приблизно так username @ hostname: каталог $ . Але ви можете налаштувати підказку Bash, щоб вона містила все, що вам подобається, і навіть вибирати будь-який колір, який вам подобається.

    Приклади кроків тут були виконані на Ubuntu 16.04 LTS. Процес має бути однаковим для інших дистрибутивів Linux, хоча за замовчуванням і налаштуваннями Bash у файлі .bashrc можуть бути дещо інші.

    Там, де зберігається змінна підказки

    Конфігурація запиту Bash зберігається у файлі .bashrc вашого облікового запису користувача, який знаходиться на ~ / .bashrc. Отже, якщо ваше ім'я користувача bob, файл знаходиться на /home/bob/.bashrc.

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

    nano ~ / .bashrc

    Прокрутіть вниз до PS1 = розділ. Перша змінна виглядає досить складно, тому що вона включає в себе інформацію про колір - ми це пояснимо пізніше. Друга змінна, без інформації про колір, звучить так:

    $ debian_chroot: + ($ debian_chroot) u @ h: w \ t

    Це все ще трохи складніше через $ debian_chroot: + ($ debian_chroot) біти. Вони просто повідомляють Bash, щоб ви повідомили, якщо ви використовуєте середовище Debian chroot і зазвичай не буде показано. Ігноруючи їх, тут вказана структура за замовчуванням змінної Bash prompt:

    u @ h: w

    u вказує ваше ім'я користувача, @ позначає знак @, h вказує ім'я хоста (ім'я комп'ютера), : позначає символ:, w вказує робочий каталог і \ $ вказує на $, якщо ви звичайний обліковий запис користувача або #, якщо ви маєте root. Отже, поклавши все це разом, ви отримаєте ім'я користувача @ ім'я хоста: working_directory $.

    Щоб змінити підказку Bash, потрібно лише додати, видалити або змінити спеціальні символи в змінній PS1. Але є багато інших змінних, які можна використовувати, ніж типові.

    Залиште текстовий редактор для nano-in, натисніть Ctrl + X, щоб вийти. Ми покажемо вам, як експериментувати зі змінними перед тим, як писати новий у вашому файлі .bashrc.

    Як створити користувацький Bash підказка

    Конфігурація запиту Bash зберігається в змінній PS1. Щоб зберегти вміст змінної PS1 у нову змінну, виконайте таку команду:

    DEFAULT = $ PS1

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

    U = "PS1 =" u: \ t

    Якщо ви захочете повернутися до підказки за замовчуванням, просто запустіть таку команду.

    PS1 = $ DEFAULT

    Bash буде відновлено за замовчуванням завдяки тому, що ви зберегли ці налаштування за замовчуванням раніше. Зауважте, що будь-які зміни, внесені вами, є лише тимчасовими для поточного сеансу Bash, тому ви завжди можете вийти і підписатися назад або закрити та відкрити вікно терміналу, щоб повернутися до підказки за умовчанням. Але вищезгадана лінія дозволяє легко повернутися до підказки Bash за замовчуванням, не маючи труднощів виходу або закриття вікна.

    До змінної можна додати будь-які символи або текст. Отже, для префіксу підказки за замовчуванням за допомогою "Hello World" можна використовувати:

    PS1 = "Привіт, світ! @: H:"

    Тепер, коли у вас є основи, вам просто потрібно знати, що всі спеціальні символи. Ви, напевно, не піклуєтеся про багато з них, але ось повний список, як він відображається в керівництві Bash:

    • Символ дзвоника: a
    • Дата в форматі "День тижня" (наприклад, "Вт 26 травня"): d
    • Формат передається у strftime (3), а результат вставляється у рядок підказки; порожній формат призводить до часового представлення, специфічного для локалі. Необхідні брекети: D формат
    • Уникальний символ: e
    • Ім'я хоста до першого ".": h
    • Назва хосту: H
    • Кількість завдань, якими зараз керує оболонка: j
    • Базове ім'я термінального пристрою оболонки: l
    • Новий рядок: n
    • Повернення каретки: r
    • Ім'я оболонки, базовеназва $ 0 (частина після останньої косої риси): s
    • Час у 24-годинному форматі HH: MM: SS: . \ t
    • Час у форматі 12 годин HH: MM: SS: В. \ t
    • Час у форматі 12 годин / год: @
    • Час у форматі HH: MM: A
    • Ім’я користувача поточного користувача: u
    • Версія Bash (наприклад, 2.00): v
    • Випуск Bash, версія + patchlevel (наприклад, 2.00.0): V
    • Поточний робочий каталог, у якому $ HOME скорочено тильдою (використовує змінну $ PROMPT_DIRTRIM): w
    • Базове ім'я $ PWD, при цьому $ HOME скорочено з тильдою: W
    • Номер історії цієї команди: \ T!
    • Номер команди цієї команди: . \ T
    • Якщо ефективний uid дорівнює 0, #, інакше $: \ $
    • Символ, ASCII-код якого має вісімкове значення nnn: nnn
    • Зворотний слеш: . \ T
    • Почніть послідовність недрукованих символів. Це може бути використано для вбудовування послідовності керування терміналом у запит: [\ T
    • Завершення послідовності недрукованих символів: [] \ T

    Отже, якщо ви хочете додати дату і час до своєї підказки Bash і покласти робочий каталог на команду на другий рядок, ви можете використовувати наступну конструкцію:

    PS1 = "[\ t

    Квадратні дужки тут зовсім не потрібні, але допомагають візуально розірвати речі та полегшити читання. Як ми вже згадували раніше, ви можете додати будь-які текстові або звичайні символи до змінної, яка вам подобається, так що не соромтеся використовувати будь-які роботи для вас.

    Є ще один потужний трюк, про який ви повинні знати: Ви можете додати вивід будь-якої команди до рядка. Всякий раз, коли з'явиться запит, Bash запустить команду і заповнить поточну інформацію. Для цього просто вкажіть будь-яку команду, яку потрібно виконати між двома ' символів. Це не апостроф - це серйозний акцент, який з'являється над клавішею Tab на клавіатурі.

    Наприклад, скажімо, ви хочете переглянути версію ядра Linux у запиті. Можна використовувати рядок, наведений нижче:

    U @ h на 'uname -s -r' \ t

    В якості іншого прикладу, скажімо, ви хочете, щоб переглядати час роботи системи і завантаження в середньому, як показано на час роботи команду. Ви можете скористатися наступною конструкцією, яка ставить безвідмовну роботу на свою лінію перед рештою підказки.

    PS1 = "(" час роботи ") \ t

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

    Як додати кольори до вашого Bash Prompt

    Після того, як ви зрозуміли бажаний рядок, ви можете додати до нього кольори. Це насправді дуже просто, але це робить змінні виглядати жахливо безладно і складно, якщо ви не розумієте, на що ви дивитеся.

    Наприклад, змінна підказки кольору за умовчанням з попереднього:

    $ debian_chroot: + ($ debian_chroot) [03 [01; 32m] u @ h [033 [00m]: [03 [01; 34m] w [[033] [00m]

    Або ще раз видаліть біти debian_chroot:

    [03 [01; 32m]: u @ h [033 [00m]: [03 [01; 34m] w [033 [00m]

    Це насправді просто u @ h: w $ змінна з раніше, але з інформацією про колір. Дійсно, ми можемо розбити її на кілька розділів:

    [03 [01; 32 м) \ tu @ h 033 [00м \ t: [03 [01; 34м) \ tw 033 [00м \ t\ $

    Перший розділ u @ h біт, перед яким надходить інформація про колір, що перетворює його в зелений колір. Другий : символу, якому передує інформація про колір, яка видаляє будь-яке забарвлення. Третій w біт, перед яким відображається інформація про колір, що перетворює його в синій колір. Четвертий \ $ біт, перед яким відображається кольорова інформація, яка видаляє будь-яке забарвлення.

    Як тільки ви зрозумієте, як створювати власні кольорові теги, ви можете додати будь-які кольори, які ви хотіли, до будь-яких розділів підказки Bash.

    Ось що потрібно знати: Ви повинні включити всю інформацію про код кольору між [\ T  і характерs. Ви повинні почати всередині тегу 033 [ або e , щоб вказати Bash, що це інформація про колір. Обидва 033 [ і e робити те ж саме. e коротше, тому може бути зручніше використовувати, але ми використаємо 033 [ тут, оскільки він відповідає тому, що використовується за умовчанням. В кінці тегу потрібно закінчити м , щоб вказати кінець кольорової позначки.

    Порушуючи це, ось що буде виглядати кожна позначка кольору. Єдиною відмінністю є інформація, яку ви додаєте замість COLOR, щоб визначити фактичний колір:

    [03 [Колірм \ t

    Bash дозволяє змінювати колір тексту на передньому плані, додавати до тексту атрибути "напівжирний" або "підкреслений", а також встановлювати колір тла.

    Ось значення для тексту переднього плану:

    • Чорний: 30
    • Синій: 34
    • Cyan: 36
    • Зелений: 32
    • Фіолетовий: 35
    • Червоний: 31
    • Білий: 37
    • Жовтий: 33

    Наприклад, оскільки фіолетовий текст є кольоровим кодом 32, вам слід скористатися [03 [32м \ t  для фіолетового тексту.

    Ви також можете вказати атрибут для тексту. Цей атрибут повинен бути доданий перед номером кольору, розділеним крапкою з комою (;). Текст з цими атрибутами буде відрізнятися в різних емуляторах терміналів.

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

    • Звичайний текст: 0
    • Жирний або легкий текст: 1 (Це залежить від емулятора терміналу.)
    • Dim Text: 2
    • Підкреслений текст: 4
    • Блимає текст: 5 (Це не працює в більшості емуляторів терміналів.)
    • Текст на зворотній стороні: 7 (це інвертує кольори переднього плану та фону, тому ви побачите чорний текст на білому тлі, якщо поточний текст є білим текстом на чорному тлі.)
    • Прихований текст: 8

    Насправді вам не потрібно включати звичайний текстовий атрибут. Так чи інакше.

    Наприклад, оскільки червоний текст є кодом 31, а жирний текст - код 1, вам слід скористатися [03 [1;м \ t для жирного червоного тексту.

    Можна також вказати колір фону, але не можна додати атрибут до кольору фону.

    Нижче наведено значення кольорів фону:

    • Чорний фон: 40
    • Блакитний фон: 44
    • Блакитний фон: 46
    • Зелений фон: 42
    • Фіолетовий фон: 45
    • Червоний фон: 41
    • Білий фон: 47
    • Жовтий фон: 43

    Наприклад, оскільки синій фон є кодом 44, [03 [44м \ t буде вказано блакитний фон.

    Можна вказати позначки кольорів переднього і заднього кольорів. Наприклад, 42 являє собою зелений фон, а 31 - червоний текст. Отже, щоб зробити підказку за умовчанням червоним текстом на зеленому тлі, використовуйте:

    PS1 = "[\ t42м [\ t31м: u @ h: w \ t

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

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

    PS1 = "[\ t42м [\ t31м: u @ h: w [\ t00м \ t

    Як встановити новий підказок за замовчуванням

    Після експерименту з кольорами у поточному сеансі має бути підказка Bash. Але ви, ймовірно, хочете зробити цей новий рядок постійним, щоб він автоматично використовувався у всіх Bash сесіях.

    Для цього потрібно просто змінити вміст змінної PS1 у файлі .bashrc, який ми розглянули раніше.

    Відкрийте файл .bashrc у потрібному текстовому редакторі, наприклад:

    nano ~ / .bashrc

    Прокрутіть вниз і знайдіть розділ PS1 =. Просто змініть змінну за замовчуванням за допомогою налаштованої змінної. Ви, ймовірно, захочете піти $ debian_chroot: + ($ debian_chroot)  однак, однак, вони не з'являться, якщо ви не перебуваєте в середовищі chroot.

    Введіть кольорову змінну PS1 під позначкою if ["$ color_prompt" = yes]; потім лінії. Введіть змінну без кольорів у полі інше лінії.

    Збережіть файл і закрийте текстовий редактор. Наприклад, щоб зберегти файл у nano, натисніть Ctrl + O, натисніть Enter, а потім натисніть Ctrl + X, щоб вийти.

    Наступного разу, коли ви запустите нову оболонку Bash - наприклад, увійшовши в термінал або відкривши нове вікно терміналу, ви побачите індивідуальний запит.