Cómo se encuentran estructurados los directorios en GNU/Linux?

Carpetas Linux

Muchos de nosotros aprendimos a utilizar nuestra computadora gracias a alguna versión de Windows. Una de las primeras habilidades que nos enseñan (o al menos así me paso a mí) es a administrar nuestra información contenida en nuestro equipo, ya sea en el disco duro o medios extraíbles (aun recuerdo a mis profesores realizándonos exámenes acerca de cómo mover, copiar, crear, organizar y localizar archivos y carpetas dentro del sistema, realmente se ponían pesados esos tíos con el administrador de archivos de Win 3.1 XD).

En esta ocasión veremos cómo está estructurada la jerarquía de los directorios en GNU/Linux. Es cierto que no es extremadamente necesario conocerlo al 100%, pero créanme que les va a facilitar mucho la vida tener una idea de la misma ;).

Pretendo que este artículo cumpla con el doble propósito de ser una guía de acceso rápido, así como a su vez, sea una guía de referencia para futuras consultas. Para esto, la información que, creo yo, es más “especializada” se encuentra en un color más tenue para tratar de facilitar la lectura rápida.

Estructura general de los directorios

En el sistema de ficheros de UNIX (y similares, como GNU/Linux), existen varias sub-jerarquías de directorios que poseen múltiples y diferentes funciones de almacenamiento y organización en todo el sistema. Estos directorios pueden clasificarse en:

<° Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin…)

<° Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos sólo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. (/var/mail, /var/spool, /var/run, /var/lock, /home…)

<° Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.

<° Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock…)

root: es el nombre convencional de la cuenta de usuario que posee todos los derechos en todos los modos (mono o multi usuario). root es también llamado superusuario. Normalmente esta es la cuenta de administrador. El usuario root puede hacer muchas cosas que un usuario común no puede, tales como cambiar el dueño o permisos de archivos y enlazar a puertos de numeración pequeña. No es recomendable utilizar el usuario root para una simple sesión de uso habitual, ya que pone en riesgo el sistema al garantizar acceso privilegiado a cada programa en ejecución. Es preferible utilizar una cuenta de usuario normal y utilizar el comando su para acceder a los privilegios de root de ser necesario.

Dicha estructura se representa en forma de árbol, como se muestra en la siguiente imagen:

arbol directorios

donde la raíz del árbol (/) es la base de toda la estructura de directorios y las ramas (directorios y archivos) surgen o cuelgan de dicha base.

 Estructura del árbol de directorios en GNU/Linux

Algunas distribuciones de Linux hacen modificaciones a la estructura del árbol de directorios, para adaptarlo a sus propias necesidades. De todas formas el estándar es el siguiente:

jerarquia archivos

Así es como se ve en mi equipo (hasta en las capturas de escritorio reflejo mi espíritu metalero XD):

Sistema de archivos

Basta de rodeos y adentrémonos en el tema…

Descripción de la estructura del árbol de directorios

raiz

 

<° / (raíz): Parecido a el directorio raíz “C:\” de los sistemas operativos DOS y Windows. Es el nivel más alto dentro de la jerarquía de directorios, es el contenedor de todo el sistema (accesos al sistema de archivos, incluyendo los discos extraíbles [CD’s, DVD’s, pendrives, etc.]).

bin

<° /bin (binarios): Los binarios son los ejecutables de Linux (similar a los archivos .exe de Windows). Aquí tendremos los ejecutables de los programas propios del sistema operativo.

boot

<° /boot (arranque): Aquí nos encontramos los archivos necesarios para el inicio de Linux, desde los archivos de configuración del cargador de arranque (Grub – Lilo), hasta el propio kernel del sistema.

Cargador de arranque (boot loader en inglés): es un programa sencillo (que no tiene la totalidad de las funcionalidades de un sistema operativo) diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar.

Núcleo o kernel: es un software que constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema.

dev

