You are on page 1of 7

EL SISTEMA DE ARCHIVOS

El sistema de archivos es un conjunto de programas que se encargan de realizar todas las operaciones relacionadas con el almacenamiento y manipulacin de los archivos. Son las funciones que tratan con los dispositivos fsicos de almacenamiento del computador, como el disco duro, funciones como escribir, leer, borrar.

La jerarqua del sistema de archivos


Todo sistema operativo necesita guardar multitud de archivos: archivos de configuracin, archivos de registros, archivos de los usuarios, etc.. En general, cada sistema operativo utiliza su propio sistema de archivos, con caractersticas propias como puede ser: el rendimiento, la seguridad, la fiabilidad, etc. GNU/Linux es capaz de leer y escribir archivos con cualquiera de los sistemas de archivos que actualmente existen. Generalmente, se suele utilizar el tipo ext2, ext3 o ReiserFS. El ext2 es el ms tpico y extendido, su rendimiento es bastante bueno, incorpora todo tipo de mecanismos de seguridad y tunning y es muy fiable. Aunque las ltimas versiones de las distirbuciones ms utilizadas recomiendan utilizar ext3 por sus caractersticas especiales. ext3 es la evolucin de ext2 , incorporando una tecnologa llamada de journaling. Una de las principales ventajas de esta tecnologa es que si hay un corte en el suministro de energa y el ordenador se apaga sin cerrarse adecuadamente, los sistemas de recuperacin de archivos son ms efectivos. ReiserFS es un tipo de sistema que incorpora nuevas tecnologas de diseo que le permiten ser ms rpido. El sistema de archivos ext2 ha sido diseado para manejar de forma muy rpida archivos pequeos, que es lo ms comn en un sistema operativo. Tiene inconvenientes con el el manejo de grandes archivos multimedia, aunque siempre se puede hacer un poco de tunning para adaptarlo a nuestras necesidades. Durante el proceso de instalacin del sistema operativo se preguntar cul de estos tres queremos usar. Generalmente se suele utilizar ext3 o ext2 por estar ms probados que el ReiserFS. Una caracterstica muy importante de todos los sistemas operativos basados en UNIX y Linux es que todos los dispositivos del sistema se pueden tratar como si fueran archivos. Es as que para acceder al contenido de un CD, disquete o cualquier otro dispositivo de almacenamiento, debemos montarlo en un directorio ya existente en el sistema y navegaremos por l como si se tratara de un directorio ms, en Linux no existen las unidades A:,B:,C:,D:,. . . esta forma de nombrar a las particiones es slo caracterstica de Ms Windows.

El sistema de archivos parte de una misma raz, a la cual nos referiremos con el carcter / (slash), es el origen de todo el sistema de archivos y slo existe una. Para organizar los archivos adecuadamente, se utiliza la estructura jerrquica basada en rboles de directorios y archivos, como la siguiente figura:

Directorios Principales del sistema


La mayora de los sistemas operativos siguen el estndar FHS, donde se especifican las principales caractersticas que debera tener cualquier sistema operativo. Entre ellas est la distribucin en directorios que tenemos que hacer de nuestros archivos para tenerlos correctamente organizados y poder localizarlos de forma rpida y sencilla. En la mayora de distribuciones basadas en GNU/Linux se siguen estas recomendaciones, encontrando los siguientes directorios principales: /bin: comandos bsicos para todos los usuarios del sistema. /boot: archivos estticos necesarios para el arranque del sistema. /dev: dispositivos del sistema. /etc: archivos de configuracin del sistema y de las aplicaciones instaladas en el mismo. /home: directorio donde se alojan los directorios de los usuarios. /lib: libreras esenciales para el ncleo del sistema y mdulos del mismo. /mnt: punto de montaje temporal para acceder a los dispositivos. /proc: procesos y variables del ncleo del sistema. /root: directorio de trabajo del usuario root del sistema. /sbin: comandos especiales para el root del sistema. /tmp: archivos temporales. Segn la distribucin utilizada (o la configuracin que utilicemos) se borran al arrancar el sistema o cada cierto perodo de tiempo. /usr: segunda estructura jerrquica, utilizada para almacenar el software instalado en el sistema, pginas de manuales, directorios de cdigo fuente, . /var: directorio para las colas de impresin, de correos, archivos de registro, etc., toda informacin que tenga que ver con el registro del sistema. Se recomienda conservar y no eliminar ninguno de estos directorios, o cualquier otro que se cree durante el proceso de instalacin, ya que son bsicos para el buen funcionamiento del sistema. Generalmente, los instaladores de los programas necesitan que exista la organizacin detallada y muchos de los archivos de configuracin de los programas deben estar en determinados directorios, es por ello que debe respetarse esta estructura.

