MODIFICAR EL PROMPT DE UNA TERMINAL
Cuando se trabaja mucho desde consola a veces se hace pesado el prompt por defecto que nos ofrece los S.O. Gnu/linux. Por eso la mayorÃa de personas que llevan ya un tiempo con linux la personalizan para que además de ser mas agradable a la vista, nos de información útil.
El prompt simplemente es una string, con unos valores determinados que se guarda en una variable. La variable que contiene como debe ser el prompt se llama ‘$PS1’. El formato de la variable esta en el archivo de configuración de la shell “~/.bashrc” (en debian). Para ver el contenido actual de esa variable por ejemplo en mi debian:
kike@localhost:~$ printf “%s\n” “$PS1”
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Nos interesa quedarnos con la última parte ‘\u@\h:\w\$’, cada carácter significa una cosa:
\u Representa al usuario actual logeado (user). Salida de `whoami’.
\h Representa el nombre de la maquina sin el dominio (hostname). Salida de `hostname’.
\w Representa el directorio de trabajo (Working Dir). Salida de `pwd’.
\$ Es el ID, mostrará ‘#’ para root y ‘$’ para usuarios normales.
Esta string con ese formato es interpretada para mostrar el prompt como lo vemos. Pero podemos añadir muchas más cosas, primero os pongo la lista de formatos que podemos meter (he intentado traducir casi todo):
\a Alerta Alerta. \d Date Fecha en formato "DÃa Mes Fecha" (Ej: Sat Jan 15). \D{format} The format is passed to strftime(3) and the result is inserted into the prompt string an empty format results in a locale-specific time representation. The braces are required. \e Escape Carácter Esc. \h Hostname Nombre de la máquina sin el dominio (Ej: host) \H Hostname Nombre completo de la máquina (Ej: host.empresa). \j Jobs Número de trabajos en background activos. \l Tty Nombre del terminal corriente (Ej: tty1). \n Newline Nueva lÃnea. \r Return Retorno de carro. \s Shell Nombre del shell (basename $0). \t Time Horario en formato 24 horas HH:MM:SS \T Time Horario en formato 12 horas HH:MM:SS \@ At Horario en formato 12 horas HH:MM am/pm \A At Horario en formato 24 horas HH:MM \u Usuario Nombre de login del usuario corriente. \v Versión Versión de Bash (Ej: 4.01) \V Versión Versión+subversión de Bash (Ej: 4.01.5) \w Working Dir Directorio corriente, ruta completa ($PWD). \W Working Dir Directorio corriente, solo el último (basename $PWD). \! Histórico Número del comando en el historial. \# Número Número del comando corriente. \$ ID Muestra "#" para root, "$" para usuarios normales. \nnn Octal Carácter cuyo octal es nnn . \\ Backslash Barra invertida \ literal. \[ Escape Inicia una secuencia de escape (Ej: código de colores). \] Escape Termina una secuencia de escape.
Ahora que ya sabemos eso solo tenemos que modificar la variable a nuestro gusto, añadiendo o quitando lo que queramos. Para editar la variable podemos hacerlo con:
export PS1=’${debian_chroot:+($debian_chroot)}’
Lo que primero se suele hacer es ponerle color, más que por estética, para ver donde acaba un comando y empieza otro. Lo que suelen hacer muchos usuarios es dejar un espacio entre comando y comando, pulsando 2 o tres veces el para que se vea donde esta la separación, pero con lo del color estarÃa solucionado :). La lista de colores es la siguiente con los caracteres de escape (\[…\]) ya añadidos:
\[\e[0;30m\] # Negro \[\e[0;31m\] # Rojo \[\e[0;32m\] # Verde \[\e[0;33m\] # Amarillo \[\e[0;34m\] # Azul \[\e[0;35m\] # Violeta \[\e[0;36m\] # CÃan \[\e[0;37m\] # Blanco # Sustituyendo el 0 por 1 será tipo bold: \[\e[1;30m\] # Negro - bold \[\e[1;31m\] # Rojo - bold ... # Sustituyendo 0 por 4 será tipo subrayado. \[\e[4;30m\] # Negro - subrayado \[\e[4;31m\] # Rojo - subrayado ... # Sustituyendo 0;3 por 4 será color de fondo: \[\e[40m\] # Negro - fondo \[\e[41m\] # Rojo - fondo ... # Donde queremos que el color termine pondremos: \[\e[0m\] # Resetear color.
Unos ejemplos serÃan:
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[0;31m\]\u@\h:\w\$\[\e[0m\] ‘
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[1;32m\]\u:\w\$\[\e[0m\] ‘
kike:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[0;32m\]\u\[\e[0m\]@\[\e[0;31m\]\h\[\e[0m\]:\w\$ ‘
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[1;31m\]\u\[\e[0m\]> ‘
kike>
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[1;32m\]\u:\w\$\[\e[0m\] ‘
kike:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[0;32m\]\u\[\e[0m\]@\[\e[0;31m\]\h\[\e[0m\]:\w\$ ‘
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[1;31m\]\u\[\e[0m\]> ‘
kike>
También podemos introducir saltos de lÃneas para tener un prompt con varias lÃneas, y meter otros formatos:
kike@localhost:~$ export PS1=’${debian_chroot:+($debian_chroot)}\[\e[0;31m\]Terminal: \l :: \t\n\u@\h:\w\$\[\e[0m\] ‘
Terminal: 7 :: 01:04:48
kike@localhost:~$
Terminal: 7 :: 01:04:48
kike@localhost:~$
MODIFICAR EL PROMPT DE UNA TERMINAL
Reviewed by PDFREEBOOK
on
5:43
Rating:
Post a Comment