Entrada

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 a 0

En Linux (y sistemas Unix en general), el UID 0 siempre representa al usuario root.

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
    
Esta entrada está licenciada bajo CC BY 4.0 por el autor.