Estructura de directorios en el sistema operativo gnu linux

10
Estructura de directorios en GnuLinux 9 12 oct 2015 | Linux Tags: estructura de directorios Los recién iniciados en Linux, o algunas personas que quieran ir un poco más allá, seguramente alguna vez se han preguntado que contiene cada una de las carpetas de su sistema operativo. Con el fin de responder a esta inquietud he decidido redactar este artículo. Al finalizar la lectura de este artículo todo el mundo debería tener una idea clara de como se estructura un sistema operativo GNU‐ Linux y del contenido que hay en cada uno de los directorios del sistema operativo. ¿QUÉ ES EL ESTÁNDAR DE JERARQUIA DEL SISTEMA DE ARCHIVOS? El estándar de jerarquía del sistema de archivos, también conocido como FHS ﴾Filesystem Hierarchy Standard﴿, es la norma creada por la comunidad que define los directorios y el contenido de los directorios en los sistemas operativos GNU/Linux y Unix. Mediante la normativa que fija como debe ser la estructura de directorios en GNU‐Linux conseguimos disponer de un sistema de directorios completamente estructurado, coherente y estandarizado obteniendo así las siguiente ventajas: 1. El software que tenemos instalado en nuestro ordenador sabe en todo momento las carpetas y los permisos de las carpetas de nuestro ordenador. Por lo tanto nuestro software en todo momento sabe donde encontrar y almacenar la información que necesita para su funcionamiento. 2. Los usuarios saben en todo momento el contenido que hay en cada una de las carpetas del ordenador. 3. Ayuda a la hora de realizar el mantenimiento de un sistema operativo.

Transcript of Estructura de directorios en el sistema operativo gnu linux

Page 1: Estructura de directorios en el sistema operativo gnu linux

Estructura de directorios enGnu­Linux  9

12 oct 2015   |  Linux Tags:  estructura de directorios

Los recién iniciados en Linux, o algunas personas que quieran ir un poco más allá, seguramentealguna vez se han preguntado que contiene cada una de las carpetas de su sistema operativo. Con elfin de responder a esta inquietud he decidido redactar este artículo. Al finalizar la lectura de esteartículo todo el mundo debería tener una idea clara de como se estructura un sistema operativo GNU‐Linux y del contenido que hay en cada uno de los directorios del sistema operativo.

¿QUÉ ES EL ESTÁNDAR DEJERARQUIA DEL SISTEMA DEARCHIVOS?El estándar de jerarquía del sistema de archivos, también conocido como FHS ﴾Filesystem HierarchyStandard﴿, es la norma creada por la comunidad que define los directorios y el contenido de losdirectorios en los sistemas operativos GNU/Linux y Unix.

Mediante la normativa que fija como debe ser la estructura de directorios en GNU‐Linux conseguimosdisponer de un sistema de directorios completamente estructurado, coherente y estandarizadoobteniendo así las siguiente ventajas:

1. El software que tenemos instalado en nuestro ordenador sabe en todo momento las carpetas ylos permisos de las carpetas de nuestro ordenador. Por lo tanto nuestro software en todomomento sabe donde encontrar y almacenar la información que necesita para sufuncionamiento.

2. Los usuarios saben en todo momento el contenido que hay en cada una de las carpetas delordenador.

3. Ayuda a la hora de realizar el mantenimiento de un sistema operativo.

Page 2: Estructura de directorios en el sistema operativo gnu linux

4. Ayuda a otorgar los permisos pertinentes a cada uno de los archivos de nuestro sistemaoperativo.

Nota: El estándar de  jerarquía del sistema de archivos es  flexible y existecierta  libertad  a  la  hora  de  aplicar  las  normas.  De  hecho  ciertasdistribuciones  GNU­Linux  introducen  modificaciones  a  la  estructura  dedirectorios estándar para adaptarla a sus necesidades.

Nota:  Quien  requiera  de  información  adicional  respecto  a  la  FHS  puedeconsultar el siguiente link.

TIPOS DE DIRECTORIOS EN GNU­LINUXEn GNU‐Linux existen distintos tipos de directorios. Los distintos tipos de directorios existentes segúnsu uso son los siguiente:

Directorios compartiblesLos directorios compartidos son aquellos directorios que  se pueden acceder desde distintosequipos. Por lo tanto los directorios compartibles son aquellos que contienen archivos que se puedenusar desde otros equipos.

