Ändern Sie den \w
(Kleinbuchstaben) bis \W
(Großbuchstaben):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
^^
this one waaaaaay over here ------------------------------------------------+
Werfen Sie einen Blick auf das Bash Prompt HOWTO für viele lustige Details. Beispiel:
[email protected]:/usr/local/bin$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$
[email protected]:/usr/local/bin$ export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\W\[\033[00m\]\$ '
[email protected]:bin$
Die PROMPT_COMMAND
Variable, falls gesetzt, ist ein Befehl, der ausgeführt wird, bevor die in PS1
angegebene Eingabeaufforderung angezeigt wird . In Ihrem Fall PROMPT_COMMAND
führt einen echo
aus -Anweisung mit bestimmten ANSI-Escape-Sequenzen, die die Titelleiste eines Xterm manipulieren.
Wenn Sie Ihren PROMPT_COMMAND
vermuten überschreibt Ihren PS1
Eingabeaufforderung können Sie unset
eingeben it und testen Sie die Dinge:
$ unset PROMPT_COMMAND
Stellen Sie schließlich sicher, dass Sie PS1
ändern Definition, die tatsächlich verwendet wird. Übliche Standorte sind /etc/bash.bashrc
, /etc/profile
, ~/.bashrc
, ~/.bash_profile
, ~/.profile
. Die Systemdateien werden im Allgemeinen (aber nicht immer) vor den Benutzerdateien ausgeführt.
Der einfache Bash-Replace-Befehl ist
${VAR/pattern_to_find/pattern_to_replace}
Um das letzte Verzeichnis anzuzeigen, können Sie einfach ${PWD/*\//}
ausführen , d.h. alles vor und einschließlich dem letzten '/
finden ' und durch nichts ersetzen.
Auf meinem Ubuntu-Rechner verwende ich:
export PS1='$(whoami):${PWD/*\//}#'.
Meine Lösung besteht darin, die obersten drei und die untersten 2 Verzeichnisse anzuzeigen, wenn mehr als 5 vorhanden sind
Meine Eingabeaufforderung (die auch andere Informationen enthält) sieht also so aus:
08:38:42 durrantm U2017 /home/durrantm/Dropbox/_/rails/everquote
wenn mein pwd eigentlich
ist/home/durrantm/Dropbox/93_2016/work/code/ruby__rails/rails/everquote
Meine PS1-Eingabeaufforderung ist wie folgt eingerichtet:
HOST='\[\033[02;36m\]\h'; HOST=' '$HOST
TIME='\[\033[01;31m\]\t \[\033[01;32m\]'
LOCATION=' \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
git_branch
ist eine Funktion, die den aktuellen Git-Zweig anzeigt, ich behalte ihn in meinen Dotfiles, es ist:
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}