8 Nützliche und Interessante Bash-Prompts

Ein Programmierer an einem Laptop.

Viele Menschen betrachten das Kommandozeilenprompt nicht als nützliches Element oder schenken ihm nicht viel Beachtung. Ein nützliches Prompt kann jedoch die Art und Weise ändern, wie Sie die Kommandozeile und damit Ihr System nutzen. Dieser Artikel zeigt Ihnen eine Reihe von nützlichen und interessanten Bash-Prompts mit Beispielen. Beachten Sie, dass wir mit den Prompts selbst beginnen und dann einige weitere Anweisungen geben, wie man mit ihnen arbeitet.

Hier bieten wir Ihnen einige Bash-Prompts an, und nicht alle werden ernst sein. Zum Beispiel könnte unser erster Eintrag auf der Liste Ihnen beim Verwenden der Kommandozeile ein wenig Freude bereiten!

Weitere Informationen: Grundlegende Bash-Befehle für Linux-Neulinge

1. Anzeigen eines „Kaomoji“ bei erfolgreicher Ausführung

Dieses Prompt ist amüsant und dennoch nützlich! Die Idee ist, dass Ihr Prompt ein glückliches Kaomoji anzeigt, solange Sie erfolgreiche Befehle ausführen.

Kaomoji im Bash-Prompt anzeigen.

Im Gegensatz dazu sehen Sie ein trauriges Kaomoji, wenn ein Befehl fehlschlägt.

Um dies anzuwenden, verwenden Sie den folgenden Code:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

Das mag verwirrend aussehen, aber wir verwenden if-Anweisungen, um zu bestimmen, ob der Befehl gut oder schlecht ist. Von dort verwenden wir einige Escape-Zeichen um das Kaomoji, um sicherzustellen, dass es richtig angezeigt wird.

Weitere Informationen: Wie man Emacs als USENET-Reader mit Gnus verwendet

2. Ändern der Bash-Prompt-Farbe, wenn das Terminal einen schlechten Befehl ausgibt

Ändern der Prompt-Farben.

Man könnte argumentieren, dass dieses Prompt das nützlichste in der Liste ist. Wie oben ändert sich das Prompt, wenn Ihr letzter Befehl nicht ausgeführt werden konnte, es verkürzt zudem lange Pfade und enthält die Bash-Verlaufnummer jedes Befehls zur einfachen Wiederauffindung.

PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'

Auch dies kann einschüchternd wirken, aber es ist einfach. Wir verwenden erneut if-Anweisungen zusammen mit Farb-Codes, um verschiedene Nachrichten hervorzuheben.

Sie können diese Farben beliebig wählen, obwohl wir einige logische Überlegungen anstellen würden, die geänderten Farben sollten Ihnen helfen, anstatt einfach nur zum Spaß geändert zu werden.

Weitere Informationen: Wie man Leafnode als Offline-USENET-Server einrichtet

3. Verteilen Sie Ihre Bash-Prompts über mehrere Zeilen

Verwendung eines mehrzeiligen Bash-Prompts.

Manchmal möchten Sie vielleicht viele Informationen in Ihren Bash-Prompts einfügen. Wenn das auf Sie zutrifft, könnte dieses Bash-Prompt für Sie von Interesse sein. Es zeigt das Datum, die Uhrzeit, den vollständigen Verzeichnispfad, die Benutzer- und Hostnamen, das aktive Terminal und sogar die Anzahl der Dateien sowie die Speichernutzung.

PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') Dateien \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

Hier benötigen wir keine if-Anweisungen, da das Prompt selbst ein statisches Layout, aber dynamische Inhalte haben wird. Sie werden vielleicht auch feststellen, dass es schwer ist, die verschiedenen Elemente zu entschlüsseln. Unser Rat ist, es anzuwenden, und dann das Prompt Stück für Stück durchzugehen. Mit ein wenig Querverbindung beginnen Sie zu verstehen, wie das Prompt zusammengefügt wird.

