- Estructura de directorios en Linux
- Montaje de dispositivos (montar una carpeta o disco)
- ¿Cómo se organiza la información dentro del sistema de archivos?
- Operaciones de entrada/salida: leer, escribir y flush
- Analizando el sistema de archivos
Si vienes de Windows, Linux puede parecerte raro: no hay C:\ ni D:\. En su lugar, todo comienza en una simple /, la raíz del sistema.
En Linux, todo es un archivo: carpetas, discos, impresoras, incluso la memoria. Y eso cambia por completo cómo entendemos el sistema.
Vamos a explorarlo paso a paso.
Estructura de directorios en Linux
Cuando abrimos una terminal y escribimos ls /, estamos viendo el contenido del directorio raíz (/). Dentro de ese directorio encontramos varias carpetas importantes que forman la base del sistema operativo.
Algunas carpetas esenciales
| Carpeta | ¿Para qué sirve? |
|---|---|
/home |
Aquí vive cada usuario. Es como nuestros “Mis Documentos”. |
/etc |
Configuración del sistema y programas. |
/var/log |
Aquí se guardan los registros (logs) del sistema. |
/tmp |
Archivos temporales que se pueden borrar. |
/bin, /usr/bin |
Archivos ejecutables (comandos y programas). |
/dev |
Representa dispositivos como discos, USB, etc. |
/media y /mnt |
Donde se montan dispositivos externos como memorias USB. |
Montaje de dispositivos (montar una carpeta o disco)
En lugar de usar letras como en Windows, Linux "monta" los dispositivos dentro del sistema de archivos. Montar significa conectar un dispositivo (como una memoria USB) en una carpeta existente, por ejemplo /media/usb.
Cuando insertamos una memoria, Linux no la trata como una nueva unidad, sino como una carpeta más dentro de la raíz.
Ejemplo práctico
Supongamos que conectas una memoria USB y se monta en /media/juan/usb. Al entrar a esa carpeta, estás viendo el contenido de tu USB; puedes copiar, borrar o modificar archivos como si fueran locales.
¿Cómo se organiza la información dentro del sistema de archivos?
El sistema de archivos de Linux no solo es una lista de carpetas y archivos. Internamente, hay una estructura con varias capas. Vamos a explicar dos importantes:
Inodes
Cada archivo tiene algo llamado un inode (nodo de índice). Es como una ficha técnica que contiene:
- Tamaño del archivo
- Fecha de creación y modificación
- Permisos y propietario
- Dónde está guardado físicamente en el disco
Pero no contiene el nombre del archivo. Los nombres están en las carpetas (directorios), que simplemente apuntan a los inodes que representan el contenido real.
Caché del sistema de archivos
Linux utiliza la memoria RAM para almacenar en caché los archivos de uso frecuente, lo que permite acceder a ellos más rápidamente.
Por ejemplo, si abrimos un archivo grande varias veces, la segunda vez será más rápida porque está en cache.
Operaciones de entrada/salida: leer, escribir y flush
Cuando nosotros escribimos o leemos un archivo con un programa, eso no siempre pasa directamente en el disco.
¿Cómo funciona?
- Al llamar a una función como
open()owrite(), el contenido se guarda temporalmente en memoria (buffer o caché). - Linux puede esperar a reunir más datos antes de escribir en el disco, lo que mejora la eficiencia.
- El comando
flush()fuerza a que esa información se escriba realmente en el disco.
Supongamos que tenemos este código en Python:
with open("datos.txt", "w") as archivo:
archivo.write("Hola mundo")
archivo.flush() # Fuerza que se escriba en disco inmediatamente
Esto es útil, por ejemplo, cuando queremos asegurarnos de que la info se guarde antes de apagar el sistema o si estamos monitoreando archivos en tiempo real.
Analizando el sistema de archivos
Linux nos da varias herramientas para ver cómo está organizado el sistema de archivos y cuánto espacio estamos usando.
Comandos útiles
| Comando | Función |
|---|---|
df -h |
Muestra el uso de espacio en los discos montados. |
du -sh carpeta/ |
Mide cuánto espacio ocupa una carpeta. |
ls -l |
Muestra detalles de los archivos, incluyendo permisos y tamaño. |
stat archivo |
Muestra la información del inode de un archivo. |
mount |
Lista los sistemas de archivos montados actualmente. |
Resumen
- En Linux, todo es un archivo: memoria, dispositivos, procesos, todo.
- No hay letras de disco como en Windows; todo comienza desde la raíz
/. - Los dispositivos se “montan” dentro de carpetas del sistema de archivos (por ejemplo,
/mediao/mnt). - El sistema organiza los archivos usando estructuras como los inodes.
- Linux utiliza caché para acelerar el acceso a los archivos.
- Operaciones de entrada/salida pueden retrasar la escritura real en disco; el método
flush()permite forzar ese guardado. - Podemos analizar el uso y estado de la estructura con comandos como
df,duystat.
Trabajo independiente
1️⃣ En los servicios de hosting, los sitios web suelen ubicarse en la ruta /var/www/public_html. Crea este directorio.
2️⃣ Dentro del directorio public_html, agrega un archivo llamado index.html. En su contenido debe tener una sola línea:
Hello, Hexlet!
3️⃣ Asigna los siguientes permisos al archivo index.html:
- Dale al propietario acceso completo (lectura, escritura y ejecución).
- A los demás usuarios, solamente permite la lectura.
4️⃣ Ejecuta el servidor web incorporado de Python con el siguiente comando:
python3 -m http.server 8000 --bind 127.0.0.1 --directory /var/www/public_html
5️⃣ Abre en tu navegador la dirección http://127.0.0.1:8000. Deberías ver en pantalla la línea: «Hello, Hexlet!»
El resultado final de esta actividad será la visualización correcta de la página con el texto «Hello, Hexlet!» en el navegador, lo que confirmará que todos los pasos se realizaron correctamente.
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.