<° /dev (dispositivos): Esta carpeta contiene los dispositivos del sistema, incluso los que no se les ha asignado (montado) un directorio, por ejemplo micrófonos, impresoras, pendrives (memorias USB) y dispositivos especiales (por ejemplo, /dev/null). Linux trata los dispositivos como si fueran un fichero más para facilitar el flujo de la información.

/dev/null o null device (periférico nulo): es un archivo especial que descarta toda la información que se escribe o redirecciona en él. A su vez, no proporciona ningún dato a cualquier proceso que intente leer de él, devolviendo simplemente un EOF o fin de fichero. La forma más comúnmente utilizada es mediante la redirección, ya que /dev/null es un archivo especial y no un directorio; por lo tanto, no se pueden mover (mv) ni copiar (cp) ficheros en su interior.

etc

<° /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 complementados o sustituidos por los ficheros de configuración de usuario que cada uno tiene en su respectivo “home” (carpeta personal).

  • /etc/opt/ Archivos de configuración para los programas alojados dentro del directorio /opt.
  • /etc/X11/ Archivos de configuración para el X Window System, versión 11.

X: es el encargado de mostrar la información gráfica de forma totalmente independiente del sistema operativo.

  • /etc/sgml/ Archivos de configuración para SGML.

El lenguaje SGML: Consiste en un sistema para la organización y etiquetado de documentos. Sirve para especificar las reglas de etiquetado de documentos y no impone en sí ningún conjunto de etiquetas en especial.

  • /etc/xml/ Archivos de configuración para XML.

XML: Es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML. Resulta más sencillo de implementar pues evita algunas características avanzadas de SGML.

home

<° /home (hogar): Aquí se encuentran los ficheros de configuración de usuario así como los archivos personales del mismo (documentos, música, videos, etc.), a excepción del superusuario (administrador, root) el cual cuenta con un directorio aparte. Similar a “Mis Documentos” en Windows.

lib

<° /lib (bibliotecas): Contiene las bibliotecas (mal conocidas como librerías) esenciales compartidas de los programas alojados, es decir, para los binarios en /bin/ y /sbin/, las bibliotecas para el núcleo, así como módulos y controladores (drivers).

media

<° /media (media/medios): Contiene los puntos de montaje de los medios extraíbles de almacenamiento, tales como lectores de CD-ROM , Pendrives (memoria USB), e incluso sirve para montar otras particiones del mismo disco duro, como por ejemplo, alguna partición que sea utilizada por otro sistema operativo.

mnt

<° /mnt (montajes): Este directorio se utiliza normalmente para montajes temporales de unidades. Es una directorio semejante a /media, pero es usado mayoritariamente por los usuarios. Sirve para montar discos duros y particiones de forma temporal en el sistema; no necesita contraseña, a diferencia del directorio /media.

opt

<° /opt (opcionales): Contiene Paquetes de programas opcionales de aplicaciones estáticas, es decir, que pueden ser compartidas entre los usuarios. Dichas aplicaciones no guardan sus configuraciones en este directorio; de esta manera, cada usuario puede tener una configuración diferente de una misma aplicación, de manera que se comparte la aplicación pero no las configuraciones de los usuarios, las cuales se guardan en su respectivo directorio en /home.

proc

<° /proc (procesos): Contiene principalmente archivos de texto, sistema de archivos virtuales que documentan al núcleo y el estado de los procesos en archivos de texto (por ejemplo, uptime, network).

root

<° /root (administrador): Es el /home del administrador (solo para él). Es el único /home que no está incluido -por defecto- en el directorio anteriormente mencionado.

sbin

<° /sbin (binarios de sistema): Sistema de binarios especial, comandos y programas exclusivos del superusuario (root), por ejemplo, init, route, ifup, como mount, umount, shutdown). Un usuario puede ejecutar alguno de estas aplicaciones de comandos, si tiene los permisos suficientes, o bien, si tiene la contraseña del superusuario.

