Visión general del sistema de archivos
En Linux, todos los archivos y directorios están organizados bajo un único directorio raíz denotado por /, formando una estructura jerárquica en forma de árbol. Este diseño difiere significativamente de sistemas operativos que utilizan múltiples letras de unidad como punto de partida.
/
├── bin/ # Binarios esenciales para el usuario
├── boot/ # Archivos de arranque del sistema
├── dev/ # Archivos de dispositivo
├── etc/ # Configuración del sistema
├── home/ # Directorios personales de usuarios
├── lib/ -> usr/lib/ # Bibliotecas compartidas esenciales
├── lib64/ -> usr/lib64/
├── media/ # Puntos de montaje para medios removibles
├── mnt/ # Directorio para montajes temporales
├── opt/ # Paquetes de software adicionales
├── proc/ # Sistema de archivos virtual del kernel
├── root/ # Directorio personal del superusuario
├── run/ # Datos transitorios de la sesión
├── sbin/ -> usr/sbin/ # Binarios esenciales de administración
├── srv/ # Datos para servicios ofrecidos por el sistema
├── sys/ # Interfaz con el kernel para dispositivos
├── tmp/ # Archivos temporales
├── usr/ # Jerarquía secundaria para datos de usuario
└── var/ // Datos variables como registros y caché
Exploración de directorios clave
/ - El directorio raíz
Es el punto de origen absoluto del sistema de archivos. Cualquier dispositivo de almacenamiento, partición o recurso de red debe ser montado como un subdirectorio dentro de este árbol para que sea accesible.
/bin y /sbin
Tradicionalmente, /bin contenía binarios necesarios para la operación básica del sistema, disponibles para todos los usuarios, incluso en modo monousuario. Por ejempllo, comandos como ls o cat. /sbin alojaba binarios de administración del sistema, como init o reboot, pensados principalmente para el root. En las distribuciones modernas, estos directorios suelen ser enlaces simbólicos que apuntan a sus contrapartes bajo /usr.
ls -la /bin
# Muestra el contenido del directorio /bin, que probablemente sea un enlace.
# En lugar de listar comandos individuales, es común verificar la ruta:
type ls
# ls es /usr/bin/ls
/etc - Central de configuración
Aquí se encuentran los archivos de configuración globales del sistema. Incluye parámetros de red, información de usuarios, configuración de servicios y arranque del sistema. Ejemplos comunes son /etc/fstab (tabla de sistemas de archivos) y /etc/apt/sources.list (en distribuciones basadas en Debian).
/home y /root
Cada usuario tiene un directorio personnel dentro de /home (ej: /home/maria) donde almacena sus archivos y configuraciones. El directorio personal del superusuario root está separado en /root por razones de seguridad, manteniéndose accesible incluso cuando /home no está montado.
/var - Datos variables
Almacena datos que crecen o cambian durante la operación del sistema. Los archivos de registro (/var/log), colas de correo (/var/spool/mail) y datos de aplicaciones (/var/lib) residen aquí. La partición que aloja /var suele ser una de las que más crece.
sudo journalctl --since "1 hour ago" --priority=err
# Consulta los errores recientes del sistema usando journald,
# una alternativa moderna a los archivos de registro en /var/log.
/proc y /sys - Sistemas de archivos virtuales
No son directorios físicos en el disco. /proc proporciona una enterfaz a estructuras de datos del kernel, exponiendo información sobre procesos y configuración del sistema en tiempo real. /sys expone una vista de los dispositivos y controladores del kernel.
cat /proc/loadavg
# Muestra la carga promedio del sistema (1, 5 y 15 minutos).
# /sys/class/thermal/thermal_zone0/temp podría mostrar la temperatura de la CPU.
Evolución: La unificación de /usr
Distribuciones modernas como Ubuntu, Fedora y Debian han adoptado el esquema usr merge. En este modelo, los directorios /bin, /sbin y /lib en la raíz son enlaces simbólicos que apuntan a /usr/bin, /usr/sbin y /usr/lib respectivamente. Esto simplifica la jerarquía del sistema, unifica la gestión de paquetes y facilita la administración de snapshots y contenedores.