Pregunta 1¿Qué muestra echo $HOME?
Variables de entorno — PATH y export
Aprende a referenciar variables con echo $VAR y env, qué significan HOME y PATH, a fijar variables con export, y la sustitución de comandos $(...) — todo práctico en una terminal del navegador.
Referenciar variables — echo $VAR y env
Las variables de entorno son ajustes compartidos por la shell y los programas.
Guardas un valor bajo un nombre, y escribir $name sustituye ese valor.
Referencia una anteponiendo $, como echo $HOME, y ejecuta env para mostrar la lista de variables de entorno fijadas actualmente.
Como variables representativas, HOME es la ruta a tu directorio personal (aquí /root), y PATH es una lista separada por dos puntos de lugares donde encontrar comandos.
Escribir solo ls funciona porque el ejecutable ls está en uno de los directorios listados en PATH, y la shell lo encuentra allí.
Otros ejemplos: PWD es el directorio de trabajo actual, USER es el nombre de usuario con el que iniciaste sesión (aquí root), y SHELL es la ruta a la shell de inicio de sesión.
| Variable | Significado | Ejemplo aquí |
|---|---|---|
$HOME | Ruta al directorio personal | /root |
$PATH | Lista de directorios donde encontrar comandos (separados por :) | /sbin:/usr/sbin:/bin:/usr/bin |
$PWD | Directorio de trabajo actual | /root |
$USER | Nombre del usuario que inició sesión | root |
$SHELL | Ruta a la shell de inicio de sesión | /bin/sh |
$name muestra un valor; env muestra la lista de todas las variables.echo $HOME # ruta home (/root)
echo $PATH # la lista de búsqueda de comandos
env # mostrar todas las variables de entorno
Fijar variables — export y $(...)
name=value pone un valor en una variable, y añadir export name lleva esa variable a los programas que lances después.
También puedes escribirlo en una sola línea como export name=value.
Puedes referenciar con $name, pero envolverlo como ${name} hace explícito el límite del nombre de la variable, así que se expande sin ambigüedad incluso cuando le siguen caracteres directamente, como ${HOME}/bin.
En caso de duda, se recomienda escribirlo en la forma ${name}.
$(command) es la sustitución de comandos: ejecuta el comando interior y lo reemplaza por esa salida como cadena en su lugar.
Por ejemplo, echo $(pwd) muestra la salida de pwd (la ruta a tu ubicación actual) como una cadena.
Úsalo cuando quieras meter el resultado de un comando en el valor de una variable.
| Cómo se escribe | Significado | Ejemplo |
|---|---|---|
$VAR | Sustituir el valor de la variable | echo $HOME |
${VAR} | Referenciar con un límite explícito (recomendado) | echo ${HOME}/bin |
VAR=value | Asignar solo en la shell actual | NAME=demo |
export VAR=value | Asignar y llevar a los procesos hijo | export NAME=demo |
$(command) | Sustituir la salida del comando | echo $(pwd) |
export lleva el valor hacia adelante, y $(...) incrusta la salida de un comando.export GREETING=hello # fijar una variable y llevarla adelante
echo $GREETING # hello
echo "today is $(date)" # incrustar la salida de un comando con $(...)
Cómo funciona PATH — cómo se encuentra un comando
PATH es una variable de entorno que lista los directorios donde encontrar comandos, separados por dos puntos :.
Cuando escribes un comando solo por su nombre, sin ruta, como ls o cat, la shell recorre los directorios listados en PATH de izquierda a derecha y ejecuta el primer ejecutable que encuentra.
Por eso ls solo funciona sin escribir la ruta completa /bin/ls.
A la inversa, un comando que no está en ninguno de los directorios de PATH da not found.
Para llamar a tu propio script solo por su nombre, necesitas añadir su ubicación a PATH, que es lo que veremos a continuación.
PATH es /sbin:/usr/sbin:/bin:/usr/bin, ls se busca desde la izquierda /sbin en orden, se encuentra en /bin y la búsqueda se detiene ahí. Nunca llega hasta /usr/bin.Cómo añadir a PATH
Cuando quieres ejecutar tu propio comando solo por su nombre, añade su ubicación a PATH.
Escríbelo como export PATH=${PATH}:/new/dir, añadiendo dos puntos y el nuevo directorio al final del PATH actual.
Incluyes ${PATH} para añadir a los lugares de búsqueda existentes sin borrarlos.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Cuál es correcto sobre el papel de PATH?
Pregunta 3¿Qué se muestra al ejecutar echo $(pwd)?