srv

<° /srv (servicios): Información del sistema sobre ciertos servicios que ofrece (FTP, HTTP…).

tmp

<° /tmp (temporales): Es un directorio donde se almacenan ficheros temporales (por ejemplo: por el navegador de internet). Cada vez que se inicia el sistema este directorio se limpia.

usr

<° /usr (usuarios): Jerarquía secundaria de los datos de usuario; contiene la mayoría de las utilidades y aplicaciones multiusuario, es decir, accesibles para todos los usuarios. En otras palabras, contiene los archivos compartidos, pero que no obstante son de sólo lectura. Este directorio puede incluso ser compartido con otras computadoras de red local.

  • /usr/bin: Conjunto de ejecutables (no-administrativos para todos los usuarios) de la mayoría de aplicaciones de escritorio entre otras (por ejemplo firefox). Son de solo lectura, pero pueden tener su propia configuración para cada usuario en /home. Algunos ejecutables comparten las mismas librerías que comparten las demás aplicaciones, de manera que generalmente no hay dos librerías idénticas en un mismo sistema, lo cual ahorra memoria y proporciona más orden.
  • /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.
  • /usr/sbin: Sistema de binarios no esenciales; por ejemplo, demonios para varios servicios de red. Es decir, contiene programas que no proporcionan una interfaz de usuario y generalmente se ejecutan al inicio del sistema o en ciertas circunstancias. No son directamente manejados por el usuario mientras se ejecutan, aunque sí pueden ser configurados antes de que sean ejecutados.
  • /usr/share: Archivos compartidos como ficheros de configuración, imágenes, iconos, themes, etc.
  • /usr/src: Códigos fuente de algunas aplicaciones y del kernel Linux. Al igual que /mnt, esta carpeta es manejada por los usuarios directamente para que éstos puedan guardan en él el código fuente de programas y bibliotecas y así puedan accesarlo fácilmente, sin problemas con permisos. Permite que el código fuente tenga un espacio propio, accesible pero apartado de todos los usuarios.
  • /usr/X11R6/ Sistema X Window System, Versión 11, Release 6. Este directorio se relaciona con el entorno gráfico.

var

 

<° /var (variables): Archivos variables, tales como logs, archivos spool, bases de datos, archivos de e-mail temporales, y algunos archivos temporales en general. Generalmente actúa como un registro del sistema. Ayuda a encontrar los orígenes de un problema.

  • /var/cache: Memoria caché de las aplicaciones, aunque también se utiliza el directorio /tmp para lo mismo.
  • /var/crash/ Se depositan datos e información, referentes a las caídas o errores del sistema operativo. Es más específico que /var en general.
  • /var/games/ Datos variables de los juegos del sistema. Este directorio no es imprescindible y muchas veces es omitido por las propias aplicaciones de juegos, pues utilizan la carpeta de usuario en /home para guardar datos variables como configuraciones, por poner un ejemplo. De todas maneras, los juegos de gnome utilizan este directorio.
  • /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 sólo sea usado por una aplicación determinada que ha pedido su exclusividad, hasta que ésta 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: Buzón correos o mensajes de los usuarios. Si no utiliza cifrado, generalmente se utiliza entonces la carpeta personal para la misma labor por parte de programas que manejen correos electrónicos.
  • /var/opt: Datos usados por los paquetes almacenados en /opt.
  • /var/run: Información reciente. Trata acerca del funcionamiento del sistema desde el último arranque. Por ejemplo, los usuarios actualmente registrados o logueados, que han ingresado; y los demonios que están en ejecución.
  • /var/spool: Tareas a la espera de ser procesados (por ejemplo, colas de impresión y correo no leído).
  • /var/tmp: Archivos temporales que, a diferencia de /tmp, no se borran entre sesiones o reinicios del sistema, pero que de todas maneras siendo prescindibles.

