TEMA 6: HERRAMIENTAS DE BÚSQUEDA EN LINUX



-1431686603072Descubriremos cómo buscar información en el árbol de Linux. La información obtenida la filtraremos y ordenaremos de acuerdo a varios criterios.00Descubriremos cómo buscar información en el árbol de Linux. La información obtenida la filtraremos y ordenaremos de acuerdo a varios criterios.526224583151900centercenter TIME \@ "dddd, dd' de 'MMMM' de 'yyyy" viernes, 01 de abril de 2011 TIME \@ "HH:mm:ss" \* MERGEFORMAT 12:29:02José MaríaTorres CorralTEMA 6: HERRAMIENTAS DE B?SQUEDA EN LINUXCURSO DE T?CNICO EN SEGURIDAD DE REDES Y SISTEMAS9500095000 TIME \@ "dddd, dd' de 'MMMM' de 'yyyy" viernes, 01 de abril de 2011 TIME \@ "HH:mm:ss" \* MERGEFORMAT 12:29:02José MaríaTorres CorralTEMA 6: HERRAMIENTAS DE B?SQUEDA EN LINUXCURSO DE T?CNICO EN SEGURIDAD DE REDES Y SISTEMASTabla de contenido TOC \o "1-3" \h \z \u 1.Presentación PAGEREF _Toc289423219 \h 22.Uso de caracteres comodines o genéricos PAGEREF _Toc289423220 \h 22.1?Qué son? PAGEREF _Toc289423221 \h 22.2El asterisco: * PAGEREF _Toc289423222 \h 22.3El signo de cerrar interrogación: ? PAGEREF _Toc289423223 \h 22.4Los corchetes [] PAGEREF _Toc289423224 \h 22.5Las llaves {} PAGEREF _Toc289423225 \h 32.6La barra vertical o pipe | PAGEREF _Toc289423226 \h 33.find PAGEREF _Toc289423227 \h 34.sort PAGEREF _Toc289423228 \h 65.Grep PAGEREF _Toc289423229 \h 66.cut PAGEREF _Toc289423230 \h 87.head PAGEREF _Toc289423231 \h 88.tail PAGEREF _Toc289423232 \h 99.Bibliografía PAGEREF _Toc289423233 \h 10PresentaciónEn este tema vamos a aprender una serie de herramientas de Linux que toco usuario tiene que conocer. A menudo basta con una línea de comandos adecuada para efectuar las mismas operaciones que un centenar de clics de ratón a través de un administrador de archivos gráfico. Por lo tanto, podemos ahorrar bastante tiempo en la administración del sistema.Entre otros temas, aprenderemos a:Buscar archivos en el árbol de Linux, aplicando toda clase de filtros y tratamientos.Filtraremos el contenido de archivos y las salidas de comandos con expresiones regulares.Ordenaremos y separaremos los datos.Veremos parcialmente el contenido de los archivos.Uso de caracteres comodines o genéricos?Qué son?Son caracteres especiales dedicados a la escritura de motivos en los nombres de archivos o comandos de un terminal. A menudo se necesitan consultar varios archivos que tengan alguna coincidencia en su nombre o en su contenido, aquí es donde más nos ayudan los caracteres comodín; por ejemplo que empiecen por la letra jota y terminen por la cé o que tengan una longitud determinada que concuerde con una estructura.El asterisco: *Reemplaza una cadena de caracteres de cualquier longitud, incluso nula y los espacios. Puede estar situado en cualquier posición de una palabra: principio, mitad o final. Nunca sustituye al punto que indica que un archivo es oculto. Veamos algunos ejemplos explicativos:Principio. Palabras que empiezan por j de cualquier longitud: j*Mitad. Palabras que empiezan por j, terminan por l y tienen cualquier longitud: j*lFinal. Palabras que termina por la letra l, de cualquier longitud: *lCombinados. Archivos con una e al menos en su nombre: *e*.El signo de cerrar interrogación: ?El Shell sustituye este carácter por cualquier carácter, excepto el punto al principio del archivo, pero solo reemplaza a un solo carácter. Puede combinarse con el asterisco. Veamos algunos ejemplos:?o??Nombre con cuatro letras con una o en segunda posición.*e?Nombre que presenta una e en penúltima posición? ?s*a?Nombre que presenta una ese en tercera posición y una a en penúltima, con cualquier longitud.Los corchetes []Los caracteres introducidos sin espacios, al menos que el espacio sea una posibilidad, entre corchetes forma una lista de posibles caracteres. Si los caracteres son consecutivos según el orden de la tabla del código ASCII se puede simplificar la orden separando el primero y el último carácter de la lista mediante un guión medio. Esto nos obliga a colocarlo al principio o al final de nuestra lista si quisiésemos introducir el guion medio como una opción más. Hay que recordar que Unix distingue entre mayúsculas y minúsculas. Además, existen en el Shell ciertas clases de caracteres predefinidos para búsquedas muy usadas:[:alnum:]Corresponde a los caracteres alfanuméricos, es decir, equivale a [A-Za-z0-9][:alpha:]Muestra caracteres alfabéticos, es decir, equivale a [A-Za-z][:digit:]Corresponde a las cifras, es decir, equivale a [0-9][:graph:]Corresponde a los caracteres comprendidos entre ASCII 33 y ASCII 126.[:lower:]Corresponde a las letras minúsculas, es decir, equivale a [a-z][:space:]Corresponde a cualquier espacio en blanco.[:upper:]Corresponde a las letras mayúsculas, es decir, equivale a [A-Z][:xdigit:]Corresponde a las cifras hexadecimales, es decir, equivale a [0-9A-Fa-f]Veamos algunos ejemplos:Para listar los archivos cuyo nombre contiene una letra b o una letra h en segunda posición y tienen cualquier longitud: ?[bh]*.Si en la orden anterior, quisiésemos a?adir todos los archivos que en segunda posición tienen una b,c,d,e,f,g o h, tendríamos que escribir: ?[b-h]*.[ab-] o [-ab].[a-zA-Z].Si el primer carácter de la lista es un signo de cerrar exclamación (!) o un acento circunflejo (^), la correspondencia se hace con cualquier carácter ausente de la lista, es una especie de negación.Las llaves {}Permiten especificar listas de motivos separadas por una coma. Así, la sintaxis {abc,def} se reemplaza por la cadena abc o la cadena def. Dentro de las llaves puede ir cualquier operador. Veamos algunos ejemplos:{az,ro}Corresponde a todos los nombre de archivo que empiezan por la cadena az o la cadena ro.{*ro[sj]*,?a*}La barra vertical o pipe |Se escribe mediante la combinación de teclas AltGr+1 (|). Sirve para encadenar varios comandos de Linux que el Shell ejecutará en el orden que escribamos.findFunción:Se usa para buscar, en uno o más árboles de directorios, archivos que respondan a ciertos criterios, pudiendo aplicarlos un tratamiento de acuerdo a una acción determinada. La sintaxis de este comando no sigue las reglas elementales de los comandos de Linux.Sintaxis:find ruta/s_de_búsqueda criterio/s acciónRuta de búsquedaEs uno o más directorios del sistema de archivos, separados por espacios. El comando find recorre todo el árbol subyacente del que indiquemos como argumentos en busca de archivos que cumplan los criterios. Por lo tanto, busca en el directorio y sus subdirectorios. Si no especificamos ninguna ruta, la búsqueda se efectúa en el directorio actual. Criterios o expresiones de selección.Los criterios o expresiones de selección son el equivalente a las opciones. Por tanto, empiezan por un guión medio (-). Puesto que no todos los usuarios pueden tener los permisos suficientes, hay que evitar que salgan errores por no tener permiso para leer los archivos. Para conseguirilo hay que a?adir al final de la línea de comandos el argumento siguiente: 2>/dev/null, que nos redirige a este archivo los resultados nulos o con fallo.-name motivoBusca en el nombre de los archivos presentes en los árboles de búsqueda. Puede contener los mismos caracteres de reemplazo que el Shell pero para que el comando find los interprete hay que escribirlos entre apóstrofes, tanto al principio como al final de la expresión. El apóstrofe está situado en la tecla de cerrar interrogación, arriba a la derecha de la tecla pe.-size [+-]tama?o[bck]Determina el tama?o de los archivos a buscar. Si no indicamos ni más ni menos, nos muestra todos los archivos cuyo valor este comprendido entre dos números enteros. Además, podemos especificar el tama?o del bloque de datos: b para 512 bytes, c para 1 byte y k para 1 KB.-mtime [+-]número_díasEspecifica el tiempo, en días, transcurrido desde la última fecha de modificación de los archivos buscados.-perm permisosPermite recuperar todos los archivos con permisos de acceso particulares, pudiendo usar tanto la notación simbólica como octal.-newer archivo_referenciaBusca todos los archivos cuya fecha de modificación sea más reciente que el archivo de referencia pasado como argumento.-user usuarioPermite recuperar todos los archivos pertenecientes a un usuario. El parámetro puede ser el login o el UID del usuario.-group grupoPermite recuperar todos los archivos pertenecientes a un usuario. El parámetro puede ser el login o el UID del usuario.-maxdepth nNos permite indicar un número que representa en cuantos niveles y subniveles queremos hacer la búsqueda. Un 1 indica que hacemos la búsqueda en la carpeta actual. Un 2 que hacemos la búsqueda en el primer subdirectorio y así hasta n. Donde -type [bcl]Nos permite buscar un tipo de archivo particular de acuerdo al siguiente código: d para directorios, f para archivos normales y o l para enlaces.-lsNos muestra toda la información sobre los archivos, es equivalente a usar el comando ls pero solo nos muestra los resultados coincidentes con la búsqueda realizada.Operadores sobre las expresionesInternamente, las expresiones se evalúan como operaciones booleanas: devuelven verdadero o falso. Es posible combinar varias expresiones mediante los operadores.-andMuestra todos los archivos que cumplen las dos condiciones de forma simultánea.-orMuestra todos los archivos que cumplan una de las dos condiciones.-notEs la negación lógica y tenemos que escribirla justo antes de la expresión afectada.ParéntesisPermiten definir el orden de los operadores lógicos. Se colocan antes y después de un conjunto de expresiones para formar una sola a nivel lógico. Estos paréntesis tienen que ir precedidos de la barra invertida (\) para que el Shell los interprete de forma correcta.AccionesEs lo que ocurre cuando se ejecuta la búsqueda.-printMuestra el nombre de la ocurrencia encontrada.-execPermite ejecutar un comando externos del Shell por cada ocurrencia encontrada. Las llaves {} se usan para especificar la ruta del archivo encontrado en el comando a ejecutar por find.-okFunciona sobre el mismo principio que –exec pero pide una confirmación antes de ejecutar el comando externo para cada ocurrencia encontrada.-lsMuestra en detalles los archivos encontrados.sortFunción:Ordena las líneas de un archivo y devuelve el resultado en su salida estándar. Sin ningún tipo de opción, ordena los campos alfabéticamente. Las líneas (registros o records en la terminología de sort) se pueden subdividir en campos; el ordenamiento puede ser alfabético o numérico y el orden ascendiente o descendente.Sintaxis:sort –t delimitador +campo.carácter –opción(es) archivoListado de opciones+n.mn representa el número de campo. m representa el número del carácter en el campo. Ambos parámetros empiezan a contarse dese la izquierda y desde cero, por tanto el primer carácter es cero.-nOrdena los campos numéricos en función su valor aritmético.-rInvierte la ordenación del comando sort.GrepFunción:El nombre grep viene del acrónimo global regular expression and print (se puede traducir como expresión regular global y mostrar), pero su función es sencilla: encontrar un patrón en una lista de archivos. Pueden a?adirse varios filtros y/o archivos separados por espacios. Este comando puede encadenarse a otro para realizar un filtrado de la información obtenida con el comando anterior, por ejemplo del comando ls. Cuando se introducen caracteres especiales, por ejemplo unas comillas “”, hay que escribirlas entre comillas simples ‘””’ para que el Shell las interprete correctamenteUso de caracteres especiales:El acento circunflejo (^) se coloca delante de la expresión para hacer búsquedas en el comienzo de la palabra. El símbolo del dólar ($) se coloca al final de una expresión para indicar que queremos buscar al final de la palabra.El punto representa cualquier carácter.Sintaxis:grep –opcion(es) filtro archivo(s)Listado de opciones-cNos muestra el número de líneas que concuerdan con el filtro.-e PATR?NNos permite especificar varios patrones de búsqueda, protegiendo aquellos que se?alemos con un signo menos delante, sin espacio.-F ARCHIVOExtrae los patrones del archivo que especifiquemos. Los patrones del archivo deben ir uno por línea.-hNos imprime el nombre del archivo con cada coincidencia.-i--ignore-caseIgnora las distinción entre letras mayúsculas y minúsculas en las comparaciones. Muy útil para evitar errores en los resultados por la escritura de la primera letra en mayúsculas o si todo el nombre está en mayúsculas, por ejemplo.-lMuestra únicamente los nombres de archivos que cuentan con líneas que concuerdan con el filtro.-m--max-count=numberPara la búsqueda después de n coincidencias.-nNos dice el número de línea dónde se encuentra el filtro.-oNos muestra sólo la parte de la línea que coincide con el patrón.-rBusca en todos los subdirectorios de forma recursiva.-s--no-messagesSuprime todos los mensajes de error.-vImprime sólo las líneas que no corresponden al filtro.-wConsidera el filtro como una palabra entera.…..Los puntos suspensivos representan una longitud de caracteres. En este caso son cinco caracteres, va precedido de acento circunflejo (^) y sucedido del símbolo del dólar ($).Expresiones regularesSon las caracteres genéricos utilizados para buscar archivos: *, ?, \, corchetes, $Ejemplojosemariatc@curso:~$ grep josemariatc /etc/passwd /etc/group/etc/passwd:josemariatc:x:1000:1000:Jose Maria Torres Corral,1,911234567,919876543:/home/josemariatc:/bin/bash/etc/group:cdrom:x:24:josemariatc/etc/group:floppy:x:25:josemariatc/etc/group:audio:x:29:josemariatc/etc/group:dip:x:30:josemariatc/etc/group:video:x:44:josemariatc/etc/group:plugdev:x:46:josemariatc/etc/group:netdev:x:108:josemariatc/etc/group:bluetooth:x:109:josemariatc/etc/group:scanner:x:115:saned,josemariatc/etc/group:josemariatc:x:1000:cutFunción:Permite extraer columnas o campos seleccionados a partir de su entrada estándar o de archivos.Sintaxis:cut –fcampo(s) –d delimitador archivo(s)Listado de opcionesEjemplo:josemariatc@curso:~$ cat /etc/passwdjosemariatc:x:1000:1000:Jose Maria Torres Corral,1,911234567,919876543:/home/josemariatc:/bin/bashhelp:x:1002:1002::/home/help:/bin/shjosemariatc@curso:~$ cut -f 3,5 -d : /etc/paswwdcut: /etc/paswwd: No existe el fichero o el directoriojosemariatc@curso:~$ cut -f 3,5 -d : /etc/passwd1000:Jose Maria Torres Corral,1,911234567,9198765431002:headFunción:De forma predeterminada, muestra las diez primeras líneas de un archivo. Sintaxis:head –opción(es) archivo(s)Listado de opciones-c--bytesMuestra los primeras c bytes de cada fichero.-n--linesMuestra las n primeras líneas del archivo.+nMuestra desde la línea n hasta el final del archivo.-q--quietNo muestra las cabeceras con el nombre del fichero.-v--verboseMuestra siempre las cabeceras con el nombre del fichero.Ejemplo:josemariatc@curso:~$ head -n 1 /etc/passwdroot:x:0:0:root:/root:/bin/bashtailFunción:Muestra las últimas líneas de un archivo. Este comando es útil para seguir el progreso de un programa de largo recorrido.Sintaxis:tail –opción(es) archivo(s)Listado de opciones.-c--bytesMuestra los últimos n bytes o caracteres del archivo-f--followMuestra a medida que el fichero crece.-n--linesMuestra las últimas n líneas del archivoBibliografíaLINUX. Principios básicos del uso del sistema. Ediciones ENI. Serie: Recursos Informáticos.Guía oficial de instalación de Debian 6.0. en el sitio web oficial de Debian.Sitio web oficial de GNU: web oficial de FHS: ía de referencia de Debian: del curso: ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download