Algunos ejemplos de directorios compartibles son:

/var/mail, /opt, /home, /var/www/html, /usr, etc.

Directorios no compartiblesAl contrario que los directorios compartibles, los directorios no compartibles son aquellos directoriosque no se pueden compartir y su acceso y modificación están limitados al administrador delsistema. Por lo tanto los los directorios no compartibles contienen archivos que solo puedes seraccesibles y modificados por el administrador del sistemas.

Algunos ejemplos de directorios no compartibles son:

/etc, /boot, /var/run, etc.

Directorios variablesSon aquellos directorios que contienen archivos que pueden ser modificados y pueden variar sucontenido sin la intervención del administrador del sistema.

Page 3: Estructura de directorios en el sistema operativo gnu linux

Algunos ejemplos de directorios variables son:

/var/log/messages, /var/mail, /var/spool/news, /home, /var/run, etc.

Directorios estáticosSon aquellos directorios que  contienen archivos que solo pueden ser modificados con laintervención del administrador del sistema.

Algunos ejemplos de directorios estáticos son:

/etc/password, /etc/shadow, /usr, /opt, /etc, /boot, /bin, /sbin, etc.

ESTRUCTURA DE DIRECTORIOS ENGNU­LINUXDirectorio Raíz (/)El directorio raíz, simbolizado por el símbolo ﴾/﴿, es el  directorio principal a partir del cual seramifican todo el resto de directorios.

Por lo tanto podemos decir que el directorio raíz es el contenedor de nuestro sistema operativo yaque de él nacen el resto de directorios que tendrá nuestro sistema operativo. Lo que acabamos decomentar se puede ver representado en el siguiente dibujo en que el directorio raíz es la ramaprincipal del árbol.

Directorio /bin

Page 4: Estructura de directorios en el sistema operativo gnu linux

Directorio /binEl directorio /bin es un  directorio estático y compartible en el que se almacenan archivosbinarios/ejecutables necesarios para el funcionamiento del sistema. Estos archivos binarios lospueden usar la totalidad de usuarios del sistema operativo.

Algunos de los archivos ejecutables almacenados en el directorio /bin soncp, echo, tar, cat, mv, rm,ping, cp, gzip, kill, ls, ping, su etc. Estos archivos son los que nos permiten realizar la gran mayoría deutilidades básicas a través de la terminal Linux.

El directorio /bin en ningún caso podrá contener subdirectorios.

Directorio /bootEs un directorio estático no compartible que contiene la totalidad de archivos necesarios para elarranque del ordenador excepto los archivos de configuración. Algunos de los archivosindispensables para el arranque del sistema que acostumbra a almacenar el directorio /boot son elkernel y el gestor de arranque Grub.

La totalidad de contenido almacenado en el directorio /boot es el que se utiliza antes de que el Kernelde comience a ejecutar programas en modo usuario.

El directorio /boot puede estar ubicado en su propia partición ﴾partición /boot﴿.

Directorio /devEl sistema operativo Gnu‐Linux trata los dispositivos de hardware como si fueran un archivo. Estosarchivos que representan nuestros dispositivos de hardware se hallan almacenados en eldirectorio /dev.

Cada vez que nosotros accedemos o usamos un dispositivo de hardware, como puede ser unamemoria USB, una impresora, un disco duro externo, un ratón, etc, accedemos al hardware deldispositivo leyendo y escribiendo en el fichero correspondiente ubicado en el directorio /dev.

Algunos de los archivos básicos que podemos encontrar en este directorio son:

1. cdrom que representa nuestro dispositivo de CDROM.2. sda que representa nuestro disco duro sata.3. audio que representa nuestra tarjeta de sonido.4. psaux que representa el puerto PS/2.5. lpx que representa nuestra impresora.6. fd0 que representa nuestra disquetera.7. etc.

Directorio /etc

Page 5: Estructura de directorios en el sistema operativo gnu linux

Directorio /etcEl directorio /etc es un directorio estático que contiene los archivos de configuración del sistemaoperativo. Este directorio también contiene archivos de configuración para controlar elfuncionamiento de diversos programas.

Algunos de los archivos de configuración de la carpeta /etc pueden ser sustituidos o complementadospor archivos de configuración ubicados en nuestra carpeta personal /home.