<° /sys (sistema): Contiene parámetros de configuración del sistema que se está ejecutando. Datos referidos al kernel, bus, dispositivos, firmware, fs (filesystem) y otros.

<° /lost+found (perdido y encontrado): En los sistemas Unix, cada una de las particiones/sistema de ficheros cuenta con un directorio llamado /lost+found en el cual se almacenan ficheros y directorios (o restos de ellos) recuperados tras una revisión del sistema de ficheros  a través de la herramienta fsck, todo ello provocado habitualmente por cuelgues del sistema, apagados forzados del equipo, cortes de corriente, etc.

Todos aquellos ficheros y directorios recuperados tras un fsck se almacenan con la siguiente estructura en el directorio /lost+found, el nombre de cada fichero es el número de inodo:

drwxr-xr-x 3 root root   4096 2010-03-12 09:38 #123805
drwxr-xr-x 3 root root   4096 2010-03-12 09:38 #125488
drwxr-xr-x 3 root root   4096 2010-03-12 09:38 #135836
-rw-r–r– 2 root root   2473 2010-03-02 16:03 #137864
-rw-r–r– 2 root root  18505 2010-03-02 16:03 #137865
-rw-r–r– 2 root root  56140 2010-03-02 16:03 #137866
-rw-r–r– 2 root root  25978 2010-03-02 16:03 #137867
-rw-r–r– 2 root root  16247 2010-03-02 16:03 #137868
-rw-r–r– 2 root root 138001 2010-03-02 16:03 #137869
-rw-r–r– 2 root root  63623 2010-03-02 16:03 #137870
-rw-r–r– 2 root root  34032 2010-03-02 16:03 #137871
-rw-r–r– 2 root root   2536 2010-03-02 16:03 #137872

Estos ficheros pueden estar corruptos o incompletos, pero podemos tener suerte y encontrar aquello que creíamos perdido tras el fsck. Tendremos que revisar uno a uno los ficheros y directorios debido a que el nombre del fichero se ha perdido. Puede ser una ardua tarea revisar todos los ficheros y directorios e intentar volverlos a poner en su sitio, en algunos casos puede llegar a ser prácticamente imposible.

fsck (file system check o bien file system consistency check): es una utilidad cuya función es solventar inconsistencias del sistema de archivos, ya que corrige los posibles errores en el sistema. fsck se ejecuta automáticamente al inicio del sistema ante alguna anomalía, pero también puede ser utilizada manualmente por el administrador del sistema para forzar una verificación.

Así que ya saben, estúdienlo bien, que para mañana hay examen XD…

Fuentes:

Wikipedia

