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:
\u:
uživatelské jméno aktuálního uživatele.\h:
název hostitele až po první tečku (.) v plně kvalifikovaném názvu domény.\W:
základní název aktuálního pracovního adresáře, přičemž $HOME je zkráceno vlnovkou (~).\$:
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!