linux – Mostrar solo el nombre del directorio actual (no la ruta completa) en el indicador de bash

Pregunta:

La forma en que mi indicador de bash está configurado actualmente, muestra la ruta completa al directorio actual. Esto es molesto cuando estoy dentro de un árbol de directorios, ya que el indicador se vuelve tan largo que cada comando se ajusta a la siguiente línea. ¿Cómo hago para que muestre solo la última parte de la ruta?

Esto es lo que tengo en mi .bashrc :

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

Respuesta:

Cambie \w (minúsculas) a \W (mayúsculas):

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\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:

user@host:/usr/local/bin$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ 

user@host:/usr/local/bin$ export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\W\[\033[00m\]\$ '

user@host:bin$

La variable PROMPT_COMMAND , si está configurada, es un comando que se ejecuta antes de mostrar el indicador especificado en PS1 . En su caso, PROMPT_COMMAND ejecuta una declaración de echo con ciertas secuencias de escape ANSI que manipulan la barra de título de un Xterm .

Si sospecha que su PROMPT_COMMAND está anulando su indicador de PS1 , puede unset y probar cosas:

$ unset PROMPT_COMMAND

Finalmente, asegúrese de cambiar la definición de PS1 que realmente se usa. Las ubicaciones comunes son /etc/bash.bashrc , /etc/profile , ~/.bashrc , ~/.bash_profile , ~/.profile . Los archivos del sistema se ejecutan generalmente (pero no siempre) antes que los archivos del usuario.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım