Blog Tecnológico de Clever

Web Personal relacionado a la WEB 2.0. (JavaScript, RIA, XUL y Ajax), lenguajes de programación (Java, PHP, Ruby) y GNU/Linux por supuesto; hincha a morir del Software Libre.

Inicio de sesión

Sindicar

Curso Taller de Ubuntu Linux IV (visualización y búsqueda de archivos, expresiones regulares )

Versión para impresiónEnviar a un amigoVersión en PDF

Visualizacion de archivos:
--------------------------

cat	--> muestra un archivo de arriba abajo
grep	--> lista las lineas de un archivo que contenga una palabra como filtro 
egrep --> filtra como grep pero con un conjunto amplio de expresiones regulares
fgrep --> filtra como grep pero sin expresiones regulares, es el mas rapido
tac --> al reves del cat tail --> muestra las ultimas lineas de un archivo head --> muetsra las primeras lineas de un archivo sed --> como grep pero permite el reemplazo more --> como cat pero con pausa less --> visualizacion con pausa y en modo interactivo
wc --> cuenta las lineas, palabras o caracteres sed --> buscar y reemplaza cadenas en la vista de un archivo pr --> visualiza un archivo en formato de impresión tr --> efectúa transformación de caracteres en la vista de un archivo awk --> manipula las cadenas de un archivo con condicionales y expresiones regulares, es un lenguaje para manipulación de cadenas Modo interactivo (comando less, man): ------------------------------------------ /cadena --> busca cadena (se pueden usar expresiones regulares)
n --> sigue buscando 1G --> va a primera linea G --> va a la ultima línea
27G --> va a linea 27
q --> salir del modo interactivo
------------------------------------------

Redirección y Tubería:
---------------------------------------------------
> >> <
| (Tuberia concatenando comandos)
tee redirecciona y muestra la salida estandar
---------------------------------------------------

Expresiones Regulares:
-----------------------
* --> 0 o mas coincidencias
+ --> 1 o mas coincidencias
? --> una coincidencia
{1,} --> equivalente a +
{0,} --> equivalente a *
[1,1} --> equivalente a ?
{2,5} --> de 2 a 5 coincidencias
^ --> que comienza
$ --> que termina
[a-z] --> solo letras minusculas
[A-Z] --> solo letras mayusculas
[a-ZA-Z] --> solo letras
[a-ZA-ZááíóúñÑÁÉÍÓÚ] --> alfabeto español
[0-9] --> solo numeros
( ) --> bloque de expresiones
(exp1 |exp2) --> coincidencia de exp1 o exp2
[^exp] --> negacion de la expresion
\ --> caracter de escape
. --> cualquier caracter

Visualizacion de archivos (Aplicando ejercicios):
------------------------------------------------

$> cat /etc/passwd
Muestra el contenido de un archivo sin pausa

$> tac /etc/passwd
Muestra el contenido de un archivo sin pausa pero al reves,
lo mismo que cat pero al reves

$> more /etc/services
Muestra un archivo con pausa por pagina, enter para seguir avanzando

$> less /etc/services
Muestra un archivo en modo interactivo

$> tail /etc/passwd
Muestra las ultimas 10 lineas de un archivo

$> tail -1 /etc/passwd
Muestra la ultima linea de un archivo

$> tail -5 /etc/passwd
Muestra las ultimas 5 lineas de un archivo

$> tail -f /var/log/messages
Muestra en forma interactiva los cambios en las ultimas lineas
de un archivo: q para salir

$> cat /etc/services | less
visualiza el contenido del archivo /etc/services y el resultado
se concatena en less

$> lees /etc/services
Tiene el mismo resultado que el comando anterior

$> cat -n /etc/services | less
Lo mismo que los archivos anteriores pero mostrando los numeros de
linea

$> cat /etc/host /etc/hostname
Concatena la visualizacion de los dos archivos en una sola salida
por el stdout (pantalla)

$> cat>archivo
hola mundo
linux es chevere
ctrl+c
usado de esta forma cat actúa como un editor de texto

$> cat archivo
Muestra lo que se escribio anteriormente

$> cat /etc/passwd > passwords
Creando archivo a partir de la salida estandar

$> cat /etc/group >> passwods
Añade al final del archivo

