11Jul

Hoe maak je de Bash Prompt kleuren wijzigen bij aanmelding bij een server?

Als u de hele werkdag toegang hebt tot meerdere servers, kan het erg handig zijn om te weten met welke u in een oogopslag werkt op basis van een kleurenschema. De SuperUser Q & A post van vandaag helpt een lezer om een ​​kleurrijk nirvana te bereiken in zijn werkomgeving.

De vraag van vandaag &Antwoord sessie komt naar ons met dank aan SuperUser-een onderverdeling van Stack Exchange, een community-gestuurde groepering van Q & A-websites.

De vraag

SuperUser reader nitins wil weten hoe de Bash Prompt van kleur te veranderen wanneer hij op een server is ingelogd:

Is er een manier om de Bash Prompt dynamisch te maken zodat deze van kleur verandert wanneer ik op een server ingelogd ben? Ik wil dat de kleur groen is wanneer ik mijn eigen persoonlijke systeem gebruik, maar verander in rood wanneer ik verbinding heb met servers. Ik heb een groot aantal servers waartoe ik toegang heb en wil geen andere . bashrc op elk van deze servers.

Hoe verander je de Bash Prompt van kleuren wanneer je bent ingelogd op een server?

Het antwoord

SuperUser-bijdrager Matei David heeft het antwoord voor ons:

Remote Bash Prompts worden ingesteld door de externe ~ /. bashrc , dus je moet het nog steeds naar de externe servers kopiëren. U kunt echter een enkele ~ /. bashrc voor alle hosts gebruiken en de Bash Prompt-kleur instellen op basis van de hostnaam:

Opmerkingen

  • Stel PS1 niet in als dit nog niet is ingesteld( dwz als de shell niet is ingesteld)interactieve).Testen om te zien of PS1 "niet-leeg" is, is een veel voorkomende manier om te achterhalen of de shell interactief is en dat je programma's die dat doen niet wilt verwarren( misschien is een nauwkeurigere test het controleren of $ - bevat i ).
  • Als u wilt dat deze code wordt uitgevoerd bij het inloggen op een externe server, moet u een van de profielbestanden altijd als ~ /. bashrc gebruiken( ik neem aan dat u dat weet).
  • In PS1 moeten de escape-codes worden ingesloten in \ [... \] .
  • \ [033 [m reset de voorgrond en de achtergrond naar hun standaardwaarden, dus hier wordt : \ w weergegeven op de achtergrond van de terminal.
  • \ [033 [48; 5; XXXm \ 033 [38; 5; YYYm stelt de achtergrond / voorgrond in op XXX / YYY .
  • Probeer het meest colortest voor een script dat de beschikbare kleuren dumpt.
  • Om te controleren en te zien hoe de Bash Prompt eruit zou zien, gebruik: echo -e "& lt; \ 033 [48; 5; 16m \ 033 [38; 5; 196mhost \ 033 [m: dir & gt; $"

Iets hebbenom toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.

beeldcredits: Emx( Wikipedia)