11Jul
Wenn Sie während des gesamten Arbeitstags auf mehrere Server zugreifen, kann es sehr hilfreich sein, anhand eines Farbschemas zu erkennen, mit welcher Seite Sie arbeiten. Die heutige SuperUser Q & A-Post hilft einem Leser, ein farbenfrohes Nirvana in seiner Arbeitsumgebung zu erreichen.
Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.
Die Frage
SuperUser reader nitins möchte wissen, wie die Bash-Eingabeaufforderung die Farbe ändern kann, wenn sie bei einem Server angemeldet ist:
Gibt es eine Möglichkeit, die Bash-Eingabe dynamisch zu gestalten, so dass sie sich ändert, wenn ich bei einem Server angemeldet bin? Ich möchte, dass die Farbe grün ist, wenn ich mein eigenes persönliches System verwende, aber wenn ich mit Servern verbunden bin, werde ich rot. Ich habe eine große Anzahl von Servern, auf die ich zugreife, und möchte keine . bashrc auf jedem von ihnen haben.
Wie lässt sich die Bash-Eingabeaufforderung ändern, wenn sie an einem Server angemeldet ist?
Der Antwort-
SuperUser Mitwirkende Matei David hat die Antwort für uns:
Remote Bash Prompts werden von der Remote ~ /. bashrc gesetzt, so dass Sie es immer noch auf die Remote-Server kopieren müssen. Sie können jedoch einen einzigen ~ /. bashrc für alle Hosts verwenden und die Bash Prompt-Farbe basierend auf dem Hostnamen festlegen:
Hinweise
- Setzen Sie PS1 nicht, wenn dies nicht bereits festgelegt ist( dh wenn die Shell nicht vorhanden istinteraktiv).Testen, um zu sehen, ob PS1 "nicht leer" ist, ist eine sehr übliche Art, herauszufinden, ob die Shell interaktiv ist und Sie Programme, die das tun, nicht verwechseln wollen( ein genauerer Test prüft, ob $ - enthält und ).
- Wenn Sie möchten, dass dieser Code ausgeführt wird, wenn Sie sich bei einem Remote-Server anmelden, sollten Sie eine der Profildateien immer als Quelle ~ /. bashrc haben( ich nehme an, dass Sie das wissen).
- In PS1 müssen die Escape-Codes in \ [... \] enthalten sein.
- \ [033 [m setzt den Vordergrund und Hintergrund auf ihre Standardwerte zurück, so dass hier : \ w im Vordergrund / Hintergrund des Terminals erscheint.
- \ [033 [48; 5; XXXm \ 033 [38; 5; YYYm setzt den Hintergrund / Vordergrund auf XXX / YYY .
- Versuchen Sie Colortest für ein Skript, das die verfügbaren Farben ausgibt.
- Um zu überprüfen und zu sehen, wie die Bash-Eingabeaufforderung aussehen würde, verwenden Sie: echo -e "& lt; \ 033 [48; 5; 16m \ 033 [38; 5; 196mhost \ 033 [m: dir \ gt; $"
Etwas habenzur Erklärung hinzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.
Bildnachweis: Emx( Wikipedia)