¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Sistema de carpetas y archivos
Combinaciones de teclas útiles
- Cambiar áreas de trabajo: ctrl + alt + flechas de dirección
- Cerrar ventana: alt + F4
- Menú de ventana: alt + espacio
- Pasar de una ventana a otra: alt + tabulador
Archivos en linux
En linux “todo es un archivo”. Esto quiere decir que para Linux todo flujo de información es identificado como un archivo, desde un documento de texto, a la información transmitida por periféricos o la contenida en unidades de almacenamiento de datos. Los archivos son identificados por el sistema operativo por un número identificativo denominado “inodo” (Information Node). Un mismo flujo de información puede guardarse con diferentes nombres, pero su inodo sería el mismo. Podemos listar los archivos del directorio donde nos encontremos con el comando ls -il:
- ls: Lista los archivos y directorios contenidos en el directorio actual.
- -i: Opción que añade los inodos a los elementos mostrados.
- -l: Opción que añade toda la información disponible a los elementos mostrados (usuario, grupo, permisos, tamaño, fechay hora de creación).
Delante de los permisos de los archivos aparece un carácter que indica el tipo de archivo:
- -: Archivo normal.
- .: Archivo oculto.
- d: Directorio.
- b: “Modo bloque”, dispositivo de almacenamiento de datos (CD, DVD, discos duros).
- c: “Modo carácter”, son dispositivos periféricos de entrada/salida (ratón, puertos, etc).
- l: “Enlace simbólico”, puntero que apunta a otro fichero o carpeta al que está vinculado (tienen inodos diferentes).
- p: “Tubería” (pipe), conexiones entre programas (por ejemplo, permiten usar la salida de un programa como entrada de otro).
- s: Socket, conexiones de red.
Al ser listados en un terminal, también podemos conocer el tipo de archivo en función del color en el que se representa:
- Archivo normal: negro.
- Ejecutable: verde.
- Archivo de audio: cían resaltado.
- Enlace simbólico: cían.
- Vínculos perdidos: blanco o negro sobre fondo rojo.
- Drivers de dipositivos: amarillo sobre fondo negro.
- Archivo de imagen: magenta claro.
- Archivo comprimido: rojo.
- Directorio: azul.
- Tubería: amarillo.
Los archivos pueden ser de dos tipos en función de la capacidad de ser modificados:
- Estáticos: Sólo pueden ser modificados por el administrador del sistema.
- Variables: Archivos normales, modificables en función de sus permisos.
Todos los archivos pueden compartirse, salvo los propios el sistema.
Árbol de directorios de Linux
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:
- @: Indica que el elementos es un enlace simbólico.
- *: Indica que el elemento es un ejecutable.
- /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 archivps /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.
