PRÁCTICA 4 COMANDOS DE USO GENERAL I Objetivos Manejo de los editores vi y joe. Comandos relacionados con la fecha del sistema: date, cal. Comandos para la visualización de ficheros: cat, more, less. Comandos de compresión y backup de ficheros: gzip, gunzip, tar. Comandos de comparación de ficheros: cmp, comm. Operaciones sobre ficheros de texto: sort, cut, paste, join, head, tail, nl, split, wc. Edición en Unix/Linux vi f ichero Tiene dos modos de operación: texto y comando. Cuando entramos, el editor se encuentra en modo comando. En el modo texto el editor acepta caracteres desde el teclado y la tecla de borrado del carácter anterior. Para cambiar al modo comando se pulsa escape. Los principales comandos aceptados por vi son: hlkj Desplazamiento del cursor a izda. dcha. arriba y abajo < CR > Desplazamiento a la lı́nea siguiente b Desplaza el cursor al comienzo de la palabra e Desplaza el cursor al final de la palabra 0 Desplaza el cursor al comienzo de de lı́nea $ Desplaza el cursor al final de de lı́nea a Añade texto detrás el cursor (append) A Añade texto al final de la lı́nea i Añade texto antes del cursor (insert) I Añade texto al principio de la lı́nea O Crea una nueva lı́nea por encima del cursor o Crea una nueva lı́nea por debajo del cursor Conrol-v char Ignora el significado especial de char mientras se inserta x Borra carácter bajo el cursor dd Borra lı́nea actual r Reemplaza carácter bajo el cursor u Deshace última operación U Deshace las últimas operaciones sobre la lı́nea actual J Une la lı́nea actual con la inmediata inferior ZZ Almacena fichero y abandona :wq Almacena fichero y abandona :w Almacena fichero :q Abandona (si no hay cambios) :q! Abandona sin almacenar Control-u Desplaza la pantalla 12 lı́neas arriba Control-d Desplaza la pantalla 12 lı́neas abajo Control-b Desplaza la pantalla 24 lı́neas arriba Control-f Desplaza la pantalla 24 lı́neas abajo nG Posiciona el cursor en la lı́nea n G Posiciona el cursor en el final del fichero Control-g Visualiza el número de la lı́nea actual Control-L Actualiza pantalla 1 Los comandos i, I, a, A, o, O dejan el editor en modo texto. Puede buscarse palabras mediante /patron y ?patron. El primero busca desde la posición del cursor y el segundo desde el principio de fichero. Con n puede buscarse más ocurrencias del mismo patrón. joe f ichero Es un editor de pantalla completa mucho más manejable que vi. Una vez dentro de editor funcionan bien las teclas de borrado (DEL), supresión (Supr), inserción (Insert), pagina adelante y atrás (AvPag, RePag) y los cursores. Las acciones mas complicadas se realizan a través de combinaciones de pulsaciones de tecla. Pulsando Control-K-H obtenemos una ayuda con el resto de combinaciones. Comandos relacionados con la fecha del sistema date Devuelve la fecha y hora del sistema en el formato: Wed Nov 26 hh:mm:ss CET 2003 Pueden utilizarse opciones para cambiar el formato por defecto. Por ejemplo: date +%d-%b-%y devuelve 26-Nov-03 date +%d-%b-%Y devuelve 26-Nov-2003 date +%d-%m-%Y devuelve 26-11-2003 cal [[mm] aaaa] Presenta en pantalla un calendario del año aaaa o del mes mm. Por defecto muestra el mes actual. Comandos para compresión y backup de ficheros gzip f ic1 f ic2 . . . f icn Remplaza cada uno de los ficheros indicados por su versión comprimida cuyo nombre de fichero es el nombre original más la extensión .gz Ejemplo: La orden gzip tema1.pdf tema2.pdf comprime ambos ficheros y sus nombres pasan a ser tema1.pdf.gz y tema2.pdf.gz gunzip f ic1 f ic2 . . . f icn Es la operación contraria a gzip. tar opciones fichero-tar directorio Crea un único fichero (fichero-tar) que contiene todos los ficheros del directorio indicado, conservando además información sobre propietario y permisos. Las opciones principales son: c: crear un fichero tar x: extraer los fichero de un fichero tar z: aplicar simultaneamente compresión o descompresión (según se utilice la opción c o la opción x) v: mostrar información sobre los ficheros procesados t: listar el contenido de un fichero tar f: siempre debe utilizarse esta opción para indicar que queremos crear un fichero tar. Por defecto el fichero tar se crearia directamente sobre una cinta magnética. 2 Ejemplo: La orden tar -cvzf fichero.tgz /home/usuario crea un fichero tgz (abreviatura de tar.gz) que contiene el arbol de directorios del usuario. Visualización de ficheros cat f ic1 f ic2 . . . f icn > f ic − nuevo Además del uso ya explicado, el comando cat permite concatenar los ficheros pasados como argumentos en un solo fichero. more f ichero Permite visualizar ficheros pantalla a pantalla. Con la tecla espacio se pasa pantalla a pantalla. Pulsando q se abandona la ejecución. less f ichero Es una versión mejorada de more que permite ir hacia atrás en la visualización. Comandos de comparación de ficheros cmp f ich1 f ich2 Compara dos ficheros. Si son idénticos no devuelve nada. Si son diferentes indica donde se encuentra la primera diferencia. Otra posibilidad es consultar el errorlevel (código de salida) del último programa ejecutado (echo $?). La opción -s suprime los mensajes en pantalla y retorna un errorlevel 0 si los ficheros son idénticos, 1 si no lo son y 2 si hay algún fichero inaccesible. comm f ich1 f ich2 Compara dos ficheros ordenados alfabéticamente por lı́neas. Como resultado muestra en una primera columna las lı́neas del fich1 que no están en fich2, en una segunda columna las lı́neas del fich2 que no están en fich1, y en una tercera columna las lı́neas que están en ambos. Operaciones sobre ficheros de texto sort Ordena ficheros de texto alfabéticamente (sigue la secuencia de códigos ASCII) y presenta el resultado en la salida estándar. Si se especifican varios ficheros se hace la ordenación sobre la unión de todos. Las principales opciones de sort son: c Comprueba si los ficheros ya están ordenados. Si lo están devuelve errorlevel 0. Si no lo están devuelve 1 y un mensaje en pantalla m Mezcla los ficheros argumento (ya ordenados) y presenta el resultado de ordenar el conjunto d Ordena considerando únicamente los caracteres alfabéticos, numéricos y blancos, ignorando los demás f Ignora la distinción entre mayúsculas y minúsculas o f ichero envı́a la salida al fichero indicado r ordena en sentido inverso t separador El separador se utiliza para delimitar campos dentro de cada lı́nea de fichero (por defecto es un blanco) n Realiza una ordenación aritmética M Se consideran los tres primeros caracteres de cada lı́nea como un nombre abreviado de mes (Jan, Feb, . . . ) y se ordena según esa enumeración kn Ordena por el campo n (usar en combinación con t) 3 cut f ichero Permite eliminar una parte de cada lı́nea de un fichero de texto. Con la opción -b 0 -c se especifica una lista de columnas (separadas por comas) o un rango de columnas (mediante un guión) que deben ser visualizadas. Cada carácter ocupa una columna, numeradas desde 1 en adelante. Con la opción -f se especifica una lista de campos (o un rango) que deben ser visualizados. Por defecto se emplea como delimitador de campo un tabulador. Para establecer un delimitador distinto se emplea la opción -d. Ejemplos: Muestra los primeros 5 caracteres del cada fila cut -b 1-5 fichero Muestra los dos primeros campos de cada fila (el separador es el tabulador) cut -f 1,2 fichero Muestra los dos primeros campos de cada fila (el separador es : ) cut -d: -f 1,2 fichero paste f ich1 f ich2 Une dos ficheros lı́nea a lı́nea utilizando como delimitador el tabulador. La opción -d permite utilizar otro delimitador. join f ich1 f ich2 Permite unir las lı́neas de dos ficheros de texto de acuerdo a una clave común. Se considera que cada fichero es una tabla relacional, siendo cada lı́nea un registro de la tabla dividida en campos según el separador empleado (blanco por defecto). Por defecto se emplea como clave el primer campo de cada lı́nea en ambos ficheros, los cuales deben estar ordenados de acuerdo a dicha clave. En la salida se obtiene la fusión de las lı́neas con la misma clave (ésta solo aparece una vez). La opción -t permite especificar un separador de campo. La opción -n m permite utilizar un campo distinto como clave (n indica el fichero, 1 o 2, y m el número de campo elegido). head f ichero Visualiza las 10 primeras filas del fichero. tail f ichero Visualiza las 10 últimas filas del fichero. nl f ichero Visualiza el fichero numerando sus lı́neas. split [-num] f ichero pref ijo Rompe el fichero indicado en trozos, cada uno de num lı́neas (1000 por defecto) creando nuevos ficheros cuyo nombre está prefijado por prefijo. También permite dividir ficheros binarios. wc f ichero Indica el número de lı́neas (-l), palabras (-w) y caracteres (-c) del fichero indicado. 4 EJERCICIOS 1. Crear varios ficheros utilizando el editor vi. Introducir texto y experimentar con las distintas opciones que ofrece el editor. 2. Editar los ficheros anteriores utilizando el editor joe. Solicitar ayuda y experimentar con los comandos allı́ mostrados. 3. Obtener la fecha del sistema. 4. Presentar en pantalla un calendario del mes y del año actual. Idem de Junio del 2000. 5. Crear un fichero que contenga el calendario del año 2000 mediante la redirección de la salida estándar. 6. Realizar un backup comprimido (fichero .tgz) de un subdirectorio de vuestro directorio HOME. 7. Mostrar el contenido de varios ficheros de texto en pantalla. Crear un nuevo fichero que contenga dichos ficheros. 8. Mostrar el contenido del fichero utilizando more. 9. Crear un fichero con el editor. Copiarlo a otro fichero en el mismo directorio. Modificar uno de ellos cambiando algunos caracteres. Comparar los ficheros utilizando cmp y observar la salida que se obtiene. Lo mismo con cmp -s y obtener el valor de errorlevel. Lo mismo comparando dos ficheros iguales. Quitarle a uno de ellos los permisos de acceso y repetir la operación. 10. Crea dos ficheros que tengan lı́neas en común. Ordénalos y compáralos usando comm. 11. Experimenta las opciones de sort sobre un fichero utilizando como separador el carácter “:”. 12. Utiliza cut sobre el mismo fichero del ejercicio anterior. Mostrar las columnas de caracteres 3, 4 y 7. Mostrar los campos 1 y 3. 13. Unir dos ficheros cualesquiera utilizando paste y usando como delimitador “:”. 14. Crear un fichero que contenga los siguientes campos (separados por “:”): nombre, DNI, dirección. Crear otro fichero similar que contenga los campos: DNI, sueldo. Hacer un join de ambos ficheros y guardarlo en un nuevo fichero. 15. Comprobar las salidas obtenidas con los comandos head, tail, nl, split (con la opción de 10 lı́neas) y wc. 5
© Copyright 2024