Hoe maak je de Bash Prompt verander kleuren wanneer aangemeld 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 Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep 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 ben ingelogd? 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 die ik benader en die ik niet anders wil gebruiken .bashrc op elk van hen.
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 afstandsbediening ~ / .Bashrc, dus je moet het nog steeds naar de externe servers kopiëren. U kunt echter een enkele gebruiken ~ / .Bashrc voor alle hosts en stel de Bash Prompt-kleur in op basis van de hostnaam:
Notes
- Niet instellen PS1 als het nog niet is ingesteld (bijvoorbeeld als de shell niet interactief is). Testen om te zien of PS1 is "niet-leeg" is een veel voorkomende manier om te achterhalen of de shell interactief is en je wilt programma's die dat doen niet verwarren (misschien is een nauwkeurigere test het controleren om te zien of $- bevat ik).
- Als u wilt dat deze code wordt uitgevoerd bij het inloggen op een externe server, moet u altijd een van de profielbestanden hebben ~ / .Bashrc (Ik neem aan dat je dat weet).
- In PS1, de escape-codes moeten worden ingesloten \ [... \].
- \ [033 [m reset de voorgrond en de achtergrond naar hun standaardwaarden, dus hier : \ W verschijnt op de achtergrond van de terminal.
- \ [033 [48; 5; xxxm \ 033 [38; 5; YYYm zet de achtergrond / voorgrond in XXX / YYY.
- Probeer 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 "$"
Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.
Beeldcredits: Emx (Wikipedia)