Wéi Customize Bash Faarwen an Inhalt an Linux Terminal Prompt


Haut ass Bash d'Default Shell an de meescht (wann net all) modernen Linux Verdeelungen. Wéi och ëmmer, Dir hutt vläicht gemierkt datt d'Textfaarf am Terminal an de prompt Inhalt vun enger Distro zu engem aneren anescht kënne sinn.

Am Fall wou Dir Iech gefrot hutt wéi Dir dëst fir eng besser Accessibilitéit personaliséiere kënnt oder e Blödsinn, liest weider - an dësem Artikel wäerte mir erkläre wéi Dir dat maacht.

De PS1 Bash Ëmfeld Variabel

D'Kommandoprompt an d'Terminal Erscheinung gi vun enger Ëmfeldvariabel regéiert mam Numm PS1. Laut der Bash Man Säit representéiert PS1 de primäre Promptstring deen ugewise gëtt wann d'Shell prett ass fir e Kommando ze liesen.

Den erlaabten Inhalt op PS1 besteet aus e puer Backslash-entkommt Spezialzeechen, deenen hir Bedeitung an der PROMPTING Sektioun vun der Man Säit opgezielt ass.

Fir ze illustréieren, loosst eis den aktuellen Inhalt vun PS1 an eisem System weisen (dëst kann e bëssen anescht sinn an Ärem Fall):

$ echo $PS1

[\[email \h \W]$

Mir wäerten elo erkläre wéi een PS1 personaliséiere kann no eise Bedierfnesser.

No der PROMPTING Sektioun op der Man Säit ass dëst d'Bedeitung vun all spezielle Charakter:

  1. \u: de Benotzernumm vum aktuelle Benotzer.
  2. \h: den Hostnumm bis zum éischte Punkt (.) am Vollqualifizéierten Domain Numm.
  3. \W: den Basisnumm vum aktuellen Aarbechtsverzeichnis, mat $HOME mat enger Tilde (~) verkierzt.
  4. \$: Wann den aktuelle Benotzer root ass, weist #, $anescht.

Zum Beispill wëlle mir iwwerleeën \! derbäizefügen Wa mir d'Geschichtsnummer vum aktuelle Kommando wëllen weisen, oder \H wa mir de FQDN wëllen anstatt de kuerze Server Numm.

Am folgende Beispill importéiere mir souwuel an eist aktuellt Ëmfeld andeems Dir dëse Kommando ausféiert:

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

Wann Dir op Enter dréckt, gesitt Dir datt de Prompt Inhalt ännert wéi hei ënnendrënner. Vergläicht d'Prompt virun an no der Ausféierung vum uewe genannte Kommando:

Loosst eis elo e Schrëtt méi wäit goen an d'Faarf vum Benotzer an de Hostnumm an der Kommandoprompt änneren - souwuel den Text wéi och säin Ëmfeld.

Eigentlech kënne mir 3 Aspekter vun der Prompt personaliséieren:

Mir benotzen de Spezialzeechen am Ufank an e m um Enn fir unzeweisen datt wat duerno eng Faarfsequenz ass.

An dëser Sequenz ginn déi dräi Wäerter (Hannergrond, Format a Virdergrond) duerch Komma getrennt (wann kee Wäert uginn ass, gëtt de Standard ugeholl).

Och, well d'Wäerterberäicher ënnerschiddlech sinn, ass et egal wéi eng (Hannergrond, Format oder Virdergrond) Dir als éischt spezifizéiert.

Zum Beispill, de folgende PS1 verursaacht datt d'Prompt a giel ënnersträichen Text mat roudem Hannergrond erscheint:

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

Sou gutt wéi et ausgesäit, wäert dës Personnalisatioun nëmme fir déi aktuell Benotzersitzung daueren. Wann Dir Ären Terminal zoumaacht oder d'Sessioun verléisst, ginn d'Ännerunge verluer.

Fir dës Ännerungen permanent ze maachen, musst Dir déi folgend Zeil op ~/.bashrc oder ~/.bash_profile ofhängeg vun Ärer Verdeelung addéieren:

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

Spillt gratis mat de Faarwen fir ze fannen wat am Beschten fir Iech funktionnéiert.

An dësem Artikel hu mir erkläert wéi Dir d'Faarf an den Inhalt vun Ärer Bash Prompt personaliséiere kënnt. Wann Dir Froen oder Virschléi iwwer dëse Post hutt, fillt Iech gratis de Kommentarformular hei ënnen ze benotzen fir eis z'erreechen. Mir freeën eis vun Iech ze héieren!