Nombres de archivos en Linux


Los nombres de archivos en Linux (como en todos los UNIX) distinguen maysculas de minsculas, esto es, son "case sensitive". Los archivos README,

readme, REadme y rEadme por ejemplo son archivos distintos y por lo tanto al ser nombres distintos pueden estar en el mismo directorio. En Linux los archivos no tiene por qu tener una extensin. La suelen tener a modo orientativo, pero no es en absoluto necesario. Linux sabe qu contiene cada archivo independientemente de cul sea su extensin. Por comodidad, podremos llamar a todos nuestros archivos de texto con la extensin .texto, o a todos nuestros documentos con la extensin .documento, de esta manera, podremos luego agruparlos ms fcilmente. Los archivos y directorios ocultos en Linux comienzan su nombre por un punto (.) Los nombres de archivos o directorios pueden ser muy largos, de ms de 200 caracteres, lo cual nos da bastante flexibilidad para asociar el nombre de un archivo con lo que contiene. Para referencia a un archivo que contenga un espacio en su nombre deber precederlos con 1 back flash \ o con apstrofes simples ().

Comodines
Los comodines vlidos para cualquier archivo: "*" y "?" * : RESTO/TODO: Solo sustituye a TODOS los archivos, delante/detras/en medio del archivo todo lo que coincida con l. ? : CUALQUIER CARCTER: que coincida con el resto que est escrito.

Tipos de archivos
Regular. Son aquellos que almacenan informacin: cartas, listas, cdigos. Directorios. Son una tabla con nmeros de inodos y nombres de archivos, sirven para organizar los archivos y directorios. Archivos especiales. Pueden ser dispositivo tipo carcter o dispositivo de bloques. El manejo de estos archivos depende del dispositivo en particular: disco duro, disquete, cinta magntica, etc. Fifo son pipes con nombre. Son propios de System V. Enlaces simblicos (symbolic links). Son archivos que contiene un puntero a otro archivo que podra perfectamente estar en un sistema de archivos distinto. El Socket es un archivo especial de 4.3 BSD y se utiliza para comunicar procesos que pueden estar en mquinas distintas. Enlaces rgidos (hard links). Realmente es un nico archivo que puede ser visto con distintos nombres dentro de un mismo sistema de archivos. La

informacin reside en un mismo lugar y lo que ocurra aparentemente en un sitio ocurrir instantneamente en el otro lugar. Los enlaces de este tipo no pueden ocurrir entre sistemas de archivos distintos. No todos los sistemas de archivos soportan hard links ya que es un concepto muy ligado a los SO tipo Unix.

Comandos para manipular archivos y directorios


Comando ls: Permite listar el contenido de un directorio. Algunas opciones: -l : muestra la salida en formato largo. -R : lista recursivamente un directorio, es decir todo lo que contiene incluso subdirectorios. -a : lista adems los archivos ocultos. -h : muestra el tamao de los archivos en forma ms legible (Ej: 16M, 4k, etc.) -i : muestra el identificador del i-nodo asociado a cada elemento. -full-time : combinado con el formato largo muestra la fecha completa de la ltima modificacin de cada elemento.

$ ls -hl /etc $ ls -R /usr $ ls -al $ ls -ali .. Comando cd: Se utiliza para cambiar el directorio actual. $ cd /tmp $ cd $ cd $ cd .. $ cd ~ $ cd ~pepe

# cambia hacia el directorio home del usuario actual # cambia hacia el directorio anterior # cambia hacia el directorio padre # cambia hacia el directorio base del usuario actual. Igual a cd. # cambia hacia el directorio base del usuario pepe

Comando pwd: Muestra el camino absoluto del directorio en el cual nos encontramos actualmente. $ pwd

