Weboldal keresés

A Bash színek és tartalom testreszabása a Linux terminálpromptban


Ma a Bash az alapértelmezett shell a legtöbb (ha nem az összes) modern Linux disztribúcióban. Lehetséges azonban, hogy észrevette, hogy a terminál szövegszíne és a prompt tartalma disztribúciónként eltérő lehet.

Javasolt olvasmány: 5 leggyakrabban használt nyílt forráskódú shell Linuxhoz

Ha azon töprengett, hogyan szabhatja testre ezt a jobb hozzáférhetőség vagy puszta szeszély érdekében, olvassa tovább – ebben a cikkben elmagyarázzuk, hogyan teheti ezt meg.

A PS1 Bash környezeti változó

A parancssort és a terminál megjelenését a PS1 nevű környezeti változó szabályozza. A Bash kézikönyv szerint a PS1 az elsődleges prompt karakterlánc, amely akkor jelenik meg, amikor a shell készen áll egy parancs olvasására.

A PS1ben engedélyezett tartalom több fordított perjellel megtisztított speciális karakterből áll, amelyek jelentése a kézikönyvoldal PROMPTING szakaszában található.

Szemléltetésképpen jelenítsük meg a PS1 aktuális tartalmát a rendszerünkben (ez az Ön esetében némileg eltérhet):

echo $PS1

[\u@\h \W]$

Most elmagyarázzuk, hogyan szabhatjuk testre a PS1-et igényeinknek megfelelően.

A PS1 formátum testreszabása

A kézikönyvoldal PROMPTING szakasza szerint az egyes speciális karakterek jelentése:

  1. \u: az aktuális felhasználó felhasználóneve.
  2. \h: a gazdagépnév egészen az első (.) pontig a Teljesen minősített tartománynévben.
  3. \W: az aktuális munkakönyvtár alapneve, a $HOME tilde (~) rövidítéssel.
  4. \$: Ha az aktuális felhasználó root, akkor jelenítse meg a következőt: #, ellenkező esetben $.

Például fontolóra vehetjük a \! hozzáadását, ha az aktuális parancs előzményszámát akarjuk megjeleníteni, vagy a \H elemet, ha az FQDN-t szeretnénk megjeleníteni ahelyett. a szerver rövid neve.

A következő példában mindkettőt importáljuk jelenlegi környezetünkbe a következő parancs végrehajtásával:

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

Ha megnyomja az Enter billentyűt, látni fogja, hogy az üzenet tartalma az alábbiak szerint módosul. Hasonlítsa össze a parancssort a fenti parancs végrehajtása előtt és után:

Most lépjünk egy lépéssel tovább, és változtassuk meg a parancssorban a felhasználó és a gazdanév színét – mind a szöveget, mind a környező hátteret.

Valójában a prompt 3 aspektusát testreszabhatjuk:

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

Az elején a \e speciális karaktert, a végén pedig az m karaktert fogjuk használni annak jelzésére, hogy a következő színsorozat.

Ebben a sorrendben a három érték (background, format és foreground) vesszővel van elválasztva (ha nem adunk meg értéket, az alapértelmezettet feltételezi) .

Javasolt olvasmány: Ismerje meg a Bash Shell-szkriptet Linuxban

Ezenkívül, mivel az értéktartományok eltérőek, nem számít, melyiket (háttér, formátum vagy előtér) adja meg először.

Például a következő PS1 esetén a prompt sárga aláhúzott szöveggel jelenik meg piros háttérrel:

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

Bármennyire is jól néz ki, ez a testreszabás csak az aktuális felhasználói munkamenetre érvényes. Ha bezárja a terminált vagy kilép a munkamenetből, a módosítások elvesznek.

Ahhoz, hogy ezek a változtatások véglegesek legyenek, hozzá kell adnia a következő sort a ~/.bashrc vagy ~/.bash_profile fájlhoz, a disztribúciótól függően:

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

Nyugodtan játssz a színekkel, hogy megtaláld a számodra legmegfelelőbbet.

Összegzés

Ebben a cikkben elmagyaráztuk, hogyan szabhatja testre a Bash prompt színét és tartalmát. Ha kérdése vagy javaslata van ezzel a bejegyzéssel kapcsolatban, használja az alábbi megjegyzés űrlapot, hogy kapcsolatba lépjen velünk. Várom válaszukat!