Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Todo sistema operativo necesita guardar multitud de archivos: archivos de configuración, archivos
de registros, archivos de los usuarios, etc..
En general, cada sistema operativo utiliza su propio sistema de archivos, con características
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.
Durante el proceso de instalación del sistema operativo se preguntará cuál de estos tres queremos
usar. Generalmente se suele utilizar ext3 o ext2 por estar más probados que el ReiserFS.
Una característica 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 más, en Linux no existen las unidades A:,B:,C:,D:,. . . esta forma de nombrar a las
particiones es sólo característica de Ms Windows.
El sistema de archivos parte de una misma raíz, a la cual nos referiremos con el carácter “/”
(slash), es el origen de todo el sistema de archivos y sólo existe una. Para organizar los
archivos adecuadamente, se utiliza la estructura jerárquica basada en árboles de directorios y
archivos, como la siguiente figura:
La mayoría de los sistemas operativos siguen el estándar FHS, donde se especifican las principales
características que debería tener cualquier sistema operativo.
Entre ellas está la distribución en directorios que tenemos que hacer de nuestros archivos para
tenerlos correctamente organizados y poder localizarlos de forma rápida y sencilla. En la mayoría
de distribuciones basadas en GNU/Linux se siguen estas recomendaciones, encontrando los
siguientes directorios principales:
/bin: comandos básicos para todos los usuarios del sistema.
/boot: archivos estáticos necesarios para el arranque del sistema.
/dev: dispositivos del sistema.
/etc: archivos de configuración del sistema y de las aplicaciones instaladas en el mismo.
/home: directorio donde se alojan los directorios de los usuarios.
/lib: librerías esenciales para el núcleo del sistema y módulos del mismo.
/mnt: punto de montaje temporal para acceder a los dispositivos.
/proc: procesos y variables del núcleo del sistema.
/root: directorio de trabajo del usuario root del sistema.
/sbin: comandos especiales para el root del sistema.
/tmp: archivos temporales. Según la distribución utilizada (o la configuración que
utilicemos) se borran al arrancar el sistema o cada cierto período de tiempo.
/usr: segunda estructura jerárquica, utilizada para almacenar el software instalado en el
sistema, páginas de manuales, directorios de código fuente, .
/var: directorio para las colas de impresión, de correos, archivos de registro, etc., toda
información 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 instalación, ya que son básicos para el buen funcionamiento del sistema.
Generalmente, los instaladores de los programas necesitan que exista la organización detallada y
muchos de los archivos de configuración de los programas deben estar en determinados
directorios, es por ello que debe respetarse esta estructura.
Los nombres de archivos en Linux (como en todos los UNIX) distinguen mayúsculas de
minúsculas, 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 extensión. La suelen tener a modo
orientativo, pero no es en absoluto necesario. Linux sabe qué contiene cada archivo
nuestros archivos de texto con la extensión .texto, o a todos nuestros documentos con la
Los archivos y directorios ocultos en Linux comienzan su nombre por un punto (.)
Los nombres de archivos o directorios pueden ser muy largos, de más de 200 caracteres,
lo cual nos da bastante flexibilidad para asociar el nombre de un archivo con lo que contiene.
Comodines
Los comodines válidos para cualquier archivo: "*" y "?"
Tipos de archivos
magnética, etc.
Fifo son pipes con nombre. Son propios de System V.
Enlaces simbólicos (symbolic links). Son archivos que contiene un puntero
a otro archivo que podría 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 máquinas distintas.
Enlaces rígidos (hard links). Realmente es un único archivo que puede ser
visto con distintos nombres dentro de un mismo sistema de archivos. La información reside
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
-h : muestra el tamaño de los archivos en forma más legible (Ej: 16M, 4k, etc.)
$ ls -hl /etc
$ ls -R /usr
$ ls -al
$ ls -ali ..
$ cd /tmp
$ cd # cambia hacia el directorio home del usuario actual
$ cd - # cambia hacia el directorio anterior
$ cd .. # cambia hacia el directorio padre
$ cd ~ # cambia hacia el directorio base del usuario actual. Igual a cd.
$ cd ~pepe # 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 vacío, también se utiliza para cambiar la fecha de
acceso y/o modificación a un archivo.
Algunas opciones:
$ touch carta
$ mkdir bin
$ mkdir -p
# se crean los directorios intermedios si es necesario.
docs/linuxdocs/howtos/pdf
Comando rmdir : sirve para borrar directorios vacíos.
$ rmdir bin
$ rmdir
# se borra el directorio pdf si estuviera vacío.
linuxdocs/howtos/pdf
Comando mv: Mueve un archivo hacia otro, o varios archivos hacia un directorio, permite
renombrar archivos o directorios.
Algunas opciones:
$ mv mail.cf
# renombra un archivo
mail.cf.old
$ mv -i *.txt /tmp # mueve archivos terminados en .txt al directorio /tmp
# renombra un directorio. Si existe el destino mueve el fuente
$ mv bin/ exe
hacia este
$ mv -u program.c # actualiza el archivo destino si es menos reciente que el
src/ fuente
-p : si es posible preserva los atributos (dueño, grupo y permisos) de los archivos originales
en las copias.
-d : preserva los enlaces simbólicos en lugar de copiar los archivos a los que estos apuntan.
-L : no preserva los enlaces simbólicos, o sea copia los archivos a los que estos apuntan.
$ rm prueba
$ rm -i bin/*
$ rm -rf temp/