Você está na página 1de 19

GESTIN DE FICHEROS Y DIRECTORIOS EN LINUX

1.-Organizacin de la informacin en Linux ...................................................................... 3 2.-Soporte de los ficheros ......................................................................................................... 4 3.-Tipos de archivos en Linux .................................................................................................. 5 4.-Estructura de directorios en Linux ................................................................................. 6 5.-Comandos para la manipulacin y gestin de directorios ....................................... 8 6.-Comandos para la manipulacin y gestin de ficheros ............................................. 9 7.-Redireccionamientos en Linux ....................................................................................... 14 8.-Carcter de interconexin (o pipe) y filtros ............................................................... 16 9.-Metacaracteres ..................................................................................................................... 17 ANEXO I. Diferencias entre un enlace fsico (hard) y un enlace simblico. .......... 19

1.-Organizacin de la informacin en Linux


En UNIX (y en Linux) la informacin se estructura en una serie de ficheros organizados segn una estructura jerrquica de directorios en forma de rbol invertido. A diferencia de lo que ocurra en MS-DOS, que se dispona de una unidad lgica para cada dispositivo (disquetera, CD-ROM, particiones del disco duro) y tena sentido hablar de unidad activa, en el caso de UNIX (y Linux) la informacin de los dispositivos de almacenamiento acaba integrndose en una nica estructura jerrquica de directorios. El rbol padre de esta estructura se encuentra en el llamado dispositivo raz, y forma el sistema de ficheros raz, en l se encuentra un directorio del cual cuelgan, directa o indirectamente todos los dems: el directorio raz, representado por el carcter /. Sin embargo, el concepto de directorio de trabajo sigue existiendo. A la hora de especificar las rutas de los ficheros y directorios haremos uso del carcter / a diferencia de cmo se hace en MS-DOS (el carcter usado es \). Todos los ficheros y directorios son referenciables de dos formas: Ruta absoluta. Consiste en especificar el camino entero que se debe seguir desde el directorio raz / hasta el fichero o directorio. Ruta relativa. Es el camino que se ha de seguir desde el directorio activo hasta llegar al fichero o directorio. Todo directorio contiene dos entradas que se crean al crear el directorio. Estas son . y ... La entrada . hace referencia (es un enlace fsico) al propio directorio. La entrada .. hace referencia (es un enlace fsico) al padre del directorio. El ncleo trata a todos los ficheros como secuencias de bytes sin estructura alguna, cada programa es responsable de interpretar su propia estructura.

2.-Soporte de los ficheros


La informacin relativa a los ficheros se encuentra en las tablas de nodos de ndices ( o tablas de inodes). Las tablas de inodes soportan la informacin administrativa de los ficheros, son gestionadas directamente por el sistema y son creadas al crear cada sistema de ficheros, bien sea en la instalacin del sistema o a posteriori. Un inode es un registro de una tabla de inodes que contiene la mayor parte de la informacin acerca de un fichero: Identificador de grupo. Identificador de usuario. Fecha y hora de la ltima modificacin. Fecha y hora del ltimo acceso al fichero. Nmero de enlaces. Tipo de fichero (ordinario, directorio,....). Punteros a los bloques que contienen los datos del fichero.

3.-Tipos de archivos en Linux


En UNIX (y en Linux) podemos encontrar los siguientes tipos de ficheros: Ficheros ordinarios. Contienen datos y/o programas. Segn su contenido pueden ser de dos tipos: ficheros ASCII o de texto y ficheros binarios. Los ltimos suelen ser ficheros ejecutables. Directorios. Son los ficheros que permiten una organizacin jerrquica en forma de rbol invertido. Pueden contener directorios y ficheros. Ficheros especiales. UNIX (y Linux) trata los dispositivos fsicos como si fueran ficheros. Los ficheros especiales de dispositivo son pues ficheros que representan dispositivos y se encuentran en el directorio /dev. As, por ejemplo, el fichero especial de dispositivo /dev/fd0 representa a la primera unidad de disquete. Los ficheros especiales pueden ser modo bloque o modo carcter. Enlaces simblicos. Se utilizan para hacer referencia a algn nombre de fichero. Se puede decir que son el equivalente a los accesos directos de Windows. Tuberas (o pipes). Son ficheros especiales utilizados para la comunicacin entre procesos. En la lnea de comandos del shell se suele utilizar frecuentemente para filtros. Sockets. Ficheros especiales para comunicacin entre procesos ubicados en mquinas distintas. El tipo de un archivo lo podemos conocer observando el carcter ms a la izquierda en la primera columna del resultado obtenido al usar el comando ls con la opcin l.

