Вы находитесь на странице: 1из 43

Sistema de Archivos en Linux

Napoleon Regalado

Linux

Detalles de archivo
Conceptos Claves
El trmino archivo se refiere a los archivos regulares,
directorios, enlaces simblicos, nodos de dispositivo y otros. Todos los archivos tienen atributos comunes: usuario propietario, grupo propietario, permisos y la informacin de temporizacin. Esta informacin se almacena en una estructura llamada inodo. Los nombres de archivos se encuentran en estructuras de datos llamadas dentries (del ingls directory entries). La informacin de un inodo un de archivo se puede examinar con los comandos ls -l y stat. Dentro del kernel de Linux, los archivos estn generalmente identificados por un nmero de inodo. El comando ls -i se puede utilizar para examinar los nmeros de inodo.
2007 Linux. Todos los derechos reservados. 2

Cmo guarda archivos Linux


Tres componentes que Linux asocia con un archivo: data metadata Los datos son el contenido del archivo Informacin extra asociada al archivo usuario propietario, grupo propietario, y permisos de otros. Es almacenado en una estructure llamada dentry, y corresponde al nombre del archivo.

filename

2007 Linux. Todos los derechos reservados.

Qu hay en un inodo?
Tipo de archivo
Incluye archivos regulares y directorios, enlaces simblicos y nodos de dispositivos y comunicacin entre procesos.

Propiedades y Permisos
Cada archivo y directorio tiene un ususrio propietario, un grupo propietario y una serie de permisos de escritura, lectura y ejecucin.

Informacin de temporizacin
tres tiempos importantes para el archivo: el atime , el ctime y el mtime .Estos tiempos registran la ltima vez que se tuvo acceso (ledo), cambiado, o modificado,respectivamente.

2007 Linux. Todos los derechos reservados.

Qu hay en un inodo?(cont)
Longitud y tamao del archivo
la longitud de un archivo es el nmero real de bytes de datos, y el tamao del archivo la cantidad de espacio de disco que el archivo utiliza.

ls l (5) y ls s

Conteo de enlaces
Conteo de enlaces entre archivos o el nmero de dentries (nombres de archivos) que se refieran al archivo. Por lo general, los archivos regulares slo tienen un nombre y el conteo de enlace es uno.

2007 Linux. Todos los derechos reservados.

Ver la informacin del inodo con el comando stat y ls


El comando stat examinar en detalle la informacin del

inodo de un archivo.
El comando ls suele hacer un mejor trabajo resumiendo la

informacin para varios archivos.

2007 Linux. Todos los derechos reservados.

Enlaces duros y blandos


Conceptos Claves
El comando ln crea dos tipos distintos de enlaces. Los enlaces duros asignan mltiples dentries (nombres de archivos) a un inodo nico. Los enlaces blandos son inodos distintos que hacen referencia a otros nombres de archivos.

2007 Linux. Todos los derechos reservados.

El caso de enlaces duros


El mismo archivo exista en dos lugares diferentes o que tengan dos nombres diferentes.
[blondie]$

ln music/duet.txt /home/elvis/music/duet.txt

Debido a que el archivo fue enlazado y no copiado, es el mismo archivo bajo dos nombres.

2007 Linux. Todos los derechos reservados.

Cmo se implementan los enlaces duros?


Despus de usar el comando ln para crear el enlace
archivo es todava un slo inodo, ahora hay dos dentries refirindose a ste.
[blondie]$ ln music/duet.txt /home/elvis/music/duet.txt [blondie]$ ls -l music/duet.txt

-rw-rw-r-- 2 blondie music 25 Jul 13 06:08 music/duet.txt

Ahora, estas dos dentries estan referenciando al inode, y el archivo es enlazado con un valor 2

2007 Linux. Todos los derechos reservados.

El caso de los enlaces blandos


Corresponde a asignar a un solo archivo dos nombres. Son similares, pero son implementados de manera distinta respecto de los enlaces duros.
[madonna@station todo]$ ln -s tuesday.todo today.todo [madonna@station todo]$ ls -l