4. Verwenden Sie Farben, um Ihr Bash-Prompt lesbarer zu machen

Es gibt nichts Aufregendes an diesem Prompt, abgesehen von der guten Verwendung von Farben, um die verschiedenen Informationsstücke zu trennen. Wie Sie sehen können, gibt es die Uhrzeit, Benutzer- und Hostnamen sowie das aktuelle Verzeichnis an.

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

Dies ist eines der nützlichsten Bash-Prompts und ist ein Bereich, auf den Sie zuerst schauen werden, um Ihr Prompt anzupassen. Es kann Ihnen eine gute Grundlage bieten, um zu lernen, wie ein benutzerdefiniertes Prompt funktioniert.

5. Zeigen Sie den vollständigen Verzeichnispfad an

Ähnlich wie bei der Verwendung von Farben ist dieses Prompt ein sauberes und minimales zweizeiliges Prompt (obwohl es oben eine leere Zeile gibt).

Vollständigen Verzeichnispfad im Prompt anzeigen.

Wir zeigen den vollständigen Arbeitsverzeichnispfad in der ersten Zeile an, gefolgt von dem Benutzer am unteren Rand.

PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"

Wenn Sie keine leere Zeile im Prompt verwenden möchten, können Sie die erste \n weglassen. Experimentieren Sie jedoch mit dem Layout und der Formatierung, da jede Terminal-Erfahrung unterschiedlich sein wird, je nach Ihrem Computer und Ihren Kommandozeileneinstellungen.

6. Zeigen Sie die Anzahl der Hintergrundjobs an

Dieses zwei Zeilen umfassende Prompt zeigt Informationen, die wir bisher in unseren Bash-Prompts noch nicht verwendet haben. Wir bieten eine laufende Zählung der Hintergrundjobs an. Dies wird nützlich sein, wenn Sie Multitasking machen müssen, aber einen Blick auf die Aktivitäten werfen möchten.

Anzeigen der Anzahl der Hintergrundjobs.

Die erste Zeile enthält den Benutzernamen und den Hostnamen sowie den Arbeitsverzeichnispfad. In der zweiten Zeile haben wir die Verlaufnummer und eine Zählung der im Hintergrund laufenden Jobs.

PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '

Es gibt hier nicht viel zu sehen, obwohl es Ihnen einige dringend benötigte Informationen über die Systemaktivität geben kann. Sie könnten dieses Prompt sogar in ein komplexeres Prompt umwandeln und if-Anweisungen und Farbcode verwenden, um Sie zu benachrichtigen, wenn ein Job bestimmte Grenzen erreicht.

7. Informationen für das Arbeitsverzeichnis anzeigen

Anzeigen von Informationen zum Arbeitsverzeichnis.

Hier zeigen wir den Benutzer- und Hostnamen, die Jobanzahl sowie das Datum und die Uhrzeit in der oberen Zeile an. Darunter befindet sich das aktuelle Verzeichnis sowie die Anzahl der Dateien im Verzeichnis und einige Informationen zur Speichernutzung.

PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') Dateien, \$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

Das größte Problem bei all diesen Prompts besteht darin, herauszufinden, was bei der Formatierung und dem Escape-Vorgang geschieht. Aber wie bei mehrzeiligen Prompts sollten Sie auch dieses Stück für Stück angehen, bis Sie die gesamte Struktur verstehen.

Sie könnten sogar einen Teil auf einmal eingeben und feststellen, ob es korrekt angezeigt wird oder ob Fehler auftreten, und sich dann bis zum vollständigen Snippet hocharbeiten.

8. Erstellen Sie Ihre eigenen Bash-Prompts

Ein benutzerdefiniertes Bash-Prompt.

