Es gibt viele Konfigurationsmöglichkeiten bash
. Ich verwende die folgenden Befehle, um einfachen Zugriff auf den Befehlsverlauf zu gewähren: -
bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward'
Diese setzten die Upund DownPfeile zu scannen oben und unten die Befehlshistorie für Befehle mit den Zeichen vor dem Cursor in der Befehlszeile beginnen (wie TCC hat in Windows).
Bei der Eingabeaufforderung können Sie bei jeder Ausgabe der Eingabeaufforderung Befehle ausführen. Ich benutze:-
PS1="\`curspos -n>/dev/tty\`\`[ \$BASH_LEVEL != 1 ]&&echo \"[\$BASH_LEVEL]\"\`\\t[\\w/]\\\$ "
Dies ruft zwei Befehle an jeder Eingabeaufforderung auf: -
curspos
ist ein Skript, das ich geschrieben habe, um die Cursorposition zu überprüfen und eine neue Zeile auszugeben, wenn nicht in der ersten Spalte (ich habe mich mit unnötigen Leerzeilen geärgert).- Die
BASH_LEVEL
Überprüfungen gehen der Eingabeaufforderung voraus, wobei die Ebene in eckigen Klammern steht, wenn sie nicht 1 ist. Daher ist es sofort offensichtlich, wenn Sie sich in einer untergeordneten Shell befinden (z[2]15:55:32[~/]$
. B. ).
Keines dieser Antworten erfüllt Ihre Anforderung direkt, veranschaulicht jedoch die Leistungsfähigkeit, die Sie in der Eingabeaufforderung verwenden können. In Ihrem Fall können Sie einfach ein Skript oder eine Funktion (z. B. gitcheck
) zur Ausführung vor dem Rest Ihrer Eingabeaufforderung voranstellen, und dies kann alle Informationen ausgeben, die in dem Format angezeigt werden sollen, das Sie als Teil der Eingabeaufforderung wünschen.
Abschließend fish
möchte ich bash
sagen, dass es in vielen Linux-Distributionen verfügbar ist (z. B. im Ubuntu-Repository). Daher müssen Sie diese Anpassungen nur vornehmen, wenn Sie keine Pakete installieren können.