lunes, 25 de enero de 2016

Anatomía de un prompt

Nuestro prompt por defecto es algo así:

[me@linuxbox ~]$

Fíjate que contiene nuestro nombre de usuario, el nombre de nuestro host y nuestro directorio de trabajo actual, pero ¿cómo ha tomado esta forma? Es muy simple. El prompt es definido por la variable de entorno llamada PS1 (abreviatura de “prompt string one” - “cadena de prompt uno”) Podemos ver el contenido de PS1 con el comando echo:

[me@linuxbox ~]$ echo $PS1
[\u@\h \W]\$

Nota: No te preocupes si tus resultados no son exactamente los mismos que en el ejemplo. Cada distribución Linux define, de forma algo diferente, la cadena del prompt, algunas de una manera un tanto exótica.

De los resultados, podemos ver que PS1 contiene algunos caracteres que vemos en nuestro prompt como los corchetes, el signo arroba, el signo del dólar, pero el resto son un misterio. Nuestra astucia los reconocerá como caracteres especiales ocultos tras la barra invertida como los que vimos en el capítulo 7. Aquí hay una lista parcial de los caracteres que el shell trata especialmente en la cadena del prompt:

Tabla 13-1: Códigos de escape usado en los prompts de shell
Secuencia Valor mostrado
\a Tono ASCII. Hace que el ordenador haga un beep cuando lo encuentre.
\d Fecha actual con el siguiente formato: día de la semana, mes y día. Por ejemplo, “Lunes Mayo 26.”
\h Nombre de host de la máquina local sin el nombre de dominio al final.
\H Nombre de host completo.
\j Número de trabajos corriendo en la sesión de shell actual.
\l Nombre del dispositivo terminal actual.
\n Carácter de nueva línea.
\r Retorno de carro.
\s Nombre del programa shell.
\t Hora actual en formato 24 horas. Horas:minutos:segundos.
\T Hora actual en formato 12 horas.
\@ Hora actual en formato 12 horas AM/PM.
\A Hora actual en formato 24 horas. Horas:minutos.
\u Nombre de usuario del usuario actual.
\v Número de versión del shell.
\V Números de versión y de lanzamiento del shell.
\w Nombre del directorio de trabajo actual.
\W Última parte del nombre del directorio de trabajo actual.
\! Número del comando actual en el historial.
\# Número de comandos introducidos durante esta sesión de shell.
\$ Muestra un carácter “$” a menos que tengas privilegios de superusuario. En ese caso, muestra un “#” en su lugar.
\[ Señal de comienzo de una serie de uno o más caracteres no imprimibles. Se usa para añadir caracteres de control no imprimibles que manipulará el emulador de terminal de alguna forma, como mover el cursor o cambiar colores de texto.
\] Señales de fin de una secuencia de caracteres no imprimibles.

No hay comentarios:

Publicar un comentario