Directorios de Unix
Artículo original de ralfm en http://www.linux-es.org/node/112
En este articulo intentaremos explicar lo mas brevemente posible, como los directorios de un sistema Linux/Unix estan organizados y para que se usan. Uno de los problemas que tienen los nuevos usuarios de un sistema Linux/Unix es el no saber que significan y para que se utilizan los diferentes directorios del sistema. No os preocupeis, en un principio puede pareceros dificil y sin logica, pero una vez que empeceis a usarlos os acostumbrais pronto.
Existe un estandard, el "Estándar de jerarquía de ficheros" (FHS - Filesystem Hierarchy Standard) que intenta definir unas bases, para que tanto los programas del sistema, como los usuarios y administradores, sepan donde encontrar lo que buscan. Este estándar se encuentra en su version 2.3 y el documento del mismo se puede encontrar en su totalidad en esta direccion: http://www.pathname.com/fhs/pub/fhs-2.3.html. Se recomienda su lectura a los deseen profundizar en el tema.
Este estándar está mantenido por la 'Free Standards Group', una organización sin fines de lucro constituida por compañías de hardware y software como AMD, Computer Associates, Debian, Dell, Fujitsu, Google, HP, IBM, Intel, MySQL, NEC, Novell, Red Flag, Red Hat, Sun Microsystems, Veritas y otros muchos. La mayoría de las distribuciones de Linux, inclusive las que forman parte de Free Software Standards, no aplican de forma estricta y al 100% el estándar, aunque las diferencias son mínimas.
Existen dos tipos de distinciones cuando hablamos del tipo de contenido de un directorio: Estáticos/dinámicos y compartibles/no compartibles.
- Estaticos: Contiene binarios, bibliotecas, documentacion y otros ficheros que no cambian sin intervencion del administrador. Pueden estar en dispositivos de solo lectura (read-only) y no necesitan que se hagan copias de seguridad tan a menudo como con ficheros dinamicos
- Dinamicos: Contiene ficheros que no son estaticos. Deben de encontrase en dispositivos de lectura-escritura (read-write). Necesitan que se hagan copias de seguridad a menudo
- Compartibles: Contiene ficheros que se pueden encontrar en un ordenador y utilizarse en otro
- No compartibles: Contiene ficheros que no son compartibles
A continuacion teneis algunos ejemplos para aclarar ideas:
- Estaticos: /bin, /sbin, /opt, /boot, /usr/bin
- Dinamicos: /var/mail, /var/spool, /var/run, /var/lock, /home
- Compartibles: /usr/bin, /opt
- No compartibles: /etc, /boot, /var/run, /var/lock
Todos los ficheros y directorios aparecen debajo del directorio raíz «/» (El equivalente en el mundo Unix al C:\ de Windows) aunque se encuentren en discos/dispositivos distintos. En Linux/Unix no existen letras de discos (C:, D:, etc) Los dispositivos se 'montan' (empiezan a formar parte) del arbol de directorios del sistema, pero esto lo explicaremos en otra ocasion.
A continuacion teneis una lista con los directorios mas importantes del sistema y para que se usan. Para acceder a los mismos podeis usar el comando cd 'nombre del directorio'. Para ver el contenido de los mismos podeis usar el comando ls -l 'nombre del directorio'.
Directorio Descripción ----------------------------------------------------------------------------------------- /bin/ Comandos/programas binarios esenciales (cp, mv, ls, rm, etc.). /boot/ Ficheros utilizados durante el arranque del sistema (núcleo y discos RAM) /dev/ Dispositivos esenciales, discos duros, terminales, sonido, video, lectores dvd/cd, etc /etc/ Ficheros de configuración utilizados en todo el sistema y que son específicos del ordenador /etc/opt/ Ficheros de configuración utilizados por programas alojados dentro de /opt/ /etc/X11/ Ficheros de configuración para el sistema X Window (Opcional) /etc/sgml/ Ficheros de configuración para SGML (Opcional) /etc/xml/ Ficheros de configuración para XML (Opcional) /home/ Directorios de inicios de los usuarios (Opcional) /lib/ Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y el núcleo del sistema. /mnt/ Sistemas de ficheros montados temporalmente. /media/ Puntos de montaje para dispositivos de medios como unidades lectoras de discos compactos. /opt/ Paquetes de aplicaciones estáticas. /proc/ Sistema de ficheros virtual que documenta sucesos y estados del núcleo. Contiene principalmente ficheros de texto. /root/ Directorio de inicio del usuario root (super-usuario) (Opcional) /sbin/ Comandos/programas binarios de administración de sistema. /tmp/ Ficheros temporales /srv/ Datos específicos de sitio servidos por el sistema. /usr/ Jerarquía secundaria para datos compartidos de solo lectura (Unix system resources). Este directorio puede ser compartido por múltiples ordenadores y no debe contener datos específicos del ordenador que los comparte. /usr/bin/ Comandos/programas binarios. /usr/include/ Ficheros de inclusión estándar (cabeceras de cabecera utilizados para desarrollo). /usr/lib/ Bibliotecas compartidas. /usr/share/ Datos compartidos independientes de la arquitectura del sistema. Imágenes, ficheros de texto, etc. /usr/src/ Códigos fuente (Opcional) /usr/X11R6/ Sistema X Window, versión 11, lanzamiento 6 (Opcional) /usr/local/ Jerarquía terciaria para datos compartidos de solo lectura específicos del ordenador que los comparte. /var/ Ficheros variables, como son logs, bases de datos, directorio raíz de servidores HTTP y FTP, colas de correo, ficheros temporales, etc. /var/cache/ Cache da datos de aplicaciones. /var/crash/ Depósito de información referente a caidas del sistema (Opcional) /var/games/ Datos variables de aplicaciones para juegos (Opcional) /var/lib/ Información de estado variable. Algunos servidores como MySQL y PostgreSQL almacenan sus bases de datos en directorios subordinados de éste. /var/lock/ Ficheros de bloqueo. /var/log/ Ficheros y directorios de registro del sistemas (logs). /var/mail/ Buzones de correo de usuarios (Opcional) /var/opt/ Datos variables de /opt/. /var/spool/ Colas de datos de aplicaciones. /var/tmp/ Ficheros temporales preservados entre reinicios.
Aquí puedes ver una foto con esta estructura extraida de http://www.linuxconfig.org/Filesystem_Basics