Ahora que sabemos en la carpeta en la que nos encontramos y como ver su contenido, algo que es fundamental al trabajar en una terminal es saber moverse entre directorios o cambiar de carpetas.
Cambiar de carpetas
Existen varios comandos que nos permiten movernos entre carpetas. A continuación te presento algunos de los más interesantes, desde el clásico cd
hasta el práctico j
(autojump):
Para movernos entre carpetas, lo más habitual suele ser utilizar el comando cd
(change directory) seguido del nombre de la carpeta (movimiento relativo) o ruta completa (movimiento absoluto) a la que queremos acceder.
$ pwd # /home
$ cd manz # Accede a una ruta relativa
$ pwd # /home/manz
$ cd /var/log # Accede a una ruta absoluta
Ten en cuenta que al escribir el nombre de la carpeta o ruta, puedes pulsar TAB y el sistema te sugiere las opciones que encajen con lo que has escrito (o autocompleta si solo hay una opción), de modo que no tendrás que escribirlo por completo.
Existen algunas palabras clave para referirnos a rutas específicas:
# «Sale» de la carpeta actual y se mueve a la carpeta padre
cd ..
# Accede a la carpeta personal del usuario
cd ~
cd
De la misma forma, se pueden hacer combinaciones como ls ~/.oh-my-fish/
, que es lo mismo que ls /home/manz/.oh-my-fish/
(si soy el usuario manz) o ls ../etc
sería equivalente a ls /etc
si estoy en la carpeta /home
.
Si acostumbras a trabajar en una terminal, es muy común perder bastante tiempo escribiendo los nombres de las carpetas o pensando cuál era la ruta a la que quieres saltar, si no estás muy familiarizado con ella.
El comando z
(zoxide) es una mejora interesante del cd
, ya que se basa en saltar a la carpeta «frecuente» y más reciente que más se aproxime en similitud al parámetro escrito. Veamoslo con un ejemplo:
$ cd /etc/nginx
$ ls -lh
$ cd /home/manz
$ z nginx
$ pwd
/etc/nginx
Recuerda que zoxide no viene instalada por defecto. Se trata de un comando creado en Rust, por lo que necesitaremos tener instalado Rust, y luego instalar el comando mediante un cargo install zoxide
.
Una vez instalado, editaremos nuestra configuración con nano ~/.bashrc
y añadiremos al final la siguiente linea:
eval "$(zoxide init bash)"
Si utilizamos otra terminal como zsh
, editaremos la configuración ~/.zshrc
y en el texto de arriba en lugar de bash
escribiremos zsh
.
Carpetas del sistema
Linux tiene una estructura de carpetas bien definida, donde cada carpeta tiene una finalidad muy concreta, y en ella se guardan los archivos correspondientes. Por otra parte, mientras que en Windows la ruta raíz (la primera carpeta del sistema) es C:\
, en Linux es /
, puesto que todo parte de esa ruta raíz.
Desde esa ruta /
nos podemos encontrar varias carpetas, cada una con una finalidad concreta:
Carpeta | Descripción |
---|---|
/ | Carpeta raíz del sistema. Equivalente a C:\ en Windows. |
/bin | Binarios (comandos ejecutables) principales. |
/boot | Archivos de arranque. Equivale a C:\bootmgr en Windows. |
/dev | Dispositivos físicos de hardware. |
/etc | Archivos de configuración. Equivale al registro de Windows. |
/home | Carpetas del usuario. Equivale a C:\Users en Windows. |
/lib | Bibliotecas del sistema. Equivale a C:\Windows\System32 . |
/lost+found | Archivos corruptos o recuperados. |
/media | Medios extraíbles. Generalmente, carpetas de CD/DVD, usb, unidades extraíbles... |
/mnt | Montaje temporal reservado para el administrador de sistemas. |
/opt | Aplicaciones o paquetes adicionales (opcionales). |
/proc | Procesos internos del sistema. |
/root | Carpeta personal del administrador. |
/run | Información reciente. |
/sbin | Archivos binarios reservados para root. Sólo accesible si tienes privilegios. |
/srv | Datos específicos para servicios. |
/sys | Nueva versión o evolución de /proc/ |
/tmp | Archivos temporales. Muchas veces, eliminados al reiniciar el sistema. |
/usr | Datos de paquetes instalados. Equivale a C:\Archivos de Programa en Windows. |
/var | Logs, cache, variables, etc... |
Normalmente, como usuarios, estaremos continuamente trabajando sobre la carpeta de nuestro usuario, por ejemplo, /home/manz
, que es la zona de trabajo de ese usuario.
Más adelante, en otro artículo, veremos como realizar otras operaciones de manipulación como copiar, borrar, mover y crear carpetas o ficheros.
Explorador de archivos
Otra opción interesante para trabajar con carpetas en Linux es utilizar un explorador de archivos de terminal. Antes de instalar uno, recuerda que es recomendable no instalarlo simplemente por evitar aprender a utilizar los comandos cd
. Eso te llevaría a evitar aprender una herramienta sólo y exclusivamente por comodidad.
Los exploradores de archivos de terminal más populares son los siguientes:
Explorador de archivos | Descripción |
---|---|
broot | Explorador de archivos de terminal que permite lanzar archivos. Creado en Rust. |
nnn | Explorador de archivos pequeño, rápido y sin necesidad de configuración. |
mc | Explorador de archivos completo, diseñado en base al clásico Norton Commander de los 90. |
ranger | Explorador de archivos de terminal inspirado en VIM. |
lf | Explorador de archivos de terminal minimalista desarrollado en Go. |
Si esto exploradores te ayudan a moverte por las estructuras de carpetas en tus primeros pasos, está bien, pero intenta no evitar aprender a utilizar el comando
cd
y anteriores, ya que probablemente desemboque en carencias.