4.-Estructura de directorios en Linux


Una caracterstica ventajosa de un sistema UNIX (y Linux) es que su estructura de directorios bsica es una estructura significativa no organizada al azar. Esto quiere decir que cada directorio est relacionado con archivos especficos, lo cual permite mantener un sistema ordenado y la posibilidad de una mejor administracin del mismo. Parte de esta organizacin es preceptiva para el funcionamiento del sistema, pues ste espera encontrar ciertos archivos (muchos de ellos de configuracin) en lugares especficos, y el cambiar su ubicacin implicara hacer modificaciones internas en el propio sistema operativo. Dentro del directorio raz podemos encontrar los siguientes directorios con fines especficos: /bin: Contiene programas esenciales para el funcionamiento del sistema y que sern usados por todos los usuarios. /boot: Contiene los archivos requeridos por el gestor de arranque (comnmente grub). Generalmente contiene una imagen del kernel (o ncleo, que es el corazn del sistema operativo). /dev: Archivos que representan a los dispositivos fsicos (modem, ratn, impresora, discos), recordemos que Linux maneja cada componente de hardware como archivo para lograr una mayor abstraccin. Por ejemplo /dev/ttyS0 representa al primer puerto serie (el equivalente a COM1 en sistemas Windows). /etc: Este directorio contiene los archivos de configuracin del sistema. /home: En este directorio se guardan los directorios personales de los usuarios. Por ejemplo Juan podra tener todos sus documentos y personalizaciones en /home/juan. /lib: Todas las bibliotecas (comnmente llamadas libreras) para los programas esenciales del sistema y los mdulos del kernel (componentes del kernel que se cargan segn la demanda) se alojan en este directorio. /mnt: En este directorio se ubican los puntos de montaje para los dispositivos de bloque (Archivos de bloque son archivos que representan unidades de disco). /opt: Contiene los paquetes que no son esenciales para que el sistema funcione. Puede contener por ejemplo a KDE. /proc: Es un sistema de archivos virtual, se usa para obtener informacin de los procesos y del hardware. La informacin contenida en este sistema de archivos es utilizada para que funcionen utilidades como ps.

/root: Este es el directorio del administrador del sistema o root. El usuario root es ms bien una funcin, es decir conviene que aun el usuario que tiene la funcin de root, se registre como un usuario normal para las tareas no administrativas. /sbin: Contiene programas esenciales para el sistema, aunque son ejecutados ms bien por el usuario root. /tmp: Directorio que contiene los archivos temporales. /usr: Este archivo contiene principalmente los programas no esenciales para el sistema. Tiene una subjerarqua propia. Tambin contiene la documentacin de las aplicaciones. /var: Contiene datos que son modificados en tiempo real por los programas. Es decir lleva un registro de errores, informaciones y advertencias del sistema y de las aplicaciones.

5.-Comandos para la manipulacin y gestin de directorios


Comando pwd Sintaxis: pwd Muestra el nombre del directorio activo. Comando cd Cambia el directorio activo. Sintaxis: cd [directorio] directorio es opcional, si no se especifica, el directorio activo pasar a ser el directorio home (directorio personal) del usuario que ejecuta el comando. Comando mkdir Sintaxis: mkdir directorio1 [directorio2 ...] Crea el directorio o directorios que se especifiquen. Es posible crear un rbol completo de directorios con un nico comando. Comando rmdir Elimina los directorios especificados siempre que estn vacos. No se puede eliminar el directorio activo. Sintaxis: rmdir directorio1 [directorio2 ...]

6.-Comandos para la manipulacin y gestin de ficheros


