GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash Shell PS1:10 Beispiele, um Ihr Linux wie Angelina Jolie zu machen

Foto mit freundlicher Genehmigung von f1r3storm85

Im vorherigen Artikel haben wir über die Linux-Umgebungsvariablen PS[1-4] und PROMPT_COMMAND gesprochen. Bei effektiver Anwendung kann PS1 wertvolle Informationen direkt an der Eingabeaufforderung liefern.

In Tomb Raider hat Angelina Jolie alle Gadgets und Waffen zur Hand, um das Rätsel stilvoll zu lösen. Auch wenn das Gadget und der Stil von Angelina Jolie kaum zu überbieten sind, lassen Sie uns zumindest versuchen, die gute alte Linux-Eingabeaufforderung mithilfe der 10 Beispiele in diesem Artikel sehr funktional und stilvoll zu gestalten.

1. Benutzername, Hostname und aktuelles Arbeitsverzeichnis in der Eingabeaufforderung anzeigen

Die PS1 in diesem Beispiel zeigt die folgenden drei Informationen in der Eingabeaufforderung an:

  • \u – Benutzername
  • \h – Hostname
  • \w – Vollständiger Pfad des aktuellen Arbeitsverzeichnisses
-bash-3.2$ export PS1="\u@\h \w> "

ramesh@dev-db ~> cd /etc/mail
ramesh@dev-db /etc/mail>

2. Aktuelle Uhrzeit in der Eingabeaufforderung anzeigen

In der PS1-Umgebungsvariable können Sie jeden Linux-Befehl direkt ausführen, indem Sie das Format $(linux_command) angeben. Im folgenden Beispiel wird der Befehl $(date) ausgeführt, um die aktuelle Zeit in der Eingabeaufforderung anzuzeigen.

ramesh@dev-db ~> export PS1="\u@\h [\$(date +%k:%M:%S)]> "

ramesh@dev-db [11:09:56]>

Sie können auch \t verwenden, um die aktuelle Uhrzeit im Format hh:mm:ss anzuzeigen, wie unten gezeigt:

ramesh@dev-db ~> export PS1="\u@\h [\t]> "
ramesh@dev-db [12:42:55]>

Sie können auch \@ verwenden, um die aktuelle Uhrzeit im 12-Stunden-AM/PM-Format anzuzeigen, wie unten gezeigt:

ramesh@dev-db ~> export PS1="[\@] \u@\h> "
[04:12 PM] ramesh@dev-db>

3. Ausgabe eines beliebigen Linux-Befehls in der Eingabeaufforderung anzeigen

Sie können die Ausgabe jedes Linux-Befehls in der Eingabeaufforderung anzeigen. Im folgenden Beispiel werden drei durch | getrennte Elemente angezeigt (Pipe) in der Eingabeaufforderung:

  • \!: Die Verlaufsnummer des Befehls
  • \h: Hostname
  • $kernel_version: Die Ausgabe des Befehls uname -r aus der Variablen $kernel_version
  • \$?: Status des letzten Befehls
ramesh@dev-db ~> kernel_version=$(uname -r)
ramesh@dev-db ~> export PS1="\!|\h|$kernel_version|\$?> "
473|dev-db|2.6.25-14.fc9.i686|0>

4. Vordergrundfarbe der Eingabeaufforderung ändern

Anzeige der Eingabeaufforderung in blauer Farbe zusammen mit Benutzername, Host und Informationen zum aktuellen Verzeichnis

$ export PS1="\e[0;34m\u@\h \w> \e[m"
[Note: This is for light blue prompt]

