So passen Sie die Eingabeaufforderung in Bash an

In der Bash-Shell ist die Eingabeaufforderung der Text, der angezeigt wird, wenn Sie zur Eingabe aufgefordert werden. Auf den meisten Systemen sieht es so aus:

Eingabeaufforderung in bash.

In der Eingabeaufforderung können Sie Informationen abrufen, bevor Sie Befehle ausführen. Die obige Eingabeaufforderung zeigt Ihnen beispielsweise Folgendes.

  1. Wer Sie sind (ein Benutzer namens Benutzer).
  2. Wo Sie sich befinden (ein Computer namens myhost).
  3. Was Ihr Arbeitsverzeichnis ist (~, was eine Abkürzung für Ihr Home-Verzeichnis ist).

Am wichtigsten ist vielleicht das Dollarzeichen (“$”), ein Sonderzeichen, das anzeigt, dass Sie als Nicht-Root-Benutzer angemeldet sind. Wenn Sie derzeit als root eingeloggt wären, wäre dieses Zeichen stattdessen ein Nummernzeichen (“#”).

Die Zeichenfolge, die die Eingabeaufforderung darstellt, wird in der speziellen Umgebungsvariablen mit dem Namen PS1 gespeichert. Für die obige Eingabeaufforderung sieht ihr Wert wie folgt aus.

"[email protected]h:W$ "

Diese Zeichenfolge enthält vier Sonderzeichen: u, h, W, $. Dies sind maskierte Zeichenfolgen, die bei jeder Anzeige der Eingabeaufforderung durch tatsächliche Werte ersetzt werden.

Spezielle Charaktere

Die in der folgenden Tabelle aufgeführten Sonderzeichenfolgen können im Bash-Shell-Prompt verwendet werden.

Zeichenfolge Wird übersetzt in
ein Das „Alarm“-Zeichen. Löst einen Piepton oder einen Bildschirmblitz aus
D Das aktuelle Datum, angezeigt im Format Wochentag Monatsdatum (z. B. Mittwoch, 13. Mai).

D{Format}

Das aktuelle Datum und die Uhrzeit, die gemäß dem von strftime interpretierten Format angezeigt werden. Wenn das Format weggelassen wird, zeigt D{} die aktuelle 12-Stunden-AM/PM-Zeit an (z. B. 07:23:01 PM).
e Ein Escape-Zeichen (ASCII 27)

e[numberm

Denotes the beginning of a sequence to display in color. Number is a number, or pair of numbers, which specifies what color and style to use. See below for a list of colors and their number pairs.
e[m Denotes the end of a sequence to display in color.
h The hostname of the machine, up to the first “.” For instance, if the system’s hostname is myhost.mydomain, h displays myhost
H The full hostname of the machine.
j Number of jobs being managed by the shell.
l The shell’s terminal device identifier, usually a single-digit number.
n A newline
r Carriage return
s The name of the shell (the basename of the process that initiated the current bash session).
t Current time displayed in 24-hour HH:MM:SS format (e.g., 19:23:01).
T Current time displayed in 12-hour HH:MM:SS format (eg. 07:23:01).
@ Current time displayed in 12-hour HH:MM:SS A.M./P.M. format (e.g., 07:23:01 P.M.).
A Current time in 24-hour HH:MM format, (e.g., 19:23).
u The username of the current user.
v Bash version number (e.g., 4.3).
V Bash version and patch number (e.g., 4.3.30).
w The current directory. The user’s home directory is abbreviated as a tilde (“~”). For example, /usr/bin, ~, or ~/documents
W The basename of the current working directory (e.g., bin, ~, or documents).
! The history number of the current command.
# The command number of the current command (command numbers are like history numbers, but they reset to zero when you start a new bash session).
nnn The ASCII character whose octal value is nnn.
\ A backslash
[ Marks the beginning of any sequence of non-printing characters, such as terminal control codes.
] Markiert das Ende einer nicht druckenden Sequenz.
$ Gibt # aus, wenn die UID null ist (Superuser), oder $, wenn sie größer als null ist (jeder andere).

Ändern der Eingabeaufforderung für die aktuelle Sitzung

Sie können die PS1-Umgebungsvariable wie jede andere Variable in Bash mit der Anweisungsform NAME=WERT festlegen. Um also die Standard-Eingabeaufforderung festzulegen, könnten Sie Folgendes in die Befehlszeile eingeben.

PS1="[email protected]h:W$ "

…Und Ihre Eingabeaufforderung wird sich sofort ändern. Beachten Sie das letzte Leerzeichen nach dem Dollarzeichen in der Zeichenfolge. Es ist ein zusätzliches Leerzeichen nach Ihrer Eingabeaufforderung, wodurch es einfacher ist, die von Ihnen eingegebenen Befehle von der Eingabeaufforderung zu unterscheiden. Der zusätzliche Platz ist nicht notwendig, aber wir empfehlen ihn.

Beachten Sie, dass im Befehl keine Leerzeichen zwischen PS1, = und der Zeichenfolge stehen.

Ändern der Eingabeaufforderung für alle zukünftigen Sitzungen

Wenn Sie die Eingabeaufforderung für jede neue Sitzung ändern möchten, müssen Sie Ihre Bash-Startdateien bearbeiten. Bei jedem Start einer Terminalsitzung werden folgende Dateien, sofern vorhanden, eingelesen und als Skripte ausgeführt:

/etc/profile
~/.bash_profile
~/.bash_login
~/.profile

Die erste Datei, /etc/profile, ist ein Startskript für jeden Benutzer auf dem System, der eine Bash-Sitzung startet. Um die Eingabeaufforderung für jeden Benutzer zu ändern, müssen Sie diese Datei bearbeiten, und Sie benötigen dazu Superuser-Rechte.

sudo vi /etc/profile

Der obige Befehl fordert Sie beispielsweise zur Eingabe Ihres Kennworts auf. Wenn Sie auf der sudoers-Liste stehen, öffnen Sie die universelle Bash-Startdatei als Superuser mit dem vi-Editor.

Die anderen drei Dateien werden in der oben aufgeführten Reihenfolge gesucht und nach /etc/profile ausgeführt. Diese drei Dateien befinden sich in Ihrem Home-Verzeichnis, sodass sie nur für Sie ausgeführt werden. Sie können PS1 an mehr als einer Stelle definieren, also lesen Sie die Dateien sorgfältig, um zu sehen, wie sie auf Ihrem System konfiguriert sind. Beispielsweise verwenden viele Systeme einen anderen PS1-Wert, je nachdem, ob Ihr Terminal Farbe unterstützt oder nicht.

Jede der drei Dateien kann existieren und für Ihre Bash-Sitzung verwendet werden. Wenn es jedoch mehr als einen gibt, werden sie in der aufgeführten Reihenfolge ausgeführt.

Wenn Sie keine Zeilen in Ihren Startdateien löschen oder ändern möchten, können Sie eine neue PS1=-Anweisung an das Ende der hinzufügen, um zuvor definierte Eingabeaufforderungen zu überschreiben.

Hinzufügen von Farbe zu Ihrer Eingabeaufforderung

Wenn Sie ein Terminal verwenden, das Farbe unterstützt (und das tun Sie wahrscheinlich), können Sie Ihrer Eingabeaufforderung Farbe hinzufügen. Farben werden mit speziellen Zeichenfolgen hinzugefügt, die diesem Format folgen:

e[Zahlm

Beginnt einen farbigen Abschnitt. Der Zahlenwert ist eine spezielle Zahl oder ein Zahlenpaar, das die Farbe angibt.
e[m[m bezeichnet das Ende des farbigen Abschnitts; wird auf die Standardfarbe zurückgesetzt

Zum Beispiel die Eingabeaufforderungszeichenfolge:

PS1="e[1;35mThis is bright purple. e[0;35m...and this is dark purple.e[m "

Wird eine Eingabeaufforderung erzeugen, die wie folgt aussieht:

Bash-Eingabeaufforderung mit Farbe

Hier ist eine Liste der Farben, die Sie verwenden können, und der Nummern, die sie angeben:

Nummer(n) Farbe/Stil Nummer(n) Farbe/Stil
0;30 Schwarz 1;30 Dunkelgrau
0;31 rot 1;31 Hellrot
0;32 Grün 1;32 Hellgrün
0;33 Braun 1;33 Gelb
0;34 Blau 1;34 Hellblau
0;35 Violett 1;35 Helles Lila
0;36 Cyan 1;36 Helles Cyan
0;37 Grau 1;37 Weiß
4;30 Schwarz, unterstrichen 40 Hintergrund: Dunkelgrau
4;31 Rot, unterstrichen 41 Hintergrund: Rot
4;32 Grün, unterstrichen 42 Hintergrund: Grün
4;33 Braun, unterstrichen 43 Hintergrund: Gelb
4;34 Blau, unterstrichen 44 Hintergrund: Blau
4;35 Lila, unterstrichen 45 Hintergrund: Lila
4;36 Cyan, unterstrichen 46 Hintergrund: Cyan
4;37 Grau, unterstrichen 47 Hintergrund: Grau

Hier sind Beispiele und wie sie aussehen:

PS1="e[0;31mRed e[0;32mGreen e[0;33mBrown e[0;34mBlue e[0;35mPurple e[0;36mCyan e[0;37mGray e[m"
Bash Color Prompt Beispiel 2
PS1="Underlined: e[4;31mRed e[4;32mGreen e[4;33mBrown e[4;34mBlue e[4;35mPurple e[4;36mCyan e[4;37mGray e[m"

Bash Color Prompt Beispiel 3

PS1="e[44me[1;35mBright purple on a blue backgrounde[m "

Bash Color Prompt Beispiel 4

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here