Startseite » wie man » Wie können Sie festlegen, dass die Bash-Eingabeaufforderung die Farben ändert, wenn Sie an einem Server angemeldet sind?

    Wie können Sie festlegen, dass die Bash-Eingabeaufforderung die Farben ändert, wenn Sie an einem Server angemeldet sind?

    Wenn Sie während des Arbeitstages auf mehrere Server zugreifen, kann es sehr nützlich sein, anhand eines Farbschemas auf einen Blick feststellen zu können, mit welchem ​​Server Sie arbeiten. Der heutige SuperUser-Q & A-Beitrag hilft einem Leser, in seiner Arbeitsumgebung ein buntes Nirvana zu erreichen.

    Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

    Die Frage

    SuperUser-Leser Nitins möchte wissen, wie er die Farben der Bash-Eingabeaufforderung ändert, wenn Sie an einem Server angemeldet sind:

    Gibt es eine Möglichkeit, die Bash-Eingabeaufforderung so zu gestalten, dass sie die Farbe ändert, wenn ich an einem Server angemeldet bin? Ich möchte, dass die Farbe grün ist, wenn ich mein eigenes persönliches System verwende, aber immer rot wird, wenn ich mit Servern verbunden bin. Ich habe eine große Anzahl von Servern, auf die ich zugreife, und möchte keinen anderen Server verwenden müssen .bashrc auf jedem einzelnen von ihnen.

    Wie lässt sich die Bash-Eingabeaufforderung ändern, wenn Sie an einem Server angemeldet sind??

    Die Antwort

    SuperUser-Mitwirkender Matei David hat die Antwort für uns:

    Remote Bash-Eingabeaufforderungen werden von der Fernbedienung festgelegt ~ / .bashrc, Sie müssen es also weiterhin auf die Remote-Server kopieren. Sie können jedoch eine einzelne verwenden ~ / .bashrc Legen Sie für alle Hosts die Farbe der Bash-Eingabeaufforderung basierend auf dem Hostnamen fest:

    Anmerkungen

    • Nicht festlegen PS1 wenn es noch nicht gesetzt ist (d. h. wenn die Shell nicht interaktiv ist). Testen, ob PS1 ist "nicht leer". Dies ist eine sehr gebräuchliche Methode, um herauszufinden, ob die Shell interaktiv ist und Programme, die dies tun, nicht verwirrt werden sollen (ein genauerer Test prüft, ob $- enthält ich).
    • Wenn Sie möchten, dass dieser Code ausgeführt wird, wenn Sie sich bei einem Remote-Server anmelden, sollten Sie immer eine der Profildateien als Quelle verwenden ~ / .bashrc (Ich gehe davon aus, dass Sie das wissen).
    • Im PS1, Die Escape-Codes müssen eingeschlossen sein \ [… \].
    • \ [033 [m setzt den Vordergrund und Hintergrund auf ihre Standardwerte zurück, also hier : \ w erscheint im Terminal Vordergrund / Hintergrund.
    • \ [033 [48; 5; XXXm \ 033 [38; 5; YYYm setzt den Hintergrund / Vordergrund auf XXX / JJJ.
    • Versuchen Sie für ein Skript, das die verfügbaren Farben abbildet, colortest.
    • Um zu überprüfen, wie die Bash-Eingabeaufforderung aussehen würde, verwenden Sie: Echo -e "$"

    Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.

    Bildnachweis: Emx (Wikipedia)