Linux Structure: Directory tree ¿Qué contiene cada Carpeta?

Este artículo estará centrado en – “la estructura del árbol de directorios de Linux – y otros derivados de UNIX, así que si eres nuevo en Linux, o simplemente tienes curiosidad por conocer más a fondo como se organiza su aparentemente compleja estructura de directorios, así como lo que contiene cada uno de ellos, este es tu artículo.


Estructura de Carpetas en Linux y otros derivados de Unix

Direct Tree - BLOG - 2

La estructura de los directorios de Linux, así como su contenido y funciones, viene definida en el denominado Filesystem Hierarchy Standard (FHS), que vendría a ser como un estándar de jerarquía para los sistemas de archivos en Linux y otros derivados de UNIX.

Direct Tree - BLOG - 3

FHS distingue entre lo que serían directorios estáticos, que son aquellos que contienen binarios, bibliotecas, documentación, etc., de los dinámicos, que son aquellos que requieren de acciones más a menudo, tales como copias de seguridad, etc.

También podemos diferencias claramente lo que son los directorios compatibles, que significa que contienen ficheros que pueden utilizarse desde otros dispositivos, de los no compatibles, que solo pueden utilizarse desde el dispositivo en el que se encuentran.

Direct Tree - BLOG - 4

Antes de empezar a listar los diferentes directorios, es importante que sepas que el hecho de que todos ellos parten de una única raíz común, no significa que varios de ellos no puedan estar en particiones separadas del resto. De hecho, en muchas distros GNU/Linux es una práctica muy común el hecho ubicar ciertos directorios en particiones separadas del resto.

Direct Tree - BLOG - 6

Direct Tree - BLOG - 5

Toda la estructura de directorios en los sistemas basados en UNIX parte de un directorio raíz también llamado directorio root y que se simboliza por “/. De este directorio, es desde donde nacen todo el resto de directorios.

Cualquier dirección de archivo o carpeta en Linux empieza por el directorio raíz o “/, seguido de todos los directorios y subdirectorios que que lo contienen, separados cada uno de ellos por “/”. A continuación conocerás con más en detalle a todos los directorios principales que parten del directorio raíz, junto con algunos de sus subdirectorios.

Direct Tree - BLOG - 7

El directorio /bin es un directorio estático y es donde se almacenan todos los binarios necesarios para garantizar las funciones básicas a nivel de usuario. En /bin solo de guardan los ejecutables de usuario, ya que los binarios necesarios para tareas administrativas gestionadas por el usuario root o superusuario del sistema se encuentran en el directorio /sbin.

Incluye también los binarios que permiten la ejecución de varias utilidades estándar de la terminal de Linux, concretamente cat,cp, echo, grep, gzip, kill, ls, mv, rm, ping, su, ps, tar y vi.

Direct Tree - BLOG - 8

Es un directorio estático e incluye todos los ejecutables y archivos que son necesarios en el proceso de arranque del sistema, y que deberán ser utilizados antes que que el kernel empiece a dar las órdenes de ejecución de los diferentes módulos del sistema. Es también donde se encuentra el gestor de arranque GRUB.

Direct Tree - BLOG - 9

Este directorio incluye todos los dispositivos de almacenamiento conectados al sistema, tales como particiones, otros discos duros internos, unidades USB, y en definitiva cualquier cosa que el sistema pueda entender como un volumen lógico de almacenamiento. Como particularidad, en Linux todo es gestionado como un archivo, incluyendo los volúmenes montados.

Direct Tree - BLOG - 10

Es el encargado de almacenar los archivos de configuración tanto a nivel de componentes del sistema operativo en sí, como de los programas y aplicaciones instaladas a posteriori. Es un directorio que debería contener únicamente archivos de configuración, y no debería contener binarios.

Direct Tree - BLOG - 11

Es el directorio de usuario del sistema, y por lo tanto, el destinado a almacenar todos los archivos del usuario, como documentos, fotos, vídeos, música, plantillas, etc. También incluye archivos temporales de aplicaciones ejecutadas en modo usuario, que sirven para guardar las configuraciones de programas, etc.