http://tuxpepino.wordpress.com/2008/01/09/jerarquia-directorios-gnulinux/


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

      David Segura M dijo

    Muy ú.til para irme enterando con un poco más de detalle como es la organización den Linux, gracias!

         jose dijo

      me pueden ayudar en que carpetas se guardan las contraseñas de usuarios en ubuntu

           Joaquin J. H. dijo

        /etc/shadow
        pero las contraseñas mostradas te aparecerán encriptadas

      proper dijo

    wooooow!!
    Excelente trabajo @Perseo

      nerjamartin dijo

    Enhorabuena Perseo, gran trabajo!! 🙂

      Oscar dijo

    Excelente tuto, sería muy bueno, dentro de tus posibilidades, ponerlo en PDF dentro del foro en Tutoriales. +1.

         David Segura M dijo

      Siempre puedes usar http://www.printerfriendly.com para ello

      Marco dijo

    +10!!!! fabuloso, acabo de agregar el artículo a mis favoritos. explicación clara de la estructura de Linux. no sabía muchas de estas cosas!!!!

         elav <° Linux dijo

      Es cierto Perseo. Excelente artículo 😀

         KZKG^Gaara dijo

      Honestamente, yo aprendí un montón también con este artículo… increíble lo bien explicado que está, Perseo de veras tiene un don para esto O_O

           Courage dijo

        Ya claro

      electron22 dijo

    Excelente, muchas gracias 😀

      Perseo dijo

    Gracias a todos por comentas 😀

         electron22 dijo

      No puede hacer un PDF esta información hay que compartirla 😀

           Perseo dijo

        Claro que lo haremos, solo dame un pequeño espacio (últimamente me ha llegado algo de trabajo :D) y con todo gusto lo haré 😉

             electron22 dijo

          Estaré pendiente 😀

      Chango dijo

    Está excelente la explicación. Muy buen artículo.

      Yoyo dijo

    Inmejorable 😉

      Carlos-Xfce dijo

    Muchas gracias por este artículo, Perseo. Este tipo de información enriquece mucho al blog, ya que no sólo se trata de noticias o de mostrar cómo configurar algo, sino de conocer más a fondo nuestro sistema operativo. Sin duda ahora sé un poquito más de cosas que siempre quise saber cuando me enfrenté a esos archivos «rebeldes» que no me dejaban hacer cambios porque no era «root», je je je.

         Perseo dijo

      Muchas gracias por comentar amigo, trataremos de seguir mejorando :D.

      P.D.: Perdón por el retraso, pero ando probando otras distros 😉 para mi equipo.

      jelpasajero dijo

    Sabéis de algún comando que obligue a una aplicación ajena al sistema a instalarse por narices en opt en vez de hacerlo en el sistema de archivos?

      arturo molina dijo

    Esta muy bien explicado, por fin entendi porque cuando usaba el live cd de Slax, basado en Slackware, montaba las cosas en mnt y no en media. Saludos.

      Wibort dijo

    Excelente articulo, muy completo, gracias por el aporte.

    Pdta. Sonata Rules! 😛

      Roy dijo

    Muy bueno. Gracias por la inversión.

      jeodriht dijo

    Muy buen artículo, muchas gracias por la información!

      jeronimoacero dijo

    hola es posible bajar esta guía en pdf o doc para imprimir así la puedo leer tranquilo en cualquier lugar, si es posible me pasas el link, chau muchas gracias

         KZKG^Gaara dijo

      Hola.
      Puedes imprimir directamente mediante el mismo navegador, o bien puedes guardar esta página (Archivo-Guardar) y luego en casa lo imprimes.

      Espero haberte ayudado 😉
      Saludos y bienvenido al blog.

      benybarba dijo

    la verdad es el mejor documentado y resumido q eh visto felicidades para el creador de este articulo

      oscar dijo

    Muchísimas gracias por el aporte!!! me viene muy bien para enterarme de que va la movida!

      kann dijo

    El directorio /dev/ está lleno de ficheros, que apuntan a dispositivos «no unidades» (puerto serie, paralelo, unidades físicas o virtuales de disco… bla, bla, bla) por el resto, muy buen !!!

      Belen dijo

    Hola muy buenas tengan todos ustedes, por recomendación de un amigo llegue a este bonita web y aprender mas de Linux, tengo aun muchísimas dudas es que creo que he estado acostumbrada a usar windows, pero cuando vi la computadora de mi amigo me sorprendí y por eso quisiera saber mas.

    Chicos saben en windows hay particiones lógicas(disco C, disco D) en Linux como puedo hacer eso porque miren en windows si pasaba algo borraba la C y mediante un backup que tenia guardado en la D podía recuperarlo en cambio en Linux no se como es estoy totalmente perdida.

    Bueno espero que me ayuden porfavor, me gusta Linux y quisiera que me ayudaran.

    Bye

         elav dijo

      Hola Belen:

      Pues lo primero y fundamental es tener ganas de aprender, y por lo visto eso tienes de sobra. Mi consejo es que empieces leyendo este artículo y los enlaces que puedes encontrar en el mismo.

      No obstante, para hacer lo mismo que en Windows la cosa es relativamente fácil, solo tienes que separar la partición para el /home. Pero como te decía, si no tienes ni idea del Sistema de Ficheros en GNU/Linux, creo que deberías empezar por ese artículo 😉

           Belen dijo

        Muchísimas gracias, buenos sabes hasta donde pude leer, recién supe que son distribuciones, me esta gustando mucho kubuntu, vi otras pero el nombrecito me parece lindo >..< empezare a dar mis primeros pasos 🙂 gracias reiteradamente, les comentare como me esta yendo con Linux.

        Bye 🙂

             elav dijo

          Muy buena elección ^_^

      Konzentrix dijo

    Muy buen tutorial, si señor. Se nota que te lo has currado. Para los que no entienden mucho será de gran ayuda y para los que estamos más puestos nos sirve como buen recordatorio ameno de leer.

      Goku dijo

    Buen día, me gustó mucho tu artículo. Tengo una duda:
    ¿Cómo puedo guardar archivos en el directorio raíz? Es que /home ya está llena y quiero saber si se puede usar el directorio / para tener más espacio, ahí hay más de 20 Gb que quiero aprovechar. No me gustaría tener que redimensionar particiones. Gracias por tu ayuda.

      Rodolfo dijo

    Muy buen artículo, felicitaciones y sigan así, los sigo y no se olviden que siempre los invito a conocer BSD (operating system)

      Samuel dijo

    Excelente trabajo, muy bien explicado. Gracias…!

      portaro dijo

    Muy bueno de lo más complet oque he pudido leer hasta hoy.

    Saludos.

      Jose dijo

    Hola te hago una consulta en que consiste el numero de Linuxuser lo e visto en distintos sitios de internet. Desde ya muchas gracias por tu respuesta.

      Alejandra Diel dijo

    Genial!! Tengo instalado Huayra en mis net de la escuela y me resultan mejores que Windows. Me fue muy útil la información. Gracias por compartir!!

      Simón Valdés dijo

    Gracias, excelente trabajo, esto si que aclaró un monton de dudas y me ayudo a que sea mas fácil la instrucción al mundo Linux.

      Nicolás dijo

    Hola, tengo una ultra con disco hibrido y me gustaría instalar todo lo referido al inicio en la parte ssd, estuve buscando y no encontre algo especifico pero si esta nota http://www.linux-es.org/node/112 que por lo que podría intuir en un principio, tendrian que se los directorios /bin/ , /boot/ y /dev/ .
    Que opinan? Saludos!

      VMS dijo

    Muy bueno, la verdad es triste que la mayoría no supiéramos este tipo de cosas, más aún llevando tanto tiempo usando linux. Lo más triste de todo, es que de aquí cinco minutos se me habrá olvidado todo. Pero me ha ido muy bien leer esto. Estaba pensando en usar dos discos para la misma distribución y por eso andaba buscando este tipo de información. Mola esta guía.

      MIGUEL SANCHEZ TRONCOSO dijo

    Excelente artículo, muy completo.

    De ahora en adelante sigo tu blog

      L3x dijo

    Hola a todos. Necesito saber como hacer que la informacion de ayuda de una aplicacion de QT (C++) sea reconocida por el comando man. Alguien conoce donde se encuentran los ficheros asociados a los comandos de linux???? Gracias de antemano.

      Rulas dijo

    Muy Util, gracias

      Rulas dijo

    mi duda es, en DOS, para copiar o mover usao c: como raiz y bueno el destino la ruta apartir de c:\ y a qui no se de donde partir ????’

      Matias dijo

    Muy buen aporte, nunca comento mucho en blog y esas cosa, pero tu trabajo a acabado de ser buenísimo, eh estado leyendo por todos lados y estudiando mucho… pero esto acaba de poner todo en su lugar y creo que esa prueba sera una emoción tremenda.

      Enrique dijo

    Excelente aporte. Muchas gracias por la informacion!.