• No se han encontrado resultados

Sistema de ArchivosSistema de Archivos

In document Curso Basico de UNIX (página 41-47)

Sistema de Archivos

Archivos Archivos Directorios Directorios Nombres de Archivo Nombres de Archivo

Directorio Propio. Directorio Actual Directorio Propio. Directorio Actual Nombres de Directorio

Nombres de Directorio Cambios de directorio Cambios de directorio Estructura Interna de

Estructura Interna de los Archivoslos Archivos Propiedades de los archivos

Propiedades de los archivos Tipo y Permisos de achivos Tipo y Permisos de achivos El sistema de archivos en UNIX El sistema de archivos en UNIX Preguntas y Ejercicios

Preguntas y Ejercicios Bibliografía

Bibliografía

El sistema UNIX funciona totalmente en base a

El sistema UNIX funciona totalmente en base a archivos. Los programas, los datos, losarchivos. Los programas, los datos, los directorios y aún los

directorios y aún los controladores de dispositivos tales como discos, modems e impresoras,controladores de dispositivos tales como discos, modems e impresoras, son archivos.

son archivos.

El sistema de archivos de UNIX

El sistema de archivos de UNIX se organiza en una jerarquía de directorios se organiza en una jerarquía de directorios que resulta enque resulta en una estructura

una estructura arborescente.arborescente. Archivos.

Archivos.

Cada archivo tiene asociado un nombre, un contenido, un

Cada archivo tiene asociado un nombre, un contenido, un lugar de ubicación e informaciónlugar de ubicación e información de tipo administrativo, tal

de tipo administrativo, tal como dueño y tamaño. El contenido de un como dueño y tamaño. El contenido de un archivo puede ser texto,archivo puede ser texto, programas fuente, programas ejecutables, imágenes, sonidos y otros.

programas fuente, programas ejecutables, imágenes, sonidos y otros. Estructuralmente un archivo es una secuencia de bytes de

Estructuralmente un archivo es una secuencia de bytes de datos que reside en formadatos que reside en forma semipermane

semipermanente en algún medio estable, como ser nte en algún medio estable, como ser una cinta magnética o un disco.una cinta magnética o un disco. Directorios.

Directorios.

Los archivos se agrupan en directorios. Un directorio es un archivo que contiene una lista de Los archivos se agrupan en directorios. Un directorio es un archivo que contiene una lista de nombres de archivo e información acerca de los

nombres de archivo e información acerca de los mismos. Dentro del sistema de archivos, unmismos. Dentro del sistema de archivos, un directorio es una localización capaz de contener

directorio es una localización capaz de contener otros directorios o archivos. Dos archivosotros directorios o archivos. Dos archivos que se encuentren en distinto directorio

que se encuentren en distinto directorio pueden tener el mismo nombre sin confundirse.pueden tener el mismo nombre sin confundirse. El comando ls permite listar el contenido de un directorio:

El comando ls permite listar el contenido de un directorio: ls /var

ls /var

el argumento es un directorio; la

el argumento es un directorio; la salida son los nombres de archivos y salida son los nombres de archivos y subdirectorios en esesubdirectorios en ese directorio.

directorio. ls nota ls nota

el argumento es un archivo, la

el argumento es un archivo, la salida es el nombre del salida es el nombre del archivo.archivo. ls -l /var

ls -l /var

muestra los archivos y subdirectorios contenidos en

muestra los archivos y subdirectorios contenidos en /var/var en formato largo.en formato largo. ls -ld /var

ls -ld /var

muestra características del directorio

muestra características del directorio /var/var en lugar de los archivos y subdirectoriosen lugar de los archivos y subdirectorios contenidos en él.

Nombres de archivos. Nombres de archivos. Para el nombre de archivo

Para el nombre de archivo se puede usar prácticamente cualquier caracter, incluso caracteresse puede usar prácticamente cualquier caracter, incluso caracteres no visibles. Los caracteres

no visibles. Los caracteres $ ; \ & ! * |$ ; \ & ! * | causan confusión y no conviene usarlos. Secausan confusión y no conviene usarlos. Se aconseja usar solamente letras, números, punto, guión y subraya. UNIX diferencia

