Hoe Bash-kleuren en inhoud aan te passen in Linux Terminal Prompt
Tegenwoordig is Bash de standaardshell in de meeste (zo niet alle) moderne Linux-distributies. Het is je echter misschien opgevallen dat de tekstkleur in de terminal en de promptinhoud per distributie kunnen verschillen.
Aanbevolen leesmateriaal: 5 meest gebruikte open source-shells voor Linux
Als je je hebt afgevraagd hoe je dit kunt aanpassen voor een betere toegankelijkheid of gewoon voor een gril, lees dan verder – in dit artikel leggen we uit hoe je dat kunt doen.
De PS1 Bash-omgevingsvariabele
De opdrachtprompt en het uiterlijk van de terminal worden bepaald door een omgevingsvariabele genaamd PS1
. Volgens de manpagina van Bash vertegenwoordigt PS1 de primaire promptstring die wordt weergegeven wanneer de shell klaar is om een commando te lezen.
De toegestane inhoud in PS1 bestaat uit verschillende speciale tekens met backslash-escape waarvan de betekenis wordt vermeld in het PROMPTING-gedeelte van de manpagina.
Laten we ter illustratie de huidige inhoud van PS1
in ons systeem weergeven (in jouw geval kan dit enigszins afwijken):
echo $PS1
[\u@\h \W]$
We zullen nu uitleggen hoe je PS1 kunt aanpassen aan onze behoeften.
Het PS1-formaat aanpassen
Volgens de PROMPTING-sectie op de manpagina is dit de betekenis van elk speciaal teken:
\u:
de gebruikersnaam van de huidige gebruiker.\h:
de hostnaam tot aan de eerste punt (.) in de Fully-Qualified Domain Name.\W:
de basisnaam van de huidige werkmap, met $HOME afgekort met een tilde (~).\$:
Als de huidige gebruiker root is, geef dan # en anders $ weer.
We kunnen bijvoorbeeld overwegen om \!
toe te voegen als we het geschiedenisnummer van het huidige commando willen weergeven, of \H
als we de FQDN willen weergeven in plaats van de korte servernaam.
In het volgende voorbeeld zullen we beide in onze huidige omgeving importeren door deze opdracht uit te voeren:
PS1="[\u@\H \W \!]$"
Wanneer u op Enter drukt, ziet u dat de promptinhoud verandert, zoals hieronder weergegeven. Vergelijk de prompt voor en na het uitvoeren van de bovenstaande opdracht:
Laten we nu nog een stap verder gaan en de kleur van de gebruiker en hostnaam in de opdrachtprompt wijzigen – zowel de tekst als de omringende achtergrond.
Eigenlijk kunnen we 3 aspecten van de prompt aanpassen:
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 |
We gebruiken het speciale teken \e
aan het begin en een m
aan het einde om aan te geven dat wat volgt een kleurenreeks is.
In deze reeks worden de drie waarden (achtergrond, formaat en voorgrond) gescheiden door komma's (als er geen waarde wordt opgegeven, wordt uitgegaan van de standaardwaarde) .
Voorgesteld lezen: Leer Bash Shell-scripting in Linux
Omdat de waardebereiken verschillend zijn, maakt het ook niet uit welke (achtergrond, formaat of voorgrond) u eerst opgeeft.
De volgende PS1
zorgt er bijvoorbeeld voor dat de prompt verschijnt in geel onderstreepte tekst met een rode achtergrond:
PS1="\e[41;4;33m[\u@\h \W]$ "
Hoe goed het er ook uitziet, deze aanpassing blijft alleen geldig voor de huidige gebruikerssessie. Als u uw terminal sluit of de sessie afsluit, gaan de wijzigingen verloren.
Om deze wijzigingen permanent te maken, moet u de volgende regel toevoegen aan ~/.bashrc
of ~/.bash_profile
, afhankelijk van uw distributie:
PS1="\e[41;4;33m[\u@\h \W]$ "
Voel je vrij om met de kleuren te spelen om te ontdekken wat het beste bij je past.
Samenvatting
In dit artikel hebben we uitgelegd hoe u de kleur en inhoud van uw Bash-prompt kunt aanpassen. Als je vragen of suggesties hebt over dit bericht, kun je het onderstaande reactieformulier gebruiken om ons te bereiken. Wij horen graag van u!