Dentro de /home se encuentran los directorios personales de todos los usuarios del sistema, nombrados según el nombre de usuario utilizado.  Así por ejemplo, si en un sistema pongamos que hay dos usuarios denominados User1 y User2, la estructura será así:

-) /home/User1

-) /home/User2

Cada directorio de usuario contiene asimismo diferentes carpetas para ayudarlo a clasificar la información. Estas generalmente son: /Documentos, /Imágenes, /Música, /Plantillas y /Vídeos, así como otros archivos y carpetas ocultas, que son las encargados de guardar la información de configuraciones de las aplicaciones del usuario.

Para visualizar los ficheros ocultos dentro del directorio individual de cada usuario, puedes hacerlo rápidamente mediante la combinación de teclas “CTRL + F“. Por cierto, y muy importante, todas los archivos y carpetas ocultas en Linux empiezan por un punto, seguido del nombre de la carpeta.

Captura: Combinación de teclas "CTRL + F" para ver los "archivos ocultos".
Captura: Combinación de teclas “CTRL + F” para ver los “archivos ocultos”.

En muchas distribuciones es una práctica recomendada el hecho de ubicar el directorio /home es una partición separada del resto, por tal de facilitar que, en caso de reinstalar el sistema operativo, puedas mantener intacta la partición de la /home, y de este modo mantener todos los archivos personales.

Direct Tree - BLOG - 14

Incluye las bibliotecas esenciales que son necesarias para que se puedan ejecutar correctamente todos los binarios que se encuentran en los directorios /bin y /sbin, asi como los módulos del propio kernel. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, referida a las bibliotecas para aplicaciones de 64 bits.

Direct Tree - BLOG - 15

Representa el punto de montaje de todos los volúmenes lógicos que se montan temporalmente, ya sean unidades externas USB, otras particiones de disco, etc.

En la mayoría de distros GNU/Linux, desde hace ya algún tiempo, cada vez que se monta una unidad externa, partición, etc., esta se monta dentro del directorio /media y a su vez dentro de un directorio especifico dependiendo del usuario del sistema que monta el volumen.

De este modo, si en un sistema hay varios usuarios, pongamos User1 y User2, los puntos de montaje de los volúmenes que montan cada uno de ellos se mostraran en directorios separados tal como así:

-) /media/User1

-) /media/User2

Direct Tree - BLOG - 16

Es un directorio vacío que cumple funciones similares a /media, pero que actualmente no se suele utilizar, ya que la mayoría de distros hacen uso de este último para los puntos de montaje temporales.

Direct Tree - BLOG - 17

En cierto modo vendría a ser como una extensión del directorio /usr, pero en este caso van todos aquellos archivos de solo lectura que son parte de programas autocontenidos y que, por lo tanto, no siguen los estándares de almacenar los diferentes archivos dentro de los diferentes subdirectorios de /usr (que sería lo recomendable).

Haciendo una analogía con Windows, vendría a ser algo como el directorio de “Archivos y Programas”, pero en este caso, como hemos dicho, para determinados programas que ya vienen auto-contenidos.

Direct Tree - BLOG - 18

Este directorio contiene información de los procesos y aplicaciones que se están ejecutando en un momento determinado en el sistema, pero realmente no guarda nada como tal, ya que lo que almacena son archivos virtuales, por lo que el contenido de este directorio es nulo.

Básicamente son listas de eventos del sistema operativo que se generan en el momento de acceder a ellos, y que no existen dentro del directorio como tales.

En este enlace tienes información más detallada sobre las particularidades de este directorio y todo el juego que le puedes sacar a la hora de obtener información muy diversa del sistema.

Direct Tree - BLOG - 19

Vendría a ser como el directorio /home del usuario root o superusuario del sistema.

Direct Tree - BLOG - 20

A diferencia de los otros usuarios, que se encuentran todos dentro de /home en sus respectivas subcarpetas, el directorio del usuario root está en su propia carpeta colgando directamente de la raíz del sistema.

Direct Tree - BLOG - 21

