4.5.- Interpretando la línea de comandos

Tenemos que los caracteres especiales del shell se interpretan en un orden determinado:

Personalizar el prompt

El prompt es el indicador de que la línea de comandos está libre para aceptar una nueva orden. En las aulas de prácticas, el prompt por defecto es $ (PS1=$), sin embargo podemos personalizarlo para que ponga lo que nosotros queramos.

La cadena que se muestra en el prompt se almacena en la variable de entorno PS1, por lo tanto, bastará con cambiar el valor de esa variable, para cambiar el prompt de nuestro sistema.

La siguiente tabla muestra algunas opciones que podemos usar para personalizar el prompt, veamos algunas de ellas:

Al prompt podemos añadirle muchas opciones que nos ayuden a trabajar; quizás la más usada es \w que muestra el directorio donde estamos situados en cada momento.

Es muy típico querer saber si somos root o cualquier otro usuario de la máquina, para lo cual se usa la opción \$ que muestra una # si somos root, o un $ en cualquier otro caso.

Muchas veces el prompt nos ayuda a saber en que máquina estamos situados, esto es útil, por ejemplo, cuando tenemos la costumbre de hacer muchos telnet o ssh a otras máquinas. En este caso, podemos usar la opción \H que nos da el nombre de la máquina donde estamos situados, o la opción \h que nos da el nombre de la máquina sólo hasta el primer punto:

La opción \u nos muestra el usuario con el que estamos conectados. Este es un prompt bastante útil:

Aparte del prompt básico (su valor se obtiene de la variable PS1) que nos indica si la línea de comandos está preparada para recibir una nueva orden, existen otros prompts en el sistema. Sus cadenas viene determinadas por los valores de las variables PS2, PS3 y PS4.

Así, PS2 es el prompt secundario y por defecto vale >. Se usa cuando escribimos un comando
inacabado. Por ejemplo:

Variables de entorno internas

Existen una serie de variables de entorno, las cuales se resumen en la tabla siguiente, que no las fijamos nosotros sino que las fija el shell, y cuyo valor es de sólo lectura.

Algunas variables se actualizan dinámicamente, por ejemplo, LINES y COLUMNS almacenan en todo momento el número de filas y columnas de la pantalla, y las usan algunos programas como vi o emacs para modificar su apariencia.

Exportar variables

Cuando definimos una variable, esa variable no es conocida automáticamente por los procesos hijos que lanza la sesión Bash, a no ser que esta se ponga explícitamente a su disposición, con el comando export.

Podemos obtener un listado de las variables exportadas usando el comando env

…o el comando export sin argumentos.

Para obtener las variables tanto exportadas como no exportadas debemos usar el comando set sin argumentos.