Estructura jerárquica de directorios de Linux

Los sistemas de ficheros de Linux se organizan en una estructura jerárquica de tipo árbol. El nivel más alto de esta estructura es / o directorio raíz. De este directorio cuelgan todos los demás directorios del sistema. Estos pueden ser estáticos (contienen archivos que no cambian sin la intervención del usuario root), dinámicos (contienen archivos cambiantes), compartidos y restringidos.

arbol linux
Jerarquía de Ficheros en  Linux

Cualquier dirección de archivo o carpeta en Linux empieza por el directorio raíz (/) seguido de todos los directorios y subdirectorios que lo contienen, separados cada uno de ellos por /. Por ejemplo, observemos la ruta completa de la cabecera stdio.h:

/usr/include/c++/5/tr1/stdio.h

en esta ruta vemos que stdio.h se encuentra en el directorio tr1, el cual pertenece al directorio 5, el que a su vez está en el directorio c++. Este último directorio está contenido en el directorio include, el cual pertenece al directorio usr y es este directorio usr el que cuelga del directorio raíz (/).

Ahora, pasemos a explicar los directorios más importantes de esta estructura tipo árbol.

/ (raíz): Llamado directorio root. Es el directorio raíz (el nivel más alto dentro de la jerarquía) de donde nacen el resto de directorios, independientemente de que estén almacenados físicamente en discos o unidades separadas. Cuando se instala el sistema, se le indica que el punto de montaje es justamente /.