total 32
lrwxrwxrwx 1 madonna madonna 12 Jul 14 09:55 today.todo -> tuesday.todo -rw-rw-r-- 1 madonna madonna 37 Jul 14 09:54 tuesday.todo -rw-rw-r-- 1 madonna madonna 6587 Jul 14 09:55 wednesday.todo

Este no es un archivo regular ("-"), ni un directorio ("d"), sino un "l", indicando un enlace simblico. Un enlace simblico, tambin denominado enlace "blando", es un archivo que hace referencia a otro archivo por nombre de archivo. Los enlaces blandos son similares a alias encontrados en otros sistemas operativos.
2007 Linux. Todos los derechos reservados. 10

Detalles de los enlaces blandos


Cuando el enlace blando today.txt fue creado, el enlace blando (a diferencia del enlace duro) es en realidad un archivo nuevo, con un inodo recin creado. Sin embargo, el enlace no es un archivo regular, sino un enlace simblico. Los enlaces simblicos, en lugar de almacenar datos reales, almacenan el nombre de otro archivo.

2007 Linux. Todos los derechos reservados.

11

Problemas con enlaces blandos


Enlaces colgantes
Renombrar o remover el archivo regular

Al leer el contenido del archivo de enlace, retorna un error.

Enlaces Recursivos
Si se crean dos enlaces simblicos, link_a, que hagan referencia a un archivo llamado link_b, y link_b, el cual hace referencia al archivo link_a, en este caso se genera un enlace recursivo.

El kernel solo apuntar a un enlace algunas veces antes de sospechar de que se encuentra en un enlace recursivo, y desiste.

2007 Linux. Todos los derechos reservados.

12

Comparacin entre enlace Duros y Blandos


Hard Links
Los directorios pueden no tener enlaces duros. Los enlaces duros no tienen un concepto de "original" y "copia". Una vez se ha creado un enlace duro, todas las instancias se tratan igual. Los enlaces duros deben hacer referencia a archivos en el mismo sistema de archivos.

Soft Links
Los enlaces blandos pueden hacer referencia a directorios. Los enlaces blandos tienen un concepto de "referencia" y "referido". Al suprimir archivos "referidos" se crea una referencia colgante. Los enlaces blandos pueden abarcar archivos del sistema (particiones).

2007 Linux. Todos los derechos reservados.

13

Directorios y nodos de dispositivo


Conceptos Claves
El trmino archivo se refiere a los archivos regulares, directorios, enlaces simblicos, nodos de dispositivo y otros. El trmino archivo se refiere a los archivos regulares, directorios, enlaces simblicos, nodos de dispositivo y otros. Todos los archivos tienen atributos comunes: usuario propietario, grupo propietario, permisos e informacin de temporizacin. La meta informacin de un archivo se encuentra en una estructura de datos llamada inodos.

Los nombres de archivos estn en unas estructuras de datos llamadas entradas de directorio (dentries).
La meta informacin de un archivo se puede examinar con los comandos ls -l y stat.
2007 Linux. Todos los derechos reservados. 14

Estructura del Directorio


Un directorio es una coleccin de dentries Cada directorio contiene entries llamadas . and .., Son tratadas como archivos ocultos (debido a que "comienzan por ."), no se visualizan a no ser que se especifique el comando -a.

2007 Linux. Todos los derechos reservados.

15

Enlaces de Directorios
Directorios es una coleccin de dentries, asignando nombres de archivo como los inodos subyacentes que representan archivos Cada directorio contiene al menos dos enlaces
Una por si mismo como la entrada del directorio "." Una como su padre con un nombre de directorio real.

Directorios son referenciados por un adicional enlace por cada subdirectorio, los cuales hacen referencia al directorio como "..".
[prince@station prince]$ ls -ial report
total 16 592253 drwxrwxr-x 4 prince prince 4096 Jul 14 13:27 . 249482 drwx-----x 6 prince prince 4096 Jul 14 13:27 ..

592255 drwxrwxr-x 3 prince prince 4096 Jul 14 13:49 html


592254 drwxrwxr-x 2 prince prince 4096 Jul 14 13:49 text

2007 Linux. Todos los derechos reservados.

16

Nodos de Dispositivos de Bloque y Caracter


