Die meisten Ubuntu-Systeme verwenden Bash oder Dash als Standard-Terminalanwendung. Sie geben Ihre Befehle an einer standardmäßigen Eingabeaufforderung ein, die normalerweise Ihren Benutzernamen, Hostnamen und das aktuelle Verzeichnis in einem vordefinierten Farbschema anzeigt. Bash bietet viele Anpassungsoptionen für die Eingabeaufforderung, mit denen Sie der Eingabeaufforderung nicht nur verschiedene Funktionen hinzufügen, sondern sie auch durch verschiedene Farben unterscheiden können.
In diesem Artikel verwenden wir verschiedene Beispiele, um die Eingabeaufforderung unserer Terminalanwendung anzupassen und neu einzufärben, damit Sie bei Bedarf dasselbe tun können. Wir werden die in diesem Artikel beschriebenen Befehle und Verfahren auf einem Ubuntu 22.04 LTS-System ausführen.
Aktuelle Konfiguration der Bash-Eingabeaufforderung anzeigen
Wenn Sie Ihr Terminal über den Dash oder die Tastenkombination Strg+Alt+T öffnen, sehen Sie die folgende Eingabeaufforderung:
[email protected]:directory$
Dieses Standardformat listet den Benutzernamen, den Hostnamen und dann das aktuelle Verzeichnis des Benutzers auf. Die Bash holt sich diese Konfiguration aus der bashrc-Datei, die für jeden Benutzer individuell in seinem Home-Verzeichnis eingerichtet wird. So können Sie diese Datei öffnen:
$ nano ~/.bashrc
Speicherort:/home/username/.bashrc
Sie können diese Datei auch mit jedem anderen Texteditor öffnen.
So sieht diese Konfigurationsdatei aus. Wir zeigen Ihnen hier den relevanten Teil der Datei.
Die PS1-Variable, die Sie im obigen Bild sehen, verfügt über die gesamte erforderliche Konfiguration für die Bash-Eingabeaufforderung. Lassen Sie uns zunächst erklären, was die Zeichen in dieser Variablen bedeuten. Sie können diese Variable deutlich in der PS1-Variable sehen, die hinter der else-Anweisung aufgeführt ist.
- \u-Dies gibt den Benutzernamen des aktuellen Benutzers an
- \h:Dies gibt den Hostnamen des aktuellen Benutzers an, der aus dem vollständig qualifizierten Domänennamen extrahiert wurde.
- \w:Zeigt das aktuelle Arbeitsverzeichnis an. Ihr Home-Verzeichnis ist mit einem Tilde-Symbol ~ gekennzeichnet.
- \$:Dies zeigt an, ob Sie ein normaler Benutzer ($) oder ein Root-Benutzer (#) sind.
Sie können die Konfiguration der PS1-Variablen auch anzeigen, indem Sie ihren Wert wie folgt ausgeben:
Shell-Eingabeaufforderung anpassen
Nachdem wir gesehen haben, wo die Eingabeaufforderungsinformationen gespeichert sind und was die PS1-Variable beschreibt, sehen wir uns an, wie sie bearbeitet werden kann, um unsere Bash-Eingabeaufforderung anzupassen.
Bevor Sie die PS1-Variable bearbeiten, ist es wichtig, ihren Standardinhalt in einer neuen Variablen zu speichern. Dies hilft uns, die Eingabeaufforderung auf ihre ursprüngliche Konfiguration zurückzusetzen, wenn etwas schief geht. Geben Sie den folgenden Befehl in Ihr Terminal ein:
$ DEFAULT=$PS1
Jetzt enthält die Variable „DEFAULT“ alle Informationen, die wir benötigen, um unsere standardmäßigen Eingabeaufforderungseinstellungen wiederherzustellen.
Lassen Sie uns nun etwas mit unserer PS1-Variablen experimentieren. Geben Sie den folgenden Befehl ein:
$ PS1="\u\$ "
Dieser neue Wert von PS1 hat folgende Auswirkung auf Ihre Eingabeaufforderung:
Jetzt können Sie nur Ihren Benutzernamen und Root-Benutzerinformationen ohne Farben sehen, da noch keine Farbinformationen festgelegt wurden.
Lassen Sie uns den folgenden Befehl eingeben, damit unser Prompt auch unser Arbeitsverzeichnis auflistet
$ PS1="\u:\w\$ "
Dieser neue Wert von PS1 hat folgende Auswirkung auf Ihre Eingabeaufforderung:
Da mein Arbeitsverzeichnis home war, konnte ich nur das Symbol ~ sehen. In einem anderen Verzeichnis, sagen wir bin, zeigt meine Eingabeaufforderung die folgenden Informationen:
Stellen Sie die Eingabeaufforderung auf die Standardeinstellung zurück
Da wir die ursprüngliche Konfiguration der PS1-Variablen in der DEFAULT-Variablen gespeichert hatten, können wir den Wert von PS1 auf den Standardwert zurücksetzen, indem wir ihn mit dem Wert unserer DEFAULT-Variablen füttern.
Was können Sie noch anpassen?
Wenn Sie möchten, dass Ihre Eingabeaufforderung einen bestimmten benutzerdefinierten Text enthält , können Sie die folgende Syntax verwenden:
$ PS1="[custom text] \[email protected]\h:\w\$ "
Beispiel:
Ich habe meine Eingabeaufforderung so eingerichtet, dass sie eine benutzerdefinierte Nachricht wie folgt enthält:
Sie können die folgenden Grundzeichen in Ihren Prompt einbauen:
Zeichen | Zweck |
\d | Das Datum im Tag-Monat-Format. |
\e | Das Glockenzeichen. |
\a | Das Escape-Zeichen. |
\h | Der Hostname des aktuellen Benutzers bis „.“ |
\H | Der Hostname des aktuellen Benutzers. |
\l | Basisname des Endgerätes. |
\j | Die Anzahl der Jobs, die von der Shell ausgeführt werden. |
\r | Wagenrücklauf. |
\n | Eine neue Zeile. |
\u | Benutzername des aktuellen Benutzers. |
\v | Bash-Version. |
\! | Verlaufsnummer des ausgeführten Befehls drucken. |
Sie können die aktuelle Systemzeit einbeziehen in Ihrer Eingabeaufforderung durch den folgenden Befehl:
$ PS1=”\A\u: \w\$ “
Dieser neue Wert von PS1 hat folgende Auswirkung auf Ihre Eingabeaufforderung:
Sie können Ihre Eingabeaufforderung auch so anpassen, dass sie eine Ausgabe eines Befehls enthält. Dadurch haben Sie unbegrenzte Möglichkeiten, sie in Ihre Eingabeaufforderung zu integrieren.
Syntax:
$ PS1="\[email protected]\h on `[command]` \w\$ "
Beispiel:
In diesem Beispiel werde ich die Eingabeaufforderung so einstellen, dass sie den Namen der primären Gruppe enthält, zu der der aktuelle Benutzer gehört.
$ PS1="\[email protected]\h on `id -gn` \w\$ "
Eingabeaufforderung einfärben
Nachdem Sie die Eingabeaufforderung angepasst haben, werden Sie feststellen, dass die Dinge möglicherweise etwas durcheinander aussehen. Der einfache Grund ist, dass es nicht so einfach ist, ein Merkmal vom anderen zu unterscheiden, wenn sie alle in der gleichen Farbe aufgeführt sind. Lassen Sie uns nun lernen, wie Sie die Eingabeaufforderung einfärben, um sie für das Auge angenehmer zu gestalten.
Um einem oder mehreren Merkmalen Farben hinzuzufügen, enthält die PS1-Variable Farbtags. Der hervorgehobene Text im folgenden Bild ist ein Farb-Tag.
Dies ist das Format eines Farbtags:
\[\033[COLOR]m\]
Zum Beispiel sind der Standard-Benutzername und der Standard-Hostname, die wir in unserer Standard-Terminal-Eingabeaufforderung sehen, aufgrund des folgenden Farb-Tags grün:
\[\033[01;32m\]\[email protected]\h
Sie können diesen Farbwert für eine Bash-Eingabeaufforderungsfunktion ändern, um ihr eine neue Farbe zu geben, oder einer Funktion, die keine hat, ein neues Farbtag hinzufügen.
Hier sind einige gängige Farben und ihre Werte:
Farbe | Wert |
Grün | 32 |
Rot | 31 |
Schwarz | 30 |
Blau | 34 |
Cyan | 36 |
Lila | 35 |
Gelb | 33 |
Weiß | 37 |
Beispiel:
Der folgende Befehl färbt die Eingabeaufforderung rot, da wir 31 (rote Farbe) im Farb-Tag angeben:
$ PS1="\[\033[31m\]\[email protected]\h:\w$ "
Textstile in Eingabeaufforderung verwenden
Sie können Ihrem Eingabeaufforderungstext Stile hinzufügen, indem Sie einem Farb-Tag einen Attributwert zuweisen. Hier ist das Format eines Farb-Tags mit einem Attribut:
\[\033[ATTRIBUTE; COLORm\]
Sie können die folgenden Attributwerte für Ihren Eingabeaufforderungstext verwenden:
Attributwert | Zweck |
0 | Normaler Text (Dies ist der Standardwert, auch wenn kein Attribut gesetzt ist) |
1 | Im Ubuntu-Terminal gibt dieser Wert fetten Text an |
2 | Dim-Text |
4 | Textunterstreichung |
5 | Für blinkenden Text |
7 | Kehrt Text- und Hintergrundfarben um |
8 | Für versteckten Text |
Beispiel:
Sie können den folgenden Befehl verwenden, um Ihren Bash-Prompt zu unterstreichen:
$ PS1="\[\033[4;31m\]\[email protected]\h:\w$ "
Der Wert 4 gibt an, dass wir den Text „unterstreichen“ möchten.
Machen Sie dauerhafte Änderungen an der Eingabeaufforderung
Die Befehle, die Sie bisher ausgeführt haben, ändern nur die Eingabeaufforderung für die aktuelle Bash-Sitzung. Nachdem Sie mit der Textanpassung und Farbgebung Ihrer Eingabeaufforderung experimentiert haben und ein Finale erreicht haben, das Sie dauerhaft für alle Ihre Bash-Sitzungen festlegen möchten, müssen Sie Ihre bashrc-Datei bearbeiten.
Öffnen Sie die .bashrc-Datei und kopieren Sie den PS1-Wert, den Sie abgeschlossen haben, in die PS1-Zeile unter dem if; dann Linie. In der folgenden Abbildung habe ich gerade die Farbe meiner Bash-Eingabeaufforderung in Rot geändert:
Speichern Sie die Datei, indem Sie Strg+X drücken und dann durch Drücken von Y . Die Änderungen an Ihrer Bash-Eingabeaufforderung sind jetzt dauerhaft. Beenden Sie das Terminal und öffnen Sie es erneut, um zu sehen, dass Ihre Bash-Eingabeaufforderung immer noch die gleiche ist, die Sie eingestellt haben.
Nachdem Sie zusammen mit diesem Tutorial geübt haben, können Sie Ihre Bash-Eingabeaufforderung anpassen. Sie können dann Farben einrichten, um die verschiedenen Merkmale zu unterscheiden, die Sie in die Eingabeaufforderung aufgenommen haben. Auf diese Weise können Sie diese nützlichen Informationen jedes Mal anzeigen und verwenden, wenn Sie die Bash-Eingabeaufforderung verwenden.