Linux 🐧 : Variables Reservadas
En Linux, las variables reservadas son un conjunto de variables que el sistema utiliza para gestionar diversos aspectos del entorno de ejecucción y administración del sistema. Estas variables tienen un significado especial y, en general, no se deben modificar sin comprender su próposito, ya que podrían afectar el comportamiento del sistema o de los procesos en ejecución.
Variable $USER
La variable $USER
almacena el nombre del usuario actual que ha iniciado sesión en el sistema.:
Ejemplo
1
echo $USER
Supongamos que estamos haciendo un script de instalación que necesita ejecutar ciertos comandos con permisos elevados, pero que no se ejecute directamente como root sin saber si el usuario tiene privilegios sudo
.
El siguiente fragmento en Bash permite detectar si el usuario actual tiene permisos de administrador antes de continuar con el resto del script:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
if [ "$(id -u)" -eq 0 ]; then
echo "Eres el usuario root. Tienes privilegios de administrador."
elif groups $USER | grep -qw "sudo"; then
echo "$USER pertenece al grupo sudo. Tiene privilegios de administrador."
else
echo "$USER no tiene privilegios de administrador."
echo "Este script requiere permisos de administrador para continuar."
exit 1
fi
En la primera expresión [ "$(id -u)" -eq 0 ]
, estamos haciendo lo siguiente:
id -u
: devuelve el UID (User ID) del usuario actual.$(...)
: ejecuta el comando y pone su salida en el lugar donde está.-eq
: compara si el resultado es igual a0
En Linux (y sistemas Unix en general), el UID
0
siempre representa al usuarioroot
.
Variable $HOME
La variable $HOME
define el directorio home del usuario actual. Es utilizada por el sistema para acceder rápidamente a los archivos y configuraciones del usuario sin necesidad de especificar la ruta completa. Cada usuario tiene su propio directorio home, como /home/usuario
.
Ejemplo
1
echo $HOME
1
/home/marco
Variable $PATH
Esta variable $PATH
especifica una lista de directorios en los que el sistema busca ejecutables cuando se escribe un comando.
Ejemplo
1
echo $PATH
1
/home/.nvm/versions/node/v22.13.0/bin:/home/.rbenv/shims:/home/.rbenv/bin
Ejemplo de cómo añadir un directorio al $PATH
1
export PATH=$PATH:/home/usuario/mis_scripts
Varaiable $RANDOM
Esta variable $RANDOM
genera un número aleatorio entre 0 y 32767 cada vez que se usa.
Ejemplo
1
echo $RANDOM
1
14408
Variable PWD
Esta variable contiene la ruta del directorio actual. Es útil para saber en qué carpeta estás trabajando.
Ejemplo
1
echo $PWD
1
/home/user
Otras Variables Importantes
Variable $LINENO
Esta variable contiene el número de línea en la que se encuentra el script que se está ejecutando. Es útil para hacer depuración.
Ejemplo de uso en scripts
1 2 3 4 5 6 7
#!/bin/bash echo "Estamos en la línea número $LINENO" echo "Estamos en la línea número $LINENO" echo "Estamos en la línea número $LINENO" echo "Estamos en la línea número $LINENO" echo "Estamos en la línea número $LINENO" echo "Estamos en la línea número $LINENO"
$ bash my_script.sh Estamos en la línea número 2 Estamos en la línea número 3 Estamos en la línea número 4 Estamos en la línea número 5 Estamos en la línea número 6 Estamos en la línea número 7
Variable $0
La variable $0
contiene el nombre del script o comando que se está ejecutando. En un script, te permite saber cómo fue invocado el propio script.
Ejemplo
1 2
#!/bin/bash echo "Este script se ejecutó como: $0"
$ bash ./my_script.sh Este script se ejecutó como: ./my_script.sh