Comando cat Concatena el contenido de los ficheros que se le pasen, si no se le pasa nombres de fichero, lee datos de la entrada estndar (teclado) hasta que encuentre un final de fichero Ctrl+D y entonces produce un eco en la salida estndar (pantalla). Sintaxis: cat [-n] [fichero1 [fichero2 ...]] -n : El comando produce una numeracin de todas las lneas del resultado. Comando cp Copia ficheros. Sintaxis: cp [opciones] origen destino cp [opciones] origen1 [origen2 ] directorio_destino La segunda sintaxis de cp, copia varios archivos en un directorio dado. Los permisos de los archivos tambin se copian. origen, origen1, origen2 : son nombres de ficheros (especificados con su ruta relativa o absoluta). destino: puede ser el nombre de un archivo (con su ruta absoluta o relativa) o un directorio. Si es un directorio, entonces origen es copiado sin cambiar el nombre. Si se quiere copiar en el propio directorio es necesario especificar otro nombre. En cualquier caso si se da un nombre de fichero ya existente su contenido ser reemplazado. Opciones: -r : Copia directorios recursivamente. Comando mv Cambia el nombre a un fichero o directorio. Sintaxis:

mv fichero1 fichero2 mv fichero1 [fichero2] directorio En la primera sintaxis fichero1 es el nombre original de un archivo o directorio y fichero2 es el nuevo nombre. Comando rm Elimina archivos o directorios. Sintaxis: rm [-opciones] fichero1 [fichero2 ...] Opciones: -r : Permite aceptar nombres de directorios como argumentos, y realiza un borrado recursivo del mismo. Atencin a esta opcin que puede ser peligrosa. Si el nombre del fichero (o ficheros) es un directorio obligatoriamente debe utilizarse la opcin -r. Comando find Busca ficheros recursivamente a partir del directorio que se especifique. Sintaxis: find nodo_ruta criterio_nombre_expresin nodo_ruta : especifica a partir de dnde buscar los archivos (camino). criterio : indica cmo seleccionar los archivos, si es por el nombre solamente o es por otro criterio cualquiera. accin : se refiere a, qu hacer con los ficheros seleccionados. Criterios: -name fichero : busca ficheros con nombre fichero. -type f : busca ficheros ordinarios. -type d : busca directorios. -user nombre_usuario : busca ficheros cuyo propietario sea el usuario nombre_usuario.

10

-group nombre_grupo : busca ficheros cuyo grupo propietario sea nombre_grupo. -atime -n : busca ficheros a los que se ha accedido hace menos de n das. Ejemplos: find /usr -name fic busca a partir del directorio /usr ficheros llamados fic find / -name fic -type f -user juan busca a partir del directorio raz los ficheros ordinarios que se llamen fic y tengan como propietario a juan. Comando ln Establece un enlace o vnculo entre dos ficheros, de manera que al actualizar uno de ellos los cambios se producirn en los dos. Sintaxis: ln [-opciones] fichero_exitente fichero_nuevo Opciones: -s : crea un enlace simblico. Si no se especifica el enlace ser fsico. Comando grep Busca cadenas en un fichero o ficheros Sintaxis: grep [-opciones] cadena fichero1 [fichero2 ...] cadena : cadena de texto a buscar, si contiene espacios en blanco debe ir entre comillas (simples o dobles). Opciones: -i : no hace distincin entre maysculas y minsculas. -n : numera las lneas de salida. El nmero de cada lnea ser el orden que tiene en el fichero en el cual se encuentra. -v : Para que el resultado sean las lneas que no contienen la cadena. Si no se especifica esta opcin, mostrar las lneas que contienen la cadena.

11

-c : En lugar de mostrar lneas, muestra el nmero total de lneas que contienen la cadena en cada fichero. Comando more Permite visualizar lnea a lnea o pantalla a pantalla el contenido del fichero o ficheros que se le pasen si el contenido de estos no cabe en una pantalla. Sintaxis: more fichero1 [fichero2 ...] Una vez que tengamos llena una pantalla, y siempre que queden ms lneas por visualizar, el programa espera la pulsacin de alguna tecla. Si pulsamos <ENTER>, la salida avanzar una lnea; si pulsamos la barra espaciadora, la salida avanzar una pantalla; por ltimo, si deseamos acabar, podemos hacerlo con <Ctrl>+C. Comando sort Da como resultado el contenido de uno o varios ficheros, ordenando las lneas segn determinados criterios. Sintaxis: sort [-opciones] fichero1 [fichero2 ...] Opciones: -r: invierte el orden. -t separador : especifica el carcter a utilizar como separador de campos. Si no se especifica, se asume que es el carcter espacio en blanco. -k pos1[,pos2] : Indica los campos por los que ordenar (pos1 y pos2 son valores enteros mayores que cero, 1 para el primer campo, 2 para el segundo campo,....) Si slo se especifica pos1 se ordenar por el campo que indique, si se especifica pos2, se ordenar en primer lugar por el campo pos1, a continuacin (en caso de coincidencia de varios valores en el campo1) por el campo pos1+1 y as hasta pos2. Si no se especifica esta opcin, ordenar por el primer campo. Si no se especifica separador ni campos, la salida se ordenar por lneas. -o fichero_salida : el resultado se guardar en fichero_salida. Comando tr Visualiza por la salida estndar el contenido de un fichero sustituyendo unos caracteres por otros.