aconseja usar solamente letras, números, punto, guión y subraya. UNIX diferencia mayúsculas y minúsculas: el archivo

mayúsculas y minúsculas: el archivo NOTA.TXTNOTA.TXT es distinto del archivoes distinto del archivo nota.txtnota.txt yy también de

también de Nota.txtNota.txt. No se distingue entre nombre de archivo y. No se distingue entre nombre de archivo y extensión:

extensión: nota.nueva.txtnota.nueva.txt es un nombre de archivo válido, yes un nombre de archivo válido, y LCK..modemLCK..modem también.también. Un archivo que comienza por un

Un archivo que comienza por un punto no es visible:punto no es visible: touch .noseve touch .noseve ls ls ls -a ls -a ls

ls no lo muestra, pero síno lo muestra, pero sí ls -als -a.. rm .noseve

rm .noseve

lo borra como a cualquier archivo. lo borra como a cualquier archivo.

Directorio propio. Directorio actual. Directorio propio. Directorio actual.

Al ingresar al sistema cada usuario entra en su directorio propio, un directorio privado que no Al ingresar al sistema cada usuario entra en su directorio propio, un directorio privado que no es tocado por el sistema ni por los otros usuarios. El directorio en el

es tocado por el sistema ni por los otros usuarios. El directorio en el cual se encuentracual se encuentra posicionado el usuario en un momento dado se denomina su directorio

posicionado el usuario en un momento dado se denomina su directorio actual.actual. cd /usr/bin

cd /usr/bin pwd

pwd

cambia al directorio /usr/bin; el directorio actual es /usr/bin. cambia al directorio /usr/bin; el directorio actual es /usr/bin.

cd cd pwd pwd

devuelve al usuario a su directorio propio, que es ahora el directorio actual. devuelve al usuario a su directorio propio, que es ahora el directorio actual.

echo $HOME echo $HOME

nuestra el nombre del directorio

nuestra el nombre del directorio propio. HOME es una variable de propio. HOME es una variable de ambiente que contiene elambiente que contiene el nombre del directorio propio del

nombre del directorio propio del usuario.usuario. cd $HOME

cd $HOME

tiene el mismo efecto que cd. tiene el mismo efecto que cd. Nombres de directorios. Nombres de directorios.

Un directorio puede contener otros directorios

Un directorio puede contener otros directorios así como archivos ordinarios, lo que generaasí como archivos ordinarios, lo que genera una jerarquía o árbol de directorios. El directorio superior o directorio

una jerarquía o árbol de directorios. El directorio superior o directorio raíz se denomina /.raíz se denomina /. cd /

cd / pwd pwd

el directorio actual es el directorio raíz. el directorio actual es el directorio raíz.

cd cd

vuelve al directorio propio del usuario. vuelve al directorio propio del usuario. El caracter /

El caracter / se usa también para separar los componentes de un nombre de se usa también para separar los componentes de un nombre de archivoarchivo completo:

completo: /export/home/usuario1/nota./export/home/usuario1/nota. La porción

La porción /export/home/usuario/export/home/usuario es la ruta,es la ruta, notanota es el nombre del archivo. Si sees el nombre del archivo. Si se omite la ruta, se asume que el archivo se encuentra en el directorio actual. Un nombre tal omite la ruta, se asume que el archivo se encuentra en el directorio actual. Un nombre tal como

como

textos/libro/capitulo.1

textos/libro/capitulo.1 indica que su ruta comienza a partir del directorio actual.indica que su ruta comienza a partir del directorio actual. Sería lo mismo escribir

Sería lo mismo escribir ./textos/libro/capitulo.1./textos/libro/capitulo.1 ya que el punto designa elya que el punto designa el directorio actual. Dos puntos seguidos designa

directorio actual. Dos puntos seguidos designan el directorio de nivel superior al n el directorio de nivel superior al actual. Si elactual. Si el directorio actual es

ls ../usuario2 ls ../usuario2

muestra el contenido de los archivos en

muestra el contenido de los archivos en /home/usuario2/home/usuario2