Este directorio solamente contiene archivos de texto y subdirectorios. Estos subdirectorios tambiéncontendrán archivos de configuración para configurar partes de nuestro sistema como por ejemplo:

1. /etc/apt: Carpeta que contiene ficheros de configuración del gestor de paquetes apt.2. /etc/opt: Carpeta que contiene los ficheros de configuración para los programas alojados en la

carpeta /opt. Algunos programas alojados en esta carpeta pueden ser Spotify, Google‐earth,Google Chrome, Teamviewer, etc.

3. /etc/profile: Carpeta que contiene parámetros de configuración de los usuarios para inicializar lashell o interprete de comandos “terminal”

4. /etc/sgml: Carpeta que contiene los ficheros de configuración para SGML. SGML es un lenguajeque se utiliza para la organización y marcado de documentos.

5. /etc/X11: Ficheros para la configuración del sistema X Window6. etc.

Nota: Si  quieren más  información acerca de  la  totalidad de  subdirectoriosque incluye la carpeta /etc pueden consultar el siguiente enlace.

Directorio /homeEl directorio /home se trata de un directorio variable y compartible. Este directorio está destinado aalojar la totalidad de archivos personales de los distintos usuarios del sistema operativo aexcepción del usuario root. Algunos de los archivos personales almacenados en la carpeta /homeson fotografías, documentos de ofimática, vídeos, etc.

Esta carpeta también contiene los ficheros de configuración de los programas que utilizan cadauno de los usuarios del sistema operativo a excepción del usuario root.

Todos los archivos personales y archivos de configuración que acabamos de mencionar se almacenanen subdirectorios dentro de la carpeta /home. Así por ejemplo si en nuestro ordenador tenemos 2usuarios ﴾usuario1 y usuario2﴿ los archivos personales y de configuración del usuario 1 se almacenaránen la ubicación:

/home/usuario1

Por otro lado los archivos personales y de configuración del usuario 2 se almacenarán en la carpeta:

Page 6: Estructura de directorios en el sistema operativo gnu linux

/home/usuario2

De esta forma los archivos personales y de configuración quedan perfectamente clasificados porusuario.

Normalmente el directorio /home reside un una partición propia. El hecho que el directorio /homeresida en una partición propia es importante ya que de este modo podremos reinstalar nuestrosistema operativo sin perder nuestros datos personales y manteniendo la configuración antigua.

Nota:  Haciendo  un  símil  forzado  con  Windows,  la  partición  /home  seríasimilar a la carpeta Mis documentos de Windows.

Directorio /libEl directorio /lib es un directorio estático y que puede ser compartible. Este directorio  contienebibliotecas compartidas que son necesarias para arrancar los ejecutables que se almacenan enlos directorios /bin y /sbin.

Este directorio también contiene módulos del kernel y controladores de drivers que son necesariosdurante el inicio del sistema y durante el funcionamiento del sistema operativo.

Directorio /mntEl directorio /mnt  tiene la finalidad de albergar los puntos de montaje de los distintosdispositivos de almacenamiento como por ejemplo discos duros externos, particiones de unidadesexternas, etc.

Los medios montados en esta carpeta pueden ser tanto estáticos como variables y por norma generalson compartibles.

Directorio /mediaLa función del directorio /media es similar a la del directorio /mnt. Este directorio  contiene lospuntos de montaje de los medios extraíbles de almacenamiento  como por ejemplo memoriasUSB, lectores de CD‐ROM, unidades de disquete, etc.

En el directorio /media también podemos montar sin ningun tipo de problema medios quemontaríamos en el directorio /mnt.

Directorio /optEl contenido almacenado en el directorio /opt  es estático y compartible.La función de estedirectorio es almacenar programas que no vienen con nuestro sistema operativo  como porejemplo Spotify, Google‐earth, Google Chrome, Teamviewer, etc.

Page 7: Estructura de directorios en el sistema operativo gnu linux

Como es un directorio compartible los programas presentes en esta carpeta pueden ser usados portodos los usuarios del sistema operativo.

La función de este directorio es muy similar a la del directorio /usr/local, pero a diferencia de lacarpeta /usr/local en /opt se instalan programas que no siguen los estándares para almacenar sucontenido en la carpeta /usr.

Directorio /procEl directorio /proc se trata de un sistema de archivos virtual. Este sistema de archivos virtual nosproporciona información acerca de los distintos procesos y aplicaciones que se estánejecutando en nuestro sistema operativo.

