11Jul

Hur gör du Bash Prompt Ändra färger när loggade till en server?

Om du har tillgång till flera servrar under hela arbetsdagen, kan du vara mycket användbar när du kan berätta vilken du jobbar med i ett ögonblick baserat på ett färgschema. Dagens SuperUser Q & A-tjänst hjälper en läsare att uppnå en färgstark nirvana i sin arbetsmiljö.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsaren nitins vill veta hur man gör Bash Prompt byta färger när de är inloggade på en server:

Finns det ett sätt att göra dynamiken Bash Prompt så att den ändrar färg när jag är inloggad på en server? Jag vill att färgen ska vara grön när jag använder mitt eget personliga system, men ändras till rött när jag är ansluten till servrar. Jag har ett stort antal servrar som jag åtkomst till och inte vill behöva lägga till en annan . bashrc på var och en av dem.

Hur gör du Bash Prompt byta färger när du är inloggad på en server?

Svaret

SuperUser-bidragsgivaren Matei David har svaret för oss:

Remote Bash Prompts ställs in av fjärrkontrollen ~ /. bashrc , så du måste fortfarande kopiera den till fjärrservrarna. Du kan dock använda en enda ~ /. bashrc för alla värdar och ställa in Bash Prompt-färgen baserat på värdnamnet:

Anteckningar

  • Ställ inte PS1 om den inte redan är inställd( dvs om skalet inte ärinteraktiv).Test för att se om PS1 är "icke-tom" är ett mycket vanligt sätt att ta reda på om skalet är interaktivt och du inte vill förvirra program som gör det( det går förmodligen att ett mer exakt test kontrollerar om $ - innehåller i ).
  • Om du vill att den här koden ska köras när du loggar in på en fjärrserver, ska du ha en av profilfilerna alltid källan ~ /. bashrc ( jag antar att du vet det).
  • I PS1 måste escape-koderna vara bifogade i \ [... \] .
  • \ [033 [m återställer förgrunden och bakgrunden till standardinställningarna, så här visas : \ w i terminalen i förgrunden / bakgrunden.
  • \ [033 [48; 5; XXXm \ 033 [38; 5; YYYm sätter bakgrunden / förgrunden till XXX / YYY .
  • För ett skript som dumpar de tillgängliga färgerna, försök kolla.
  • För att kontrollera och se hur basprompten skulle se ut, använd: echo -e "& lt; \ 033 [48; 5; 16m \ 033 [38; 5; 196mhost \ 033 [m: dir & gt; $"

Har någotatt lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.

Bildkrediter: Emx( Wikipedia)