Comando touch: Crea un archivo vaco, tambin se utiliza para cambiar la fecha de acceso y/o modificacin a un archivo. Algunas opciones: -a : Cambia solamente el tiempo de acceso. -c : No crear archivos que no existan antes. -d fecha : Usar fecha en lugar de la fecha actual. El formato de fecha es el siguiente: MMDDHHMMAAAA, por ejemplo para representar el 7 de abril de 2001 a la 1:00 a.m., se escribir: 040701002001. Si el ao a usar es el ao actual, se puede obviar, entonces el ejemplo anterior quedara as: 04070100. $ touch carta Comando mkdir : Se utiliza para crear directorios. $ mkdir bin $ mkdir -p # se crean los directorios intermedios si es docs/linuxdocs/howtos/pdf necesario. Comando rmdir : sirve para borrar directorios vacos. $ rmdir bin $ rmdir linuxdocs/howtos/pdf # se borra el directorio pdf si estuviera vaco. Comando mv: Mueve un archivo hacia otro, o varios archivos hacia un directorio, permite renombrar archivos o directorios. Algunas opciones: -i : ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si existiera. -u : actualiza (upgrade) el destino con el fuente solo si este es ms reciente. $ mv mail.cf mail.cf.old $ mv -i *.txt /tmp $ mv bin/ exe $ mv -u program.c src/ # renombra un archivo # mueve archivos terminados en .txt al directorio /tmp # renombra un directorio. Si existe el destino mueve el fuente hacia este # actualiza el archivo destino si es menos reciente que el fuente

Comando cp: Permite copiar un archivo en otro, o varios archivos en un directorio. Algunas opciones:

-p : si es posible preserva los atributos (dueo, grupo y permisos) de los archivos originales en las copias. -d : preserva los enlaces simblicos en lugar de copiar los archivos a los que estos apuntan. Actualmente es as por defecto. -L : no preserva los enlaces simblicos, o sea copia los archivos a los que estos apuntan. -R : copia recursivamente un directorio -a : es equivalente a las opciones -dpR. -i : utiliza una forma interactiva (pregunta antes de sobrescribir el destino). -l : hace enlaces fuertes a los archivos fuentes en lugar de copiarlos. $ cp /etc/passwd . $ cp -a /etc/mail mailb/ # copia el archivo al directorio actual # copia recursivamente un directorio preservando atributos y enlaces

$ cp -i /usr/bin/*sh # copia interactivamente los archivos terminados en /tmp sh al directorio /tmp $ cp -l /bin/* bin/ # hace enlaces fuertes a todos los archivos en un directorio

Comando rm: Se utiliza para borrar (desenlazar) archivos. Algunas opciones: -r : borra recursivamente un directorio. -f : borra forzosamente en caso de que no se tenga permiso de escritura en forma directa. -i : ejecuta el comando de forma interactiva.

$ rm prueba $ rm -i bin/* $ rm -rf temp/

Enlaces
Un enlace es un puente a un archivo o directorio perteneciente al sistema; una referencia que podemos poner en cualquier sitio que nos interese y que acta como un acceso directo a cualquier otro. Ejemplo: Un usuario ingresa frecuentemente al directorio /usr/share/man/man3/, en lugar de escribir un largo comando cada vez que se desea ingresar a ese directorio creamos un enlace en nuestro propio home.

$ ln -s /usr/share/man/man3 mmm En enlace que se cre se llama mmm y cada que vez que ingresemos alli automticamente el sistema lo redimir hacia /usr/share/man/man3/. Comando ln : Sirve para establecer enlaces entre archivos. Un enlace puede ser rgido o simblico. -d : Permite al super-usuario hacer enlaces rgidos a directorios. -s : Crear enlace simblico. -f : Borrar los archivos de destino que ya existen. $ ln -s /etc/passwd usuarios $ ln /var/log/messages mensajes # Creando enlace simblico usuarios. # Creando enlace rgido mensajes.

Comando file: Determina con cierto grado de precisin el tipo de un archivo que se le pasa como argumento.

$ file /etc/passwd /etc/passwd: ASCII text

$ file /usr/sbin/adduser /usr/sbin/adduser: symbolic link to useradd

$ file /usr/sbin/useradd /usr/sbin/useradd: ELF 32-bit LSB executable, Intel 80386, versin 1, dynamically linked (uses shared libs), stripped

$ file /etc /etc: directory

You might also like