Si hemos dicho que en /bin se almacenaban los binarios relativos a las funciones normales de usuario, /sbin hace lo mismo pero para los binarios relativos tareas propias del sistema operativo, y que solamente pueden ser gestionadas por el usuario root, tales como el arranque, tareas de restauración, reparación, etc.

Direct Tree - BLOG - 22

Sirve para almacenar archivos y directorios relativos a servidores que puedas tener instalados dentro de tu sistema, ya sea un servidor web www, un servidor FTP, CVS, etc. Así, por ejemplo, en el caso de tener instalado un servidor web, sería buena idea tener el directorio web público dentro de /srv, tal como así:

-) /srv/www

Direct Tree - BLOG - 23

Al igual que /proc, contiene archivos virtuales que proveen información del kernel relativa a eventos del sistema operativo. Es en cierto modo una evolución de /proc, y a diferencia de este último, los archivos se distribuyen de forma jerárquica.

Direct Tree - BLOG - 24

Como ya da a entender su nombre, sirve para almacenar archivos temporales de todo tipo, ya sea de elementos del sistema, o también de diferentes aplicaciones a nivel de usuario como puedan ser Firefox o Chrome/Chromium.

Direct Tree - BLOG - 25

El directorio /usr viene de “User System Resources” y actualmente sirve para almacenar todos los archivos de solo lectura y relativos a las utilidades de usuario, incluyendo todo el software instalado a través de los gestores de paquetes de cada distribución. Contiene los siguientes subdirectorios:

-) /usr/bin

-) /usr/include

-) /usr/lib

-) /usr/local

-) /usr/sbin

-) /usr/share

-) /usr/src

Antiguamente /usr también contenía la carpeta particular de usuario, junto con todos sus documentos, vídeos, fotos, etc., pero más adelante se creo /home para este propósito, dejando /usr reservado para los archivos relativos a programas.

Direct Tree - BLOG - 26

contiene varios archivos con información del sistema, como archivos de logging, emails de los usuarios del sistema, bases de datos, información almacenada en la caché, información relativa a los paquetes de aplicaciones almacenados en /opt, etc. En cierto modo se podría decir que actúa a modo de registro del sistema.

Algunos comandos para moverte por las diferentes Carpetas desde la Terminal

Captura: Terminal Linux "ejecutando comandos".
Captura: Terminal Linuxejecutando comandos“.

Conocer, aunque solo sea por encima, el significado de cada uno de los directorios en Linux te puede ayudar mucho a entender ciertos comandos o a realizar ciertos pasos que requieren acceder a un archivo dentro de un directorio.

Direct Tree - BLOG - 27

Por defecto, al estar conectado (login) en el sistema como usuario normal, te encuentras en tu directorio particular dentro de /home. Esto significa que cualquier comando que invoques se realizará teniendo en cuenta esta ubicación.

A continuación, si te parece, vamos a repasar dos o tres comandos importantes que te servirán para moverte más ágilmente a través del árbol de directorios desde la terminal de Linux.

-) El comando pwd es básico, ya que en cualquier momento te mostrará la dirección absoluta del directorio en el que te encuentras estés donde estés.

$ pwd

-) El comando ls te será muy útil a la hora de conocer todos los archivos y carpetas contenidos en el directorio actual.

$ ls

-) El comando cd te permite acceder a otro directorio a partir de su ruta absoluta o relativa (respecto al directorio en el que te encuentres).

$ cd /etc

Y para terminar…

Si has llegado hasta aquí y aun no teníais del todo claro como funcionaba el esquema de directorios en UNIX y Linux, espero que el artículo os haya sido de utilidad y que tengais mucho más claro como funciona y el significado de cada directorio.


Si realmente deseas profundizar mucho más, te recomiendo la lectura de estas guías de The Linux Documentation Project (en inglés).

Captura: Pincha en la imagen para ver las "guías" en inglés.
Captura: Pincha en la imagen para ver las “guías” en inglés.

Salu2


TonyHAT - 165

Anuncios

Un comentario en “Linux Structure: Directory tree ¿Qué contiene cada Carpeta?”

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s