Nociones básicas de la Terminal

Directorio de trabajo (working directory)

Una terminal tiene asociado un directorio de trabajo, que viene a ser básicamente el directorio del sistema de archivos en el que nos encontramos. Por defecto, cuando abrimos una nueva terminal Bash, el directorio de trabajo inicial es el directorio del usuario del sistema, o más comunmente denominado directorio home (casa) del usuario. Si, por ejemplo, nuestro nombre de usuario en el sistema es jsilvestre, entonces el directorio de trabajo incial es /home/jsilvestre. A partir de dicho directorio podemos realizar multitud de operaciones con ficheros, descargar archivos de internet, ejecutar programas, etc.

circle-info

En la terminal, podeis consultar en cualquier momento cuál es el directorio de trabajo actual, invocando el comando pwd (ver sección "Comandos Básicos").

Rutas (Paths) de directorios y ficheros

Muchos de los comandos que vamos a utilizar requieren uno o varios directorios o ficheros como argumentos. En general, hablaremos de rutas (paths) a directorios o ficheros, que pueden ser:

  • Relativas al directorio de trabajo actual: p.e. PRA/p0 (directorio), PRA/README.txt (fichero).

  • Absolutas en el sistema de ficheros: p.e. /home/jsilvestre/PRA/p0 (directorio), /home/jsilvestre/PRA/README.txt (fichero).

Cuando especificamos rutas relativas, podemos hacer uso de las siguientes referencias:

  • Referencia .. al directorio superior. Por ejemplo:

    • ../test.cpp: apunta al fichero test.cpp ubicado en el directorio superior.

    • ../../../: apunta al directorio que se encuentra tres niveles por encima del directorio de trabajo actual.

    • ../../source/app.cpp

  • Una referencia . al directorio actual. Por ejemplo:

    • ./test.cpp: apunta al fichero test.cpp ubicado en el directorio actual.

    • ./PRA: apunta al subdirectorio PRA ubicado en el directorio actual.

circle-exclamation
circle-info

Como regla general, se recomienda usar el conjunto de caracteres: {a-z, A-Z, 0-9, _, -} para nombrar ficheros y directorios.

Variables de entorno

La terminal bash proporciona una serie de variables de entorno globales y de usuario. Las variables de entorno son pares nombre-variable = valor-variable que tienen la capacidad de alterar el funcionamiento de los programas del sistema operativo que las consultan. Para acceder a ellas, se debe utilizar el carácter $ (dólar) delante del identificador de la variable. Algunas variables de entorno relevantes y predefinidas en sistemas GNU/Linux son:

  • $HOME: contiene la ruta absoluta al directorio home del usuario. P.e. /home/jsilvestre.

  • $USER: contiene el nombre de usuario del usuario del sistema que está ejecutando la terminal o el proceso correspondiente. P.e. jsilvestre.

  • $PATH: Esta variable contiene una lista de directorios separados por dos puntos (:) en los que el sistema busca ficheros ejecutables (programas). Cuando se invoca un comando en la terminal, el shell busca dicho comando en los diferentes directorios mencionados en la variable $PATH. Si se encuentra el comando, se ejecuta. De lo contrario, devuelve el error "comando no encontrado".

circle-info

En la terminal, podeis inspeccionar el contenido de estas variables de entorno usando el comando echo. Por ejemplo:

echo $HOME