Sie können alle oben genannten Elemente kombinieren, um Ihre eigenen benutzerdefinierten Bash-Prompts zu erstellen. Zum Beispiel ist dies eine Modifikation von Nummer sieben in dieser Liste, die jedoch weniger Platz einnimmt und spezifische sowie relevante Informationen enthält.

Ein zweizeiliges Format ist immer kompakter, da Sie den vollständigen Pfad sehen können, ohne den Raum für die von Ihnen verwendeten Befehle zu reduzieren.

PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"

Bis jetzt werden Sie wahrscheinlich verstehen, was dieses Prompt bewirkt, aber unser Rat ist, zu versuchen, Ihr eigenes zu erstellen, anstatt dieses einfach einzufügen. So können Sie beginnen zu lernen, wie die verschiedenen Elemente zusammenarbeiten, und möglicherweise Ihre eigenen benutzerdefinierten Bash-Prompts entwickeln.

Häufig gestellte Fragen

1. Warum sollte ich unterschiedliche Bash-Prompts verwenden wollen?

Es gibt viele Gründe dafür, aber Produktivität ist ein wichtiger Aspekt. Wenn Sie häufig die Kommandozeile verwenden, sehen Sie Ihr Prompt alle paar Sekunden. Deshalb können Sie, wenn Sie die wichtigsten Informationen darin unterbringen, diese immer griffbereit haben.

In vielen Fällen ist die Verwendung eines benutzerdefinierten Bash-Prompts effizienter, als eine Vielzahl von Fenstern geöffnet zu haben.

2. Wie füge ich diese Bash-Prompts zu meiner Terminalausgabe hinzu?

Um eines dieser Prompts zu verwenden, können Sie den Code in Ihre Terminal-App kopieren und einfügen. Dies hat jedoch nur Auswirkungen auf die aktuelle Sitzung, sodass Sie dies theoretisch jedes Mal tun müssten, wenn Sie das Terminal starten.

Wenn Sie die Änderung dauerhaft machen möchten, können Sie die Snippets ans Ende Ihrer ~/.bashrc-Datei einfügen und Ihr Terminal neu starten.

3. Würden diese Bash-Prompts auch mit anderen Shells funktionieren?

In vielen Fällen werden Sie feststellen, dass es eine Kreuzkompatibilität mit anderen Arten von Shells gibt. Es gibt jedoch keine Garantie, dass die Änderungen eine hundertprozentige Übereinstimmung bieten.

Wenn Sie unseren Beitrag zur Anpassung des Mac-Terminals ansehen, verwenden wir zsh. Sie werden feststellen, dass es kleinere Unterschiede, aber viele Ähnlichkeiten gibt.

4. Wie finde ich heraus, welche Informationen und Elemente ich zu meinen Bash-Prompts hinzufügen kann?

Fast jedes Element Ihres Systems kann in einem Bash-Prompt angezeigt werden. Sie sollten sich mit Bash-Variablen beschäftigen, da dies der Weg ist, wie Sie diese verschiedenen Elemente „freischalten“.

Eine großartige Ressource, um zu verstehen, was Sie ändern können, finden Sie auf der Website Linux.com, und wir empfehlen, diese Dokumentation während Ihrer Anpassungssitzungen zur Hand zu haben.

5. Was ist, wenn ich keine benutzerdefinierten Bash-Prompts mehr in meinem Terminal verwenden möchte?

Die einfache Antwort hier ist, die Konfigurationsdatei zu öffnen und die entsprechenden Zeilen zu löschen. Sie müssen keine weiteren Befehle ausführen, obwohl es sich lohnen könnte, Ihr Terminal neu zu starten, falls Sie nicht die erwarteten Änderungen sehen.

Wenn Sie die Kommandozeile regelmäßig nutzen oder spezifische Anforderungen haben, wenn Sie eine Terminal-App starten, könnte die Anpassung des Prompts eine großartige Idee sein. Es erfordert nicht viel Wissen und in vielen Fällen können Sie das benötigte Prompt von einem anderen Entwickler finden.