Para cada uno de los procesos en marcha existe un subdirectorio dentro de la carpeta /proc. Dentrodel subdirectorio es donde se almacena esta información.

Como curiosidad decir que la totalidad del contenido almacenado en la carpeta /proc no estáalmacenado en nuestro disco duro. El contenido de este directorio está almacenado en la memoriaRAM y el mismo sistema operativo es quien crea y borra el contenido de la carpeta /proc.

Quien quiera más información acerca del directorio /proc puede consultar el siguiente enlace.

Directorio /rootEl directorio /root se trata de un  directorio variable no compartible. El directorio /root  es eldirectorio /home del administrador del sistema﴾usuario root﴿.

Directorio /sbinEl directorio /sbin se trata de un directorio estático y compartible. Su función es similar al directorio/bin, pero a diferencia del directorio /bin, el directorio /sbin almacena archivos binarios/ejecutablesque solo puede ejecutar el usuario root o administrador del sistema.

Los archivos incluidos en el directorio /sbin son aquellos que son primordiales para el arranque,restauración y reparación del sistema operativo. Algunos de los archivos ejecutables almacenados eneste directorio son fsck, init, reboot, shutdown, fastboot, etc.

Otros directorios que contienen programas y binarios para la administración del sistema son el/usr/bin y el /usr/local/sbin.

Directorio /srvEl directorio /srv se usa  para almacenar directorios y datos que usan ciertos servidores quepodamos tener instalados en nuestro ordenador.

Page 8: Estructura de directorios en el sistema operativo gnu linux

Algunos de los servidores que almacenan datos en el directorio /srv son:

1. Servidor web apache en el directorio /srv/www2. Cualquier servidor ftp en la ubicación /srv/ftp3. Un servidor CVS.4. Etc.

Directorio /tmpEl directorio /tmp es es donde se crean y se almacenan los archivos temporales y las variables quelos programas puedan funcionar de forma adecuada.

Generalmente  los sistemas operativos vacían el directorio /tmp cada vez que reiniciamos elordenador. En el caso que no sea así es recomendable vaciar cada cierto el contenido de esta carpeta.

Directorio /usrEl directorio /usr es un directorio compartido y estático. Este directorio es el que contiene la granmayoría de programas instalados en nuestro sistema operativo.

Todo el contenido almacenado en la carpeta /usr es accesible para todos los usuarios y su contenidoes solo de lectura.

El directorio /usr contiene una serie de subdirectorios que acostumbran a almacenar la siguienteinformación:

/usr/bin: Subdirectorio que almacena los archivos ejecutables del software que tenemos almacenadoen nuestro ordenador.

/usr/include: Subdirectorio que incluye la totalidad de archivos de cabecera que necesita el softwareinstalado en nuestro sistema operativo para que funcione de forma adecuada.

/usr/lib: Subdirectorio que incluye bibliotecas compartidas y ficheros binarios que únicamente puedenser ejecutados por el administrador del sistema.

/usr/local: GNU‐Linux es un sistema operativo diseñado para ser usado en entornos de red. Por lotanto es posible que el directorio /usr no esté instalado localmente en nuestro y esté en un servidor.En estos casos existe el directorio /usr/local que está destinado a alojar los programas que instalalocalmente el administrador del sistema. Este directorio está protegido de las actualizacionesautomáticas de todo el sistema operativo y tiene una estructura de directorios muy similar a la deldirectorio /usr.

/usr/sbin:  Directorio que contiene archivos binarios para la administración del nuestro equipo noesenciales para el proceso de arranque ni para reparar el ordenador. Estos archivos binariosalmacenados en la carpeta /usr/sbin solamente pueden ser usados por el administrador del sistema.Algunos de estos archivos binarios no críticos para administrar el sistema operativo pueden ser por

Page 9: Estructura de directorios en el sistema operativo gnu linux

ejemplo varios demonios para diversos servicios de red, xcalib para calibrar el color de nuestromonitores, etc.

/usr/share:  En el directorio /usr/share encontramos archivos de texto compartibles que sonindependientes de la arquitectura del sistema operativo. En este directorio podemos encontrar porejemplo los archivos de ayuda como por ejemplo los documentos info y las páginas de man, ficherosde configuración, imágenes, iconos, themes, etc.

