Para ello debemos modificar la variable de entorno PS1. Al ser una variable de entorno debemos usar export para que la modificación sea en todos los entornos de shell.
Y una vez dicho esto, vamos al lio.
Los valores que podemos usar para mostrar información adicional en el prompt son estos:
\a - Carácter de campana ASCII(07).
\A - Muestra la hora(HH:MM:SS) en formato 12h.
\d - Muestra la fecha.
\D{format} - formato strftime(podéis consultar con 'man strftime'). Si lo dejáis vacío(\D{}) muestra la hora.
\e - Carácter de escape ASCII(033).
\h - Muestra el nombre del host hasta el primer '.'
\H - Muestra el host completo.
\j - Muestra el número de "trabajos"(jobs) en ejecución en el shell.
\l - Dispositivo del terminal(ej. tty1).
\n - Salto de linea.
\r - Retorno de carro.
\s - Mestra el nombre del shell en el que estas.
\t - Muestra la hora(HH:MM:SS) en formato 24h.
\T - Muestra la hora(HH:MM:SS) en formato 12h.
\u - Muestra el usuario con el que estas conectado al shell.
\v - Version del shell que estes usando.
\w - Ruta del directorio de trabajo en el que nos encontramos, abreviando el $HOME con "~".
\W - Nombre del directorio en el que nos encontramos, abreviando el $HOME con "~".
\V - Muestra versión del paquete de shell.
\\ - Muestra una contrabarra.
\! - Muestra el numero del comando en el historial.
\@ - Muestra la hora(HH:MM) en formato 12h.
\# - Número de comando del comando actual.
\$ - Si el UID efectivo es 0, una #, sino, un $
\nnn - Carácter correspondiente al número octal nnn.
\[ - Inicio de una secuencia de caracteres no imprimibles, que pueden usarse para incrustar una secuencia de control del terminal en el prompt.
\] - Fin de una secuencia de caracteres no imprimibles.
\[ - Inicio de una secuencia de caracteres no imprimibles, que pueden usarse para incrustar una secuencia de control del terminal en el prompt.
\] - Fin de una secuencia de caracteres no imprimibles.
Además de esto podemos poner algún mensaje como por ejemplo:
PS1="Escribe algo: "
Mostrara en el prompt el mensaje tal cuál.
Con esto podemos hacer que nuestro prompt muestre, por ejemplo, la fecha(dia mes año), la hora y nuestro usuario de la siguiente manera:
PS1="\D{%a %b %Y} \t \u:\$ "
Que resultará algo parecido a:
vie nov 2012 18:06:20 IceDreK:$
Otra forma de hacer los cambios es configurando el fichero /etc/bashrc(si no existe podéis crearlo como root). De esta forma cuando arranquéis leerá de ese fichero la configuración que hayáis puesto. Podéis inspiraros en /etc/profile o en ~./profile que cumplen más o menos la misma función.
De todas formas puede que no nos queramos conformar solo con eso y además nos gustaría "tunearlo" un poco más y darle algo de color.
Pues para eso también tenemos solución con el siguiente comando:
'\e[x;ym $PS1 \e[m'
\e[ - Inicia la secuencia para introducir el color.
x;y - Indica el color que asignaremos.
$PS1 - Es nuestra variable del prompt.
\e[m - Finaliza la secuencia para introducir el color.
Los valores para x e y son:
x = 0, color oscuro.
x = 1, color claro.
y = 30, color negro.
y = 31, color rojo.
y = 32, color verde.
y = 33, color marrón.
y = 34, color azul.
y = 35, color purpura.y = 36, color cían.
Si por ejemplo queremos poner el prompt de antes en azul podemos usar la siguiente formula:
PS1="\e[0;34m\D{%a %b %Y} \t \u:\$ \e[m "
Otra forma de dar formato al texto es con tput, con el que se puede configurar además del color otros parametros.
tput bold - Ponemos las letras en negrita
tput rev - invierte los colores
tput sgr0 - resetea todo el formato anterior
tput setaf {codigo} - Colorea las letras según el código
tput setab{codigo} - Colorea el fondo según el código.
Los códigos de color son:
0 = Negro
1 = Rojo
2 = Verde
3 = Amarillo
4 = Azul
5 = Magenta
6 = Cían
7 = Blanco
Por ejemplo, para el ejemplo anterior, donde poníamos las letras en azul también podríamos usar la siguiente forma:
PS1="\[$(tput setaf 4)\]\D{%a %b %Y} \t \u:\$ \[$(tput sgr0)\]"
Con esto podemos hacer que nuestro prompt muestre, por ejemplo, la fecha(dia mes año), la hora y nuestro usuario de la siguiente manera:
PS1="\D{%a %b %Y} \t \u:\$ "
Que resultará algo parecido a:
vie nov 2012 18:06:20 IceDreK:$
Otra forma de hacer los cambios es configurando el fichero /etc/bashrc(si no existe podéis crearlo como root). De esta forma cuando arranquéis leerá de ese fichero la configuración que hayáis puesto. Podéis inspiraros en /etc/profile o en ~./profile que cumplen más o menos la misma función.
De todas formas puede que no nos queramos conformar solo con eso y además nos gustaría "tunearlo" un poco más y darle algo de color.
Pues para eso también tenemos solución con el siguiente comando:
'\e[x;ym $PS1 \e[m'
\e[ - Inicia la secuencia para introducir el color.
x;y - Indica el color que asignaremos.
$PS1 - Es nuestra variable del prompt.
\e[m - Finaliza la secuencia para introducir el color.
Los valores para x e y son:
x = 0, color oscuro.
x = 1, color claro.
y = 30, color negro.
y = 31, color rojo.
y = 32, color verde.
y = 33, color marrón.
y = 34, color azul.
y = 35, color purpura.y = 36, color cían.
Si por ejemplo queremos poner el prompt de antes en azul podemos usar la siguiente formula:
PS1="\e[0;34m\D{%a %b %Y} \t \u:\$ \e[m "
Otra forma de dar formato al texto es con tput, con el que se puede configurar además del color otros parametros.
tput bold - Ponemos las letras en negrita
tput rev - invierte los colores
tput sgr0 - resetea todo el formato anterior
tput setaf {codigo} - Colorea las letras según el código
tput setab{codigo} - Colorea el fondo según el código.
Los códigos de color son:
0 = Negro
1 = Rojo
2 = Verde
3 = Amarillo
4 = Azul
5 = Magenta
6 = Cían
7 = Blanco
Por ejemplo, para el ejemplo anterior, donde poníamos las letras en azul también podríamos usar la siguiente forma:
PS1="\[$(tput setaf 4)\]\D{%a %b %Y} \t \u:\$ \[$(tput sgr0)\]"
Partiendo de esta base se pueden hacer cosas como poner un reloj fijo en el terminal
En fin, como siempre, espero que os haya sido útil.
En fin, como siempre, espero que os haya sido útil.