Para cambiar el Prompt del sistema puedes editar el contenido de la variable “PS1” que por ejemplo puedes encontrar en tu archivo .bashrc
ubicado tu directorio Home. Aqui a continuación encuentras algunos
ejemplos de Prompt que pueden servir de base para crear los tuyos
propios. Si quieres probarlos, copia y pega el texto asociado al final
de tu fichero .bashrc (del home) y en una
terminal ejecuta cd && . .bashrc
Este es el Prompt que más me gusta. Ejecuta el comando y si termina con exito se muestra la linea en color verde, en caso de que termine con error, cambia a color rojo.
El prompt del “amor”, aunque tambien lo puedes cambiar a “amore”
Uno un poco mas elaborado con funciones en bash, que imprime los trabajos pendientes, la carga, etc…
Uno con codigos de color, editando la entrada puedes usar otros colores de la lista previa.
y para finalizar, el que uso ahora
Algunos codigos de color:
Negro 0;30
Gris oscuro 1;30
Azul 0;34
Azul resaltado 1;34
Verde 0;32
Verde resaltado 1;32
Cian 0;36
Cyan resaltado 1;36
Rojo 0;31
Rojo resaltado 1;31
Púrpura 0;35
Púrpura resaltado 1;35
Café 0;33
Amarillo 1;33
Gris 0;37
Blanco 1;37
Puedes usarlos de una manera similar a :
Tambien puedes leer mi entrada: Cambiando la prompt de la terminal
Fuentes | Ubuntu Forums | CasiDiablo (Prompts utiles)
terminal ejecuta cd && . .bashrc
Este es el Prompt que más me gusta. Ejecuta el comando y si termina con exito se muestra la linea en color verde, en caso de que termine con error, cambia a color rojo.
1
| PS1= "\[\033[0;33m\][\!]\`if [[ \$? = " 0 " ]]; then echo " \\[\\033[1\\\;32m\\] "; else echo " \\[\\033[1\\\;31m\\] "; fi\`[\u:\`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo " \\W "; else echo " \\w "; fi\`]\$\[\033[0m\] " ; echo - ne "\033]0;`hostname -s`:`pwd`\007" |
El prompt del “amor”, aunque tambien lo puedes cambiar a “amore”
1
2
3
4
5
| PROMPT_HOSTNAME= 'LOVE' PROMPT_COLOR= '1;30m' PROMPT_COLOR2= '1;31m' PS1= '\e[${PROMPT_COLOR}[\e[${PROMPT_COLOR2}\u@${PROMPT_HOSTNAME}\e[${PROMPT_COLOR}] \e[${PROMPT_COLOR2}♡ ' |
1
| PS1= '${debian_chroot:+($debian_chroot)}\[\033[00;36m\]\u\[\033[00m\]@\h://\[\033[05;33m\]\w\[\033[00m\] \$ ' |
Uno un poco mas elaborado con funciones en bash, que imprime los trabajos pendientes, la carga, etc…
1
2
3
4
5
6
7
8
9
10
11
| function jobcount { jobs | wc -l | tr -d " " } cur_tty=$( tty | sed -e "s/.*tty\(.*\)/\1/" ) loadavg=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g" ) # PROMPT PS1= '\[\033[1;44m\]\[\033[1;34m\]
\[\033[1;40m\] [\u@\h:\w]\n\[\033[1;44m\]\[\033[1;34m\] \[\033[1;40m\]
[j:`jobcount`, t:$cur_tty, l:$loadavg]\n\[\033[1;46m\]\[\033[1;36m\]
\[\033[1;40m\] [`date +%D` \t] $> \[\033[0;39m\]' |
1
| PS1= '\n\[\033[01;34m\]\u @ \w\n\[\033[0;36m\]\t $ \[\033[0;39m\]' |
Uno con codigos de color, editando la entrada puedes usar otros colores de la lista previa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| C_RED= "\[\033[0;31m\]" C_GREEN= "\[\033[0;32m\]" C_LIGHT_GRAY= "\[\033[0;37m\]" C_RESET= "\[\033[0m\]" C_BROWN= "\[\033[0;33m\]" C_BLUE= "\[\033[0;34m\]" C_PURPLE= "\[\033[0;35m\]" C_CYAN= "\[\033[0;36m\] " C_GRAY= "\[\033[1;30m\]" C_WHITE= "\[\033[1;37m\]" C_YELLOW= "\[\033[1;33m\]" C_LIGHT_BLUE= "\[\033[1;34m\]" C_LIGHT_CYAN= "\[\033[1;36m\]" C_LIGHT_PURPLE= "\[\033[1;35m\]" C_LIGHT_RED= "\[\033[1; 31m\]" C_LIGHT_GREEN= "\[\033[1;32m\]" PS1= "$C_BLUE[$C_RED\$?$C_BLUE][$C_RED\u@\h:\w$C_BLUE]\$ $C_RESET" |
y para finalizar, el que uso ahora
1
| PS1= '\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ \w\n\[\033[0;36m\]\342\226\210\342\226\210 \t $ \[\033[0;39m\]' |
Algunos codigos de color:
Negro 0;30
Gris oscuro 1;30
Azul 0;34
Azul resaltado 1;34
Verde 0;32
Verde resaltado 1;32
Cian 0;36
Cyan resaltado 1;36
Rojo 0;31
Rojo resaltado 1;31
Púrpura 0;35
Púrpura resaltado 1;35
Café 0;33
Amarillo 1;33
Gris 0;37
Blanco 1;37
Puedes usarlos de una manera similar a :
1
| echo -e 'Así se escribe \e[1;34mG\e[0m\e[1;31mo\e[0m\e[1;33mo\e[0m\e[1;34mg\e[0m\e[1;32ml\e[0m\e[1;31me\e[0m' |
Fuentes | Ubuntu Forums | CasiDiablo (Prompts utiles)
# set a fancy prompt (non-color, unless we know we “want” color)
case “$TERM” in
xterm-color) color_prompt=yes;;
esac
y luego agregar esta
color_prompt=yes;
porque de lo contrario el color no funciona.
http://omploader.org/vNHhubw/ps1.png
http://pastie.org/1046921
En realidad lo tomé de alguien más y solo le hice unas cuantas modificaciones, pero el asunto de los caractéres es algo sencillísimo, lo que hay que reconocer son las funciones que implementó el autor.
Funciona perfectamente en zsh, en bash lamentablemente no tengo idea.
Todos los prompts me tiran error o se muestran mal, a priori me di cuenta que falta el apostrofe de cierre.
Me gustaría hacer una combinación del primero con el cuarto para que se mostraran los job que se están ejecutando, cualquier ayuda es bienvenida.
Gracias y saludos.
me respondo a mi mismo :) así quedaría el prompt que me gusta:
PS1=”\[33[0;33m\][\!][\j]\`if [[ \$? = "0" ]]; then echo “\\[\33[1\\\;32m\\]“; else echo “\\[\33[1\\\;31m\\]“; fi\`[\u:\`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo “\\W”; else echo “\\w”; fi\`]\$\[33[0m\] “; echo -ne “33]0;`hostname -s`:`pwd`07″
Y efectivamente tienes las líneas de los prompts cortadas y faltan caracteres.
Saludos.
Una pregunta:
Si quiero que el prompt modificado se aplique a todos los usuarios de la PC tengo que modificar el archivo .bashrc de cada uno o hay algún archivo que funcione a modo global ?
Y lo mismo para cuando abro una terminal por SSH para tener el prompt modificado.
Gracias y saludos.
Sigo tu blog desde liferea, quiero agradecer todo lo que haces y
por compartir.
te mando mi prompts:
PS1=’\[33[00;36m\]\u\[33[1;33m\] | \[33[0;31m\]\h:\[33[05;33m\]\n\[33[1;35m\][\w]\[33[00m\]\$ ‘
Hace mucho que lo uso y no se de donde lo saque.