12

Sintaxis: tr [-s] caracter_inicial caracter_final fichero Devuelve el contenido de fichero, sustituyendo las apariciones del carcter caracter_inicial por caracter_final. Con la opcin s sustituye repeticiones del carcter caracter_inicial por un nico carcter caracter_final.

13

7.-Redireccionamientos en Linux
Todo proceso en Linux tiene una entrada estndar, una salida estndar y una salida estndar de error. La entrada estndar es el fichero desde el cual el proceso espera recibir datos. La salida estndar es el fichero en el que el proceso volcar su salida normal. La salida estndar de error es el fichero en el que el proceso escribir los mensajes de error que emita. De forma predeterminada la entrada estndar es el teclado, y la salida estndar y la salida estndar de error es la pantalla. Sin embargo esto es posible cambiarlo desde la lnea de rdenes del shell. Ejemplo: Si usamos el comando cat sin ningn argumento, su comportamiento ser leer caracteres de la entrada estndar (el teclado, ya que no se ha redireccionado) hasta que encuentre un final de fichero (e.d. hasta que se pulse en una nueva lnea <Ctrl>+d). Finalmente volcar el texto ledo por la salida estndar (la pantalla, pues tampoco se ha redireccionado). 7.1.-Redireccionamiento de entrada Se lleva a cabo haciendo uso del smbolo < seguido del nombre del nuevo fichero de entrada. Ejemplos: El comando sort < empleados.txt muestra por la salida estndar (la pantalla) las lneas ordenadas del fichero empleados.txt. El comando cat < empleados.txt muestra por la salida estndar (la pantalla) el contenido del fichero empleados.txt. Una variante muy til es la doble redireccin de la entrada, cuya forma de uso es << cadena cuando se utiliza, el shell lee caracteres de la entrada estndar hasta que en una lnea nueva se escriba la cadena de texto cadena seguida de la pulsacin de <ENTER>. Cadena puede ser una o

14

varias palabras, si contiene espacios en blanco las comillas son obligatorias. 7.2.-Redireccionamiento de salida estndar Se lleva a cabo haciendo uso del smbolo > seguido del nombre del nuevo fichero de salida estndar. Ejemplos: El comando date > salida.txt escribe la fecha y la hora en el archivo salida.txt. Si el fichero no existe lo crea, en caso contrario, reemplazar su contenido por los nuevos datos. Como vemos, la redireccin de la salida estndar es til para la creacin rpida de ficheros. Si no disponemos de un editor de texto, podemos improvisar uno (muy rudimentario, pero ms vale eso que nada) de la siguiente manera: cat > datos.txt como resultado de la ejecucin de este comando, se leern caracteres del teclado hasta que en una nueva lnea (e. d. despus de pulsar <ENTER>) tecleemos un final de fichero <CTRL>+ D. Los datos tecleados irn a parar al fichero datos.txt. Si el comando anterior lo combinamos con la doble redireccin de la entrada cat << fin > salida.txt el comportamiento ser similar, la nica diferencia es que la entrada de datos se detendr cuando en una nueva lnea se escriba la palabra fin seguida de <ENTER>. Por ltimo veamos un ejemplo de combinar el redireccionamiento de entrada con el de la salida estndar cat < fichero1.txt > fichero2.txt el efecto es hacer una copia del contenido de fichero1.txt en fichero2.txt. Existe tambin una variante del redireccionamiento de la salida estndar, que consiste en utilizar los smbolos >> en lugar de >. El efecto de ambos operadores es similar: si el fichero de salida especificado no existe se crea, pero si el fichero ya existe, con >> los datos que contiene ya no son destruidos, pues los nuevos datos se aaden al final del mismo.

