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\$

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>


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:~$

Para que estos cambios sea permanentes, basta con añadir el comando (export PS1=’…’) al final del archivo “~/.bashrc”. Ahora dejo el resto a la imaginación de cada uno, el poder pasar de un prompt insulso a un un prompt útil.
MODIFICAR EL PROMPT DE UNA TERMINAL MODIFICAR EL PROMPT DE UNA TERMINAL Reviewed by PDFREEBOOK on 5:43 Rating: 5

No hay comentarios

Los Comentarios emitidos en cada uno de los contenidos deberan ajustarse al tema tratado durante el post de lo contrario sera Eliminado