Sistema de archivos en una distribución GNU-Linux

[h]Sistema de archivos en una distribución GNU-Linux (arborescencia)[/h]

https://www.wifi-libre.com/img/members/3/arborescencia_linux_1.jpg

Se suele oír que: “En linux todo es archivo”.
Estos archivos se guardan en unos archivos"especiales" llamados directorios.
Su jerarquía obedece a ciertas reglas y/o convenciones
Cuando se habla de “sistema de archivos” nos referimos a esta estructura, la de los archivos de tipo “directorio”.
Se dice también “arborescencia de ficheros
Una comparación muy acertada en el caso de las distribuciones GNU-Linux ya que el primer directorio, el que contiene todos los otros directorios, se llama la “raíz”.
Vamos a ver en este tema a grandes rasgos como se organiza una distribución GNU-Linux
Es bueno tener una idea de cómo funciona. :slight_smile:

[h] / (La raíz)[/h]
Todo empieza a la raíz que podéis ver en el esquema siguiente:
https://www.wifi-libre.com/img/members/3/arborescencia_linux_2.jpg
Es el “directorio que contiene todos los ficheros”
Se representa con /
Así que para llegar a la raíz en consola hacemos

cd /

Una vez que hemos llegado allí podemos ver con ls los ficheros que contiene.
Conocer la estructura de ficheros de sistema linux es básicamente saber a que sirven los directorios que encontramos en el directorio raíz.
https://www.wifi-libre.com/img/members/3/arborescencia_linux_3.jpg

[h] /bin [/h]
El nombre bin hace referencia a “binarios”.
Es en este directorio que encontramos todos estos pequeños “programas sistemas” fundamentales que llamamos a menudo “comandos”.
Aloja también al propio bash
cd, pwd, echo, ifconfig… :
https://www.wifi-libre.com/img/members/3/arborescencia_linux_5.jpg
Cuando se ejecuta una orden fundamental del palo en nuestra consola es allí que se van a buscar los binarios y ejecutarlos (ejecutando así la orden)
Podemos decir que es el directorio dedicado al interprete de ordenes del sistema

[h] /boot [/h]
El nombre es explicito: Hablamos del directorio que aloja los ficheros encargados del arranque del sistema operativo.
Además del kernel vmlinuz aloja en su directorio “grub” todo lo relativo al famoso menú de arranque de las distribuciones GNU-Linux que permite elegir entre varios sistemas operativos.
https://www.wifi-libre.com/img/members/3/arborescencia_linux_4.jpg

[h] /dev [/h]
Referencia a device (dispositivos)
Todos los periféricos a la CPU
Es por ejemplo en este directorio que se montan todos los “volúmenes”: Lector óptico, disco(s) duro(s), dispositivos USB de almacenamiento, tarjeta SD etc…
En linux las cosas funcionan así.
El primer volumen encontrado se llama sda, el siguiente sdb etc…
La primera partición encontrada en el primer volumen se llama sda1, la segunda sda2 etc…
Pasa lo mismo en el segundo volumen (sdb1, sdb2 etc…)
Se caracteriza por ser el único directorio que contiene “archivos de bloques” y por llevar el “agujero negro” : el directorio /dev/null.
Una especie de disco duro sin limites que no guarda ningunos datos. (no lo parece pero es es muy úti)
https://www.wifi-libre.com/img/members/3/arborescencia_linux_6.jpg

[h] /etc [/h]
Un directorio enfocado a agrupar todos los ficheros de configuración.
Desde systrem.d hasta aircrack-ng pasando por python
Con los numerosos ficheros que contiene podemos “tunear” nuestro sistema hasta el limite.
Para dar un ejemplo: Podemos cambiar el nombre del equipo editando el fichero /etc/hostname
https://www.wifi-libre.com/img/members/3/arborescencia_linux_7.jpg

[h] /home [/h]
Nuestro directorio personal.
Debemos crear una cuenta de usuario diferente de la cuenta root (base de la seguridad en linux), cuenta que usaremos todo el tiempo (al no ser que las circunstancias nos obligan a “rootear”) .
El directorio home contiene un(os) directorio(s) llamado(s) con el(los) nombre(s) de usari@(s)
La “carpeta personal”
Allí van todos los archivos personales de un usuario y todo lo relativo a su configuración propia.
Generalmente se subdivide por defecto en directorios llamados: Descargas, Documentos, Escritorio, Música, Imágenes, Plantillas, Público y Vídeo.
Si abrimos el navegador de archivos en nuestra carpeta personal y activamos el opción "mostrar archivos ocultos (ver>mostrar archivox ocultos) veremos aparecer todo un conjunto de ficheros propios a nuestra cuenta como su historial bash:
https://www.wifi-libre.com/img/members/3/arborescencia_linux_8.jpg