Los nodos de dispositivos existen en el sistema de archivos, pero no contienen datos de la misma forma que los archivos regulares o incluso los directorios y enlaces simblicos.

La tarea de un dispositivo de nodo es actuar como un conducto hacia un controlador de dispositivo determinado dentro del kernel.

los nodos de dispositivo viven dentro de un directorio llamado /dev.


[elvis@station elvis]$ ls -l /dev total 228 crw------- 1 root root 10, 4 Jan 30 05:24 amigamouse crw------- 1 elvis root 14, 7 Jan 30 05:24 audioctl brw-rw---- 1 root disk 29, 0 Jan 30 05:24 aztcd
2007 Linux. Todos los derechos reservados. 17

Controladores de Dispositivos en Linux


Los controladores de dispositivos en Linux se dividen en dos clases principales:
dispositivos de caracter dispositivos de bloque. Dispositivos de Los dispositivos de caracter son dispositivos que leen y escriben informacin como un flujo de bytes Caracter

("caracteres"), y hay un concepto natural de lo que significa leer o escribir el "prximo " caracter. Ejemplos de dispositivos de caracter incluyen teclado, ratn. tarjetas de sonido e impresoras.

Dispositivos de Los dispositivos de bloque son dispositivos que leen y escriben informacin en fragmentos ("bloques") a la vez. Bloque

Es costumbre que los dispositivos de bloque permitan acceso aleatorio, lo que significa que un bloque de datos podra leerse desde cualquier parte del dispositivo, en cualquier orden. Ejemplos de dispositivos de bloque incluyen, discos duros, disquetes y controladores de CD/ROM.
2007 Linux. Todos los derechos reservados. 18

Terminales como Dispositivos


El "nombre" de la terminal es en realidad el nombre del nodo de dispositivo asignado a esa terminal.
[elvis@station elvis]$ ls -l /dev/tty[1-6]
crw--w---- 1 elvis tty 4, 1 May 14 16:06 /dev/tty1 crw--w---- 1 elvis tty 4, 2 May 14 16:06 /dev/tty2 crw------- 1 root root 4, 3 May 14 08:50 /dev/tty3

2007 Linux. Todos los derechos reservados.

19

[elvis@station elvis]$ cal > /tmp/cal


May 2003 Su Mo Tu We Th Fr Sa 1 6 7 2 3 4 5 8 9 10 11 12

Terminales como Dispositivos (cont)

[elvis@station elvis]$ cal > /dev/tty1

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

[elvis@station elvis]$ cal > /dev/tty2

2007 Linux. Todos los derechos reservados.

20

Terminales como Dispositivos (cont)


Al cambiar a la segunda consola virtual, usando el la secuencia CTRL-ALT-F2 , elvis halla los siguientes caracteres en la pantalla.

2007 Linux. Todos los derechos reservados.

21

Permisos de dispositivo, seguridad y usuario de consola


[elvis@station elvis]$ cal > /dev/tty3
-bash: /dev/tty3: Permission denied

Por que elvis no pudo realizar el mismo truco en la tercera consola virtual?
Porque elvis no ha iniciado sesin en la tercera consola virtual y por lo tanto, no posee el dispositivo.
[elvis@station elvis]$ ls -l /dev/tty[1-6] crw--w---- 1 elvis tty 4, 1 May 14 16:06 /dev/tty1 crw--w---- 1 elvis tty 4, 2 May 14 16:06 /dev/tty2 crw------- 1 root root 4, 3 May 14 08:50 /dev/tty3

2007 Linux. Todos los derechos reservados.

22

Discos, sistemas de archivos y montaje


Conceptos Claves
Linux permite el acceso de bajo nivel a los controladores de disco a travs de nodos de dispositivo en el directorio /dev. Por lo general, los discos se formatean con un sistema de archivos y se montan en un directorio. Los sistemas de archivos se crean con algunas variantes del comando mkfs. El sistema de archivos predetermiando de Red Hat Enterprise Linux es el sistema de archivos ext3. El comando mount se utiliza para asignar el directorio root de un sistema de archivos (o una particin de un disco) a un directorio ya existente. Ese directorio se denomina punto de montaje. El comando umount se utiliza para desmontar un sistema de archivos de un punto de montaje. El comando df se utiliza para reportar el uso del sistema de archivos y mapea los dispositivos actualmente montados.
2007 Linux. Todos los derechos reservados. 23