El caracter / separa directorios incluídos como parte de un nombre de archivo o directorio. El caracter / separa directorios incluídos como parte de un nombre de archivo o directorio.

ls dir1 ls dir1

es un direccionamiento relativo; es un direccionamiento relativo;

ls

ls /home/esteban/home/esteban/dir1/dir1 es un direccionamiento absoluto. es un direccionamiento absoluto.

Pueden usarse comodines para referenciar directorios y archivos: Pueden usarse comodines para referenciar directorios y archivos:

cat

cat /home/esteba/home/esteban/*/*n/*/*

Cambios en la jerarquía de directorios. Cambios en la jerarquía de directorios.

mkdir nuevo.dir mkdir nuevo.dir crea un nuevo directorio. crea un nuevo directorio. rmdir nuevo.dir rmdir nuevo.dir

borra un directorio existente; actúa

borra un directorio existente; actúa sólo sobre directorios vacíos.sólo sobre directorios vacíos. mkdir dir1

mkdir dir1

mkdir dir1/dir2 mkdir dir1/dir2

touch dir1/dir2/arch2 dir1/arch1 touch dir1/dir2/arch2 dir1/arch1 ls -lR

ls -lR

muestra todos los archivos y directorios

muestra todos los archivos y directorios creados;creados; rm -r dir1

rm -r dir1 borra el directorio

borra el directorio y todos los archivos y y todos los archivos y subdirectorios que pueda contenersubdirectorios que pueda contener.. Estructura interna de los archivos.

Estructura interna de los archivos. Un archivo es una secuencia de bytes.

Un archivo es una secuencia de bytes. Un byte es equivalente a Un byte es equivalente a un caracter. El sistema noun caracter. El sistema no impone estructura alguna a los archivos ni

impone estructura alguna a los archivos ni asigna significado a su contenido; el significado deasigna significado a su contenido; el significado de los bytes depende totalmente de los programas que interpretan

los bytes depende totalmente de los programas que interpretan el archivo.el archivo.

En ningún caso hay ningún byte que no haya sido colocado por el usuario o un programa. No En ningún caso hay ningún byte que no haya sido colocado por el usuario o un programa. No hay caracter de fin de archivo. El núcleo del sistema UNIX se mantiene al tanto del

hay caracter de fin de archivo. El núcleo del sistema UNIX se mantiene al tanto del tamañotamaño de los archivos sin introducir

de los archivos sin introducir ningún caracter especial. El caracter nuevalínea es interpretadoningún caracter especial. El caracter nuevalínea es interpretado por las terminales como nueva línea y

por las terminales como nueva línea y retorno de carro (CR retorno de carro (CR LFLF, carriage-return y , carriage-return y line-feed),line-feed), necesario para desplegar correctamente los renglones en la terminal. Al apretar la

necesario para desplegar correctamente los renglones en la terminal. Al apretar la tecla Entertecla Enter el núcleo transmite a la terminal CR LF, pero en un archivo se guarda sólo LF.

el núcleo transmite a la terminal CR LF, pero en un archivo se guarda sólo LF.

¿Qué hay dentro de un archivo? El núcleo no puede decirnos nada del tipo de archivo: no lo ¿Qué hay dentro de un archivo? El núcleo no puede decirnos nada del tipo de archivo: no lo conoce. T

conoce. Todos los archivos tienen odos los archivos tienen la misma estructura interna. la misma estructura interna. El comandoEl comando filefile hace unahace una conjetura: lee algunos bytes y

conjetura: lee algunos bytes y busca indicios sobre el tipo busca indicios sobre el tipo de contenido. En los sistemasde contenido. En los sistemas UNIX hay sólo una

UNIX hay sólo una clase de archivo. Lo único que clase de archivo. Lo único que se requiere para accederlo es su se requiere para accederlo es su nombre.nombre. Propiedad de los archivos.

Propiedad de los archivos.

Cada usuario es dueño de los archivos creados por él, hasta que los borre o los ceda a otro Cada usuario es dueño de los archivos creados por él, hasta que los borre o los ceda a otro usuario. Cada usuario pertenece a un grupo, y

