Siguiendo con los tips para GNU/Linux, esta vez postearé sobre los distintos sistemas de archivos en las distribuciones Linux. Un manual de la universidad decía:
En un sistema Unix, todo es un archivo; si algo no es un archivo, es un proceso.
Algo que puede resultar confuso para los novatos en Linux, es ver todas aquellas carpetas que tenemos en nuestro sistema una vez instalado. A diferencia de una instalación nueva de Windows, que crea, hasta donde recuerdo, Archivos de Programa, Windows y Documents and Settings, en una distribución Linux recién instalada tenemos varios directorios, que no son más que archivos que contienen los nombres de otros archivos. Dependerá de los permisos asignados por el administrador el que podamos ingresar a ellos o no. Hasta los dispositivos de entrada y salida son considerados archivos por el sistema.
Describiré algunos de los directorios para orientar un poco a los novatos (pueden dar click a la imagen para tener una visión general). Para un usuario común no es necesario conocer esta estructura de archivos (ya que el Sistema Operativo la hace transparente a él), pero si es que desean profundizar un poco sobre Linux, pueden comenzar conociendo cómo es que está conformado
El SO tienen la distribución de archivos con una estructura de árbol, la que tiene como inicio el directorio / (llamado raíz o root). Debajo del directorio raíz, se encuentran los principales directorios del sistema. Para verlos, pueden lanzar en consola : ls /
$ ls / bin dev initrd lib media proc srv usr vmlinuz.old boot etc initrd.img lib64 mnt root sys var windows cdrom home initrd.img.old lost+found opt sbin tmp vmlinuz
/bin: Se suelen ubicar acá los programas necesarios para la ejecución del sistema. Los “ejecutables” y son propiedad del superusuario (o root).
/boot: Contiene la información de arranque (booteo) del sistema, los kernels que tengamos instalados, así como un subcarpeta para el gestor de arranque (Grub o Lilo) y su configuración.
/dev: Dentro de esta carpeta, están definidos los diferentes tipos de periféricos disponibles. Hay que tener en cuenta que todo dispositivo es mapeado como un archivo. Generalmente, el usuario común no tiene acceso a los archivos de este directorio. Dentro de este directorio tenemos por ejemplo /dev/sda1, que corresponde a la primera partición de nuestro disco duro maestro, para que los usuarios puedan acceder a esta partición de disco, lo que hace el SO es mapearlo en algún otro directorio (por ejemplo en Ubuntu /media/disco).
Una mención aparte merece el archivo <code>/dev/null</code> o dispositivo nulo, es un archivo especial que es algo así como un “agujero negro”. Es decir, descarta toda la data que es escrita o enviada hacia él (pero que tiene la utilidad de reportarla como escrita). Por ejemplo, desde consola ejecuten:
ls -l
y luego
ls -l > /dev/null
El comando ls -l lista el contenido de un directorio con información detallada, y el parámetro > redirige la salida del comando hacia un lugar o archivo determinado. Así, al ejecutar ls -l > /dev/null redirigimos la salida al “agujero negro”. Es usado muchas veces en bromas o chistes geeks, por ejemplo: “envíe todas sus quejas a /dev/null” o un popular slogan del PowerBook G4 de Apple (el SO de los Apple está basado en UNIX) : “Arroje sus otros UNIX a /dev/null”
/etc: En este directorio se almacenan los archivos de configuración de los distintos programas que tenemos. Por ejemplo, en /etc/apache2/ tenemos los archivos de configuración del servidor web Apache.
/home: Es la carpeta donde se guardan los archivos personales de todos los usuarios, documentos, configuración específica de ciertos programas, etc. Viene a ser algo como el Documents and Settings de Windows. Dentro, existe una carpeta con el nombre de cada usuario. Generalmente, cada usuario tiene acceso sólo a su directorio home. Los usuarios normales tienen total control (lectura, escritura, ejecución) de los archivos de su “home” y en caso que un usuario común haga algo realmente desastroso con el sistema, sólo afectará su home, dejando el del resto de usuarios y el resto del SO intacto. El superusuario (root) tiene acceso total a todos los directorios de los demás usuarios (recuerden la frase: “cada user en su home y el root en el de todos”).
/initrd: Es un sistema de archivos temporal utilizado por el kernel durante el inicio (booteo)
/lib: Contiene las librerías utilizadas por los programas.
/mnt: En la mayoría de distribuciones, es el punto de montaje estándar de los dispositivos externos. Por ejemplo, podemos mapear la partición /dev/sdb4 en /mnt/musica para poder acceder a ella. En Ubuntu, los dispositivos están mapeados en /media, por lo que /mnt está vacía en una instalación estándar de esta distribución.
/opt: Por lo general se ubican e instalan aquí, programas de terceros. Por ejemplo, yo tengo Google Picasa en /opt/picasa.
/proc: Es un sistema de archivos virtual. Es utilizado para interactuar con el kernel. Contiene información que detectó el SO durante el arranque. Pueden hacer la prueba de obtener información, por ejemplo, de su CPU, mostrando la salida del archivo /proc/cpuinfo. En consola (y la info de mi procesador):
$cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.80GHz stepping : 9 cpu MHz : 2800.113 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr bogomips : 5603.81 clflush size : 64
Si es que desean saber cuánto tiempo (en segundos) hace que su sistema ha sido iniciado, ejecuten en consola: cat /proc/uptime
$cat /proc/uptime 4266.16 3104.12
El primer número indica el total de segundos que ha estado funcionando el sistema desde el último booteo. El segundo indica cuánto tiempo ha estado inactivo.
/root: Es el directorio home del superusuario
/sbin: Contiene “programas” usados por el sistema: mount (para montar particiones), shutdown (para apagar el sistema), etc. Generalmente, sólo el root puede ejecutarlos.
/tmp: Es el directorio temporal del sistema. Al reiniciar el SO, se borra su contenido.
/usr: Contiene librerías, documentación, etc. de los programas de usuario. Dentro contiene (entre otros) los directorios /usr/bin (para ejecutables de los usuarios), /usr/lib/ (para librerías de los usuarios), etc.
/var: Contiene información variable del sistema: archivos de logs /var/log/, la cola de correo /var/mail/, etc.
Pueden ver una descripción de los diversos subdirectorios en la Wikipedia en inglés.
Como siempre, son bienvenidos los comentarios, preguntas y precisiones.
Enviar a Linuxfera Entradas Relacionadas:
Posts RSS
Vía Email













Creo que voy a necesitar un tiempo para memorizar esto… hehe
Muy bueno este “tuto” sobre las carpetas, gracias!
Si, genial para aprender cada directorio, algo que cuando pasas de Windows a Linux te cuesta entender.
muy bien explicado, recuerdo que cuando empezé con esto de linux me volvía loco con tanta carpeta xD
Ahora cuando tengo que usar windows por obligación siempre me pregunto:
¿dónde estará el /home?
e inmediatamente me respondo a mi mismo:
ah si, que aquí se llama documents asn settings
jajajaja