Dispositivos de Disco
Linux (y Unix) permite a los usuarios acceso directo, de bajo nivel a los controladores de disco a travs de los nodos de dispositivos en el directorio /dev.

2007 Linux. Todos los derechos reservados.

24

Permisos de Nodos de Dispositivos


Usualmente los usuarios standard no tienen permisos para accesar a nodos de dispositivos
[elvis]$ ls -l /dev/fd0 /dev/hd[abcd] /dev/sda /dev/cdrom lrwxrwxrwx 1 root root 8 Oct 1 2002 /dev/cdrom -> /dev/hdc

brw-rw---- 1 elvis
brw-rw---- 1 root brw-rw---- 1 root brw------1 elvis

floppy
disk disk disk

2, 0
3, 0 3, 64 22, 0

Jan 30 05:24 /dev/fd0


Jan 30 05:24 /dev/hda Jan 30 05:24 /dev/hdb Jan 30 05:24 /dev/hdc

brw-rw---- 1 root
brw-rw---- 1 root

disk
disk

22, 64
8, 0

Jan 30 05:24 /dev/hdd


Jan 30 05:24 /dev/sda

La "console user", tiene permisos para accesar a floppy y CD/ROM drives

2007 Linux. Todos los derechos reservados.

25

Particiones de Disco Duro


Los discos duros suelen dividirse en particiones.

Las particiones son regiones del disco duro que se pueden utilizar como si cada una fuera un disco individual.

As como hay nodos de dispositivo para cada disco, los hay tambin para cada particin de disco.

2007 Linux. Todos los derechos reservados.

26

Filesystems
A los usuarios les gusta organizar su informacin en archivos y darle nombres a los archivos. A ellos les gusta organizar sus archivos en directorios y decir quin puede tener acceso al directorio y quin no. Toda esta estructuracin de informacin es responsabilidad de lo que se denomina un sistema de archivos.

2007 Linux. Todos los derechos reservados.

27

Filesystem (cont)
Antes de que un disco se pueda utilizar para almacenar archivos en el sentido convencional , se debe ser inicializar con este tipo de estructura de bajo nivel.

En Linux, se denomina una "creacin de un sistema de archivos".


En Linux, los sistemas de archivos se crean con algunas variantes del comando mkfs Este comando aloja en el directorio /sbin, el cual est reservado para los comandos administrativos.

2007 Linux. Todos los derechos reservados.

28

Montaje de Sistemas de Archivos


Cuando el sistema de archivos se monta sobre un directorio de esta manera, dicho directorio se denomina punto de montaje.

2007 Linux. Todos los derechos reservados.

29

Visualizando Puntos de Montaje


[elvis@station elvis]$ mount /dev/hda3 on / type ext3 (rw) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw) [elvis@station elvis]$ df Filesystem /dev/hda2 /dev/hda1 /dev/hda4 /dev/hdb2 1K-blocks 8259708 102454 5491668 4226564 Used 24227 348768 Available Use% Mounted on 86% 25% 7% 36% / /boot /home /data 72937 4863936 6708536 1131592

1417112 2594748

none

127592

127592

0%

/dev/shm

2007 Linux. Todos los derechos reservados.

30

Medios de Montaje Temporal: directorio /mnt


Punto de Montaje /mnt/floppy /mnt/cdrom Dispositivo Floppy Drive CD/ROM Drive

/mnt/jaz
/mnt/camera /mnt/memstick /mnt/zip

Jaz Drive
USB attached camera USB attached memory stick device Zip Drive

2007 Linux. Todos los derechos reservados.

31

Localizacin de archivos con locate y find


Conceptos Claves
El comando locate utiliza una base de datos para localizar rpidamente los archivos en el sistema por el nombre de archivo. El comando find realiza en tiempo real, una busqueda de modo recursivo del sistema de archivos. El comando find puede buscar archivos basados en informacin de inodo. El comando find puede ejecutar comandos arbitrarios en archivos.
2007 Linux. Todos los derechos reservados. 32

