Vyhledávání na webu

Jak přizpůsobit barvy a obsah bash v příkazovém řádku terminálu Linux


Dnes je Bash výchozím shellem ve většině (ne-li ve všech) moderních distribucích Linuxu. Možná jste si však všimli, že barva textu v terminálu a obsah výzvy se mohou v jednotlivých distroch lišit.

Doporučená četba: 5 nejčastěji používaných shellů s otevřeným zdrojovým kódem pro Linux

V případě, že jste přemýšleli, jak to upravit pro lepší přístupnost nebo pouhý rozmar, pokračujte ve čtení – v tomto článku vám vysvětlíme, jak to udělat.

Proměnná prostředí PS1 Bash

Příkazový řádek a vzhled terminálu se řídí proměnnou prostředí nazvanou PS1. Podle manuálové stránky Bash představuje PS1 primární řetězec výzvy, který se zobrazí, když je shell připraven přečíst příkaz.

Povolený obsah v PS1 se skládá z několika speciálních znaků bez zpětného lomítka, jejichž význam je uveden v části VÝZVA na manuálové stránce.

Pro ilustraci si ukážeme aktuální obsah PS1 v našem systému (ve vašem případě to může být poněkud odlišné):

echo $PS1

[\u@\h \W]$

Nyní vysvětlíme, jak upravit PS1 podle našich potřeb.

Přizpůsobení formátu PS1

Podle sekce PROMPTING na manuálové stránce je toto význam každého speciálního znaku:

  1. \u: uživatelské jméno aktuálního uživatele.
  2. \h: název hostitele až po první tečku (.) v plně kvalifikovaném názvu domény.
  3. \W: základní název aktuálního pracovního adresáře, přičemž $HOME je zkráceno vlnovkou (~).
  4. \$: Pokud je aktuální uživatel root, zobrazte #, jinak $.

Můžeme například zvážit přidání \!, pokud chceme zobrazit číslo historie aktuálního příkazu, nebo \H, pokud chceme zobrazit FQDN místo krátký název serveru.

V následujícím příkladu provedeme import obou do našeho aktuálního prostředí provedením tohoto příkazu:

PS1="[\u@\H \W \!]$"

Když stisknete Enter, uvidíte, že se obsah výzvy změní, jak je uvedeno níže. Porovnejte výzvu před a po provedení výše uvedeného příkazu:

Nyní pojďme ještě o krok dále a změňme barvu uživatele a názvu hostitele v příkazovém řádku – jak textu, tak jeho okolního pozadí.

Ve skutečnosti můžeme přizpůsobit 3 aspekty výzvy:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

Použijeme speciální znak \e na začátku a m na konci k označení, že to, co následuje, je sekvence barev.

V této sekvenci jsou tři hodnoty (pozadí, formát a popředí) odděleny čárkami (pokud není zadána žádná hodnota, předpokládá se výchozí hodnota) .

Doporučená četba: Naučte se skriptovat v prostředí Bash Shell v systému Linux

Protože se rozsahy hodnot liší, nezáleží také na tom, který z nich (pozadí, formát nebo popředí) určíte jako první.

Například následující PS1 způsobí, že se výzva zobrazí žlutým podtrženým textem s červeným pozadím:

PS1="\e[41;4;33m[\u@\h \W]$ "

I když to vypadá dobře, toto přizpůsobení bude trvat pouze pro aktuální relaci uživatele. Pokud zavřete terminál nebo ukončíte relaci, změny budou ztraceny.

Aby byly tyto změny trvalé, budete muset přidat následující řádek do ~/.bashrc nebo ~/.bash_profile v závislosti na vaší distribuci:

PS1="\e[41;4;33m[\u@\h \W]$ "

Nebojte se pohrát si s barvami, abyste našli to, co vám nejlépe vyhovuje.

souhrn

V tomto článku jsme vysvětlili, jak přizpůsobit barvu a obsah vaší výzvy Bash. Máte-li dotazy nebo návrhy týkající se tohoto příspěvku, neváhejte nás kontaktovat pomocí níže uvedeného formuláře pro komentáře. Těšíme se na setkání s Vámi!