En Linux los archivos se ubican en función de una estructura de archivos determinada por el proyecto FHS (Filesystem Hierarchy Standard), que por ser una guía voluntaria, es posible que existan pequeñas diferencias entre diferentes distribuciones.
A continuación se listan los directorios de esta estructura:
Raíz o /: Directorio superior que contiene a todos los demás. Aquí se encuentran los recursos que permiten que el sistema funcione y se restaure, como por ejemplo:
Enlace al Kernel de linux: vmlinuz, ubicado en /boot.
Imagen inicial del sistema de archivos raíz: initrd.img, ubicado en /boot.
/bin: Aquí se guardan los archivos ejecutables (como los .exe de windows). En este directorio nunca hay subdirectorios. Junto al nombre de cada elemento podemos encontrarnos:
/boot: Archivos necesarios para arrancar el sistema, por ejemplo la subcarpeta /grub con el archivo del menú de arranque grub.cfg.
/dev: Definiciones de los dispositivos (device drivers). Estos archivos se crean durante la instalación o con el script MAKEDEV, cuyo enlace simbólico también se encuentra en esta carpeta. Los dispositivos pueden ser de 2 tipos:
De bloque: almacenan datos y los transfieren en bloques (particiones, cdrom, etc).
De carácter: sólo transfieren datos (periféricos de entrada/salida, por ejemplo).
Como curiosidad, /dev/null es un agujero negro: archivo en el que podemos hacer desaparecer cualquier dato que le enviemos (eliminación de errores, salidas de pantalla de una orden, etc).
/etc: Archivos de configuración y arranque del sistema, de aplicaciones instaladas y los servicios de red. Se trata de archivos estáticos, nunca de ejecutables, ubicados en subdirectorios. También se encuentran aquí algunos archivos básicos del sistema, como los de usuario /etc/passwd, terminal /etc/bashrc, puntos de montaje y sistema de archivos /etc/fstab o la configuración de inicio /etc/inittab.
/home y /root: Carpeta de cada usuario, a la que sólo él tiene acceso, y carpeta del superusuario (root). Suele instalarse en una partición aparte para salvar la información en caso de que el sistema operativo se rompa. También podemos encontrar en ocasiones la carpeta /home/lost+found en donde se guarda la información perdida, por ejemplo en caso de apagado brusco e incorrecto. La carpeta oculta /home/.thumbnails guarda una pequeña copia de las imágenes visualizadas.
/lib: Bibliotecas compartidas utilizadas por los ejecutables del sistema y por los programas instalados. En la subcarpeta /lib/modules se encuentran los módulos del kernel que permiten el funcionamiento de elementos del hardware.
/media: En este directorio se montan los dispositivos de almacenamiento extraíbles.
/mnt: Directorio donde se montan temporalmente los sistemas de archivos externos.
/opt: Complementos de los programas instalados. Normalmente se instalan es sus propios subdirectorios, pero en algunos casos lo hacen aquí.
/proc: Sistema virtual de archivos (en memoria) mediante el cual el kernel se comunica con los usuarios e informa de los procesos que está desarrollando. Los nombres de los archivos son en realidad PID, es decir, números de procesos. La fecha y la hora hace referencia al inicio de sesión.
/sbin: Ejecutables necesarios para el funcionamiento del sistema, los que permiten su arranque y recuperación. Acceso restringido al administrador. Algunos son enlaces a binarios que se encuentran en /usr/bin o /usr/local/bin.
/tmp: Carpeta temporal de archivos.
/usr: Programas instalados por los usuarios y algunas aplicaciones propias del sistema. Contenido habitual:
/usr/bin: Ejecutables (o “binarios”) que puede utilizar el usuario del sistema. Son más de 2000.
/usr/games: Juegos instalados.
/usr/include: Headers de los programas que pueden usar los usuarios.
/usr/lib y /usr/lib64: Bibliotecas compartidas de los programas instalados, los escritorios o los lenguajes de programación.
/usr/local: software que ha instalado el usuario. Estructura similar a /usr.
/usr/bin: Binarios no esenciales para el sistema, sólo ejecutables por el administrador.
/usr/share: Contiene subdirectorios con archivos de configuración estáticos que pueden ser compartidos por cualquier equipo con el mismo sistema operativo: documentos y manuales del sistema y de los programas instalados (/doc. /man), lista de palabras usadas por el sistema (/dict), mensajes de error de alguna aplicación concreta (/modconf), etc.
/usr/src: Código fuente del kernel.
/var: Archivos dinámicos que varían conforme se hace uso del sistema y que no se pueden compartir con otros equipos. Carpetas habituales que contiene:
/var/cache: Archivos con datos de aplicaciones en memoria caché.
/var/lock: Los archivos que se almacenan aquí están bloqueados por el sistema.
/var/log: Registros del sistema. Cuando ocupan mucho se comprimen en formato .gz.
/var/mail/: Buzones y mensajes de correo.
/srv: Archivos de datos de un servicio en particular.