
¡Hola a todos!. Trabajar con la línea de comando a veces suele ser un poco tedioso para algunos, pero definitivamente suele ser la forma más rápida de trabajar en sistemas GNU/Linux en muchos casos; es por eso, que les traigo unos tips para poder mejorar la experiencia de uso de la shell en Linux.
Ir al directorio anterior
En ocasiones, estamos dentro de un directorio y pasamos a otro totalmente diferente (con una ruta absoluta diferente digamos…), pero por cosas del destino, es necesario que volvamos a esa carpeta anterior; en éste caso, podemos usar la siguiente línea de comando:
cd -
Veamos un ejemplo. Entramos en el directorio /etc/apache2 , pero vamos a /var/www/html para hacer algunos cambios de permisos en archivos (digamos); luego, queremos volver a la carpeta /etc/apache2
cd /etc/apache2
cd /var/www/html
cd -

Recordar directorios para entrar en ellos
Contamos con una memoria (Un arreglo más bien) para almacenar rutas de directorios; para gestionar ésta memoria, utilizamos 3 comandos no muy conocidos que se describirán a continuación:
- El primero se llamado pushd , el cual guarda la ubicación de un directorio en la memoria (o pila) para que podamos ingresar en dicho directorio después.
- Tenemos otro comando llamado popd , el cual nos sirve para eliminar una ruta guardada en la memoria.
- Finalmente, el comando dirs, que nos permite ver las rutas de directorios guardadas en la memoria (pila).
Entonces, con pushd guardamos las rutas que queremos tener a disposición para ser usadas después, con dirs verificamos el ID de la ruta que quisiéramos acceder de nuevo y con popd podemos eliminar una ruta de la memoria.
Tomar en cuenta que el ID 0 (Cero) de la memoria siempre será el directorio actual; además, con pushd podemos seleccionar (ir) a un directorio guardado en la memoria.
Es un poco confuso, pero vamos a ver con un ejemplo para su mejor entendimiento. Digamos que estamos trabajando con varios directorios los cuales queremos tener en memoria porque estaremos movilizándonos entre ellos constantemente; para nuestro ejemplo, en lugar de usar el típico cd , usaremos el comando pushd dado que queremos entrar al directorio y guardarlo en la memoria.
pushd /var/www/html
pushd /etc/apache2/sites-enabled/
pushd /var/log/apache2/
pushd /etc/php/7.2/apache2/
Si queremos ver cómo quedo nuestra memoria de directorios, ingresamos:
dirs -v

Si, digamos, queremos entrar de nuevo al directorio /var/www/html , demos de ingresar la siguiente línea de comando:
pushd +3
Lo que sucede es que, nos cambiamos al directorio /var/www/html y, el orden de la memoria cambiará dado que el ID 0 (Cero) ahora será nuestra ubicación actual; de ahí, se corren los números según el orden, o sea, el que era 4, pasa a ser el ID 1, el que era 0 ahora será 2, el que era 1 ahora será 3 y así. Es como un array.

Si de ésa memoria quisiéramos eliminar una ruta dado que ya no nos interesa entrar de nuevo en ese directorio (digamos el ID 2), ingresamos la siguiente línea de comando:
popd +2
Eliminamos esa ruta y se reacomodará la información respetando el orden.

Y de esta forma podemos ir trabajando con los ID’s de directorios dentro de la memoria.
Otro uso básico de pushd y popd
Otra forma básica de usar estos dos comandos es de la siguiente manera: Si digamos quisiéramos guardar un único directorio en memoria (por ejemplo /var/www/html) y más tarde entrar en él, haríamos así:
cd /var/www/html
pushd /cualquier/otro/directorio
Explicando un poco, entramos primero a /var/www/html (éste queda con ID 0 en ése momento) y, con el pushd, entramos a otro directorio guardándolo con el ID 0 (/cualquier/otro/directorio) y, el que nos interesa ( /var/www/html ) quedaría con el ID 1.
De ahí, podemos entrar a otras carpetas, ejecutar otros comandos, etc. hasta que tenemos la necesidad de entrar nuevamente a la carpeta /var/www/html la cual recordamos que la tenemos en la memoria (ID 1)… entonces, para ir de nuevo a dicho directorio ejecutamos:
popd
La explicación del porqué pasa esto es (según comprendo) que se eliminaría la posición actual (ID 0) de la memoria y colocaría la ruta del directorio con ID 1 en el ID 0, además que nos ubicará en dicho directorio. Por lo menos, así lo entiendo yo 😅

Eso es todo estimados. ¡Saludos!