Comprendiendo la Estructura de Directorios Virtuales de Linux

Los usuarios principiantes de Linux se enfrentan a una enorme montaña de información por aprender. ¿Qué es esta cosa de la terminal? ¿Cómo actualizo el software? ¿Qué distribución elijo? Estas son todas preguntas comunes. Sin embargo, hay una pregunta que sigue atormentando a muchos usuarios de Linux más experimentados: ¿qué hay en cada uno de los directorios del sistema de directorios virtual de Linux? Aquí cubrimos todo desde “/” hasta “/boot” en nuestra guía del sistema de directorios virtual de Linux.
¿Qué es el Sistema de Directorios Virtual de Linux?
Un Sistema de Directorios Virtual es una forma de organizar archivos y directorios en un sistema operativo informático. La razón por la que se llama “virtual” es que no hay un componente físico real: en Windows, tienes tu unidad “C:”, unidad “D:” y así sucesivamente. En Linux, todos los discos físicos se tratan como archivos en tu sistema de directorios virtuales. De ahí proviene la frase “todo es un archivo”. Incluso el disco en tu sistema del que estás trabajando para tu sistema operativo se trata como un archivo.
También lee: Comandos útiles de Linux para listar el contenido de un directorio
Comprendiendo el Sistema de Directorios Virtual
El directorio raíz: /
Comencemos con el principio. El directorio “/” (o “raíz”) es el que contiene todo en el sistema. Al ejecutar el comando cd /, estás alejándote lo más posible en tu sistema. Cambia al directorio “/” y ejecuta el comando ls. Comenzarás a ver lo que quiero decir. En lugar de “Documentos”, “Descargas” o “Imágenes”, obtienes cosas como “bin”, “dev” y “home”. Será un poco diferente dependiendo de tu distribución, pero hay algunos directorios principales que prácticamente siempre estarán ahí. Todos los directorios desde aquí tendrán “/” al principio porque esa es la raíz de todo – de ahí el nombre “raíz”.


El directorio Binario: /bin
El directorio “/bin” contiene todos los programas binarios en tu sistema. Si miras ahí, verás comandos comunes como cd y ls que ya hemos utilizado. También puedes encontrarlos ejecutando los comandos which cd o which ls. La mayoría de las veces, en distribuciones modernas, el directorio “/bin” está vinculado al directorio “/usr/bin”. El directorio “/usr” se cubrirá más adelante, pero en resumen, se utilizan para separar los binarios destinados al sistema y administradores en el directorio “/bin” y los usuarios del sistema en “/usr/bin”.

El directorio de Arranque: /boot
El directorio “/boot” contiene toda la información básica que tu sistema necesitará para arrancar. Todos los núcleos que has instalado en tu sistema, todos los archivos de configuración para esos núcleos, información para Grub – todo eso. Es un directorio muy importante, y se trata como una partición del sistema EFI separada de tu sistema. Esa es la razón por la que, cuando creas particiones manuales, necesitas hacer al menos “/” y “/boot” por separado.

El directorio de Dispositivos: /dev
El directorio “/dev” contiene todos los archivos de dispositivos en el sistema, que son todos los componentes de hardware en tu sistema (así como algunos otros dispositivos virtuales importantes como “null” y “random”). Al mirarlo, notarás cosas como “cpu”, “sda”, “tty”, “stderr”, “stdin”, y “stdout”. Todos esos son importantes archivos de dispositivos con los que interactuarás diariamente.

El directorio Etc.: /etc
Esto es para cosas aleatorias. El directorio “/etc”, pronunciado como Etsy, es donde encontrarás muchos archivos de configuración para la mayoría de las cosas en tu sistema. Cosas como SSH, Pipewire, systemD y Firefox tienen archivos de configuración aquí. Es como el cajón de cosas de la Sistema de Directorios Virtual – muy importante pero un poco complicado de encontrar cosas.
También lee: Cómo eliminar archivos residuales después de desinstalar software en Linux
El directorio de Inicio: /home
El directorio “/home” alberga todos los archivos personales de los usuarios. Cuando se crea un usuario, generalmente se le da un directorio “/home” y permisos para editar solo los archivos en su directorio “/home”. Algunos usuarios también tienen derechos de administrador, que es lo que sudo te proporciona, pero eso es solo asumiendo los derechos del usuario root. Si ejecutas whoami y sudo whoami sucesivamente, comenzarás a ver eso. Este es el directorio con el que probablemente estés más familiarizado.