$ export PS1="\e[1;34m\u@\h \w> \e[m"
[Note: This is for dark blue prompt]
  • \e[ – Zeigt den Beginn der Farbaufforderung an
  • x;ym – Gibt den Farbcode an. Verwenden Sie die unten aufgeführten Farbcodewerte.
  • \e[m – zeigt das Ende der Farbaufforderung an

Farbcodetabelle:

Black 0;30
Blue 0;34
Green 0;32
Cyan 0;36
Red 0;31
Purple 0;35
Brown 0;33
[Note: Replace 0 with 1 for dark color]

Machen Sie die Farbänderung dauerhaft, indem Sie die folgenden Zeilen zu .bash_profile oder .bashrc

hinzufügen
STARTCOLOR='\e[0;34m';
ENDCOLOR="\e[0m"
export PS1="$STARTCOLOR\u@\h \w> $ENDCOLOR"

5. Hintergrundfarbe der Eingabeaufforderung ändern

Ändern Sie die Hintergrundfarbe, indem Sie wie unten gezeigt \e[{code}m in der PS1-Eingabeaufforderung eingeben.

$ export PS1="\e[47m\u@\h \w> \e[m"
[Note: This is for Light Gray background]

Kombination aus Hintergrund und Vordergrund

export PS1="\e[0;34m\e[47m\u@\h \w> \e[m"
[Note: This is for Light Blue foreground and Light Gray background]

Fügen Sie Folgendes zu .bash_profile oder .bashrc hinzu, um die obige Hintergrund- und Vordergrundfarbe dauerhaft zu machen.

STARTFGCOLOR='\e[0;34m';
STARTBGCOLOR="\e[47m"
ENDCOLOR="\e[0m"
export PS1="$STARTFGCOLOR$STARTBGCOLOR\u@\h \w> $ENDCOLOR"

Spielen Sie herum, indem Sie die folgende Hintergrundfarbe verwenden, und wählen Sie diejenige aus, die Ihrem Geschmack entspricht:

  • \e[40m
  • \e[41m
  • \e[42m
  • \e[43m
  • \e[44m
  • \e[45m
  • \e[46m
  • \e[47m

6. Mehrere Farben in der Eingabeaufforderung anzeigen

Sie können auch mehrere Farben in derselben Eingabeaufforderung anzeigen. Fügen Sie die folgende Funktion zu .bash_profile

hinzu
function prompt {
  local BLUE="\[\033[0;34m\]"
  local DARK_BLUE="\[\033[1;34m\]"
  local RED="\[\033[0;31m\]"
  local DARK_RED="\[\033[1;31m\]"
  local NO_COLOR="\[\033[0m\]"
  case $TERM in
    xterm*|rxvt*)
      TITLEBAR='\[\033]0;\u@\h:\w\007\]'
      ;;
    *)
      TITLEBAR=""
      ;;
  esac
  PS1="\u@\h [\t]> "
  PS1="${TITLEBAR}\
  $BLUE\u@\h $RED[\t]>$NO_COLOR "
  PS2='continue-> '
  PS4='$0.$LINENO+ '
}

Sie können sich erneut anmelden, damit die Änderungen wirksam werden, oder das .bash_profile wie unten gezeigt abrufen.

$. ./.bash_profile
$ prompt
ramesh@dev-db [13:02:13]>

7. Ändern Sie die Farbe der Eingabeaufforderung mit tput

Sie können auch die Farbe der PS1-Eingabeaufforderung mit tput ändern, wie unten gezeigt:

$ export PS1="\[$(tput bold)$(tput setb 4)$(tput setaf 7)\]\u@\h:\w $ \[$(tput sgr0)\]"

Tput-Farbfähigkeiten:

  • tput setab [1-7] – Legen Sie eine Hintergrundfarbe mit ANSI-Escape fest
  • tput setb [1-7] – Legen Sie eine Hintergrundfarbe fest
  • tput setaf [1-7] – Setzen Sie eine Vordergrundfarbe mit ANSI-Escape
  • tput setf [1-7] – Legen Sie eine Vordergrundfarbe fest

Tput-Textmodus-Fähigkeiten:

  • fett schreiben – Fettmodus einstellen
  • tput dim – halbhellen Modus einschalten
  • tput smul – Unterstreichungsmodus starten
  • tput rmul – Unterstreichungsmodus verlassen
  • tput rev – Reverse-Modus einschalten
  • tput smso – Wechseln Sie in den herausragenden Modus (fett auf rxvt)
  • tput rmso – Verlassen Sie den herausragenden Modus
  • tput sgr0 – Alle Attribute ausschalten

Farbcode für tput:

  • 0 – Schwarz
  • 1 – Rot
  • 2 – Grün
  • 3 – Gelb
  • 4 – Blau
  • 5 – Magenta
  • 6 – Cyan
  • 7 – Weiß

8. Erstellen Sie Ihre eigene Eingabeaufforderung mit den verfügbaren Codes für die PS1-Variable

Verwenden Sie die folgenden Codes und erstellen Sie Ihre persönliche PS1-Linux-Eingabeaufforderung, die funktional ist und Ihrem Geschmack entspricht. Welcher Code aus dieser Liste ist für den täglichen Gebrauch sehr hilfreich? Hinterlassen Sie Ihren Kommentar und lassen Sie mich wissen, welchen PS1-Code Sie für Ihre Linux-Eingabeaufforderung verwendet haben.

  • \a ein ASCII-Glockenzeichen (07)
  • \d das Datum im Format „Wochentag Monatsdatum“ (z. B. „Di, 26. Mai“)
  • \D{format} – das Format wird an strftime(3) übergeben und das Ergebnis in den Prompt-String eingefügt; ein leeres Format führt zu einer gebietsschemaspezifischen Zeitdarstellung. Die geschweiften Klammern sind erforderlich
  • \e ein ASCII-Escape-Zeichen (033)
  • \h der Hostname bis zum ersten Teil
  • \H der Hostname
  • \j die Anzahl der derzeit von der Shell verwalteten Jobs
  • \l der Basisname des Endgerätenamens der Shell
  • \n Zeilenumbruch
  • \r Wagenrücklauf
  • \s der Name der Shell, der Basisname von $0 (der Teil nach dem abschließenden Schrägstrich)
  • \t die aktuelle Uhrzeit im 24-Stunden-Format HH:MM:SS
  • \T die aktuelle Uhrzeit im 12-Stunden-Format HH:MM:SS
  • \@ die aktuelle Uhrzeit im 12-Stunden-Format am/pm
  • \A die aktuelle Uhrzeit im 24-Stunden-Format HH:MM
  • \u der Benutzername des aktuellen Benutzers
  • \v die Bash-Version (z. B. 2.00)
  • \V die Veröffentlichung von Bash, Version + Patch-Level (z. B. 2.00.0)
  • \w das aktuelle Arbeitsverzeichnis, wobei $HOME mit einer Tilde abgekürzt wird
  • \W der Basisname des aktuellen Arbeitsverzeichnisses, wobei $HOME mit einer Tilde abgekürzt wird
  • \! die Verlaufsnummer dieses Befehls
  • \# die Befehlsnummer dieses Befehls
  • \$ wenn die effektive UID 0 ist, ein #, sonst ein $
  • \nnn das Zeichen, das der Oktalzahl nnn entspricht
  • \\ ein Backslash
  • \[ eine Folge nicht druckbarer Zeichen beginnen, die zum Einbetten einer Terminal-Steuersequenz in die Eingabeaufforderung verwendet werden könnte
  • \] beendet eine Folge von nicht druckbaren Zeichen

9. Verwenden Sie die Bash-Shell-Funktion innerhalb der PS1-Variablen

Sie können auch eine Bash-Shell-Funktion in der PS1 aufrufen, wie unten gezeigt.

ramesh@dev-db ~> function httpdcount {
>  ps aux | grep httpd | grep -v grep | wc -l
> }

ramesh@dev-db ~> export PS1="\u@\h [`httpdcount`]> "
ramesh@dev-db [12]>
[Note: This displays the total number of running httpd processes]

Sie können die folgende Zeile zu .bash_profile oder .bashrc hinzufügen, um diese Änderung dauerhaft zu machen:

function httpdcount {
  ps aux | grep httpd | grep -v grep | wc -l
}
export PS1='\u@\h [`httpdcount`]> '

10. Verwenden Sie das Shell-Skript in der PS1-Variablen

Sie können auch ein Shell-Skript innerhalb der PS1-Variablen aufrufen. Im Beispiel unten wird ~/bin/totalfilesize.sh, das die Gesamtdateigröße des aktuellen Verzeichnisses berechnet, innerhalb der PS1-Variablen aufgerufen.

ramesh@dev-db ~> cat ~/bin/totalfilesize.sh

for filesize in $(ls -l . | grep "^-" | awk '{print $5}')
do
  let totalsize=$totalsize+$filesize
done
echo -n "$totalsize"

ramesh@dev-db ~> export PATH=$PATH:~/bin
ramesh@dev-db ~> export PS1="\u@\h [\$(totalfilesize.sh) bytes]> "
ramesh@dev-db [534 bytes]> cd /etc/mail
ramesh@dev-db [167997 bytes]>
[Note: This executes the totalfilesize.sh to display the total
       file size of the current directory in the PS1 prompt]


Wie viele Anpassungen haben Sie an Ihrer PS1 vorgenommen? Kann deine PS1 Angelina Jolie schlagen? Hinterlasse einen Kommentar und teile deine PS1 Aufforderungswert.

Empfohlene Lektüre

Bash Cookbook, von Carl Albing, JP Vossen und Cameron Newham . Bash ist eine sehr mächtige Shell. Dieses Buch wird Ihnen helfen, die Bash-Shell zu beherrschen und hochproduktiv zu werden. Egal, ob Sie ein Systemadministrator, DBA oder ein Entwickler sind, irgendwann müssen Sie Shell-Skripte schreiben. Ein weiser Systemadministrator weiß, dass Sie, sobald Sie die Shell-Scripting-Techniken beherrschen, Ihre Server in den Autopilot-Modus versetzen können, indem Sie die Shell-Scripts die Grundarbeit erledigen lassen. Um in den Autopilot-Modus von sysadmin zu gelangen, müssen Sie unbedingt die in diesem Kochbuch bereitgestellten Beispiele beherrschen. Es gibt einige Bash-Shell-Bücher da draußen. Aber dieses Buch übertrifft sie alle, indem es viele detaillierte Beispiele gibt.
 
Zusätzliche Linux-Buchempfehlung:12 erstaunliche und wichtige Linux-Bücher zur Bereicherung Ihres Gehirns und Ihrer Bibliothek
 
Wenn Ihnen dieser Artikel gefallen hat, markieren Sie ihn bitte auf del.icio.us und stolpern Sie darüber.


Linux
  1. So machen Sie Ihr Linux-Terminal und Ihre Shell weihnachtlich

  2. Wie kürze ich die Bash-Eingabeaufforderung unter Linux?

  3. Pfadtrenner in Ps1 hervorheben?

  4. 9 UNIX / Linux Eingabebeispiele:Steuern Sie die Farbe und den Cursor Ihres Terminals

  5. 12 Bash-For-Loop-Beispiele für Ihr Linux-Shell-Scripting

So passen Sie die Bash-Eingabeaufforderung unter Linux an

Linux-make-Befehl mit Beispielen erklärt

Machen Sie Ihre Fischschale schön mit Oh My Fish

Bash Echo-Befehl mit Beispielen in Linux erklärt

So installieren Sie Linux Bash Shell unter Windows 10

Linux-make-Befehl mit Beispielen