usuario. Cada usuario pertenece a un grupo, y puede compartir archivos con los usuarios depuede compartir archivos con los usuarios de ese grupo. Cada archivo está asignado a un

ese grupo. Cada archivo está asignado a un grupo de usuarios, al cual debe grupo de usuarios, al cual debe pertenecer supertenecer su dueño. El comando

Tipo y permisos de archivos. Tipo y permisos de archivos. Cada archivo tienen un conjunto de

Cada archivo tienen un conjunto de permisos asociados con él que determinan qué puedepermisos asociados con él que determinan qué puede hacerse con el archivo y

hacerse con el archivo y quién puede hacerlo.quién puede hacerlo. Los permisos de un archivo se i

Los permisos de un archivo se indican con 10 caracteres:ndican con 10 caracteres: 1 caracter para tipo de archivo,

1 caracter para tipo de archivo,

3 caracteres [rwx] para permisos del

3 caracteres [rwx] para permisos del dueño,dueño, 3 caracteres [rwx] para permisos del

3 caracteres [rwx] para permisos del grupo,grupo, 3 caracteres [rwx] para permisos de

3 caracteres [rwx] para permisos de otros.otros. Caracter para tipo de archivo:

Caracter para tipo de archivo: d

d directoriodirectorio l

l enlace simbólicoenlace simbólico -

- archivo normalarchivo normal b

b archivo controlador de dispositivo orientado a bloquesarchivo controlador de dispositivo orientado a bloques c

c archivo control de dispositivo orientado a archivo control de dispositivo orientado a caracterescaracteres Caracteres de permisos:

Caracteres de permisos: r

r acceso de lectura (read)acceso de lectura (read) w

w acceso de escritura (write)acceso de escritura (write) x

x acceso de ejecución (execute)acceso de ejecución (execute) cuyo significado varía según se trate

cuyo significado varía según se trate de archivos o directorios:de archivos o directorios: P

Peerrmmiissoo AArrcchhiivvooss DDiirreeccttoorriiooss

rr lleeeer r aarrcchhiivvooss vveer r ccoonntteenniiddo o dde e ddiirreeccttoorriiooss w

w ggrraabbaar r een n uun n aarrcchhiivvoo ccrreeaar r y y bboorrrraar r aarrcchhiivvooss x

x eejjeeccuuttaar r ccoommo o pprrooggrraammaa iinnggrreessaar r a a uun n ddiirreeccttoorriioo -- ssiin n ddeerreecchhooss ssiin n ddeerreecchhooss

El ingreso a un directorio (permiso x) permite ejecutar un archivo contenido dentro de él, o El ingreso a un directorio (permiso x) permite ejecutar un archivo contenido dentro de él, o trasladarse a ese directorio; para

trasladarse a ese directorio; para estas operaciones no es necesario poder ver los nombres deestas operaciones no es necesario poder ver los nombres de los archivos contenidos (permiso r).

los archivos contenidos (permiso r).

Un archivo se declara ejecutable dándole permiso de ejecución. Se ejecuta

Un archivo se declara ejecutable dándole permiso de ejecución. Se ejecuta dando su nombre.dando su nombre. Los comandos de UNIX

Los comandos de UNIX son archivos ejecutables.son archivos ejecutables. Ejemplos de permisos de archivo:

Ejemplos de permisos de archivo: rwxr--r-- rwxr--r-- rw-rw-r-- rw-rw-r-- rw--- rw---

El sistema de archivos en UNIX. El sistema de archivos en UNIX. Un sistema de archivos en UNIX

Un sistema de archivos en UNIX puede contener miles de archivos, cientos de directorios ypuede contener miles de archivos, cientos de directorios y cientos de enlaces simbólicos, dependiendo de la distribución y de

cientos de enlaces simbólicos, dependiendo de la distribución y de lo que se haya lo que se haya instalado.instalado. Como referencia, la distribución Debian/GNU 2.1 viene con cerca

Como referencia, la distribución Debian/GNU 2.1 viene con cerca de 2500 paquetes parade 2500 paquetes para instalar

