Как да персонализирате (и оцветявате) Вашия Bash Prompt

Съдържание:

Как да персонализирате (и оцветявате) Вашия Bash Prompt
Как да персонализирате (и оцветявате) Вашия Bash Prompt

Видео: Как да персонализирате (и оцветявате) Вашия Bash Prompt

Видео: Как да персонализирате (и оцветявате) Вашия Bash Prompt
Видео: Подробная разборка роторного двигателя Mazda Renesis (13B-MSP). Как он вообще работает!? - YouTube 2024, Ноември
Anonim
Повечето Linux дистрибуции конфигурират баш прозореца, за да изглеждат нещо подобно
Повечето Linux дистрибуции конфигурират баш прозореца, за да изглеждат нещо подобно

username@hostname:directory$

Но можете да конфигурирате баш прозореца да съдържа всичко, което ви харесва, и дори да изберете какви цветове искате.

Примерните стъпки тук бяха извършени на 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$

Това все още е малко сложно поради
Това все още е малко сложно поради

${debian_chroot:+($debian_chroot)}

бита. Те просто казват на Баш да ви уведоми, ако използвате среда на Debian chroot и обикновено няма да се показва. Пренебрегвайки тези, тук е структурата по подразбиране на променливата Bash prompt:

u@h:w$

u

показва потребителското ви име,

@

показва знака @,

h

показва името на хоста (името на компютъра),

:

показва знака:

w

показва работната директория и

$

показва $, ако сте обикновен потребителски профил или # ако сте корен. Така че, слагайки всичко това заедно, ще получите

username@hostname:working_directory$

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

Оставете текстовия редактор за сега в нано, натиснете Ctrl + X, за да излезете. Ще ви покажем как да експериментирате с променливи, преди да внесете нова в своя.bashrc файл.

Как да създадете персонализиран баш

Вашата конфигурация на промпта за Bash се съхранява в променливата PS1. За да запазите съдържанието на променливата PS1 в нова променлива, изпълнете следната команда:

DEFAULT=$PS1

Вече можете да настроите променливата PS1 на различни стойности, за да експериментирате. Например, първият ред тук ще зададе подканата ви до основния прозорец "user $", а втория ще зададе подканата ви до основния прозорец "user: working_directory $".

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

Ако някога искате да се върнете към подкана по подразбиране, просто изпълнете следната команда.

PS1=$DEFAULT

Баш ще бъде възстановен до подразбиращия се промпт, благодарение на факта, че сте записали по-рано тези настройки по подразбиране. Обърнете внимание, че промените, които направите тук, са само временни за текущата сесия на Bash, така че винаги можете да излезете и да влезете или да затворите и да отворите отново прозореца на терминала, за да се върнете към подканата по подразбиране. Но горепосочената линия позволява лесно да се върнете към подразбиращия се Bash подкана, без да се налага да се отказвате или да затваряте прозорец.

Можете да добавите към променливата знаци или текст. За да предложите подкана по подразбиране с "Hello World", можете да използвате:
Можете да добавите към променливата знаци или текст. За да предложите подкана по подразбиране с "Hello World", можете да използвате:

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

Сега, когато имате основите, просто трябва да знаете какви са специалните герои. Вероятно няма да ви е грижа за много от тях, но тук е пълният списък, както се появява в ръководството Баш:
Сега, когато имате основите, просто трябва да знаете какви са специалните герои. Вероятно няма да ви е грижа за много от тях, но тук е пълният списък, както се появява в ръководството Баш:
  • Камбанен характер:

    a

  • Датата, във формат "Дата на седмицата на месеца" (напр. "Tue May 26"):

    d

  • Форматът се предава на strftime (3) и резултатът се вмъква в подразделението; празният формат води до специфично за локалното представяне на времето. Задължителните скоби са задължителни:

    D{format}

  • Евангелски характер:

    e

  • Името на хоста, до първото ".":

    h

  • Името на хоста:

    H

  • Броят на заданията, които понастоящем се управляват от обвивката:

    j

  • Основното име на името на терминалното устройство на корпуса:

    l

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

    s

  • Времето в 24 часа HH: MM: SS формат:

  • Времето в 12 часа HH: MM: SS формат:

    T

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

    @

  • Времето, в 24-часов формат HH: MM:

    A

  • Потребителското име на текущия потребител:

    u

  • Версията на Bash (напр. 2,00):

    v

  • Освобождаването на Bash, версия + пластир (напр. 2.00.0):

    V

  • Текущата работна директория, с $ HOME съкратена с tilda (използва променливата $ PROMPT_DIRTRIM):

    w

  • Базовото име на $ PWD, с $ HOME съкратено с tild:

    W

  • Номерът на историята на тази команда:

    !

  • Команден номер на тази команда:

    #

  • Ако ефективният uid е 0, #, в противен случай $:

    $

  • Знакът, чийто ASCII код е осмичната стойност nnn:

    nn

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

  • Започнете последователност от непечатни знаци. Това може да се използва за вграждане на последователността на контролния терминал в подкана:

    [

  • Завършете последователност от непечатни знаци:

    ]

Така че, ако искате да добавите датата и часа към Вашия Bash промпт и да поставите работната директория на команда на втора линия, можете да използвате следната конструкция:

PS1='[d ] u@h

w$ '

Квадратните скоби тук изобщо не са необходими, но ви помагат да разкъсате нещата визуално и да направите линията по-лесна за четене. Както вече споменахме, можете да добавите текст или нормални знаци към променливата, която харесвате, така че се чувствайте свободни да използвате каквото и да работи за вас.