Localizando Archivos
El comando locate escribe los nombres de los archivos y directorios que coinciden con un modelo proporcionado.
[blondie@station blondie]$ locate umount
/usr/bin/smbumount /usr/share/man/man2/umount.2.gz /usr/share/man/man2/umount2.2.gz

/usr/share/man/man8/umount.8.gz
/usr/share/man/man8/smbumount.8.gz /usr/share/icons/slick/16x16/devices/hdd_umount.png /usr/src/linux-2.4.18-24.8.0/fs/jfs/jfs_umount.c /bin/umount

2007 Linux. Todos los derechos reservados.

33

Usando find
El comando find se utiliza para buscar en el sistema de archivos archivos que cumplan con el criterio especificado.
find (root directory) (criteria) (action)
[madonna@station madonna]$ find /etc -name *.conf /etc/sysconfig/networking/profiles/default/resolv.conf /etc/sysconfig/networking/profiles/netup/resolv.conf find: /etc/sysconfig/pgsql: Permission denied /etc/X11/gdm/factory-gdm.conf

2007 Linux. Todos los derechos reservados.

34

Comprimir archivos: gzip y bzip2


Conceptos Claves
La comprensin de archivos pocas veces ahorra espacio en el disco. El comando ms utilizado para comprimir es gzip. El comando bzip2 es ms reciente y proporciona la compresin ma eficaz.

2007 Linux. Todos los derechos reservados.

35

Utilitarios de Compresin Standard de Linux


compress (.Z)
Puede ser descomprimido con el comando uncompress No es usualmente instalado por defecto

gzip (.gz)
el ms versatil y ms comn utilitario de descompresin usado

bzip2 (.bz)
produce la mas compacta compresin de archivos ms uso intesivo de CPU

2007 Linux. Todos los derechos reservados.

36

Ejemplo gzip
[elvis@station elvis]$ ls -sh termcap 725K termcap [elvis@station elvis]$ gzip termcap [elvis@station elvis]$ ls -sh termcap* 234K termcap.gz [elvis@station elvis]$ gzip -d termcap

[elvis@station elvis]$ ls -sh termcap*


725K termcap

2007 Linux. Todos los derechos reservados.

37

Archivar ficheros con tar


Conceptos Claves
Al empaquetar archivos se puede almacenar una estructura entera de directorio como un archivo nico. Los archivos se crean, se listan y se extraen con el comando tar. A menudo, los empaquetadores de archivos tambin se comprimen. La aplicacin fileroller proporciona una interfaz GUI para archivadores de ficheros.
2007 Linux. Todos los derechos reservados. 38

Archivadores de Archivos
El archivo contiene el directorio y sus archivos y subdirectorios subyacentes, empaquetados como un solo archivo. En Linux (y Unix), el comando ms comn para crear y extraer archivos es el comando tar. El archivo contiene el directorio y sus archivos y subdirectorios subyacentes, empaquetados como un solo archivo. A estos paquetes de archivos suele drseles la extensin del nombre de archivo .tar.

2007 Linux. Todos los derechos reservados.

39

Comandos Bsicos Tar


Opcin Efecto

-c, --create

Crea un empaquetador de archivos

-x, --extract

Extraer un empaquetador de archivos


List el contenido de un empaquetador de archivos

-t, --list

2007 Linux. Todos los derechos reservados.

40

Ejemplos tar
[prince@station prince]$ tar -c -f report.tar report [prince@station prince]$ ls -s total 24 4 report 20 report.tar

[prince@station prince]$ tar -t -f report.tar report/ report/text/ report/text/chap1.txt report/text/chap2.txt

report/html/
report/html/figures/
2007 Linux. Todos los derechos reservados. 41

Opciones del comando tar


Opcin -C, --directory=DIR -P, --absolute-reference -v, --verbose -Z, --compress Efecto Cambia al directorio DIR sin / inicial desde los nombres de archivos Lista los archivos procesados internally compress archive

-z, --gzip
-j, --bzip2

internamente gzip el archivo


internamente bzip2 el archivo

2007 Linux. Todos los derechos reservados.

42

Feliz Tarde

Coman frutas y veduras

Linux

43

Вам также может понравиться