A.S.O
GNU/LINUX Sistema de archivos
Almudena Regalón Cabrera A.S.O
GNU/LINUX 2
Contenido
1. INTRODUCCIÓN ........................................................................................................................ 3 2. SISTEMA DE ARCHIVOS ............................................................................................................ 3 2.1. ESTRUCTURA DEL SISTEMA DE ARCHIVOS .......................................................................... 3 2.1.1. DIRECTORIOS DEL SISTEMA DE ARCHIVOS .................................................................. 4 3. ARCHIVOS Y DIRECTORIOS ....................................................................................................... 5 3.1. ARCHIVOS............................................................................................................................ 5 3.1.1.
TIPOS DE ARCHIVOS .............................................................................................. 5
3.2. DIRECTORIOS....................................................................................................................... 6 4. RUTAS EN LINUX....................................................................................................................... 7 5. GESTIÓN DE ARCHIVOS Y DIRECTORIOS .................................................................................. 7 5.1. CARACTERES COMODINES .................................................................................................. 7 5.2. COMANDOS ........................................................................................................................ 8 5.3. TUBERÍAS........................................................................................................................... 16 5.4. REDIRECCIONAMIENTOS................................................................................................... 16 RESUMEN DE COMANDOS ...................................................................................................... 19
Almudena Regalón Cabrera
GNU/LINUX 3
1. INTRODUCCIÓN
Linux es un sistema operativo orientado a los archivos, ya que considera todo como un archivo, desde un archivo de texto, un directorio o cualquier dispositivo. El sistema de archivos de Linux tiene estructura jerárquica o arborescente, es decir, en forma de árbol, puesto que desde un directorio raíz cuelgan los demás directorios.
2. SISTEMA DE ARCHIVOS
http://es.wikipedia.org/wiki/Sistema_de_archivos El SO debe administras la información ubicada en los dispositivos de almacenamiento, para lo que utiliza un conjunto de procedimientos y estructuras de datos llamada SISTEMA DE ARCHIVOS. Función: almacenar, organizar, acceder y recuperar la información almacenada en forma de archivo. Entre los sistemas propios de Linux se encuentran ext2, ext3 y ext4. Las últimas distribuciones están preparadas para utilizar NTFS, FAT16, FAT32. Para ver los sistemas de archivos de los dispositivos de nuestro equipo Sistema Administración Monitor del sistema (pestaña Sistema de archivos)
Imagen 1: Monitor del sistema 1
2.1. ESTRUCTURA DEL SISTEMA DE ARCHIVOS
Lo primero que debemos tener claro es que todo el sistema de ficheros parte de una misma raíz, a la cual nos referiremos con el carácter “/”. La raíz es el origen de todo el sistema de ficheros y sólo existe una y de ella colgarán el resto de directorios y archivos formando una organización jerárquica o arborescente. /
dev
usr sbin
bin
lib
net
home
pts
gema datos
html
Imagen 2: Árbol de directorios 1
Almudena Regalón Cabrera
luis
eva
lib
GNU/LINUX 4 2.1.1. DIRECTORIOS DEL SISTEMA DE ARCHIVOS La aplicación que nos permite organizar nuestros archivos, lo que a veces se llama un administrador o Navegador de archivos, es Nautilus. Vamos al menú Lugares y seleccionamos Carpeta personal y aparece el administrador de archivos. Si desde Nautilus pulsamos en el panel lateral el acceso al sistema de archivos veremos el árbol completo de directorios. En la barra de título de la ventana veremos el símbolo / indicando que estamos en la raíz del árbol. En GNU/Linux esta es la única raíz, no existen letras de unidad para diferentes dispositivos como sí ocurre en otros sistemas, todo (CD-ROM, disquete, memoria USB, etc.) cuelga de aquí. ⇒ /: raíz, contiene los directorios principales. ⇒ /bin: Contiene archivos ejecutables fundamentales del sistema, utilizados por todos los usuarios (como por ejemplo los comandos ls, rm, cp, etc.). ⇒ /boot: Este directorio contiene la información necesaria para poder arrancar el sistema operativo. Entre otros archivos, aquí se encuentra la configuración de gestor de arranque. o /boot/grub: Contiene el gestor de arranque de GRUB. ⇒ /dev: archivos de dispositivos. Particiones de discos duros (/dev/hda3 o /dev/sda6), unidades de CD-ROM (/dev/scd0 o /dev/sr0). ⇒ /etc: Este directorio contiene todos los archivos de configuración de nuestro sistema GNU/LINUX. ⇒ /home: Directorio donde se almacenan los directorios personales de los usuarios. Si tenemos un usuario con login usu01, por defecto, se creará un directorio dentro de /home llamado usu01 /home/usu01 que será el directorio personal de este usuario. ⇒ /lib: Contiene librerías compartidas que son fundamentales para el sistema durante su inicio. La ventaja de usar librerías reside en que no es necesario integrar su código en los programas que las usan, reduciendo así el tamaño de los ejecutables. Cuando un programa necesita alguna de sus funciones, se carga la librería en memoria y puede ser usada por cualquier otro programa que la necesite, sin necesidad de volver a cargarla en memoria. ⇒ /media: Contiene las unidades físicas que tenemos montadas o que se montan automáticamente, como discos duros, unidades de DVD, pendrives, … ⇒ /mnt: Punto de montaje temporal para dispositivos. ⇒ /proc: procesos y variables del núcleo del sistema. ⇒ /root: directorio home para el root del sistema. Contiene básicamente la misma información que los directorios personales de los usuarios del sistema, pero orientada única y exclusivamente al usuario root. ⇒ /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 todo el software instalado en el sistema, documentación, código fuente, … o /usr/share: aplicaciones que se comparten para todos los usuarios. ⇒ /var: archivos variables del sistema, directorio para los spoolers de impresión, ficheros de log, etc. Se guardan los archivos que nos descargamos de internet, cuando queremos instalar un programa.
Almudena Regalón Cabrera
GNU/LINUX 5
3. ARCHIVOS Y DIRECTORIOS 3.1. ARCHIVOS
Los archivos son un conjunto de información relativa a un mismo concepto y que se guarda bajo un nombre que lo identifica. Sus características son: Nombre de 1-255 caracteres (excepto “/”) Además del nombre, número i-nodo (nº entero único). Puede ser de distinto tipo dependiendo de la función que realicen o la información que contenga. (binarios o ejecutables, texto, shell script) Operaciones: crear, borrar, copiar, mover, modificar, seleccionar, renombrar, enlazar, abrir y cerrar. Dentro de los ficheros podemos distinguir los siguientes tipos: ficheros regulares (ocultos, shell script y de configuración) y enlaces. 3.1.1. TIPOS DE ARCHIVOS A. 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 actúa como un acceso directo a cualquier otro. Este mecanismo nos permite acceder a carpetas o archivos de forma más rápida y cómoda, sin tener que desplazarnos por la jerarquía de directorios. Existen dos tipos de enlaces: Enlace duro. Es como dos entradas que apuntan a los mismos datos. (comando ln archivo enlace) Los cambios realizados en el fichero enlace se reflejan en el original y viceversa. La ventaja de este tipo de enlace es que si borramos cualquiera de las dos copias del fichero la otra todavía se conserva. Enlace simbólico. (ln –s) Es un acceso directo a un fichero (apuntador o puente hacia el fichero o directorio) Guarda información de dónde está el fichero origen, que en el caso de que se borrara, el enlace simbólico perdería toda la información. B. FICHEROS OCULTOS. Los ficheros ocultos en Linux se caracterizan porque su nombre empieza por un punto “.” Destacan los ficheros que se ejecutan cuando se inicia el sistema .bash_profile .bashrc .bash_logout .bash_profile Se utiliza para guardar las variables de entorno, y los datos que definen el perfil de usuario. Se ejecuta al iniciar sesión, cualquier cambio hecho en este fichero no tendrá efecto hasta que salgamos y entremos en el sistema de nuevo. .bashrc Son las órdenes que se deben ejecutar siempre que entremos en el intérprete. Contiene la configuración de nuestra consola, terminal, konsole, bash, … ~/.bashrc se ejecutará cuando TU hagas login /etc/bash.bashrc cuando cualquiera lo haga. .bash_logout es el fichero leído por Bash, cuando salimos del sistema.
Almudena Regalón Cabrera
GNU/LINUX 6 C. SHELL SCRIPTS: Contienen órdenes o comandos que se irán ejecutando en la shell. Algunos son ejecutados al iniciar el sistema, otros los puede crear el usuario paraca mecanizar una tarea que ejecute con frecuencia. Su extensión es .sh D. FICHEROS DE CONFIGURACIÓN: Permiten definir ciertos parámetros a la hora de arrancar el sistema para que se adecuen a las necesidades del usuario. Seleccionar programas que se cargarán al inicio. Por ejemplo /etc/bash.bashrc contiene las funciones globales y alias utilizados por el shell bash.
3.2. DIRECTORIOS
Un directorio es un conjunto de archivos y/u otros directorios agrupados en función de su contenido, su propósito o cualquier otro criterio de agrupación. Tipo de archivo que almacena información de los archivos y directorios que contiene. Características: Nombre de 1-255 caracteres (excepto “/”) Operaciones: crear, borrar, copiar, mover, modificar, seleccionar, renombrar, enlazar, entrar y cerrar. En Linux existen los siguientes directorios especiales: DIRECTORIO RAÍZ (/). Directorio inicial de toda la estructura de directorios y del que depende el resto de información almacenada en el soporte. DIRECTORIO ACTUAL (.). Es un directorio especial que hace referencia al directorio en el que estamos. DIRECTORIO PADRE (..). Es un directorio especial que hace referencia al directorio padre del directorio en el que estamos. El único directorio que no tiene padre es el directorio raíz. DIRECTORIO PERSONAL (~). Todo usuario tiene un subdirectorio personal. Cuando se entra al sistema, normalmente entra en este subdirectorio. Estos directorios personales se encuentra bajo el directorio /home, y normalmente, el nombre de los directorios personales es igual que el login de cada usuario. Supongamos que hemos iniciado sesión con el usuario gema y estamos en el directorio home de la estructura de archivos que se muestra en la Imagen 2: Árbol de directorios 1, los directorios especiales serían: Raíz: / Directorio actual: /home Directorio padre: / Directorio personal: /home/gema
Almudena Regalón Cabrera
GNU/LINUX 7
4. RUTAS EN LINUX
Los caminos, rutas o trayectorias en Linux tienen el mismo fundamento que en Windows. Una ruta señala la localización exacta de un archivo o directorio. Se compone de los nombres de los directorios que forman el camino hasta nuestro archivo o directorio a lo largo del árbol de directorios, y finalmente estará el nombre del archivo o directorio que se quiere referenciar. Estos nombres estarán separados por un carácter delimitador (/) Existen dos tipos de rutas: ABSOLUTA: hace referencia al directorio o archivo desde el directorio raíz. Siempre empieza por “/”. RELATIVA: hace referencia a un directorio o archivo desde el directorio actual.
5. GESTIÓN DE ARCHIVOS Y DIRECTORIOS 5.1. CARACTERES COMODINES
Se utilizan para sustituir a un carácter o a un conjunto de caracteres. Carácter
Función
*
Hace referencia a un conjunto o cadena de caracteres de cualquier tamaño, incluso tamaño 0.
?
Hace referencia a un carácter.
[]
Hace referencia a un carácter. Dentro de los corchetes podemos incluir un conjunto de caracteres o un rango de caracteres, pero el corchete se sustituirá sólo por un carácter.
{}
Hace referencia a varias cadenas de caracteres, que se escribirán dentro de las llaves separadas por comas.
\
Carácter escape. Se utiliza para escribir caracteres no imprimibles como el carácter espacio. REPASO le.txt
DUNO
OTRAUNO n1.doc
DDOS
leeme.txt
n2.doc
OTRADOS f33
archivo2.txt
DTRES OTRA
NUEVA
archivo3.txt
OTRATRES
nuevo.doc
archivo1.txt
ACTIVIDAD 1 ¿Qué ficheros se obtendrán con los siguientes comodines? • le[e,a]me.??? • le*me.* • n*.* • n?? • a*.txt • *.*
Almudena Regalón Cabrera
leame.ps
fichero.txt
leame.doc
GNU/LINUX 8
5.2. COMANDOS
ls (list): Muestra información sobre ficheros y directorios. Si no se especifica nada muestra información sobre el directorio actual. Sintaxis: ls [opciones] [argumentos] Argumentos: directorios o ficheros. Opciones de ls: -a: nombres de ficheros y directorios que comienzan por un punto. -A: ver los nombres de los ficheros y directorios que empiezan por un punto excepto los directorios . y .. -l: información en formato largo. -h: junto con l y s muestra el tamaño en la unidad de medida mayor. -c: muestra la información ordenada por día y hora de creación. -t: el orden es por día y hora de modificación. -r: muestra el resultado ordenado en orden inverso. -F: muestra información sobre el tipo de fichero. Los símbolos que aparecen junto al nombre del fichero indican * ejecutable, / directorio, @ enlace simbólico o -> si lo usamos con -l. -R: muestra los directorios por debajo del actual de forma recursiva. -s: muestra el tamaño en bloques de cada fichero. -S: muestra los ficheros ordenados por tamaño. ls –l, con ls –l se muestra un listado en formato largo del directorio en el que nos encontremos. Acontinuación se explica toda la información que se obtiene con esta instrucción.
Almudena Regalón Cabrera
GNU/LINUX 9
ACTIVIDAD 2
a. Desde tu directorio personal, muestra en formato largo los ficheros tty0 a tty9 del directorio /dev, utilizando caracteres comodines. ls –l /dev/tty[0-9] ls –l /dev/tty? ls –l /dev/tty{1,2,3,4,5,6,7,8,9} b. Muestra ahora los ficheros del directorio /dev que empiecen por tty, sin importar qué caracteres haya después. ls –l /dev/tty* c. Lista el contenido de tu directorio personal con el tamaño de los ficheros en la unidad de medida mayor que se pueda. ls –l d. Muestra las entradas de tu directorio personal en formato largo. ls -lh
pwd (print working directory): Muestra la ruta absoluta del directorio donde nos encontramos en ese momento. El directorio de trabajo o actual. Sintaxis: pwd
cd (change directory): Cambia de directorio. Sintaxis: cd [opciones] [directorio] Opciones: -: Cambia al último directorio donde estuvimos. ..: Cambia al directorio por encima del actual (padre). ~: Cambia al directorio personal del usuario. Argumento/s: Cambia al directorio que se le especifique como argumento. Se le puede indicar mediante una ruta absoluta o relativa.
ACTIVIDAD 3
a. Muestra la ruta absoluta del directorio dónde estás. pwd Muévete al directorio raíz. cd / Ve al directorio /etc/init.d. cd /etc/init.d Utiliza el comando que te lleve al directorio de dónde vienes. cd Comprueba dónde estás. pwd
b. Ve a tu directorio personal. cd ~ c. Ve hasta el directorio Documentos y muestra su contenido. cd C/Ejercicios ; ls –la d. Sitúate en tu carpeta de trabajo de forma diferente a como lo has hecho en el apartado b. cd ../..
Almudena Regalón Cabrera
GNU/LINUX 10
mkdir (make directories): Crea directorios. Sintaxis: mkdir [opciones] [directorio/s] Opciones: -v: Muestra un mensaje por cada directorio creado. -p: Crea los directorios padres en caso necesario. Argumento/s: Crea el directorio con el nombre que se le especifique. Se puede poner uno o varios nombres de directorios. Ejemplo: mkdir MisDocumentos Crea el directorio MisDocumentos
ACTIVIDAD 4
a. Crea la estructura de directorios de la figura dentro de tu carpeta personal /home/usuario, mediante interfaz gráfica e interfaz de texto. avi
Películas
MisCosas
dvd
Datos
isos Programas
Método
Método
sistemas operativos
cdrom 1: mkdir Miscosas Miscosas/Películas Miscosas/Datos Miscosas/Programas Miscosas/Películas/avi Miscosas/Películas/dvd Miscosas/Programas/isos Miscosas/Programas/cdrom Miscosas/Programas/isos/”sistemas operativos” 2: mkdir –p Miscosas/Películas/avi Miscosas/Películas/dvd Miscosas/Datos Miscosas/Programas/isos/”sistemas operativos” Miscosas/Programas/cdrom
rmdir (remove directory): Borra directorios si están vacíos. Sintaxis: rmdir [opciones] directorio/s Opciones: -p: Elimina directorio y todos sus ancestros. Argumento: Borra los directorios que se le pasen como argumentos. Ejemplo: rmdir MisDocumentos Borra el directorio MisDocumentos si no contiene nada dentro.
Almudena Regalón Cabrera
GNU/LINUX 11
du (disk usage): Muestra el espacio que ocupa el fichero o directorio. Sintaxis: du [opciones] [argumento/s] Opciones: -b: muestra el tamaño en bytes. -h: muestra el tamaño en la unidad de medida mayor, para que se pueda entender mejor. Argumento: Como argumento se le puede pasar uno o varios ficheros o directorios. Ejemplo: du –h MisCosas Muestra el espacio, en la unidad de medida mayor, ocupado por el directorio MisCosas.
file: Muestra el tipo de fichero. Sintaxis: file nombre Argumento: El argumento obligatorio será el nombre de un fichero o directorio. Ejemplo: file MisCosas /etc/passwd /usr/sbin/adduser /usr/sbin/useradd /etc
touch
Crea ficheros. Cambia la fecha del último acceso o/y modificación de files. Si no se especifica ninguna opción se actualizaran ambas fechas (acceso y modificación). Sintaxis: touch [options] fichero/s Opciones: -a: Actualiza únicamente la fecha del último acceso del archivo. -m: Actualiza únicamente la fecha de modificación del archivo. -t: No utiliza la fecha actual, sino el especificado a continuación mediante el formato de [YYYY]MMDDhhmm[.ss]. Ejemplo: touch archivo1.txt Crea el fichero archivo1.txt touch –ta 200101121845 file Modifica la fecha del último acceso al 12 de enero de 2001 a las 18 horas, 45 minutos.
cp (copy): Copia uno o varios ficheros en otro fichero o en un directorio. Sintaxis: cp [opciones] fichero/s destino Opciones: -f: Fuerza la copia. Si el destino no existe y no se puede abrir, lo borra e intenta copiar de nuevo. -i: Pregunta antes de sobrescribir. -r | -R: Copia directorios y los que están por debajo de él, recursivamente. Ejemplo: cp /home/usuario/dir /home/usuario/Escritorio Copia el directorio dir, que se encuentra en la carpeta usuario, en el Escritorio del usuario.
Almudena Regalón Cabrera
GNU/LINUX 12
mv (move): Mueve uno o varios ficheros a otro fichero o directorio. Sintaxis1: mv [opciones] fichero/s destino Opciones: -u: Mueve solo si el destino no existe o es anterior al fichero. -f: Fuerza la sobrescritura. -i: Pregunta antes de sobrescribir. -v: Muestra un mensaje por cada fichero movido. Sintaxis2: mv [opciones] –t directorio fuente Opciones: -t: Mueve todo el contenido de fuente en directorio. Ejemplo: mv prueba Escritorio Mueve el directorio prueba al directorio Escritorio.
rm (remove): Borra ficheros y directorios. Sintaxis: rm [opciones] [argumento/s] Opciones: -i: Pregunta antes de borrar cada fichero o directorio. -r | -R: Borra los directorios, los ficheros que contenga y los directorios que estén por debajo de él, de forma recursiva. -v: Muestra un mensaje por cada directorio o fichero borrado. Argumento/s: Borra los ficheros o directorios cuyo nombre se le pase como argumento. Se puede pasar más de un argumento y se pueden usar caracteres comodines. Ejemplo: rm archivo1.txt Borra el fichero archivo1.txt rm –r Carpeta Borra el directorio Carpeta y todo lo que contenga.
ACTIVIDAD 5 Basándote en la estructura de la Activdad 4 realiza lo siguiente: a. Sitúate en la carpeta MisCosas y elimina completa y definitivamente de la estructura del directorio Películas y todo lo que dependa de él utilizando rmdir. rmdir Películas/avi Películas/dvd rmdir Películas b. Sitúate en la carpeta MisCosas ,vuelve a crear lo que falte de la estructura de directorios de la Actividad4. Copia el directorio isos y todo su contenido en la carpeta cdrom. Después elimina toda la estructura del directorio Programas con la instrucción rm. mkdir –p Películas/avi Películas/dvd cp –R Programas/isos Programas/cdrom rm –r Programas c. Sitúate en la carpeta Películas y cambia el nombre de la carpeta Datos por el nombre Apuntes. cd Películas; mv ../Datos ../Apuntes
Almudena Regalón Cabrera
GNU/LINUX 13
cat (catenate): Muestra el contenido de los ficheros que se le pasen como argumentos. Sintaxis: cat [opciones] fichero/s Opciones: -n: Numera todas las líneas. Argumentos/s: Muestra el contenido del fichero o de los ficheros que se le pasen como argumentos. Ejemplo: cat archivo1.txt Muestra el contenido del fichero archivo1.txt
more: Muestra el contenido de los ficheros pero de forma paginada, es decir, pantalla a pantalla. Sintaxis: more fichero/s Argumento: Muestra el contenido del fichero o ficheros que se le pasen como argumentos. A diferencia del comando cat, cuando se muestre el contenido del fichero, si este ocupa más de una pantalla, se quedará esperando que se pulse una tecla, que si es la barra espaciadora mostrará la página siguiente, la tecla Enter muestra la línea siguiente y la q finaliza la ejecución
less: Muestra el contenido de los ficheros de la misma forma que more, con la diferencia de que podremos movernos por ellos utilizando también las flechas de cursor. Sintaxis: less fichero/s Argumento: Muestra el contenido del fichero o ficheros que se le pasen como argumentos.
head: Muestra las 10 primeras filas de los ficheros que e le indiquen. Sintaxis: head [opciones] fichero/s Opciones: -n: Muestra las n primeras líneas, en vez de las 10 primeras. Argumentos/s: Muestra las primeras líneas de los ficheros que se le pasen como argumentos.
tail: Muestra las 10 últimas filas de los ficheros que e le indiquen. Sintaxis: tail [opciones] fichero/s Opciones: -n: Muestra las n últimas líneas, en vez de las 10 últimas. Argumentos/s: Muestra las últimas líneas de los ficheros que se le pasen como argumentos.
wc: Muestra el número de líneas, palabras, caracteres y bytes de los ficheros que se le indiquen, o el tamaño de la línea más larga. Sintaxis: wc [opciones] fichero/s Opciones: -c: Muestra el número de bytes. -m: Muestra el número de caracteres. -l: Muestra el número de líneas. -w: Muestra el número de palabras. -L: Muestra el tamaño de la línea más larga del fichero.
Almudena Regalón Cabrera
GNU/LINUX 14
sort: Muestra en orden ascendente el contenido de los ficheros que se les pasa como argumentos. Sintaxis: sort [opciones] fichero/s Opciones: -c: Comprueba que el fichero esté ordenado, pero no lo ordena. Si no está ordenado muestra un mensaje indicando la primera línea que está fuera del orden. -m: Mezcla ficheros ya ordenados, no ordena. -r: Ordena en sentido inverso. -u: Elimina las líneas repetidas. Argumento: Los argumentos serán ficheros.
ACTIVIDAD 6 a. Crea la siguiente estructura partiendo del directorio /home/usuario
A6
D1
CARTAS
D2
PEDIDOS
fich1 D3
fich2
carta1
Contenido de los ficheros: - carta1: sin contenido - fich1 1 2 3 4 - fich2 1 a b c
b. Prueba los siguientes comandos, observando el resultado: 1. sort fich1 2. sort –r fich1 3. sort fich1 fich2 4. wc –l fich1
find: Busca ficheros en un árbol de directorios. Muestra el nombre de los archivos encontrados que se correspondan con un conjunto de criterios. Sintaxis: find [opciones] [directorios] [criterios] Opciones: -follow| -L Sigue los enlaces simbólicos si apuntan a directorios. Criterios: - type tipo: Busca archivos de un tipo dado (f regular, d directorio, l enlace simbólico) - name nombre: Encuentra los archivos cuyo nombre coincida con el dado.
Almudena Regalón Cabrera
GNU/LINUX 15
cut: Muestra sólo ciertas columnas de los ficheros que se le pasen como argumento. Sintaxis: cut [opciones] fichero/s Opciones: -b=lista: Muestra solo los bytes que se le especifiquen. -c=lista: Muestra solo los caracteres que se le especifiquen. -d=delim: Usa el carácter que se le especifique como delimitador en vez del tabulador. -f=lista: Muestra sólo los campos que se le especifique en la lista. -s: No muestra las líneas que no contengan el delimitador. - - output-delimiter=cadena: Usa la cadena como delimitador de salida en vez del delimitador de entrada. Ejemplo: cut –d’;’ –f1,4 fichero Mostrará las columnas 1 y 4 del archivo fichero cuyos campos están separados por ;
ACTIVIDAD 7
a. Crea un fichero llamado a7.txt con el siguiente contenido: PROVINCIA-CP-TEL Almería-04-950 Cadiz-11-956 Cordoba-14-957 Granada-18-958 Huelva-21-959 Jaen-23-953 Málaga-29-95 Sevilla-41-95 b. Muestra el nombre de las provincias y su prefijo del teléfono separados por ;
grep: Muestra las líneas de un fichero que coinciden con cierto patrón. Sintaxis: grep [opciones] patrón [fichero/s] Opciones: -r| -R Buscar de forma recursiva dentro de los ficheros de un directorio. -n | - -line-number: Muestra la línea del fichero. -i: No distingue entre mayúsculas y minúsculas. -v: Muestra las líneas que no se corresponden con el patrón. -w: el patrón debe aparecer como una palabra completa y no como parte de otra palabra. - c: Número de líneas que satisfacen la condición. - l: Escribe los nombres de los ficheros que contienen líneas buscadas. Patrón: texto líneas que contengan la cadena “texto”. ^texto: líneas que empiezan por la “texto”. ^[^texto]: líneas que no empiezan por “texto”. texto$: líneas que terminen en “texto”.
Almudena Regalón Cabrera
GNU/LINUX 16 Argumento/s: Son los ficheros dónde vamos a buscar las líneas que coincidan con el patrón. Ejemplos: grep 6$ prueba.txt Muestra todas las líneas que terminan en 6 del fichero prueba.txt grep ^as prueba.txt Muestra todas las líneas que empiezan por as del fichero prueba.txt grep –i centro prueba.txt Muestra todas las líneas que contienen centro tanto en mayúscula como en minúscula grep –v Centro prueba.txt Muestra todas las líneas que no contienen Centro.
5.3. TUBERÍAS
Las tuberías se utilizan en una línea de comandos para conectar la salida estándar de un comando con la entrada estándar de otro. Para ello se utiliza el carácter “|”. Por ejemplo: $ls –l | more Esta tubería redirecciona la salida del comando ls –l hacia el paginador more, que permite visualizar la información pantalla a pantalla.
ACTIVIDAD 8 Muestra por pantalla los ficheros de tu directorio personal, pero solo deberá visualizarse el tipo de fichero y permisos, el nombre del propietario y los permisos. Ninguna información más. ls –l | cut –d” “ –f1,2,4
5.4. REDIRECCIONAMIENTOS
Los procesos tienen una entrada estándar, stdin, y dos salidas, stdout que es la salida estándar y stderr que es la salida de errores. La entrada estándar (stdin) es el teclado. La salida estándar (stdout) es la pantalla. La salida estándar de errores (stderr) es la pantalla. Pero en ocasiones queremos cambiar estas salidas, para ello redireccionaremos con los siguientes caracteres: > Redirecciona la salida al fichero que se le indique, borrando la información que el fichero contenía. >> Redirecciona la salida al fichero que se le indique, añadiéndolo al final de la información del fichero de salida. < Redirecciona la entrada estándar sustituyéndola por el archivo que se le indique. 2> Redirecciona la salida de errores de un proceso al fichero que se le indique, borrando la información que el fichero contenía. 2>> Redirecciona la salida de errores al fichero que se le indique, añadiéndolo al final de la información del fichero de la salida. En todos los casos, si el fichero indicado no existe, se crea.
Almudena Regalón Cabrera
GNU/LINUX 17
EJEMPLOS ( ls –lR > file La salida estándar de la orden ls –lR (listado de archivos y subdirectorios que contiene el directorio actual de forma recursiva) se guarda en el archive file. mkdir directory 2> error Si al crear el directorio directory se produce algún error (por ejemplo el directorio ya existe o el usuario no tiene permisos de escritura) el mensaje del error se guardará en el archivo error. cp –vf /root /home/alumno > file 2> error La lista de todos los archivos copiados (atención a la opción –v de la orden cp) se guardará en el archivo file. Los errores que se produzcan en la ejecución de la orden se almacenarán en el archivo error. cp –vf /root /home/alumno >> file La lista de todos los archivos copiados se escribirá en el archivo file. Si el archivo file ya existe la lista se escribirá al final del archivo, manteniendo la información previa. cd /root/setup 2> null Redirecciona la salida de error hacia el dispositivo nulo. El mensaje de error no se escribirá en ninguna parte. ls –l | grep vmlinux Redirecciona la salida de la orden ls hacia la orden grep, que mostrará únicamente las líneas que contienen la palabra vmlinux. wc –l < file Cuenta el número de líneas del archivo file.
Almudena Regalón Cabrera
GNU/LINUX 18
ACTIVIDAD 9 a. Guarda en un archivo llamado file.txt el listado de tu directorio personal. b. Obtén el dueño de los archivos y directorios utilizando el fichero file.txt c. Intenta mostrar información de un fichero llamado ttt en el directorio raíz. Como no existe, mostrará un error. Direcciona la salida de errores a un fichero llamado err.log.
Con los redireccionamientos y los comandos cat y sort podemos crear y concatenar ficheros. Para crear un fichero con cat debes escribir en la línea de comandos: cat > fichero Después escribe el texto que quieres que contenga el fichero y para terminar y salvar los cambios CTRL+D Sort actúa de la misma manera, pero el fichero resultado estaría ordenado por la primera columna de caracteres.
ACTIVIDAD 10
Ejecuta los siguientes comandos y anota lo que sucede: cat > fichero1.txt hola adios cat > fichero1.txt adios cat >> fichero1.txt hola wc –l < fichero1.txt
Almudena Regalón Cabrera
GNU/LINUX 19
RESUMEN DE COMANDOS COMANDO ls pwd cd mkdir rmdir du file touch cp mv rm cat more less head tail wc locate sort cut find grep
DESCRIPCIÓN Muestra información sobre ficheros y directorios.
EJEMPLO ls -ra ls -lh/home Muestra la ruta absoluta del directorio donde nos pwd encontramos en ese momento. Cambia de directorio. cd ../../user01/descargas cd Crea directorio mkdir dir1 dir2 Borra directorios si están vacíos rmdir dir1 Muestra el espacio que ocupa el fichero o du –h ~ directorio. Muestra el tipo de fichero. file /home/prueba.txt Crea ficheros. touch prueba.txt Copia directorios y/o ficheros cp –r dir2 Mueve uno o varios ficheros a otro fichero o mv dir2 directorio directorio. Cambia el nombre de ficheros o directorios Borra ficheros y directorio. rm prueba.txt rm –r dir1 Muestra el contenido de los ficheros que se le cat –n prueba.txt pasen como argumentos. Muestra el contenido de los ficheros pero de more prueba.txt forma paginada, pantalla a pantalla. Muestra el contenido de los ficheros de la misma less prueba.txt forma que more, pero podremos movernos por ellos utilizando también las flechas de cursor. Muestra las 10 primeras filas de los ficheros que e head -5 prueba.txt le indiquen. Muestra las 10 últimas filas de los ficheros que e le tail prueba.txt indiquen. Muestra el número de líneas, palabras, caracteres wc prueba.txt y bytes de los ficheros que se le indiquen, o el wc –l prueba.txt tamaño de la línea más larga. Busca archivos dentro del sistema de archivos. locate prueba.txt Sólo puede hacer búsquedas por nombre de archivo. Muestra un fichero ordenado. sort –u prueba.txt sort –c prueba.txt sort prueba.txt Muestra sólo ciertas columnas de los ficheros que cut –d’;’ –f4,5 fichero.txt se le pasen como argumento. Busca ficheros en un árbol de directorios. Muestra find –name ‘*.txt’ el nombre de los archivos encontrados que se correspondan con un conjunto de criterios. Muestra las líneas de un fichero que coinciden con grep –wi Cadena fichero.txt cierto patrón. grep ^A fichero.txt grep 3$ fichero.txt
Almudena Regalón Cabrera
GNU/LINUX 20
= ACTIVIDADES = 1. ¿Cuál es el directorio equivalente a Documents and settings de Windows XP o Usuarios en W7 (Donde se almacenan los documentos de cada usuario) en Linux? 2. ¿En qué directorio se encuentran los ficheros de configuración del sistema? 3. Los directorios . y .. ¿existen siempre en cualquier directorio Linux? 4. ¿Se pueden utilizar caracteres comodín o metacaracteres con la orden mkdir? Razona la respuesta. 5. ¿Se pueden eliminar directorios que contienen otros subdirectorios con la orden rmdir? Razona la respuesta. 6. ¿Se pueden eliminar directorios con una sola orden rmdir que estén situados en diferentes rutas? Si se puede indica cómo hacerlo. 7. ¿La orden mv sirve para cambiar la ubicación de un directorio o para cambiarle el nombre? 8. ¿Es necesario estar situado en el directorio al que se le desea cambiar el nombre? 9. Partiendo de la estructura de directorios que se muestra en la imagen de abajo: / home usuario Ejercicios dir1 dir11
dir2 f3
f4
dir3 dir31
f1
f2
dir32
dir311 a. b. c. d. e. f. g. h. i. j. k. l. m.
Crea los directorios dir1, dir2, dir11 desde el directorio raíz. Crea los ficheros f3 y f4 desde el directorio raíz. Dirígete al directorio dir1 y crea el fichero f1 utilizando trayectoria absoluta. Dirígete al directorio dir1 y crea el fichero f2 utilizando trayectoria relativa. Dirígete a tu directorio personal y crea el subarbol dir3 utilizando una única vez el comando mkdir. Mueve el fichero f3 al directorio de trabajo home/usuario. Dirígete al directorio dir2 y copia el fichero f4 en el directorio dir11. Copia de nuevo el fichero f4 pero con el nombre f4Copia. Crea un directorio llamado copia dentro del directorio usuario y copiar en él, todo el contenido de dir1 utilizando una única vez el comando cp. Renombra el fichero f1 por el nombre ficheroCopia1. ¿Qué permisos tiene el fichero ficheroCopia1? Desde tu directorio personal borra todos los ficheros del directorio P5.1 utilizando una única vez rm. Borra el directorio dir32. Elimina por completo el directorio P5.1 con un único comando.
Almudena Regalón Cabrera
GNU/LINUX 21 10. Crea un fichero llamado prueba.txt y escribe en él 5 líneas (lo que quieras), a continuación muestra por pantalla las dos primeras líneas del fichero prueba.txt 11. Muestra la cantidad de espacio utilizado por el fichero prueba.txt 12. Muestra por pantalla las dos últimas líneas del fichero llamado prueba.txt 13. Visualizar el número de líneas que tiene el fichero prueba.txt 14. Muestra de qué tipo es el fichero el fichero prueba.txt 15. Crea un fichero como el que se muestra a continuación. Los campos del fichero son: nombre del alumno, curso, población y edad. Luis:1ASIR:Lucena:17 Antonio:2:Monturque:18 Francisco:1ASIR:Lucena:18 Sali:2ASIR:Montilla:17 Antonio:1ASIR:Aguilar de la frontera:17 Manuel:1ASIR:Cabra:19 Javier:2ASIR:Cabra:23 Alvaro:2ASIR:Lucnea:20 Anton:1ASIR:Antequera:19 a. b. c. d. e. f.
Busca todos los alumnos que son de “Lucena”. Busca los alumnos que son del segundo curso. Busca los alumnos que no son de “Lucena”. Busca todos los alumnos cuyo nombre empieza por “A”. Busca los registros en los que aparezca Lucena o tengan 17 años. Busca los alumnos llamados “Antonio”.
16. Crea un fichero estructurado con los siguientes campos: alumno, edad, y curso, que utilice el espacio en blanco como separador. Barry 17 1 Sali 18 2 Sali 18 2 Francis 17 1 Antonio 17 2 a. b. c. d. e.
¿Está ordenado el fichero? Visualiza solo el nombre de los alumnos y su edad. Visualiza de forma ordenada las líneas que no estén repetidas. Ordena inversamente este fichero por el primer campo. Visualiza el nombre y el curso de los alumnos separándolos por dos puntos.
Almudena Regalón Cabrera
GNU/LINUX 22 17. Crea un fichero estructurado de base de datos, que contenga los siguientes campos: número_alumno:asignatura:nota. 3:ral:6 1:ral:4 1:som:6 2:fol:7 3:ao:7 a. Visualiza las notas del alumno 3. b. ¿Cuántas asignaturas tiene el alumno 1? 18. Listar todos los archivos del sistema mediante el formato largo y filtrar mediante la orden grep aquellos que empiezan por la letra “d” independientemente si están escritos en mayúsculas o minúsculas. ¿Qué es lo que se está mostrando? 19. Obtener un listado de los ficheros del directorio actual ordenado inversamente utilizando tuberías. 20. Crea en tu directorio personal un fichero (utilizando el comando cat) llamado “usuarios” y complétalo con el siguiente contenido: Admin, Pass: 1234 Pepe, Pass: 1325 Lola, Pass: bcn Toni, Pass: gracia 21. Lista el contenido de tu carpeta personal y añádelo al final del directorio “usuarios”. 22. Con el comando sort ordena el fichero “usuarios”. Repite el proceso volcando el resultado en el fichero “sortedUsers”. Mediante el comando cat, visualiza el fichero creado. 23. Mediante la orden grep contar el número de líneas que contienen el patrón “pass” en el archivo “usuarios”. Hazlo utilizando tuberías y sin utilizar tuberías. 24. Crea el directorio test en el directorio personal. Crea otra vez el directorio test en el directorio personal y redirecciona la salida de error al archivo error.txt Con la orden more visualizar el contenido del archivo creado. 25. Buscar el número de archivos con terminación .txt en tu directorio personal (utilizando la orden grep).
Almudena Regalón Cabrera