GNU/Linux >> Znalost Linux >  >> Linux

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ě (pokud ne 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é čtení: 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ší dostupnost nebo jen z rozmaru, 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 Bash manuálová stránka, PS1 představuje primární řetězec výzvy, který se zobrazí, když je shell připraven přečíst příkaz.

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

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

[\[email protected]\h \W]$

Nyní vysvětlíme, jak přizpůsobit PS1 podle našich potřeb.

Přizpůsobení formátu PS1

Podle sekce PROMPTING na manuálové stránce je to 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í jméno aktuálního pracovního adresáře s $HOME zkráceno s 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 místo krátkého názvu serveru zobrazit FQDN.

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

PS1="[\[email protected]\H \W \!]$"

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

Nyní pojďme o krok dále a změňme barvu uživatele a název hostitele v příkazovém řádku – text i jeho okolní pozadí.

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

Formát textu Barva popředí (textu) Barva pozadí
0:normální text 30:Černá 40:Černá
1:tučné 31:Červená 41:Červená
4:Podtržený text 32:Zelená 42:Zelená
33:Žlutá 43:Žlutá
34:Modrá 44:Modrá
35:Fialová 45:Fialová
36:Azurová 46:Azurová
37:Bílá 47:Bílá

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

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

Doporučené čtení: Naučte se skriptování Bash Shell v Linuxu

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

Například následující PS1 způsobí, že se výzva zobrazí žlutě podtržený text červenou pozadí:

PS1="\e[41;4;33m[\[email protected]\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[\[email protected]\h \W]$ "

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

Shrnutí

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, můžete nás kontaktovat pomocí níže uvedeného formuláře pro komentáře. Těšíme se na vaši zprávu!


Linux
  1. Jak spustit příkaz Linux na pozadí a odpojit proces v terminálu

  2. Jak předvánočně upravit váš linuxový terminál a Shell

  3. Jak zkrátit Bash Prompt v Linuxu?

  1. Jak vyvažuji funkce a výkon v mém linuxovém terminálu

  2. Jak přizpůsobit Bash Prompt v Linuxu

  3. Jak přiblížit a oddálit terminálovou konzoli v linuxu

  1. Jak zálohovat a obnovit historii terminálu Linux

  2. Jak přizpůsobit výzvu terminálu Ubuntu

  3. Jak kompilovat C, C++ a Java pomocí terminálu v Linuxu