$> grep imap /etc/services ; echo hola
Filtra por palabra la visualizacion del archivo ";" se usa para
ejecutar otro comando en la misma linea

$> wc /etc/services
Cuenta el numero de lineas palabras y caracteres del archivo

$> wc -l /etc/services
Cuenta solo numeros de lineas, palabras y caracteres del archivo

$> tail /etc/services
Visualiza las 10 ultimas lineas

$> tac /etc/services
Visualiza de abajo hacia arriba el contenido del archivo

$> head /etc/services
Visualiza las 10 primeras lineas

$> head -8 /etc/services
Visualiza las 8 primeras lineas

$> tail -1 /etc/passwd
Muestra el ultimo usuario creado

$> head -30 /etc/services | tail -5
Muestra las lineas de la 25 a la 30

$> cat /etc/group | tee -a passwods
Añade al final del archivo y muestra la salida estandar

$> grep alumno /etc/passwd
Muestra todas las lineas en el fichero /etc/passwd que contengan la
expresion alumno

$> grep -v alumno /etc/passwd
Filtra las lineas que no contengan la expresion alumno

$> grep "^a" /etc/passwd
Busca las lineas que comienzan con a

$> egrep "[0-9]" /etc/network/interfaces
Acepta un mayor conjunto de expresiones regulares, filtra las lineas
que contengan numeros

$> fgrep alumno /etc/passwd
Filtra por palabras no por expresiones regulares, es más rápido que
grep y egrep


Ejercicio: Arma una expresion regular para validar numeros de ips

Solucion:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

$> egrep -R "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /etc

Ejercicio: Escribe una expresion regular para validar emails en
cualquier archivo del directorio /etc o sus subdirectorios
pepito@gmail.com
pepito_linux@gmail.com
pepito.linux@gmail.com
7318@gmail.com

Solucion: "[a-zA-Z0-9_\-\.]+@[a-zA-Z\-\.]+\.[a-zA-Z]{2,4}"
$> egrep -R "[a-zA-Z0-9_\-\.]+@[a-zA-Z\-\.]+\.[a-zA-Z]{2,4}" /etc


$> cat /etc/passwd |cut -d ":" -f1
Corta las lineas por columna separandolas por ":" y muestra la primera
columna

$> sed -e "s;smtp;correo;g" /etc/services
Reemplaza la palabra smtp por correo

$> sed -e "s;telnet;conexion remota;g" \
-e "s;smtp;correo;g" /etc/services
Reemplaza la palabra telnet y smpt por correxion remota y correo

$> cat /etc/services | tr a-z A-Z
Transforma las letras minusculas a mayusculas

$> cat /etc/passwd | tr -d "[0-9]"
Borra los numeros

$> cat /etc/passwd | tr -c "[a-z A-Z]" "-"
Transforma los caracteres que no sean letras en "-"

$> cat /etc/services |tr -s "\n*"
Transforma los saltos de lineas consecutivas en uno solo (elimina
linea en blanco)

$> pr /etc/services
Visualiza en formato de impresion

$> pr /etc/services | less

$> pr /etc/services > /dev/lp0
Impresion del archivo /etc/services lp0 es el puerto paralelo


Busqueda de Archivos
---------------------
find,locate,whereis
---------------------

$> find ./ -name a\*
Busca archivos y directorios que comiencen con a, tomando como base el
directorio actual

$> find /etc -name interfaces
Busca desde el /etc el archivo o directorio interfaces

$> find /usr -name "*" -size +300K
Busca todos los archivos en el /usr que pesen mas de 300K

$> updatedb
Actualiza la base de datos de la lista de archivos y directorios
existentes en el sistema

$> locate interfaces
Busca en la base de datos el archivo interfaces

$> whereis vim
Muestra la ruta de binarios, librerias y documentacion


Salida de Errores
---------------------
1 Salida Estandar
2 Salida de errores
---------------------

$> /etc/init.d/networking restart 2>errores
Ejecuta un comando y la salida de errores lo direcciona a un archivo

$> program < datos.d > resultados.r 2>&1
Ejecuta un programa que lee datos de entrada de un archivo(datos.d),
la salida estandar y de errores se direcciona al archivo resultado.