/usr/src: En el directorio /usr/src normalmente encontramos el código fuente de algunas aplicacionesy del kernel que tenemos instalado en nuestro sistema operativo.

Directorio /varEl directorio /var  contiene archivos de datos variables y temporales como por ejemplo losregistros del sistema ﴾logs﴿, los registros de programas que tenemos instalados en el sistemaoperativo, archivos spool, etc.

La principal función del directorio /var es la detectar problemas y solucionarlos. Se recomiendaubicar el directorio /var en una partición propia, y en caso de no ser posible es recomendable ubicarlofuera de la partición raíz.

Algunos de los subdirectorios importantes que están dentro de la carpeta /var son los siguientes:

/var/cache: Subdirectorio pensado para almacenar datos de aplicaciones en modo cache. Un ejemplode lo que acabo de citar es apt‐get. En el momento de instalar una aplicación con apt‐get sealmacena una copia del paquete binario instalado en la ubicación /var/cache/apt/archives/. Así en elcaso que desinstalaramos el programa y quisiéramos volver instalarlo no seria necesario descargar elfichero binario de nuevo y la instalación seria inmediata.

/var/lib:  En este subdirectorio encontramos información sobre el estado de las aplicaciones. Estedirectorio también contiene bases de datos del sistema.

/var/lock: Directorio en el que se hallan los archivos de bloqueo que crean ciertos programas. Lafunción de los archivos de bloqueo creados por algunos programas, como por ejemplo un servidorweb, es evitar que ciertos recursos sean usados por otros programas que no sean el propio servidorweb. En el momento de cerrar la aplicación que ha generado el archivo de bloqueo, el archivo debloqueo desaparece.

/var/log: En el directorio /var/log se encuentran de forma clasificada gran parte de los registros denuestros programas y del sistema operativo. Este directorio es muy importante ya que en caso deproblemas, el administrador del sistema lo puede consultar para intentar averiguar la causa delproblema. Los log o registros se encuentran perfectamente clasificados, así por lo tanto si queremosconsultar los registros generados por el kernel tendremos que consultar el archivo /var/log/messages,si queremos consultar los accesos a nuestro sistema operativo podemos consultar elarchivo /var/log/wtmp, etc.

/var/mail:  Directorio en el que se ubican los archivos de correo electrónico de cada uno de los

Page 10: Estructura de directorios en el sistema operativo gnu linux

usuarios del servidor de mail. También es posible ubicar nuestros archivos de correo electrónico en lapartición /home.

/var/opt: En el directorio /var/opt se almacenan datos variables que utilizan los programas instaladosen la ubicación /opt.

/var/run: El directorio /var/run contiene información de la sesión que estamos ejecutando. Ejemplosde la información que contienen los archivos de esta carpeta son los demonios que están enejecución, los usuarios que están logueados, los procesos que están activos, etc.

/var/spool: Directorio que almacena archivos que controlan la tareas pendientes de realizar. Así porejemplo en el directorio /var/spool/cups encontraremos los archivos que gestionan los trabajos deimpresión en espera, en el directorio /var/spool/cron encontraremos los archivos que gestionan lastareas planificadas pendientes de ejecutar, etc.

/var/tmp: Directorio que al igual que el directorio /tmp contiene archivos temporales. La principaldiferencia entre los directorios /var/tmp y /tmp es que los archivos temporales ubicados en la carpeta/tmp se acostumbran a borrar automáticamente entre sesiones o reinicios del sistema, mientras quelos archivos temporales ubicados en el directorio /var/tmp no lo hacen.

Directorio /sysDirectorio que  contiene información similar a la del directorio /proc. Dentro de esta carpetapodemos encontrar información estructurada y jerárquica acerca del kernel de nuestro equipo,de nuestras particiones y sistemas de archivo, de nuestros drivers, etc.

Directorio /lost+foundDirectorio que se crea en las particiones de disco con un sistema de archivos ext después ejecutarherramientas para restaurar y recuperar el sistema operativo como por ejemplo fsch.

Si nuestro sistema no ha presentado problemas este directorio estará completamente vacío. En el casoque hayan habido problemas  este directorio contendrá ficheros y directorios que han sidorecuperados tras la caída del sistema operativo.

Para finalizar solo comentar que espero que esta pequeña explicación les haya sido útil para tener unaidea genérica del contenido que se encuentra en cada una de las carpetas de nuestro sistemaoperativo.