El directorio de Bibliotecas: /lib, /lib32, y /lib64
Los directorios “/lib” contienen todas bibliotecas específicas que los programas en “/bin” o “/sbin” (cubierto más adelante) usarán. Aquí es donde se almacena el firmware, junto con otras bibliotecas para instalar diferentes partes del núcleo y Módulos del Núcleo. Los directorios hermanos “/lib32” y “/lib64” solo contienen versiones para sistemas operativos de 32 y 64 bits y son casi idénticos al directorio base “/lib”.

El directorio de medios: /media y /mnt
Estoy agrupando estos juntos porque a menudo cumplen la misma función. El directorio “/media” es donde se almacenan los contenidos de CDs, DVDs u otros medios extraíbles. Si conecto una unidad USB, la verás aparecer en “/media” en la mayoría de los sistemas.
El directorio “/mnt” se utiliza para montajes a largo plazo. Por ejemplo, si añadiera otro SSD a mi sistema, podría establecer un punto de montaje permanente para él en el directorio “/mnt”. O, si tengo un NAS en mi hogar, también podría montar esa información en el directorio “/mnt”.
/opt
El directorio “/opt” alberga paquetes de software adicionales para uso de un usuario. Es mucho más pequeño de lo que piensas: el mío solo alberga archivos para Brave, Google Chrome y Sublime Text. Si añades un repositorio para un software, probablemente lo encontrarás en “/opt.”
/proc
El directorio “/proc” alberga información sobre hardware y información de procesos en curso. A medida que el sistema determina cómo es el paisaje de hardware, eso se almacena en el directorio “/proc”. Por ejemplo, si ejecutas el comando cat /proc/cpuinfo, aprenderás más sobre tu CPU de lo que pensabas que querías saber.
También lee: Usando el Sistema de Archivos /proc para Examinar el Funcionamiento Interno de tu Linux
/root
Este es solo la versión del usuario root de un directorio “/home”. Si realizas mucho trabajo como usuario root, encontrarás cosas allí.
/run
El directorio “/run” es algo similar a “/proc”, solo que en lugar de hardware, “/run” se enfoca en software. Ambos almacenan lo que se llama “datos volátiles en tiempo de ejecución”, lo que significa que estos directorios se vacían prácticamente cada vez que reinicias el sistema, pero almacenan información útil a medida que el sistema operativo aprende más sobre tu sistema y para qué lo estás utilizando.
/sbin
El directorio “/sbin” alberga programas binarios que solo deberían estar disponibles para el usuario root. Por ejemplo, el programa binario que apaga tu sistema (poweroff) probablemente debería quedarse en “/sbin.”

/srv
Este es el directorio que contiene datos específicos del sitio basados en los servicios accesibles por Web que estás ejecutando. Cosas como FTP y HTTP tendrán información específica almacenada aquí. No estoy ejecutando ninguno, así que mi directorio “/srv” está vacío.
/sys
El directorio “/sys” alberga información sobre dispositivos clave en el sistema. En el mío, verás cosas como “/sys/dev”, “/sys/firmware”, y “/sys/kernel.” Esto es una selección de los dispositivos de hardware super importantes en el directorio “/dev”.

/tmp
El directorio “/tmp” se utiliza para almacenar información temporal de varios programas en tu sistema. La información se almacena aquí solo por un par de días sin un reinicio, así que son solo bloqueos temporales de información para mantener libre otro espacio de almacenamiento. No hay mucho que la mayoría de los usuarios alguna vez tendrán que hacer con el directorio “/tmp”.
/usr
El directorio “/usr” está siendo tocado cada vez más comúnmente. Ahora, los directorios como “/bin,” “/lib,” y “/sbin” están vinculados a versiones de esos directorios en “/usr.” Puedes ver eso cuando ejecuto el comando ll en mi sistema.
Son enlaces simbólicos, así que pueden ser desvinculados, pero el sistema termina leyendo de los directorios “/usr/bin” o “/usr/sbin”, en lugar de los directorios “/bin” o “/sbin.” Todo esto se hace para simplificar la jerarquía presente y hacer que sea más fácil encontrar estos programas. Es algo que mejora la calidad de vida y facilita el cambio de Linux a Unix o no tener ubicaciones fijas para diferentes binarios.
/var
El directorio “/var” es similar al directorio “/tmp”, pero alberga datos durante un poco más de tiempo. También almacena cosas como archivos de registro e imágenes de disco de máquinas virtuales KVM.
Como puedes ver, el sistema de directorios virtual de Linux está destinado a organizar los archivos que tu sistema utilizará y simplificar la administración y gestión de tu sistema. Obviamente, puedes hacer lo que quieras con este sistema (esa es la belleza de Linux), pero dejar las cosas como están está bien para la mayoría de los usuarios de escritorio. También podrías querer averiguar cuál es el mejor sistema de archivos para Linux en 2021.