de.phhsnews.com


de.phhsnews.com / Anpassen (und Einfärben) Ihrer Bash-Eingabeaufforderung

Anpassen (und Einfärben) Ihrer Bash-Eingabeaufforderung


Die meisten Linux-Distributionen konfigurieren die Bash-Eingabeaufforderung so, dass sie aussieht wieBenutzername @ Hostname: Verzeichnis $. Aber Sie können die Bash-Eingabeaufforderung so konfigurieren, dass sie alles enthält, was Sie möchten, und sogar die gewünschten Farben auswählen.

Die Beispielschritte hier wurden mit Ubuntu 16.04 LTS durchgeführt. Der Prozess sollte auf anderen Linux-Distributionen derselbe sein, obwohl die Standard-Bash-Eingabeaufforderung und die Einstellungen in der .bashrc-Datei etwas anders sind.

Wo die Eingabeaufforderungsvariable gespeichert ist

Ihre Bash-Eingabeaufforderungskonfiguration ist in Ihrem Benutzer gespeichert Die .bashrc-Datei des Accounts, die~ / .bashrcist. Wenn Ihr Benutzername also bob lautet, lautet die Datei/home/bob/.bashrc.

Sie können die Datei öffnen, um die aktuelle Bash-Variable anzuzeigen. Wir verwenden nano als Beispieltext-Editor, obwohl Sie auch vi, emacs oder einen anderen Texteditor verwenden können, mit dem Sie vertraut sind. Öffnen Sie ein Terminal und führen Sie Folgendes aus:

nano ~ / .bashrc

Scrollen Sie nach unten zum AbschnittPS1 =. Die erste Variable sieht ziemlich kompliziert aus, weil sie Farbinformationen enthält - das werden wir später erklären. Die zweite Variable, ohne Farbinformationen, lautet wie folgt:

$ {debian_chroot: + ($ debian_chroot)}  u @  h:  w  $

Dies ist immer noch etwas kompliziert wegen der$ {debian_chroot: + ($ debian_chroot)}Bits. Sie teilen Bash mit, dass Sie wissen wollen, ob Sie eine Debian-Chroot-Umgebung verwenden und normalerweise nicht angezeigt werden. Diese ignorieren, hier ist die Standardstruktur der Bash-Prompt-Variable:

 u @  h:  w  $
ugibt Ihren Benutzernamen an,@gibt das @ -Zeichen an, hgibt den Hostnamen (Computername) an,:gibt das Zeichen an, wgibt das Arbeitsverzeichnis an und $zeigt ein $ wenn Sie ein normales Benutzerkonto sind oder # wenn Sie root sind. Wenn Sie das alles zusammensetzen, erhalten SieBenutzername @ Hostname: Arbeitsverzeichnis $.

Um Ihre Bash-Eingabeaufforderung zu ändern, müssen Sie nur die Sonderzeichen in der PS1-Variablen hinzufügen, entfernen oder neu anordnen. Aber es gibt viel mehr Variablen als die Standardvariablen.

Lassen Sie den Texteditor für jetzt - in Nano, drücken Sie Strg + X, um zu beenden. Wir zeigen Ihnen, wie Sie mit Variablen experimentieren, bevor Sie tatsächlich einen neuen in Ihre .bashrc-Datei schreiben.

So erstellen Sie eine benutzerdefinierte Bash-Eingabeaufforderung

Ihre Bash-Eingabeaufforderungskonfiguration wird in der PS1-Variablen gespeichert. Führen Sie den folgenden Befehl aus, um den Inhalt der Variablen PS1 in einer neuen Variablen zu speichern:

DEFAULT = $ PS1

Sie können die PS1-Variable jetzt auf verschiedene Werte für den Test festlegen. Zum Beispiel würde die erste Zeile hier Ihre Eingabeaufforderung auf eine einfache "Benutzer $" Eingabeaufforderung setzen, während die zweite Zeile Ihre Eingabeaufforderung auf eine einfache Eingabe "Benutzer: Arbeitsverzeichnis $" setzen würde.

PS1 = " u  $" PS1 = " u:  w  $"

Wenn Sie jemals zu Ihrer Standard-Eingabeaufforderung zurückkehren möchten, führen Sie einfach den folgenden Befehl aus:

PS1 = $ DEFAULT

Bash wird dank der Standardaufforderung wiederhergestellt zu der Tatsache, dass Sie diese Standardeinstellungen früher gespeichert haben. Beachten Sie, dass alle Änderungen, die Sie hier vornehmen, nur vorübergehend für die aktuelle Bash-Sitzung sind. Sie können sich also jederzeit abmelden und wieder anmelden oder das Terminalfenster schließen und erneut öffnen, um zur Standardeingabe zurückzukehren. Aber die obige Zeile macht es möglich, einfach zu Ihrer Standard-Bash-Eingabeaufforderung zurückzukehren, ohne dass Sie sich abmelden oder ein Fenster schließen müssen.

