LPIC

Guía extraoficial de estudio

Archivos por Etiqueta: shell

Las expresiones regulares

El shell nos proporciona una característica que nos ahorra tiempo a la hora de teclear nombre de ficheros con los que operan comandos. La característica se llama generación de ficheros o expansión de nombres y permite utilizar caracteres especiales para especificar grupos de nombres de ficheros.

Podemos encontrar nombre de ficheros que cumplen un determinado patrón, como por ejemplo los que acaben en “.txt” o los que empiecen por “fichero” o los que tienen 3 caracteres. Veamos los tipos de esprexion regular:

Caracteres especiales utilizados:

Carácter Resultado Ejemplo
 . Representa cualquier carácter único, excepto el salto de linea El comando “ls o.o mostrará los ficheros que empiecen por o, contenga cualquier otra letra, y termine por o (oso, oco, olo..).
^ Representa el comienzo de una linea cat /etc/passwd | grep ^u nos devolverá las lineas del fichero que empiecen por “u”.
$ Representa el final de una linea cat /etc/passwd | grep “bash$” nos devolverá las lineas del fichero que acaben en “bash”.
| Separa dos posibles coincidencias hola | adios coincide con hola y adiós
() Rodean subexpresiones. Es utilizado para asegurarse de las expresiones que rodean sean tratadas como un grupo. grep “\(us\)\+” passwd nos devolverá todas las coincidencias que encuentre con la cadena “us“.
\ Si se antepone a un carácter especial, este será tratado como un carácter normal.  Para que la cadena http://www.google.com  sea tratada como
tal, deberemos indica www\.google\.com.
Sino, el punto podria ser igual a cualquier carácter, y nos podría devolver, por ejemplo, wwwagoogleacom.


Expresiones entre corchetes:

 Las expresiones que contengan caracteres rodeados entre corchetes, nos devolverán las cadenas que coincidan con cualquiera de las letras que estén entre los mismos. Por ejemplo, el comando ls C[AEIOU]L nos va a mostar todos los archivos que tengamos en el directorio que se llamen cal, cel, cil, col y cul, y el comando ls [a-zA-z], todos los ficheros que empiecen por minúscula o mayúscula.

Expresión regular Resultado
[] Coincidencia con cualquiera de los caracteres cerrados
[! ] Coincidencia con cualquiera de los caraceres no cerrados
[ – ] Coincidencia con cualquiera de los caracteres del rango

Operadores de repetición:

Se trata de símbolos especiales que se utilizan para denotar cuantas veces debe aparecer un elemento coincidente.

Símbolo Resultado
? Especifica cero o una coincidencia
* Especifica cero o más ocurrencias
+ Coincide con una o mas apariciones

Ejemplos:

La expresión A?B, nos podrá coincidir con AEB, ACB, AB, …..

La expresión version10.*, nos podra coincidir con version101,version102, version1000 ….etc

Comandos para visualizar ficheros (head, tail y less)

Vamos a comentar algunos de los comandos más utilizados para la visualización de ficheros:

Visualizar el inicio de los ficheros con head.

head  fichero.txt nos mostrará las 10 primeras lineas de éste. Esto es útil si necesitemos ver la cabecera de un archivo, por ejemplo. Podemos especificar el número de lineas con el flag -n, o el número de bytes con -c.

Visualizar el final del fichero con tail.

Este comando actúa de la misma manera que head, solo que al revés. Al ejecutar tail fichero.txt el shell nos mostrará las 10 últimas lineas. Este comando es utilizado para examinar la actividad reciente en los ficheros de registro (logs), o en otros fichero a los que haya que añadir datos. También estás disponibles los flags -n y-c.

Recorrer las páginas del fichero con less.

Éste comando no es más que una versión mejorada de more. Posee algunas funcionalidades, como la de poder retroceder por páginas en un fichero, que le hacen más interesante. No obstante, aunque suele venir configurado por defecto en Linux, muchos siguen utilizando more. Cuando ejecutamos este comando sobre un fichero, es posible avanzar o retroceder páginas. Veamos su funcionamiento:

Tecla Resultado
Barra espaciadora Avanza por el fichero
Esc + v Retrocede por el fichero
Flecha arriba y abajo recorre el fichero linea a linea
/palabra_a_buscar Busca la palabra en el documento, hacia adelante.
?palabra_a_buscar Busca la palabra en el documento, hacia atrás.
g+num Nos lleva a la línea especificada, en este caso la 50
q Salir del programa