Blog Tecnológico de Clever

Web Personal de Clever Flores 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	--> filtra por palabra
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
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
n	-->	sigue buscando
1G	-->	va a primera linea
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-z A-Z_\-\.]+@[a-z A-Z\-\.]+\.[a-z A-Z\-\.]+"

$> egrep -R "[a-z A-Z_\-\.]+@[a-z A-Z\-\.]+\.[a-z A-Z\-\.]+" /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;smpt;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

$> 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.r