Sie können der Variablen beliebige Zeichen oder Text hinzufügen. Um also der Standard-Eingabeaufforderung "Hallo Welt" voran zu stellen, könnten Sie verwenden:

PS1 = "Hallo Welt  u>  h:  w  $"

Nun, da Sie die Grundlagen haben, haben Sie muss nur wissen, was all die Sonderzeichen sind. Sie werden wahrscheinlich nicht viele davon interessieren, aber hier ist die vollständige Liste, wie sie im Bash-Handbuch erscheint:

  • Ein Glockenzeichen: a
  • Das Datum im Format "Wochentag-Month-Datum" ( zB "Di 26. Mai"): d
  • Das Format wird an strftime (3) übergeben und das Ergebnis wird in die Eingabeaufforderung eingefügt; Ein leeres Format führt zu einer länderspezifischen Zeitdarstellung. Die geschweiften Klammern werden benötigt: D {format}
  • Ein Escape-Zeichen: e
  • Der Hostname, bis zum ersten '.': h
  • Der Hostname: H
  • Die Anzahl der aktuell von der Shell verwalteten Jobs: j
  • Der Basisname des Endgerätingnamens der Shell: l
  • Ein Zeilenumbruch: n
  • Ein Wagenrücklauf: r
  • Der Name der Shell, der Basisname von $ 0 (der Teil nach dem letzten Schrägstrich): s
  • Die Uhrzeit im 24-Stunden-Format HH: MM: SS: t
  • Die Uhrzeit in 12 Stunden HH : MM: SS-Format: T
  • Uhrzeit im 12-Stunden-Format: @
  • Uhrzeit im 24-Stunden-Format HH: MM: A
  • Der Benutzername des aktuellen Benutzers: u
  • Die Version von Bash (zB 2.00): v
  • Die Version von Bash, Version + Patchlevel (zB 2.00. 0): V
  • Das aktuelle Arbeitsverzeichnis, mit $ HOME abgekürzt mit einer Tilde (verwendet die Variable $ PROMPT_DIRTRIM): w
  • Der Basisname von $ PWD, mit $ HOME abgekürzt mit a Tilde: W
  • Die laufende Nummer dieses Befehls:!
  • Die Befehlsnummer dieses Befehls: #
  • Wenn die effektive UID 0 ist , #, sonst $: $
  • Das Zeichen, dessen ASCII-Code der Oktalwert ist nnn: nnn
  • Ein Backslash:\
  • Beginnen Sie eine Zeichen drucken Dies könnte verwendet werden, um eine Terminalsteuerungssequenz in die Eingabeaufforderung einzubetten: [
  • Eine Sequenz von nicht druckbaren Zeichen beenden:]

Also, wenn Sie das Datum und die Uhrzeit hinzufügen wollten zu Ihrer Bash-Eingabeaufforderung und setzen Sie das Arbeitsverzeichnis auf Befehl in einer zweiten Zeile, können Sie die folgende Konstruktion verwenden:

PS1 = "[ d  t]  u @  h  n  w  $"

Die eckigen Klammern sind hier überhaupt nicht notwendig, helfen aber optisch aufzulösen und erleichtern das Lesen der Zeile. Wie bereits erwähnt, können Sie beliebige Zeichen oder normale Zeichen zu der Variablen hinzufügen, die Ihnen gefällt.

Es gibt noch einen weiteren Trick, den Sie kennen sollten: Sie können die Ausgabe eines beliebigen Befehls hinzufügen zur Aufforderung. Immer wenn die Eingabeaufforderung erscheint, führt Bash den Befehl aus und füllt die aktuellen Informationen aus. Fügen Sie dazu einfach einen Befehl ein, den Sie zwischen zweiZeichen ausführen möchten. Das ist kein Apostroph - das ist der schwere Akzent, der über der Tabulatortaste auf Ihrer Tastatur erscheint.

Nehmen wir beispielsweise an, Sie möchten die Linux-Kernel-Version in der Eingabeaufforderung anzeigen. Sie könnten eine Zeile wie die folgende verwenden:

PS1 = " u   h on 'uname -s -r'  w  $"

Als ein anderes Beispiel möchten Sie sagen, dass Sie die Betriebszeit des Systems anzeigen und Mittelwert laden, wie durch den Befehluptimeangezeigt. Sie könnten die folgende Konstruktion verwenden, die die Verfügbarkeit in eine eigene Zeile vor dem Rest der Eingabeaufforderung stellt.

PS1 = "('uptime')  n  u @  h:  w $"