instalar. Una instalación normal puede insumir un . Una instalación normal puede insumir un 25% en herramientas de administración, y25% en herramientas de administración, y un 10 %

un 10 % en herramientas de desarrollo. Borrar, alterar o cambiar permisos de archivos puedeen herramientas de desarrollo. Borrar, alterar o cambiar permisos de archivos puede conducir a resultados impredecibles.

conducir a resultados impredecibles.

• $ ls -F /$ ls -F / •

• es útil para es útil para recorrer el sistema de archivos, bajando luego a recorrer el sistema de archivos, bajando luego a los subdirectorios.los subdirectorios. •

•Los requerimientos de las redes cambiaron la organización funcional del sistema deLos requerimientos de las redes cambiaron la organización funcional del sistema de

archivos. En un lugar grande, la

heterogéneas, cada una responsab

heterogéneas, cada una responsable del mantenimento y uso le del mantenimento y uso de cada archivo. Losde cada archivo. Los archivos pueden ser específicos para

archivos pueden ser específicos para cierta máquina, compartidos por varias cierta máquina, compartidos por varias máquinasmáquinas del mismo tipo, o accesibles a casi cualquier tipo de máquina en la red. Enlaces

del mismo tipo, o accesibles a casi cualquier tipo de máquina en la red. Enlaces simbólicos hacia la anterior localización de los

simbólicos hacia la anterior localización de los archivos ayudan al acceso. Unarchivos ayudan al acceso. Un directorio puede ser real o un enlace simbólico a otro; usar

directorio puede ser real o un enlace simbólico a otro; usar /bin/pwd/bin/pwd para si se hapara si se ha llegado al directorio directamente o

llegado al directorio directamente o a través de un a través de un enlace simbólico.enlace simbólico.

•Convenciones en nombres de archivos y Convenciones en nombres de archivos y directorios.directorios. •

•/bin /bin archivos archivos ejecutables, ejecutables, comandos comandos de de usuariousuario •

•/boot /boot archivos archivos de de arranquearranque •

•/cdrom /cdrom punto punto de de montaje montaje para para la la uniad uniad de de CD-ROMCD-ROM •

•/dev /dev archivos archivos especiales especiales de de dispositivosdispositivos •

• [subdirectori[subdirectorios propios de os propios de System V]System V] •

• ./dsk ./dsk dispositivos dispositivos de de discodisco •

• ./fd ./fd dispositivos dispositivos descriptores descriptores de de archivoarchivo •

• ./kd ./kd dispositivos dispositivos de de teclado teclado y y desplieguedespliegue •

• ./kmem ./kmem memoriamemoria •

• ./null ./null dispositivo dispositivo para para descarte descarte de de salidassalidas •

• ./osm ./osm mensajes mensajes de de error error del del núcleonúcleo •

• ./pts ./pts pseudo pseudo ttys; ttys; igual igual que que /dev/pts*/dev/pts* •

• ./rdsk ./rdsk dispositivos dispositivos crudos crudos de de discodisco •

• ./term ./term terminales; terminales; igual igual que que /dev/tty*/dev/tty* •

• ./xt ./xt pseudo pseudo ttys; ttys; para para capas capas DMDDMD •

•/dosc /dosc punto punto de de montaje montaje para para la la partición partición DOSDOS •

•/etc /etc configuracióconfiguración n de de paquetes, paquetes, configuracióconfiguración n dede

sistema sistema

• ./init.d ./init.d scripts scripts de de arranque arranque y y detención detención de de programasprogramas •

• ./rc?.d ./rc?.d enlaces enlaces a a scripts, scripts, con con K K o o S S (Kill (Kill o o Start),Start),

y número de y número de

• secuencia para controlar el arranquesecuencia para controlar el arranque •

• ./skel ./skel archivos archivos de de inicialización inicialización para para nuevosnuevos

usuarios usuarios

•/export /export directorios directorios de de usuarios usuarios en en sistemas sistemas grandesgrandes •

•/floppy /floppy para para montar montar una una unidad unidad de de disquetedisquete •

•/home /home objetos objetos relacionados relacionados con con los los usuariosusuarios

In document Curso Basico de UNIX (página 41-47)