El sistema de archivos de Linux sigue el estándar Filesystem Hierarchy Standard (FHS), que define la estructura de directorios y su propósito específico. A diferencia de Windows con sus unidades (C:, D:), Linux utiliza una estructura jerárquica unificada que comienza desde el directorio raíz /
.
Arquitectura del Sistema de Archivos
Concepto Fundamental: Todo es un Archivo
En Linux, todo se representa como un archivo: dispositivos de hardware, procesos, conexiones de red, y por supuesto, archivos regulares. Esta filosofía simplifica la interacción del sistema y proporciona una interfaz uniforme.
Directorios Principales del Sistema
1. /
(Root Directory)
- Propósito: Directorio raíz del sistema
- Características: Punto de montaje principal, contiene todos los demás directorios
- Permisos: Solo accesible por root para escritura
2. /bin
(Essential User Binaries)
- Contenido: Comandos básicos del sistema disponibles para todos los usuarios
- Ejemplos:
ls
,cp
,mv
,cat
,grep
,bash
- Importancia: Necesarios para el arranque y funcionamiento básico del sistema
- Nota técnica: Estos binarios deben estar disponibles incluso en modo single-user
# Ejemplos de comandos en /bin
ls -la /bin/ls # Comando list
file /bin/bash # Shell Bash
which cp # Localizar comando copy
Lenguaje del código: PHP (php)
3. /boot
(Boot Loader Files)
- Componentes clave:
- vmlinuz: Kernel comprimido de Linux
- initrd/initramfs: Sistema de archivos inicial en RAM
- grub/: Configuración del bootloader GRUB
- config-: Configuración del kernel
- Consideraciones: Crítico para el arranque, requiere backup regular
4. /dev
(Device Files)
- Tipos de dispositivos:
- Dispositivos de bloque:
/dev/sda
,/dev/nvme0n1
(almacenamiento) - Dispositivos de carácter:
/dev/tty
,/dev/null
(terminales, dispositivos especiales) - Pseudo-dispositivos:
/dev/zero
,/dev/random
- Dispositivos de bloque:
# Ejemplos prácticos
lsblk # Listar dispositivos de bloque
ls -l /dev/sd* # Discos SATA/SCSI
cat /proc/devices # Dispositivos registrados en el kernel
Lenguaje del código: PHP (php)
5. /etc
(Configuration Files)
- Estructura organizada:
/etc/passwd
: Base de datos de usuarios/etc/group
: Información de grupos/etc/hosts
: Resolución local de nombres/etc/fstab
: Tabla de sistemas de archivos/etc/systemd/
: Configuración de servicios systemd/etc/network/
: Configuración de red (Debian/Ubuntu)
# Comandos útiles para /etc
sudo find /etc -name "*.conf" -type f # Buscar archivos de configuración
grep -r "hostname" /etc/ # Buscar configuraciones de hostname
Lenguaje del código: PHP (php)
6. /home
(User Home Directories)
- Estructura típica por usuario:
.bashrc
: Configuración del shell Bash.ssh/
: Claves y configuración SSHDesktop/
,Documents/
,Downloads/
: Directorios estándar XDG
- Permisos: Cada usuario tiene control total sobre su directorio home
7. /lib
y /lib64
(Shared Libraries)
- Propósito: Bibliotecas compartidas esenciales para el sistema
- lib vs lib64: Bibliotecas de 32-bit vs 64-bit
- Contenido importante:
libc.so
: Biblioteca C estándarld-linux.so
: Enlazador dinámico- Módulos del kernel en
/lib/modules/
# Verificar bibliotecas de un programa
ldd /bin/ls # Dependencias de bibliotecas
ldconfig -p | grep libc # Caché de bibliotecas
Lenguaje del código: PHP (php)
8. /media
y /mnt
(Mount Points)
/media
: Montaje automático de dispositivos removibles/mnt
: Montaje temporal manual de sistemas de archivos- Uso moderno:
/media
gestionado por sistemas como udisks2
9. /opt
(Optional Software)
- Filosofía: Software de terceros que se instala como un paquete completo
- Estructura:
/opt/[proveedor]/[aplicación]
- Ejemplos: Google Chrome, aplicaciones comerciales, software empaquetado
10. /proc
(Process Information Filesystem)
- Naturaleza: Sistema de archivos virtual (no ocupa espacio en disco)
- Información del sistema:
/proc/cpuinfo
: Información del procesador/proc/meminfo
: Información de memoria/proc/[PID]/
: Información de procesos específicos/proc/sys/
: Parámetros configurables del kernel
# Ejemplos de uso de /proc
cat /proc/version # Versión del kernel
cat /proc/uptime # Tiempo de actividad del sistema
ls /proc/[PID]/ # Información de un proceso específico
Lenguaje del código: PHP (php)
Directorios Adicionales Importantes
/root
(Root User Home)
- Directorio home del usuario root
- Separado de
/home
por razones de seguridad - Accesible solo con privilegios de root
/sbin
(System Binaries)
- Comandos de administración del sistema
- Ejemplos:
fdisk
,iptables
,systemctl
- Tradicionalmente solo para root, aunque algunos son accesibles por usuarios normales
/srv
(Service Data)
- Datos servidos por el sistema
- Estructura sugerida:
/srv/[servicio]/
- Ejemplos:
/srv/www/
,/srv/ftp/
/sys
(System Filesystem)
- Sistema de archivos virtual para información del kernel
- Interfaz sysfs para dispositivos y drivers
- Complementa a
/proc
con información más estructurada
/tmp
(Temporary Files)
- Archivos temporales del sistema y aplicaciones
- Limpiado periódicamente (boot o tmpfiles)
- Permisos especiales (sticky bit) para seguridad multiusuario
/usr
(User System Resources)
- Estructura secundaria importante:
/usr/bin
: Comandos de usuario (no esenciales)/usr/sbin
: Comandos de administración (no esenciales)/usr/lib
: Bibliotecas para programas en/usr/bin
y/usr/sbin
/usr/local
: Software instalado localmente/usr/share
: Datos compartidos (documentación, iconos, etc.)
/var
(Variable Data)
- Datos que cambian durante la operación:
/var/log
: Archivos de registro del sistema/var/cache
: Datos de caché de aplicaciones/var/spool
: Colas de datos (correo, impresión)/var/lib
: Datos de estado persistente de aplicaciones/var/run
: Datos de tiempo de ejecución (PID files)
Mejores Prácticas y Consideraciones de Seguridad
Montaje y Permisos
# Verificar puntos de montaje
mount | column -t
df -h # Uso de espacio por sistema de archivos
findmnt # Vista en árbol de montajes
Lenguaje del código: PHP (php)
Navegación Eficiente
# Comandos útiles para navegación
find / -name "config" -type f 2>/dev/null # Buscar archivos de configuración
locate filename # Búsqueda rápida (requiere updatedb)
which comando # Localizar binarios en PATH
whereis programa # Localizar binarios, fuentes y manuales
Lenguaje del código: PHP (php)
Backup y Mantenimiento
- Directorios críticos para backup:
/etc
,/home
,/var/lib
,/opt
- Directorios que NO necesitan backup:
/tmp
,/proc
,/sys
,/dev
- Estrategia recomendada: Backup incremental de datos de usuario y configuraciones
Diferencias entre Distribuciones
Red Hat/CentOS/Fedora
- Configuración de red en
/etc/sysconfig/network-scripts/
- SELinux contexts en
/etc/selinux/
Debian/Ubuntu
- Configuración de red en
/etc/network/
(tradicional) o/etc/netplan/
(Ubuntu 18+) - Directorios específicos como
/etc/apt/
Arch Linux
- Filosofía minimalista, menos directorios poblados por defecto
- Configuración centralizada en
/etc/
Herramientas de Diagnóstico y Monitoreo
# Análisis del sistema de archivos
du -sh /* # Uso de espacio por directorio raíz
ncdu / # Análisis interactivo de uso de disco
lsof # Archivos abiertos por procesos
fuser -v /path # Procesos usando un archivo/directorio
Lenguaje del código: PHP (php)
Conclusión
El sistema de archivos de Linux proporciona una estructura lógica y predecible que, una vez comprendida, facilita enormemente la administración del sistema. La adherencia al FHS garantiza consistencia entre distribuciones y facilita la portabilidad de scripts y conocimientos.
Puntos clave para recordar:
- La estructura es jerárquica y unificada
- Cada directorio tiene un propósito específico y bien definido
- La comprensión de esta estructura es fundamental para la administración eficiente
- Las herramientas de línea de comandos aprovechan esta organización para proporcionar funcionalidad potente y flexible
La maestría en el sistema de archivos de Linux es la base para convertirse en un administrador de sistemas competente y un desarrollador más eficiente en entornos Unix-like.

imagen vía LinkedIN