[h] /lib [/h]
El directorio de las librerias.
Los paquetes tipo lib-algo- que todos hemos vistos desfilar bajo nuestro ojos cuando actualizamos el sistema y que nunca usamos directamente
Son como programas requeridos por el sistema y los usuarios para ejecutar sus aplicaciones.
Dicho de un modo bárbaro “los programas para hacer funcionar programas”.
Una particularidad (y una ventaja) de linux sobre Windows es que todo esto funciona en modo “objetos compartidos”.
Los progarmas que instalamos usan la misma libreria cuando necesitan la misma.
Parece algo tonto y simple… ¿Para que tener dos veces una librería que hace lo mismo?
Pero en Wiindows las cosas no son así…
Para dar unos ejemplos de las cosas fundamentales que aloja lib:
Encontraremos en /lib/firmware todos los firmware wifi (sin wifi en un foro wifi… estamos muertos :smiley: )
También es allí que tenemos a nuestro CRDA (wifi siempre wifi… para configurar los limites legales de potencia de emisión)
Si vuestro sistema es 64bits y que os dais una vuelta por /lib/x86_64-linux-gnu encontrareis a la mayor parte de estos ficheros “lib-algo-”
https://www.wifi-libre.com/img/members/3/arborescencia_linux_9.jpg

[h] /lost+found [/h]
Los ficheros guardados durante un falló sistema van aquí
Normalmente debería estar vacío

[h] /media [/h]
Otro directorio para montar volúmenes.
En debian y derivados no suele servir mucho.

[h] /mnt[/h]
Se puede encontrar en algunas distribuciones y sirve generalmente para definir el punto de montaje de los periféricos externos tipo camera foto.
Debian no lo tiene por defecto

[h] /net[/h]
Convencionalmente sirve para establecer el punto de montaje para un sistema de archivos remoto.

[h] /opt[/h]
No es muy corriente tener un sistema que incluye este directorio.
Esta pensado para alojar “aplicaciones de terceros” que encontramos fuera de los repsoitrio.
En debian no se usa ni se cree “por defecto”

[h] /proc[/h]
Contiene un sistema de fichero virtual para simplificar el acceso a la información sobre el uso de los recursos del sistema.
Podemos ver que aloja miles de carpetas con números desde el 1 hasta lo que sea.
Cada una de estas carpetas corresponde a un proceso (PID) y el numero es lógicamente el numero para identificar esta proceso
https://www.wifi-libre.com/img/members/3/arborescencia_linux_10.jpg

[h] /root[/h]
La carpeta personal del administrador (para alojar sus archivos)
Notad que bully es de los pocos programas que guarda el progreso de sus sesiones en root

[h] /sbin[/h]
Normalmente es para los programas exclusivamente utilizados par el sistema y el administrador.
Es para diferenciar los de los contenidos bin que sirven también a los usuarios.
Recordad que linux esta pensado también para poder administrar redes.
Si la necesidad de tener un directorio sbin y** bin** no parece tener mucha importancia en un sistema personal no lo es si pensamos a otro escala.
Encontraremos en sbin los comandos que requieren privilegios de administrador como ifconfig (mientras que ping que no los requiere esta en /bin)
https://www.wifi-libre.com/img/members/3/arborescencia_linux_11.jpg

[h] /tmp[/h]
Para los archivos temporales.
Se limpia automáticamente a cada reinicio/apagado.

[h] /usr[/h]
Contiene las libreraias, la documentación y los binarios de los programas de los suarios.
Es allí que van las aplicaciones que instalamos.
[list=*]
]Si vais a usr/share encontrareis un directorio firefox, otro para gimp etc… poblados con varios elementos/]
*]Si vais a usr/bin encontrareis solo los ejecutables.
Lanzar un programa desde la consola equivale a menudo a hacer

usr/bin/programa_a_ajecutar

[/list]

[h] /var[/h]
Espacio dedicado a los ficheros de variables y los ficheros temporarios creados por el usuario.
tendremos allí cosas como las descargas en corso o la imagen de un CD “montada” antes de grabarla

Esta descripción no es exclusiva y hay diferencias entre las distribuciones.
En Kali Linux podemos ver que tenemos por ejemplo a un directorio sys.
Podemos considerarlo como un sustituto parcial a proc para aliviarlo (considerado algo caótico con las miles de carpetas para los proceso)

Lecturas:
[list=*]
] The Linux File System Structure Explained @ Linux & Ubuntu/]
]General overview of the Linux file system @ tlpd/]
]Linux Filse System de Maryam AL SHAMSI @ blogspot/]
[/list]