Cambia el \w (minúsculas) a \W (mayúsculas):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
^^
this one waaaaaay over here ------------------------------------------------+
Eche un vistazo al CÓMO de Bash Prompt para obtener muchos detalles divertidos. ejemplo:
[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$
El PROMPT_COMMAND variable, si se establece, es un comando que se ejecuta antes de mostrar el indicador especificado en PS1 . En tu caso, PROMPT_COMMAND ejecuta un echo declaración con ciertas secuencias de escape ANSI que manipulan la barra de título de un Xterm.
Si sospechas que tu PROMPT_COMMAND está anulando tu PS1 solicitud, puede unset y probar cosas:
$ unset PROMPT_COMMAND
Finalmente, asegúrese de cambiar el PS1 definición que realmente se utiliza. Las ubicaciones comunes son /etc/bash.bashrc , /etc/profile , ~/.bashrc , ~/.bash_profile , ~/.profile . Los archivos del sistema generalmente (pero no siempre) se ejecutan antes que los archivos del usuario.
El comando bash replace simple es
${VAR/pattern_to_find/pattern_to_replace}
Para mostrar el último directorio, solo puede hacer ${PWD/*\//} , es decir, encontrar cualquier cosa antes e incluyendo el último '/ ' y reemplazarlo con nada.
En mi máquina ubuntu uso:
export PS1='$(whoami):${PWD/*\//}#'.
Mi solución es mostrar los tres directorios superiores y los 2 inferiores cuando hay más de 5
Así que mi aviso (que también tiene otra información) se ve así:
08:38:42 durrantm U2017 /home/durrantm/Dropbox/_/rails/everquote
cuando mi pwd es en realidad
/home/durrantm/Dropbox/93_2016/work/code/ruby__rails/rails/everquote
Mi aviso de PS1 está configurado de la siguiente manera:
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 es una función que muestra la rama actual de git, la guardo en mis archivos de puntos, es:
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}