Los siguientes directorios son aquellos que aparecen bajo el directorio raíz:

    • /bin (binarios): Es un directorio estático donde se almacenan todos los binarios ejecutables de usuario. Cualquier usuario puede ejecutarlos.
      • cat: Concatenar varios archivos para posteriormente desplegarlos en pantalla.
      • cp: Para copiar ficheros ficheros.
      • echo: Repite o despliega la salida estándar cualquier argumento que se le indique para posteriormente saltar una línea.
      • ls: Para listar directorio.
    • /boot (arranque): Es un directorio estático que contiene todos los ejecutables y archivos necesarios para el arranque del sistema. Por ejemplo, la imagen del kernel Linux en /boot/vmlinuz. También, podemos encontrar en /boot el gestor de arranque GRUB.En algunas distribuciones, este directorio se almacena en su propia partición separada del resto.
    • /dev (dispositivos): Contiene a los dispositivos conectados al sistema como usb, disco duro, cdrom, etc. La ruta en la que se encuentra cualquier volumen (partición o dispositivo externo) conectado al sistema empieza por /dev.
    • /etc (etcétera): Aquí se guardan los ficheros de configuración de los programas instalados así como ciertos scripts que se ejecutan en el inicio del sistema.

      Los valores de estos ficheros de configuración pueden ser completados o sustituidos por los ficheros de configuración de usuario que cada uno tiene en su respectivo “home” (carpeta personal).

      En este directorio encontramos a:

          • /etc/passwd: Contiene parte de la información de las cuentas de los usuarios del sistema.
          • /etc/fstab: Lista los sistemas de archivos montados automáticamente en el arranque del sistema por el comando mount -a.
          • /etc/shells: Listado de intérpretes de comandos admitidos.

    • /home (hogar): Es el directorio donde se encuentran los directorios personales de cada usuario con su nombre de usuario respectivo. Cada uno de estos contiene los directorios: /Documentos, /Imágenes, /Música, /Plantillas y /Videos, los cuales ayudan al usuario a clasificar su información. /home también contiene archivos y carpetas ocultas, los cuales guardan información de configuraciones de la aplicaciones de usuario.

      Nota: Todos los archivos y carpetas ocultas en Linux empiezan por un punto seguido del nombre de la carpeta.

      Los usuarios normales tienen total control de (lectura, escritura, ejecución) de los archivos de su “home”. El superusuario (root) tiene acceso total a todos los directorios de los demás usuarios.

      En muchas distribuciones de Linux, el directorio /home se almacena en su propia partición separada del resto, con esto se busca que, en caso de reinstalar el sistema operativo, uno pueda mantener intacta la partición de /home.

    • /lib (bibliotecas): Contiene las bibliotecas del sistema que son necesarias para ejecutar los binarios de /bin y /sbin, así como módulos y controladores (drivers).

      Uno de los subdirectorios que se encuentran en este directorio es /lib/modules el cual contiene módulos dinámicos del kernel Linux.

      En los sistemas operativos de 64 bits , existe otro directorio llamado /lib64 donde se encuentran las bibliotecas para aplicaciones de 64 bits.

    • /media (medios): Es donde se encuentran las particiones montadas automáticamente en el disco duro y los medios extraíbles como los dispositivos usb, unidades de CD/DVD, cámaras digitales, etc.

    • /mnt (montajes): Es un directorio donde se encuentran los sistemas de archivos montados manualmente en el disco duro. En algunas distribuciones ya no se usa (pasó a ser /media).

    • /opt (opcionales): Destinado para guardar paquetes adicionales de aplicaciones.

    • /proc : Directorio dinámico especial que contiene la información del estado del sistema, además de los procesos y aplicaciones en ejecución.

      Aquí encontramos a:

          • /proc/cpuinfo: Información acerca del procesador: su tipo, marca, modelo, rendimiento, etc.
          • /proc/modules: Indica los módulos del núcleo que han sido cargados hasta el momento.

    • /root: Es el directorio del usuario root o superusuario del sistema. Es el único directorio de usuario que no está incluido en /home.

    • /sbin (binarios del sistema): Son los binarios de administración con tareas propias del sistema operativo necesarios para arrancar y montar el directorio /usr. De uso exclusivo por el superusuario.

      En este directorio encontramos a:

          • /sbin/fsck: Para verificar el estado de los sistemas de ficheros.
          • /sbin/ifconfig: Información sobre los distintos dispositivos de red.

    • /srv (servicios): Almacena información del sistema sobre ciertos servicios que ofrece (FTP, HTTP, etc).

    • /sys (sistema): Contiene información sobre los eventos del sistema operativo tal y como los ve el kernel Linux.

    • /tmp (temporales): Es un directorio donde se almacenan ficheros temporales. Cada vez que se inicia el sistema este directorio se limpia de forma automática.

    • /usr: Es el directorio que almacena los archivos de lectura sobre las utilidades de usuario. Contiene los siguientes subdirectorios:

          • /usr/bin: Conjunto de binarios de la mayoría de aplicaciones de escritorio entre otras.
          • /usr/include: Los ficheros cabeceras para C y C++.
          • /usr/lib: Las bibliotecas para C y C++.
          • /usr/local: Es otro nivel dentro que ofrece una jerarquía parecida al propio directorio /usr. Se suele utilizar para instalar software.
          • /usr/sbin: Contiene los programas de administración del sistema.
          • /usr/share: Archivos compartidos como ficheros de configuración, imágenes, iconos, etc. Aquí podemos encontrar a usr/share/doc el cual contiene cierta documentación del sistema y a usr/share/man que contiene manuales.
          • /usr/src: Tiene en su interior el código fuente para el kernel Linux.

    • /var: Contiene ficheros del sistema para el administrador. Algunos de ellos son el buffer de impresión, logs, emails de los usuarios del sistema, base de datos, etc.

          • /var/cache: Se almacenan datos cacheados para las aplicaciones.
          • /var/lib: Información sobre el estado actual de las aplicaciones, modificable por las propias aplicaciones.
          • /var/lock: Ficheros que se encargan de que un recurso solo sea usado por una aplicación determinada que ha pedido su exclusividad, hasta que esta lo libere.
          • /var/log: Es uno de los subdirectorios más importantes ya que aquí se guardan todo tipo de logs del sistema.
          • /var/mail: Los correos de los usuarios.
          • /var/opt: Datos usados por los paquetes almacenados en /opt.
          • /var/run: Información sobre el sistema desde que inició.
          • /var/spool: Datos esperando a que sean tratados por algún tipo de proceso.
          • /var/tmp: Aquí se almacenan ficheros temporales cuyo contenido no se borra de forma automática tras el reinicio del sistema (a diferencia de /tmp).

Deja un comentario