15

8.-Carcter de interconexin (o pipe) y filtros


Los filtros son programas que operan sobre estructuras de datos (generalmente ficheros) y proporcionan como salida modificaciones sobre la entrada. En esta categora entran los comandos grep, more, sort, y tr que ya hemos visto. Ahora bien, al describir su sintaxis hemos visto que todos ellos permiten especificar nombres de fichero para su entrada, y que su salida predeterminada es la pantalla (el comando sort permita, con la opcin o, especificar un nombre de fichero para su salida). En cualquier caso, podemos hacer uso de la redireccin para especificar ficheros de entrada o de salida. Si lo que pretendemos es hacer que la entrada de un programa sea tomada de la salida de otro, se debe hacer una interconexin de los mismos. Esto se lleva a cabo utilizando el carcter |. Este carcter, usado en este contexto se denomina pipe ( o tubera). Deben quedar claras las situaciones en que se debe usar este carcter y cundo se deben usar los caracteres de redireccin: si lo que pretendemos es que la entrada o salida de un programa sea un fichero, utilizaremos redireccin; en cambio, si pretendemos que la salida de un programa pase a ser la entrada de otro, hemos de usar el pipe. Ejemplo: grep disquetera perifericos.txt | sort > disqueteras.txt en esta orden, el comando grep selecciona aquellas lneas del fichero.txt que contengan la palabra disquetera. La salida predeterminada de grep es la pantalla, pero en este caso, como hemos puesto un pipe ser pasada a la entrada de sort, que ordenar las lneas y las volcar al fichero disqueteras.txt. Por ltimo, cabe sealar que el carcter pipe no es aplicable exclusivamente a aquellos programas que sean filtros (segn la definicin de arriba). Con el uso del mismo, cualquier programa que espere datos por su entrada estndar podr obtenerlos de la salida de otro programa que enve datos a su salida estndar (ver la prcticas de redireccionamiento y filtros).

16

9.-Metacaracteres
Los metacaracteres pueden definirse como caracteres o combinaciones de ellos con significados especiales para el shell. En el tema que nos ocupa, son de inters aquellos que se pueden utilizar manipular nombres de ficheros y directorios. Vamos a ver los siguientes: * : Sustituye a una cadena de cero o ms caracteres. ? : sustituye a un nico carcter. [] : sustituye a cualquier carcter de los incluidos entre los corchetes. Dentro de stos puede haber una secuencias de caracteres, intervalos (dos caracteres separados por un guin) o ambos. Ejemplo 1: ls fich*.txt Muestra un listado de los ficheros del directorio actual cuyo nombre comience por fich y acabe en .txt. Ejemplo 2: ls fich??.txt Muestra un listado de los ficheros del directorio actual cuyo nombre comience por fich y acabe en .txt, y tenga intercalados, entre fich y .txt dos caracteres cualquiera. Ejemplo 3: ls fich[1-7].txt Muestra un listado de los ficheros del directorio activo cuyo nombre comienze por fich, acabe en .txt y en medio tenga un dgito comprendido entre 1 y 7 (ambos incluidos). Ejemplo 4: ls fich[1234567].txt Realiza la misma funcin que el comando anterior. Ejemplo 5:

17

ls fich[a-ce-g].txt Muestra un listado de los ficheros del directorio activo cuyo nombre sea cualquiera de los siguientes: ficha.txt, fichb.txt, fichc.txt, fiche.txt, fichf.txt, fichg.txt

18

ANEXO I. Diferencias entre un enlace fsico (hard) y un enlace simblico.


Enlace fsico: Se crea con el comando ln sin hacer uso de la opcin -s. Con la orden ls -l aparece como un fichero ms, no hay forma de saber que se trata de un enlace. No puede crearse un enlace fsico para un directorio. Debe apuntar obligatoriamente a un fichero que est en la misma particin. Al borrar el ltimo enlace fsico el fichero se borra. Enlace simblico: Se crea con el comando ln haciendo uso de la opcin -s. Con la orden ls -l aparece como un fichero de tipo enlace simblico (el primer carcter de la primera columna es l). Es posible crear un enlace simblico para un directorio. Puede apuntar a un fichero o directorio que est en otra particin e incluso, puede no apuntar a nada. Al borrar el ltimo enlace simblico el fichero no se borra.

19

Você também pode gostar