Fühlen Sie sich frei Experimentieren Sie mit verschiedenen Sonderzeichen und Befehlen, um Ihre ideale Eingabeaufforderung zu erstellen.

So fügen Sie Ihrer Bash-Eingabeaufforderung Farben hinzu

Sobald Sie Ihre bevorzugte Eingabeaufforderung gefunden haben, können Sie Farben hinzufügen. Das ist eigentlich sehr einfach, aber es macht die Variable schrecklich unordentlich und kompliziert, wenn Sie nicht verstehen, was Sie sehen.

Zum Beispiel war die Standard-Farbeingabevariable von früher:

$ {debian_chroot : + ($ debian_chroot)}  [ 033 [01; 32m ]  u @  h  [ 033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m  ]  $

Oder entfernen Sie die debian_chroot-Bits noch einmal:

 [ 033 [01; 32m ]  u @  h  [ 033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m ]  $

Dies ist eigentlich nur die u < h: w $Variable von früher, aber mit Farbinformationen. Wirklich, wir können es in ein paar Abschnitte aufteilen:

 [ 033 [01; 32m ]   u < h   [ 033 [00m ] :   [ 033 [01; 34m ]   w   [ 033 [00m ]   $ 

Der erste Abschnitt ist u < hBit, gefolgt von Farbinformationen, die grün werden. Das zweite ist das:-Zeichen, dem eine Farbinformation vorangestellt ist, die jegliche Färbung entfernt. Das dritte ist das w-Bit, dem Farbinformationen vorangestellt sind, die es blau färben. Das vierte ist das $Bit, dem eine Farbinformation vorangestellt ist, die jegliche Färbung entfernt.

Sobald Sie Ihre eigenen Farbschilder erstellen, können Sie jeder beliebigen Farbe Ihre gewünschten Farben hinzufügen Bash Aufforderung, die Sie mögen.

Folgendes müssen Sie wissen: Sie müssen die gesamte Farbcodeinformation zwischen dem [und] Zeichens einfügen. Innerhalb des Tags müssen Sie entweder mit 033 [oder e [beginnen, um anzugeben, dass dies eine Farbinformation ist. Sowohl 033 [als auch e [machen dasselbe. e [ist kürzer, daher ist es vielleicht bequemer zu verwenden, aber wir verwenden 033 [hier, da es mit dem übereinstimmt, was standardmäßig verwendet wird. Am Ende des Tags müssen Sie mitm enden, um auf das Ende eines Farb-Tags hinzuweisen.

Brechen Sie das ab, so wird jedes Farb-Tag aussehen. Der einzige Unterschied ist die Information, die Sie anstelle von COLOR hinzufügen, um die tatsächliche Farbe zu definieren:

 [ 033 [ FARBE  m ]

Bash erlaubt Ihnen, die Farbe des Vordergrundtextes zu ändern, fügen Sie dem Text Attribute wie "fett" oder "unterstrichen" hinzu und setzen Sie eine Hintergrundfarbe.

Hier sind die Werte für Vordergrundtext:

  • Schwarz: 30
  • Blau: 34
  • Cyan: 36
  • Grün: 32
  • Violett: 35
  • Rot: 31
  • Weiß: 37
  • Gelb: 33

Da der violette Text beispielsweise den Farbcode 32 hat, verwenden Sie [ 033 [ 32 m ]für violetten Text

Sie können auch ein Attribut für den Text angeben. Dieses Attribut muss vor der Farbnummer eingefügt werden, getrennt durch ein Semikolon (;). Text mit diesen Attributen sieht in verschiedenen Terminalemulatoren anders aus.

Hier sind die Werte für Textattribute:

  • Normaler Text: 0
  • Fett oder Hell Text: 1 (hängt vom Terminalemulator ab.)
  • Dim Text: 2
  • Unterstrichener Text: 4
  • Blinkender Text: 5 (Dies funktioniert nicht in den meisten Terminalemulatoren.)
  • Umgekehrter Text: 7 (Dies invertiert die Vordergrund- und Hintergrundfarben, also werden Sie Wenn der aktuelle Text weißer Text auf schwarzem Hintergrund ist, sehen Sie schwarzen Text auf einem weißen Hintergrund.)
  • Versteckter Text: 8

Sie müssen das normale Textattribut nicht unbedingt einfügen. Das ist sowieso der Standardwert.

Wenn beispielsweise roter Text Code 31 und fett formatierter Text Code 1 ist, verwenden Sie [ 033 [ 1; 31 m ]für fetten roten Text

Sie können auch eine Hintergrundfarbe angeben, aber kein Attribut zu einer Hintergrundfarbe hinzufügen

Hier sind die Werte für Hintergrundfarben:

  • Schwarzer Hintergrund: 40
  • Blauer Hintergrund: 44
  • Cyan Hintergrund: 46
  • Grüner Hintergrund: 42
  • Lila Hintergrund: 45
  • Roter Hintergrund: 41
  • Weißer Hintergrund: 47
  • Gelber Hintergrund: 43

Da ein blauer Hintergrund beispielsweise Code 44 ist, würde [ 033 [ 44 m ]einen blauen Hintergrund angeben.

Sie können sowohl Vorder- als auch Hintergrundfarbe angeben Stichworte. Zum Beispiel steht 42 für einen grünen Hintergrund und 31 für einen roten Text. Um die Standardeingabeaufforderung zu einem roten Text auf grünem Hintergrund zu machen, verwenden Sie:

PS1 = " [ 033 [ 42  m ]  [ 033 [ 31  m ]  u @  h:  w  $ "

Wir geben hier nur eine einzelne Hintergrundfarbe und dann eine einzelne Vordergrundtextfarbe an, die am Anfang der Eingabe beginnt und auf den gesamten Text angewendet wird in der Aufforderung. Sie können jedoch beliebig viele Farbvariablen in der Variablen definieren, um verschiedene Abschnitte der Eingabeaufforderung beliebig zu färben.

Die Hintergrund- und Vordergrundtextfarben bleiben über die Eingabeaufforderung hinaus, es sei denn, Sie geben den Farbcode an 00 löschen Sie die Farbinformationen . Sie können dieses Tag auch innerhalb der Variablen verwenden, um die Formatierung in Ihrer Eingabeaufforderung auf den Standardwert zurückzusetzen. Die folgende Zeile würde beispielsweise alle Farben vor dem Zeichen $enden lassen:

PS1 = " [ 033 [ 42  m ]  [ 033 [ 31  m ]  u @  h:  w \ [ 033 [ 00  m ]  $ "

So stellen Sie Ihre neue Standard-Eingabeaufforderung ein

Sobald Sie Wenn Sie mit Farben experimentieren, sollten Sie in der aktuellen Sitzung eine Bash-Eingabeaufforderung haben. Aber wahrscheinlich möchten Sie diese neue Eingabeaufforderung dauerhaft machen, so dass sie automatisch in allen Ihren Bash-Sitzungen verwendet wird.

Dazu müssen Sie nur den Inhalt der PS1-Variablen in der .bashrc-Datei ändern, die wir vorher angeschaut haben.

Öffnen Sie die .bashrc-Datei in Ihrem bevorzugten Texteditor wie folgt:

nano ~ / .bashrc

Scrollen Sie nach unten und suchen Sie den Abschnitt PS1 =. Ersetzen Sie einfach die Standardvariable durch Ihre benutzerdefinierte Variable. Sie werden wahrscheinlich dieverlassen wollen$ {debian_chroot: + ($ debian_chroot)}Bits allein - sie werden jedoch nicht angezeigt, außer Sie befinden sich in einer Chroot-Umgebung.

Geben Sie Ihre farbige PS1-Variable unterein, wenn [" $ color_prompt "= ja]; dannLinie. Tragen Sie die Variable ohne Farben unterelseein

Speichern Sie die Datei und schließen Sie den Texteditor. Um beispielsweise die Datei in nano zu speichern, drücken Sie Strg + O, drücken Sie die Eingabetaste und dann Strg + X, um das Menü zu verlassen.

Wenn Sie das nächste Mal eine neue Bash-Shell starten, z Wenn Sie ein neues Terminalfenster öffnen, sehen Sie Ihre benutzerdefinierte Eingabeaufforderung.


Warum Sie (wahrscheinlich) keine verrückte Power-GPU benötigen Wie die GTX 1080 Ti

Warum Sie (wahrscheinlich) keine verrückte Power-GPU benötigen Wie die GTX 1080 Ti

Für uns PC-Spieler gibt es den Wunsch nach der neuesten und besten Hardware, und es gibt eine definitive Das coolste, schnellste Rig des Blocks. Aber auf dem heutigen PC-Gaming-Markt gibt es wirklich keinen Grund, eine schreiend schnelle (und teuere) Grafikkarte in die Tasche zu stecken. Ich kann bereits eine Million mechanischer Keyboards hören, die in den Kommentaren eine Antwort ausstoßen , aber lass mich mich erklären.

(how-top)

Hinzufügen von Philips Hue-Widgets zum Android-Startbildschirm

Hinzufügen von Philips Hue-Widgets zum Android-Startbildschirm

Die Android-Widgets von Philips Hue sind eine robuste Möglichkeit, mehrere Ihrer Leuchten auf Knopfdruck zu steuern. Sie können Lichter ein- und ausschalten oder mehrere Szenen gleichzeitig anwenden. Hier erfahren Sie, wie Sie ein Android-Widget für Philips Hue erstellen und was Sie damit machen können.

(how-top)