"Quien no sabe GNU-Linux, no es informatico, por lo que está obligado a reinvertarlo y mal". Antonio Perpiñan. Padre del software libre en America Latina. http://www.codigolibre.org/
En esta sección se ofrece una breve descripción de las características de las herramientas más poderosas del ambiente de trabajo de GNU/Linux. Tomaremos en consideració los siguientes tópicos:
• diff –> Inventario de Cambios Efectuados a un Archivo
• find –> Busca y Manipula Archivos
• grep –> Busca Cadenas en el Contenido de Archivos de Texto
• Expresiones Regulares–> Uso de Abreviaturas para Asistir los Comandos y Utilitarios
• sed –> Edición de Flujo de Texto (Stream)
• awk –> Edición Avanzada de Flujo de Texto
• Perl –> Lenguaje de Programación de Extracción y Reporte
Aquí le damos una brevísima introducción al programa Perl, el cual es el lenguaje defacto de los administradores de sistemas y de páginas web.
El Comando diff- Inventario de Cambios a los Archivos
l comando diff toma como parámetros el nombre de 2 archivos y da salida a las diferencias entre los 2 archivos. Cuando es ejecutado sobre un archivo ordinario, como se muestra más adelante, la salida es un poco compleja y hace referencia a comandos de edición utilizados por el ed, la cual puede ser ejecutada para sincronizar los 2 archivos . En el ejemplo mostramos la diferencia en el archivo de contraseñas actual y una copia que sirve de backup. En éstos archivos la línea 23 ha sido cambiada y la línea 24 ha sido agregada al archivo /etc/passwd
$ diff passwd passwd.bak
23c23,24
<>
—-
> DIFERENTE
> LINEA ADICIONAL
Por lo general la salida sólo contiene comandos simple del siguiente formato:
n1 a n3,n4 Las líneas n3 a n4 agregada al archivo 2 después de la línea n1 en el archivo1
n1,n2 d n3 Líneas n1 a n2 eliminadas del archivo 1 (estaban en la línea n3 en el archivo 2)
n1,n2 c n3,n4 Línea n1 a n2 en el archivo 1 cambiadas a líneas n3 a n4 en el archivo 2
Después de cada línea de comandos, las líneas afectadas del primer archivo son listadas precedidas por un <, y cualquier línea nueva en el archivo 2 es listada y precedida por el símbolo >.
El comando diff también puede ser utilizado sobre directorios. Aquí la salida del comando sólo muestra mensajes de “only in …” (solamente en …) y “common subdirectories …” (Subdirectorios comunes …) y no al estilo de instrucciones parecidas al ed.
$ diff dir dir2/
Only in dir: archivo1
Only in dir: passwd.bak
El Comando find - Busca y Manipula Archivos
Find es un comando que busca en el árbol de directorio y ejecuta comandos sobre el resultado. Este buscará en un directorio y todos sus subdirectorios por archivos basados en un criterio de selección y opcionalmente ejecutaría cualquier comando o script del shell sobre cada archivo que iguale el criterio de búsqueda.
La sintaxis del comando find es:
$ find directorios opción acción
Las opciones son en forma de palabras reservadas, por ejemplo:
-name nombre Busca archivos llamados nombre
-user nombre Busca archivos adueñados por el usuario nombre
-type [fdlcb] Busca archivos del tipo dado (por ejemplo, d es un directorio, l esunvínculo)
-size [+/-]n[ck] Busca archivos de un tamaño dado (ejemplo,+10k significar más grande que 10 Kb)
-inum número Busca archivos con el número de inodo dado (hard link)
Las opciones del comando find facilitan la búsqueda de archivos, de acuerdo a cualquier tipo de atributo de éstos. Una vez el archivo ha sido localizado, éste puede ser sometido, como un argumento, a cualquier comando de GNU/Linux o script del shell disponible.
La Opción -name soporta los mismos caracteres wildcard que esos del shell (*, ?, y []). Recuerde colocar un nombre que contenga éstos caracteres dentro de comillas dobles para evitar que el shell efectue su propia generación de nombres de archivos y sustitución de argumentos.
Muchas otras opciones del comando find soportan criterios de búsqueda muy poderosos y son descritos en sus páginas man. En realidad, el comando find no es usado para buscar archivos, sino para navegar el sis- tema de archivos buscando los archivos que igualan cierto criterio de búsqueda y luego ejecutar comandos sobre los resultados. Un uso común es, por ejemplo, buscar todos los archivos que su tiempo de acceso es anterior a cierta fecha y luego moverlos a cierta localidad.
Las acciones pueden ser:
-print Imprime los nombres de archivos a la salida estándar
-exec comando {} ; Ejecuta el comando dado por cada archivo encontrado
-ok comando {} ; Ejecuta el comando dado pero pide confirmación
Ejercicio 7-6: Uso de find
En éste ejercicio le presentamos ejemplos del comando find. Las soluciones a éste ejercicio se encuentran en el Apéndice A.
¿Qué efectúan los siguientes comandos find?
1. $ find . -print
2. $ find . -type d -print
3. $ find /home -name .profile -print
4. $ find /home -name .bash_profile -print
5. $ find . /tmp /usr/tpm -name core -exec rm {} ;
6. $ find . -name “*.o” -ok rm {} ;
1.
$ find / -type f -size +1k -print >/tmp/grandes 2>/dev/null &
No hay comentarios:
Publicar un comentario