Има още един мощен трик, за който трябва да знаете: Можете да добавите изхода на всяка команда към подканата. Когато се появи подкана, Баш ще изпълни командата и ще попълни текущата информация. За да направите това, просто включете команда, която искате да стартирате между две
Има още един мощен трик, за който трябва да знаете: Можете да добавите изхода на всяка команда към подканата. Когато се появи подкана, Баш ще изпълни командата и ще попълни текущата информация. За да направите това, просто включете команда, която искате да стартирате между две

`

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

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

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

Като друг пример, да речем, че искате да видите средната продължителност на работа на системата и натоварването, както е показано от
Като друг пример, да речем, че искате да видите средната продължителност на работа на системата и натоварването, както е показано от

uptime

команда. Можете да използвате следната конструкция, която поставя ъптайм на собствената си линия преди останалата част от подканата.

PS1='(`uptime`)

u@h:w$ '

Чувствайте се свободни да експериментирате с различни специални знаци и команди, за да съберете идеалния команден ред.
Чувствайте се свободни да експериментирате с различни специални знаци и команди, за да съберете идеалния команден ред.

Как да добавите цветове към вашия баш

След като разберете предпочитания от вас подкана, можете да добавите цветове към него. Това всъщност е много проста, но прави променливата изглежда ужасно объркана и сложна, ако не разбирате какво гледате.

Например променливата по подразбиране за променливата на цвета от предишната е:

${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

битова, предшествана от цветна информация, която я превръща в синьо. Четвъртият е

$

битов, предхождан от цветна информация, която премахва оцветяването.

След като разберете как да създавате свои собствени цветови маркери, можете да добавяте какви цветове ви харесват към секциите на Вашия баш прозорец, които харесвате.
След като разберете как да създавате свои собствени цветови маркери, можете да добавяте какви цветове ви харесват към секциите на Вашия баш прозорец, които харесвате.

Ето какво трябва да знаете: Трябва да включите цялата информация за цветовия код между

[

и

] character

с. Вътре в етикета трябва да започнете и с двете

33[

или

e[

за да покаже на Баш, че това е цветна информация. И двете

33[

и

e[

правете същото.

e[

е по-кратък, така че може да е по-удобно за използване, но ще използваме

33[

тук, тъй като тя съответства на това, което е използвано по подразбиране. В края на маркера трябва да завършите

m

за да посочите края на цветния етикет.

Като го разрушите, ето какво ще изглежда всеки цветен маркер. Единствената разлика е информацията, която добавяте вместо COLOUR, за да определите действителния цвят:

[33[ COLORm]

Баш ви позволява да промените цвета на текста на изходния текст, да добавите към текста атрибути като "удебелен" или "подчертан" и да зададете цвят на фона.

Ето стойностите за текста в преден план:

  • Черно: 30
  • Син: 34
  • Циан: 36
  • Зелено: 32
  • Purple: 35
  • Червено: 31
  • Бяла: 37
  • Жълто: 33

Например, тъй като пурпурният текст е цветен код 32, бихте го използвали

[33[ 32m]

за пурпурен текст.

Можете също да зададете атрибут за текста. Този атрибут трябва да се добави преди номера на цвета, разделен с точка и запетая (;). Текстът с тези атрибути ще изглежда различно в различните терминални емулатори.
Можете също да зададете атрибут за текста. Този атрибут трябва да се добави преди номера на цвета, разделен с точка и запетая (;). Текстът с тези атрибути ще изглежда различно в различните терминални емулатори.

Ето стойностите за текстовите атрибути:

  • Нормален текст: 0
  • Удебелен или светъл текст: 1 (зависи от емулатора на терминала.)
  • Дим Текст: 2
  • Подчертан текст: 4
  • Мигащ текст: 5 (Това не работи в повечето терминални емулатори.)
  • Обърнат текст: 7 (Това обръща цветовете на преден и фон, така че ще видите черен текст на бял фон, ако текущият текст е бял текст на черен фон.)
  • Скрит текст: 8

Всъщност не е необходимо да включвате атрибута за нормален текст. Това е по подразбиране, така или иначе.

Например, тъй като червеният текст е код 31 и смел текст е код 1, бихте го използвали

[33[ 1;31m]

за смел червен текст.

Можете също така да зададете цвят на фона, но не можете да добавите атрибут към цвета на фона.
Можете също така да зададете цвят на фона, но не можете да добавите атрибут към цвета на фона.

Ето стойностите за цветовете на фона:

  • Черно фон: 40
  • Син фон: 44
  • Цвят на циан: 46
  • Зелен фон: 42
  • Purple фон: 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.

За да направите това, трябва просто да промените съдържанието на променливата PS1 във файла.bashrc, който разгледахме по-рано.

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

nano ~/.bashrc

Превъртете надолу и намерете секцията PS1 =.Просто заменете променливата по подразбиране с персонализираната си променлива. Вероятно ще искате да напуснете

${debian_chroot:+($debian_chroot)}

само бита - те няма да се появят, освен ако не сте в среда с хроат, така или иначе.

Въведете цветната PS1 променлива под

if [ '$color_prompt' = yes ]; then

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

else

линия.

Запишете файла и затворете текстовия редактор. Например, за да запазите файла в нано, натиснете Ctrl + O, натиснете Enter и след това натиснете Ctrl + X, за да излезете.
Запишете файла и затворете текстовия редактор. Например, за да запазите файла в нано, натиснете Ctrl + O, натиснете Enter и след това натиснете Ctrl + X, за да излезете.

Следващият път, когато стартирате нова shell Bash - например, като влезете в терминала или като отворите нов терминален прозорец - ще видите персонализирания си подкана.

Препоръчано: