Curso Básico de UNIX

Anuncio
Curso Básico de UNIX
Filtros.
sort
grep
find
fgrep y egrep
tr
uniq
dd
Preguntas y Ejercicios
Bibliografía y Referencias
Se da el nombe de filtros a un grupo de comandos que leen alguna entrada, realizan una
transformación y escriben una salida. Además de los que veremos aquí, incluye comandos
tales como head, tail, wc, y cut.
sort
La comparación u ordenación puede ser por caracteres ASCII o por valor numérico. La
ordenación ASCII es la más parecida a la alfabética; sigue el orden del juego de caracteres
ASCII. En este ordenamiento, los caracteres idiomáticos (vocales acentuadas, ñ) no se
encuentran en el orden alfabético tradicional. En la ordenación numérica se respeta la
ordenación por valor numérico de la cadena de caracteres: 101 va después de 21; en
ordenamiento ASCII sería al revés.
sort arch1
ordena según el código ASCII.
sort -n arch2.num
ordena numéricamente.
Si no se indican campos de ordenación, la comparación se hace sobre toda la línea. Si se
indican campos, la comparación se hace considerando la cadena de caracteres iniciada en el
primer caracter del primer campo hasta el último caracter del último campo.
sort -t: -k1,3 arch1.txt
ordena por campos separados por ":", tomando en cuenta para la comparación los caracteres
desde el primero del campo 1 hasta el último del campo 3.
sort -t: -k1.3,3.5 arch1.txt
ordena por campos tomando en cuenta desde el 3er. caracter del campo 1 hasta el 5to.
caracter del campo 3.
sort -nr arch2.num
ordena en orden numérico descendente.
sort -k3 arch3.txt
ordena alfabéticamente, usando como cadena de comparación la comprendida desde el
primer caracter del 3er. campo hasta el fin de lína. Como no se indica separador, los campos
se definen por blancos (espacio o tabulador).
find
El comando find explora una rama de directorios buscando archivos que cumplan
determinados criterios. El comando find en GNU es extremadamente potente, permitiendo
criterios de búsqueda tales como:
el nombre contiene cierta cadena de caracteres o aparea con algún patrón:
son enlaces a ciertos archivos;
fueron usados por última vez en un cierto período de tiempo;
tienen un tamaño comprendido dentro de cierto intervalo;
son de cierto tipo (regular, directorio, enlace simbólico, etc.);
pertenecen a cierto usuario o grupo;
tienen ciertos permisos de acceso;
contienen texto que aparea con cierto patrón.
Una vez ubicados los archivos, find puede realizar diversas acciones sobre ellos:
ver o editar;
guardar sus nombres en otro archivo;
eliminarlos o renombrarlos;
cambiar sus permisos de acceso;
clasificarlos por grupos.
find /var -name *.log -print
busca en el directorio /var los archivos terminados en .log, imprime sus nombres en la salida.
find /tmp -size +200k -print
busca archivos mayores de 200k. En los argumentos numéricos, +N es mayor que N, -N es
menor que N, N es exactamente igual a N.
find /var/spool/mail -atime +30 -print
busca archivos no accedidos hace más de 30 días. La opción -atime se refiere a tiempo
transcurrido desde última lectura, -mtime desde última modificación de estado o permisos,
-ctime de contenido.
find /var/tmp -empty -exec rm {} \;
busca archivos vacíos y los borra.
find /home -nouser -ls
busca archivos en los cuales en lugar del nombre de usuario dueño aparece un número (UID).
Esta situación se da cuando la cuenta de usuario ha sido borrada pero han permanecido los
archivos creados por ese usuario.
grep
El comando grep (Global Regular Expression and Print) permite buscar las líneas que
contienen una cadena de caracteres especificada mediante una expresión regular. Lee la
entrada estándar o una lista de archivos y muestra en la salida sólo aquellas líneas que
contienen la expresión indicada. La sintaxis es
grep patrón archivos
donde el patrón a buscar es una expresión regular.
Crear un archivo con los días de la semana, uno por línea; llamarle dias.
grep martes dias
grep tes dias
muestra las líneas del archivo dias que contienen la cadena "tes".
grep unix01 /etc/passwd
grep unix0[1-9] /etc/passwd
ls -l /usr | grep '^d'
lista sólo los subdirectorios del directorio /usr (la línea empieza con "d").
ls -l / | grep '.......rw'
lista sólo los archivos que otros pueden leer y escribir en el directorio principal.
grep '^[^:]*::' /etc/passwd
busca usuarios sin contraseña; caracteres al principio de línea que no sean ":", y luego "::" (el
segundo lugar, que es el de la contraseña, está vacío).
grep '^[^:]*:\*:' /etc/passwd
busca usuarios que no pueden entrar al sistema; tienen un * en el lugar de la contraseña; \
escapa el significado del segundo *, que vale como caracter a buscar.
Ninguna expresión regular de grep aparea con un caracter nueva línea; las expresiones se
aplican individualmente a cada línea.
Entre las opciones de grep se cuentan -i para evitar distinguir entre mayúsculas de
minúsculas, -n para mostrar el número de línea y -v para buscar líneas que no contengan la
expresión regular indicada.
fgrep y egrep
Hay dos versiones de grep que optimizan la búsqueda en casos particulares:
(fixed grep, o fast grep) acepta solamente una cadena de caracteres, y no una expresión
regular, aunque permite buscar varias de estas cadenas simultáneamente;
fgrep
(extended grep), que acepta expresiones regulares extendidas con los operadores + ? |
y paréntesis.
egrep
no interpreta metacaracteres, pero puede buscar muy eficientemente muchas palabras
en paralelo, por lo que se usa mucho en búsquedas bibliográficas; egrep acepta expresiones
más complejas, pero es más lento; grep es un buen compromiso entre ambos.
fgrep
fgrep martes dias
busca la cadena martes en el archivo dias.
En fgrep y egrep puede indicarse la opción -f buscar.exp, donde buscar.exp es un archivo
que contiene la expresión a buscar: cadenas simples para fgrep, expresiones regulares para
egrep, separadas por nueva línea; las expresiones se buscan en paralelo, es decir que la
salida serán todas las líneas que contengan una cualquiera de las expresiones a buscar.
Crear un archivo buscar.fgrep con las cadenas "tes" y "jue", una por línea. El comando
fgrep -f buscar.fgrep dias
extrae del archivo dias las líneas que contienen estas cadenas.
El comando grep soporta fgrep y egrep como opciones -F y -E, respectivamente.
grep -F -f buscar.fgrep dias
egrep "tes|jue" dias
grep -E "tes|jue" dias
obtienen el mismo efecto del comando anterior.
egrep "([0-9]+ab)*1234" archivo
busca cadenas comenzadas opcionalmente por un dígito y los caracteres ab, todo el
paréntesis 0 o más veces, y hasta encontrar la cadena 1234.
Escribir grep -E es similar a egrep, aunque no idéntico; egrep es compatible con el comando
histórico egrep; grep -E acepta expresiones regulares extendidas y es la versión moderna del
comando en GNU. fgrep es idéntico a grep -F.
tr
El comando tr translitera los caracteres de la entrada: sustituye unos caracteres por otros. La
sustitución es caracter a caracter. Entre sus opciones se encuentran -d para borrar caracteres;
-c para sustituir complemento de los caracteres indicados, es decir, que no sean ésos; y -s
para comprimir caracteres repetidos en uno solo.
cat dias | tr a-z A-Z
convierte todo a mayúsculas.
cat dias | tr -d aeiou
borra todas las vocales del archivo dias.
Agregar al archivo dias líneas en blanco, varias seguidas, intercaladas entre los nombres de
los días.
cat dias
cat dias | tr -s "\n*"
convierte varios caracteres nueva línea seguidos en una solo; elimina renglones en blanco.
cat nota | tr -c "[a-zA-Z0-9]" "_"
transforma todos los caracteres que no sean letras o números en subrayas.
cat nota | tr -cs "[a-zA-Z0-9]" "[\n*]"
transforma todos los caracteres que no sean letras o números en nuevalínea, y comprime las
nuevalíneas repetidas en una sola; deja cada palabra sola en un renglón.
ls -l /usr | tr -s " " | cut -f3,4
comprime los blancos en la salida para poder cortar campos.
uniq
El comando uniq excluye todos los renglones adyacentes duplicados menos uno; es decir,
elimina renglones repetidos consecutivos. La opción -c escribe el número de ocurrencias al
comienzo del renglón.
El siguiente ejemplo muestra las 5 palabras más frecuentes en el conjunto de archivos:
cat *.txt | tr -sc A-Za-z '\012' | \
sort | uniq -c | sort -n | tail 5
cat lista todos los archivos, tr comprime el
renglón eliminando blancos, sort los ordena, uniq
cuenta las ocurrencias y elimina repetidos, sort -n ordena por cantidad de ocurrencias y tail
muestra las 5 ocurrencias más frecuentes.
dd
El comando dd es un convertidor de datos: convierte de ASCII a EBCDIC y a la inversa, cambia
los tamaños de los bloques de registros, hace ajuste de blancos y otras transformaciones
usuales cuando se manejan transferencias entre sistemas operativos distintos o datos en
bruto, sin formato, como en los respaldos en cinta.
Preguntas y Ejercicios.
Bibliografía y Referencias.
Comandos: sort, find, grep, fgrep, egrep, tr, uniq, dd
Referencias: páginas man, nodos info, Kernighan-Pike[1987], Coffin[1989].
Víctor A. González Barbone vagonbar en fing edu uy
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.
Curso Básico de UNIX
Preguntas y Ejercicios.
Ficha Referencia: Filtros
Estructura de archivos.
Estructura del archivo /etc/passwd:
#nombre:contraseña:UID:GID:comentarios:dir_propio:shell
jperez:Xdio0IKLLP:1130:103:Juan Pérez:/home/jperez:/bin/bash
Estructura del archivo /etc/group:
#grupo:GID:lista_usuarios
docentes:103:victor,german,fernando
Estructura del archivo /etc/hosts:
#número_IP nombre_máquina alias
10.137.137.250
liebre.cdi.edu.uy liebre localhost mailhost
Todos los archivos anteriores pueden tener comentarios (líneas comenzadas por #).
1.
Buscar a partir del directorio /var todos los archivos de nombre core y mostrar a) sus nombre;
b) sus nombres en listado largo; c) eliminarlos.
2.
Un archivo acceso.log de registro de accesos de usuarios a un sistema UNIX, genera un
renglón por acceso, el primer campo es el nombre del usuario, y los campos están separados
por ":".
a) Escribir comandos que muestren el nombre de cada usuario y la cantidad de accesos
registrados, en orden alfabético.
b) Extraer del archivo acceso.log las líneas correspondientes al usuario jperez del mes de
mayo del año 1997. La fecha figura en el formato "1300 15 Mayo 1997"; el primer número es la
hora.
c) Extraer del archivo acceso.log las líneas que correspondan al usuario jperez o al usuario
elopez.
3.
En el archivo NoMBreS.tXT un mismo nombre puede estar en mayúsculas y minúsculas,
mezcladas de diferentes maneras. Generar una lista de nombres en minúscula con los 7
nombres que aparecen menos veces, sin importar como estén escritos.
4.
Un archivo palabras.txt contiene palabras distintas una por línea. Extrar todas las palabras
que empiecen y terminen con vocal, en minúscula o mayúscula.
5.
Usar el archivo /etc/passwd o el comando ypcat passwd si el sistema usa NIS, para resolver
las siguientes preguntas. En estos archivos pueden haber comentarios, líneas empezadas por
#, que deben eliminarse de la búsqueda. Recordar que el caracter # es interpretado por el
shell.
a) eliminar los comentarios.
b) extraer una línea que muestre directorio propio y shell del usuario elopez.
c) listar los usuarios que usan el shell /bin/bash.
d) listar los usuarios que no usan el shell /bin/bash.
e) contar la cantidad de usuarios.
6.
Realizar las tareas indicadas, si es posible; si no lo es, indicar los motivos. Presentar el archivo
/etc/passwd ordenado según los siguientes criterios:
a) ordenado por nombre de login de usuario.
b) ordenado por número de usuario.
c) ordenado por número de grupo y dentro de cada grupo por número de usuario.
d) ordenado por número de grupo y dentro de cada grupo por campo de comentario.
7.
Encontrar las 5 palabras más frecuentes en el texto historia1.txt, e indicar la cantidad de
veces que fue usada cada una. Indicación: transformar primero todas las palabras a
minúscula.
Víctor A. González Barbone vagonbar en fing edu uy
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.
Curso Básico de UNIX
Comandos de Usuario
Ultima revisión: Set 2001
Propósito
Metalenguaje y convenciones
Referencias
Comandos:
apropos banner cal cat cd chmod clear cmp cp cut date diff echo env exit file
head hostname id info less ln ls dir vdir mail man mesg mkdir more mv passwd pr
printenv ps pwd rm rmdir tail talk touch umask wc whatis which who whoami
Propósito:
Esta guía resume la sintaxis, opciones más frecuentes y ejemplos de uso de los comandos
UNIX de más uso en la práctica. En descripción se presenta nombre del comando, sintaxis
resumida, acción principal, opciones más usuales, ejemplos y observaciones, si las hay.
Esta guía no puede ni pretende sustituir la consulta de las páginas man.
Metalenguaje y convenciones:
...
[]
{A|B}
TAB
LF
CR
ESPACIO
blanco
UID
GID
(su)
repetición del último item
item opcional, puede estar o no
item opcional obligatorio, debe tomarse A o B
tecla o caracter tabulador
caracter nueva línea
caracter retorno de carro
caracter o tecla de barra espaciadora
caracter TAB o ESPACIO, delimita palabras
identificador de usuario (número)
identificador de grupo (número)
requiere permiso de supervisor
Los items en minúsculas van tal cual, los items en MAYUSCULAS deben ser sustituídos por
valores del usuario.
apropos
apropos [OPCIONES] PALABRA-CLAVE ...
busca entre las descripciones cortas de las páginas del manual la presencia de la palabra
clave.
-r interpreta cada nombre como una expresión regular
-w interpreta cada nombre como conteniendo caracteres comodines
apropos man
apropos -w man*
banner
banner MENSAJE
Muestra el mensaje (cadena de caracteres) en letras grandes y girado 90°; para imprimir
carteles.
-wN
en un ancho de N columnas
banner -w 40 Hola!
banner a
cal
cal [OPCIONES] [[MES]AÑO]
Sin parámetros, muestra calendario del mes actual; el año debe indicarse con centuria,
1-1999; el mes en número 1 a 12.
-j
-y
día juliano, contado desde el 1 de enero
calendario del año en curso
cal
cal 1998
cal 11 1997
cal 9 1752
muestra el mes del año en que se saltearon 11 días para compensar años bisiestos.
cat
cat [OPCIONES] [ARCHIVO ...]
Concatena los archivos indicados y los muestra en la salida estándar. Sin argumentos, recibe
de la entrada estándar (-).
-A
-b
-E
-n
-s
-t
-v
-T
equivalente a -vET
numera las líneas que no están en blanco
muestra $ al final de cada línea
numera las líneas
reemplaza varias líneas en blanco por una sola
equivale a -vT
muestra caracteres no imprimibles excepto LF y TAB
muestra TAB como ^I
cat /etc/group
cat cap1 cap2 cap3
muestra sucesivamente los archivos cap1, cap2 y cap3.
cat cap1 cap2 cap3 > libro
reúne los archivos cap1, cap2 y cap3 en el archivo libro.
cat arch1 arch2 > arch1
hace perder los datos originales en arch1.
cd
cd [DIRECTORIO]
cambia directorio de trabajo; sin parámetros, cambia al directorio propio del usuario como
aparece en $HOME. En Linux, es un comando interno del shell; ver bash(1).
cd /etc
cd
chmod
chmod [OPCION] MODO ARCHIVO ...
cambia los permisos de acceso a los archivos indicados. No cambia los permisos de los
enlaces simbólicos.
-v
-R
verboso, describe acción sobre cada archivo.
recursivo, cambia permisos de subdirectorios y sus contenidos
chmod -R 0755 documentos/visibles
chmod ug+rw-x,o+r-wx cap*.txt
clear
clear
borra la pantalla del terminal.
cmp
cmp [OPCIONES] ARCH1 ARCH2 [SALTEAR1 [SALTEAR2]]
compara dos archivos. Si son iguales, no dice nada; si difieren, marca el byte y el número de
línea de la primera diferencia.
-l
-s
número de byte (decimal) y bytes diferentes (octal) para cada
diferencia.
devueve solamente un valor de retorno, sin escribir nada.
Los valores de retorno son 0 si los archivos son iguales, 1 si diferen, >1 si hubo un error. Los
valores decimales SALTEAR1 y SALTEAR2 indican la posición de byte donde comienza la
comparación en ARCH1 y ARCH2; puede expresarse en hexadecimal precediento el número con
0x, o en octal precediendo con 0.
cp
cp [OPCIONES] ARCH_ORIGEN ARCH_DESTINO
cp [OPCIONES] ARCHIVO ... DIRECTORIO
copia ARCH_ORIGEN hacia ARCH_DESTINO; copia los archivos indicados hacia DIRECTORIO. Por
defecto no copia directorios.
-d
-f
-i
-l
-p
copia enlaces simbólicos como tales
forzoso, sobreescribe archivos destino si existen
avisa antes de sobreescribir archivos existentes
crea enlaces hard en lugar de copiar los archivos
preserva dueño, grupo, permiso y fecha
-s
-R
-v
crea enlaces simbólicos en lugar de copiar los archivos
recursivo, copia directorios y sus archivos
verboso, escribe el nombre de cada archivo que copia
cp arch1 /dir1/arch1
cp -vi arch1 arch2
cp -dpRv dir1 /dir2/subdir2 dirtodo
mejor forma de copiar exactamente una estructura de directorios, recursivamente, conservando
permisos y manteniendo enlaces simbólicos; verboso puede omitirse.
cut
cut -f CAMPOS [-d DELIM][ARCHIVO ...]
cut -c COLUMNAS [ARCHIVO ...]
extrae partes de cada línea de los archivos indicados o de la entrada estándar. Los campos y
columnas se indican con números 1, 2,... o con intervalos n-m. Intervalos incompletos: -n es
1-n, m- es m hasta el último campo o columna.
-f
-c
-d
-s
campos numerados, por defecto separados por TAB
columnas, ubicación posicional de caracteres en la línea
fija el caracter delimitador de campos, TAB por defecto
con -f para no imprimir líneas que no contengan el delimitador
cat /etc/passwd | cut -d: -f1,3,5-6
cat /etc/passwd | cut -c1-15
ls -l | cut -c57-
corta sólo el nombre del archivo, al final (puede requerir ajuste en el valor de columna).
date
date [OPCION] [+FORMATO]
muestra fecha y hora. Con +FORMATO la presenta según el patrón indicado.
date [-u|--utc|--universal] [ MMDDHHmm [[CC]YY][.SS] ]
fija (su) fecha y hora.
-u --utc --universal
hora universal (GMT)
Formato para fijar la hora:
MM
DD
HH
mm
CC
YY
SS
mes (01-12)
día (01-31)
hora (00-23)
mminuto (00-59)
centuria
año
segundos (00-59)
Formato para presentar la fecha y la hora (+FORMATO):
'%H' hora (00-23)
'%M' minuto (00-59)
'%S' segundos (00-59)
'%T' hora en 24 horas (hh:mm:ss)
'%X' hora en representación local (%H:%M:S)
'%a'
'%A'
'%b'
'%B'
'%c'
'%d'
'%m'
'%w'
'%x'
'%y'
'%Y'
nombre local abreviado del día
nombre local completo del día
nombre local abreviado del mes
nombre local completo del mes
fecha y hora locales
día del mes (01-31)
mes (01-12)
día de la semana (0-6), 0 es Domingo
fecha local
2 dígitos del año (00-99)
4 dígitos del año (1970....)
diff
diff ARCHIVO1 ARCHIVO2
muestra las diferencias existentes entre dos archivos.
diff nota1 nota2
echo
echo [OPCIONES] MENSAJE ...
escribe en la salida estándar los mensajes, separados con un espacio y con LF al final.
Muchos shells tienen un comando interno del mismo nombre; éste, fuera del shell, debe
invocarse como /bin/echo.
-n
-e
suprime LF al final
interpreta estos caracteres especiales, dentro de " "
\a
campana
\b
retroceso
\c
suprime LF al final
\f
cambio de página
\n
nueva línea (LF)
\r
retorno de carro (CR)
\t
tabulador horizontal
\v
tabulador vertical
\\
barra inversa
\nnn caracter ASCII nnn en octal
echo
echo
echo
echo
Hola Todos!
-n Hola Todos!
-e "\a"
-e "\101"
muestra la letra A, que es 101 en octal.
env
env [OPCIONES][NOMBRE=VALOR]...[COMANDO [ARGUMENTO ...]]
Sin argumentos, muestra valores de variables de ambiente; con argumentos, corre el comando
indicado con las variables de ambiente modificadas según se indique.
-i comenzar con un ambiente virgen, ignorando el actual
env
env DIR=/etc listadir1
lista el contenido del directorio /etc; listadir es un archivo ejecutable que contiene la línea ls
dir1, para listar contenido del directorio dir1.
echo Directorio $HOME
ls -l $HOME
muestra el directorio propio del usuario, guardado en la variable de ambiente HOME.
exit
exit [N]
produce la salida del shell con estado de terminación N (número); si no se indica retorna con
0.
file
file OPCIONES ARCHIVO
intenta determinar el tipo de archivo de que se trata: texto ASCII, código C, script en diversos
lenguajes, binario, otros.
-z
examina archivos comprimidos
file cati.c
este archivo contiene código C.
file adduser
este archivo es un script en Perl.
file /bin/cat
es un ejecutable binario.
head
head [OPCIONES] ARCHIVO ...
muestra la primera parte de un archivo, por defecto 10 líneas. Si son varios archivos muestra
un encabezado con el nombre de cada archivo.
-v
-q
-N
-n N
verboso, imprime encabezamiento con nombre del archivo
silencioso, no imprime encabezado con nombre del archivo
imprime primeras N líneas, por defecto 10
imprime primeras N líneas
head -24 /etc/inetd.conf
hostname
hostname [NOMBRE]
sin argumentos, da el nombre de la máquina; con NOMBRE, fija el nombre de la máquina
(su).
-h
ayuda
-f
-d
-i
-a
-v
--fqdn
nombre de máquina completo, con dominio DNS
--domain nombre de dominio DNS
--ip-address
dirección (número IP)
--alias
nombres de alias
verboso
id
id [OPCIONES] [NOMBRE_USUARIO]
muestra información sobre un usuario. Muestra nombre, UID, grupo, GID y grupos
suplementarios. Si el id real y el efectivo no corresponden muestra ambos. Las opciones
limitan el despliegue.
-g
-G
-n
-r
-u
sólo el grupo primario
grupos suplementarios
nombre en lugar de número; requiere -u, -g, o -G
real en lugar de efectivo; requiere -u, -g o -G
sólo el número de usuario (UID)
id
id webmaster
muestra datos del usuario webmaster.
info
info [NOMBRE]
sistema de información de GNU sobre UNIX.
info info
muestra información sobre info, con tutorial para aprender a manejar info.
less
less [OPCIONES] [ARCHIVO]
programa de paginado y búsqueda similar a more, con más opciones y comandos. Permite
movimiento hacia adelante y atrás, pero no lee todo el archivo al principio, por lo que es más
rápido. Sus comandos están tomados de more y vi (ver more).
--help -?
muestra ayuda sobre comandos internos
ln
ln [OPCIONES] ORIGEN [DESTINO]
ln [OPCIONES] ORIGEN ... DIRECTORIO
si el último argumento es un directorio, ln crea en ese directorio enlaces a todos los archivos
origen con el mismo nombre; si sólo se indica un nombre de archivo, crea un enlace hacia ese
archivo en el directorio actual; si se indican dos archivos, crea un enlace con el primer nombre
(archivo real) hacia el segundo (enlace). Por defecto, crea enlaces hard y no elimina archivos
existentes.
-f
-i
forzoso, elimina archivos destino existentes
interactivo, pide confirmación para eliminar archivos
-s
-v
simbólico, crea enlaces simbólicos en lugar de hard
verboso, da el nombre de cada enlace creado
ln
ln
ln
ln
nota nota.ln
-s /etc/passwd
-s datos.usuario datos.usu.ln
-sv datos.usuario LEAME dir2
ls, dir, vdir
ls [OPCIONES] [NOMBRE]
Para cada nombre de directorio, lista contenido de directorio; para cada nombre de archivo,
indica su nombre y datos. La salida está ordenada alfabéticamente por defecto. Sin nombre,
lista el directorio corriente. La opción -l muestra, separados por espacios, los campos tipo
archivo y permisos, cantidad de enlaces hard, dueño, grupo, tamaño, mes, día, hora o año,
nombre.
-1
-a
-c
-C
-d
-F
-i
-k
-l
-r
-R
-s
-t
-u
-U
-x
un nombre de archivo por línea
todos los archivos, incluso no visibles comenzados por .
ordenar por fecha de estado de último cambio (ctime en inodo)
salida en columnas con ordenamiento por columnas
lista directorios como archivos, no su contenido
indica tipo: / directorio, * ejecutable, @ enlace simbólico
inodo, número de índice de cada archivo
tamaños en KB
listado en formato largo
invertir ordenamiento
listar recursivamente subdirectorios
tamaño en bloques de 1024 bytes
ordenar por fecha de última modificación (mtime en inodo)
ordenar por fecha de último acceso (atime en inodo)
no ordenar
salida en columnas con ordenamiento por filas
dir
equivale al ls -C.
vdir
equivale a ls -l.
mail
mail [OPCIONES] [DESTINO ...]
procesador de correo electrónico de UNIX. Sin argumentos, muestra lista de mensajes en la
casilla de entrada y permite manipularlos. Si hay un destino, lee de la entrada estándar hasta
un "." aislado en una línea y envía lo leído como mensaje a destino.
-v
-s
-c
-b
-f
-u
verboso, muestra detalles de entrega
TEMA
especifica el tema (subject) del mensaje
LISTA
envía copias a LISTA de usuarios, separados por coma
LISTA
envía copia ciega a LISTA de usuarios
[ARCH]
lee contenido de archivo propio mbox o el indicado
USUARIO equivale a mail -f /var/spool/mail/USUARIO
Comandos internos de mail:
&
?
d
N
q
indicador de comandos de mail
muestra lista de comandos para manejo de mensajes
borra mensaje corriente, marcado con '>'
muestra el mensaje número N
sale del programa de correo
mail -s "Saludos para todos " -c pedro,[email protected] juan
envía un mensaje al usuario juan, tema "Saludos para todos", con copia a usuarios pedro y
mateo.
man
man [OPCIONES] [SECCION] NOMBRE ...
Da formato y muestra las páginas del manual en línea. Si no se indica sección, muestra sólo la
primera que encuentre; si se indica sección como número 1-9, muestra la página que haya en
la sección indicada. Las páginas están organizadas en secciones, reconocidas por un dígito, y
eventualmente subsecciones indicadas por una o más letras.
-a
-d
-f
-h
-k
-w
muestra páginas en todas las secciones
muestra información de depuración propia de man
equivalente a whatis
muestra ayuda para man
equivalente a apropos
no imprime las páginas, sino las ubicaciones
Secciones del manual:
1 programas ejecutables y guiones (scripts)
2 llamadas al sistema (funciones del núcleo)
3 llamadas a biblioteca (funciones de biblioteca)
4 archivos especiales (generalmente en /dev)
5 formatos de archivos
6 juegos
7 paquetes de macros
8 comandos de administración (su)
man -h
man man
man -a man
mesg
mesg [y|n]
controla acceso de escritura a la terminal propia por otros usuarios, típicamente con programas
tales como talk y write. Sin parámetros, muestra el estado: is y si está habilitada escritura,
is n si no está habilitada escritura.
y
n
permite a otros escribir mensajes en la terminal
no permite a otros escribir mensajes en la terminal
mesg
mesg y
mesg n
mkdir
mkdir [OPCIONES] [-m MODO] DIRECTORIO ...
crea los directorios indicados. Por defecto, el modo es 0777 menos los bits de umask.
-m MODO
permite fijar el modo para el nuevo directorio;
el modo es simbólico y usa el modo por defecto como partida.
-p
crea primero todos los directorios padre inexistentes,
con el modo de umask modificado con u+wx
--verbose
informa sobre la creación de directorios
mkdir dir1 dir2
mkdir -p ltr/jd/jan
crea la estructura de directorios ltr/jd/jan.
more
more [OPCIONES][-N][+/CADENA[-N] [ARCHIVO ...]
pagina el texto dividiéndolo en pantallas, presentando una por vez.
-N fija tamaño de pantalla en N líneas
-d muestra mensajes de ayuda
-s comprime en una varias líneas en blanco seguidas
-u suprime subrayados
+/cadena
busca la cadena antes de mostrar
+N comienza a mostrar a partir de la línea N
Durante el despliegue, reconoce los comandos siguientes, algunos de los cuales pueden ir
precedidos de un número multiplicador:
h
ESPACIO
ENTER
f
b
^L
=
/PATRON
?/PATRON
n
.
´
q, Q
muestra resumen de estos comandos
avanza una pantalla
muestra siguiente línea
avanza una pantalla; ^F
retrocede una pantalla; también ^B
(Ctrl-L) redibuja la pantalla
muestra número de línea actual
busca hacia adelante la expresión regular PATRON
busca hacia atrás la expresión regular PATRON
repetir última búsqueda
repetir el comando anterior
ir a lugar de comienzo de última búsqueda
sale
mv
mv [OPCIONES] ARCH_ORIGNEN ARCH_DESTINO
mv [OPCIONES] ARCHIVO ... DIRECTORIO
cambia de nombre ARCH_ORIGEN, o mueve hacia ARCH_DESTINO si el archivo destino invoca otro
directorio; mueve ARCHIVO y los siguientes archivos hacia DIRECTORIO. Entre sistemas de
archivos sólo puede mover archivos normales.
-f
-i
-v
-u
forzoso, sobreescribe archivos destino si existen
avisa antes de sobreescribir archivos existentes
verboso, escribe el nombre de cada archivo que mueve
no mover si existe archivo destino más nuevo o de igual fecha
mv nota notanueva
mv -vi LEAME LEAME2
mv -v arch1 notanueva LEAME /dir2/subdir2
passwd
passwd [OPCIONES] [NOMBRE]
cambia la contraseña del usuario. El superusuario puede cambiar las contraseñas de otros
usuarios. En general, las contraseñas deben tener entre 6 y 8 caracteres, contener
mayúsculas, minúsculas, dígitos 0 a 9 o signos de puntuación; no se admiten contraseñas
simples ni parecidas al nombre del usuario. Si el superusuario asigna contraseñas poco
seguras no hay advertencia.
-x M
-n M
-n M
máximo número de días de validez; luego pide cambiar
mínimo número de días antes de poder cambiar
número de días de advertencia antes de expirar
passwd
permite cambiar la contraseña del usuario invocante
passwd jperez
(su) cambia la contraseña del usuario jperez.
pr
pr [OPCIONES] ARCHIVO ...
escribe en salida estándar un texto con formato, paginado y opcionalmente en varias
columnas.
+P1[:P2] de página P1 a página P2
-C en C columnas
-a escribe las columnas a través y no hacia abajo
-d a doble espacio
-f separar páginas con salto de página
-h reemplazar encabezado con el indicado
-l largo de página en líneas; por defecto 66
-m escribir archivos en paralelo uno en cada columna
-o margen izquierdo; se suma al ancho indicado por -w
-w ancho de página en columnas; por defecto 72
pr
pr
ls
ls
-o8 -l23 -h "Lista de usuarios" /etc/passwd
-o2 -l22 -h "Lista de servicios" /etc/services | more
/etc | pr -2 -b -l23 | more
/etc | pr -3 -b -l23 -a | more
printenv
printenv [VARIABLE] ...
muestra el valor de todas las variables de ambiente; si se indica un nombre de variable,
puestra el valor de esa variable.
printenv TERM
ps
ps [OPCIONES] [PID] ...
informa sobre procesos en ejecución. Para las opciones, no debe usarse -, aunque es
aceptado.
l
u
j
s
a
x
w
formato largo
formto usuario, muestra nombre, PID, hora inicio, estado
formato trabajos, muestra PGID y SID
formato señales
mostrar también procesos de otros usuarios.
mostrar también procesos sin terminal de control
no truncar líneas para caber en un ancho de página;
agregar una w para cada línea más
sin encabezado
sólo procesos en ejecución
h
r
ps auxwww | more
muestra todos los procesos en ejecución, en formato usuario, aún los sin terminal, admitiendo
hasta 4 líneas por comando.
pwd
pwd
imprime toda la ruta del directorio corriente; todos los componentes mostrados serán los
directorios reales, no enlaces simbólicos. El shell tiene una versión interna de pwd, por lo que
para ejecutar ésta, que es externa, es preciso escribir
ls -l /var/spool/mail
muestra /var/spool/mail como enlace simbólico a /var/mail (Debian).
cd /var/spool/mail
pwd
versión interna del shell, muestra /var/spool/mail, el enlace simbólico.
/bin/pwd
versión externa, muestra /var/mail, el directorio real.
rm
rm [OPCIONES] NOMBRE ...
elimina los archivos indicados; por defecto no elimina directorios.
-f
-i
-r, -R
-v
ignora archivos inexistentes y nunca pide confirmación
interactivo, pregunta antes de eliminar cada archivo.
recursivo, borra directorios y su contenido
verboso, muestra nombre de cada archivo eliminado
rm arch1 arch2 dir1/arch3
rm -riv dir1/subdir1
rm -r *
elimina TODOS los archivos y subdirectorios; no avisa. ¡Cuidado!
rmdir
rmdir [OPCIONES] DIRECTORIO ...
elimina directorios vacíos.
-p
elimina directorios padre si quedan vacíos
rmdir dir2
rmdir -p dir1/subdir11/subdir111
tail
tail [OPCIONES] ARCHIVO ...
muestra la última parte de un archivo, por defecto 10 líneas. Si son varios archivos muestra un
encabezado con el nombre de cada archivo.
-f
-v
-q
-N
-n N
continúa tratando de leer; para archivos en crecimiento
verboso, imprime encabezamiento con nombre del archivo
silencioso, no imprime encabezado con nombre del archivo
imprime últimas N líneas
idem
talk
talk USUARIO [TTY]
conversar con otro usuario. Si está en la misma máquina, alcanza con el nombre de login del
usuario; si está en otra máquina, es preciso usar la forma usuario@maquina. Si el usuario tiene
varias sesiones a la vez, puede indicarse la terminal, usualmente en la forma ttyXX.
touch
touch [OPCIONES] ARCHIVO ...
cambia fecha, hora de acceso y/o modificación de los archivos indicados; les pone la fecha y
hora actuales. Si los archivos no existen los crea vacíos.
-a
cambia sólo fecha de acceso
-c
no crea el archivo si no existe
-m
cambiar sólo fecha de modificación
-r arch_ref
fija la fecha según fecha del archivo arch_ref
-t MMDDhhmm[[CC]YY][.ss]
fija la fecha indicando mes MM, día DD, hora hh y minuto mm;
puede agregarse también centuria CC y año YY y segundos ss.
touch 01011200 dia1enero.h1
touch ahora.arc
touch -r antes.arch arch1 arch2
umask
umask [-S] [MODO]
fija la máscara para permisos de creación según modo. Si modo se indica con número, es en
octal; si no, es en modo simbólico. En general, los permisos de creación serán, para
directorios, 0777 menos los bits de máscara; para archivos 0666 menos los bits de máscara. La
máscara vigente es la fijada por defecto o la que se fije con este comando. Sin parámetros,
umask muestra la máscara vigente. La máscara indica los permisos que se quitan al permiso
fijado.
-S
muestra la máscara, sin fijarla (por defecto, sin parámetros)
umask
muestra la máscara vigente.
umask 022
fija los permisos de creación de archivos en 0666 - 022, es decir, 0644; los de directorios en
2777 - 022, es decir, 2755 (Debian).
uname
uname [OPCIONES]
muestra información de la máquina y del sistema operativo:
-a
-m
-n
-p
-r
-s
-v
toda la información
máquina, tipo de hardware
nombre de máquina en la red
tipo de procesador
edición (release) del sistema operativo
nombre del sistema operativo
versión del sistema operativo
wc
wc [OPCIONES] ARCHIVO ...
cuenta líneas, palabras y caracteres de los archivos indicados o de la entrada estándar. Si son
varios los archivos, imprime una línea por cada uno y un total.
-c
-w
-l
sólo caracteres
sólo palabras
sólo líneas
man pwd | wc -l
wc /etc/passwd /etc/group
whatis
whatis [OPCIONES] NOMBRE ...
muestra una descripción corta de los comandos similares a nombre.
-r interpreta cada nombre como una expresión regular
-w interpreta cada nombre como conteniendo caracteres comodines
whatis man
whatis -w man*
which
which PROGRAMA ...
indica la ruta completa de PROGRAMA, si éste está accesible a través de la variable PATH..
who
who [OPCIONES] [am i]
Quién está en el sistema. Muestra nombre de login, línea de terminal, hora de ingreso, nombre
de máquina remota o display X.
am i
-H
-u
-w
-m
máquina y nombre de login del usuario invocante
muestra encabezado de columnas
tiempo inactivo; "old" es >24 horas; "." activo reciente
si el usuario recibe (+) o no (-) mensajes
igual que 'who am i'
whoami
whoami
Muestra identificador del usuario efectivo actual. Si se ha usado su para adoptar otro usuario,
muestra el nombre asociado con el usuario adoptado.
whoami
Referencias:
Linux Debian/GNU. Páginas man, info.
Víctor A. González Barbone - Ingeniero de Sistemas en Computación - http://iie.fing.edu.uy
/~vagonbar
E-mail: vagonbar en fing edu uy - E-mail personal: [email protected]
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.
Curso Básico de UNIX
Comandos de Filtro
Referencias
dd find grep, fgrep, egrep sort tr uniq
dd
dd OPCION ...
copia un archivo, de entrada estándar a salida estándar por defecto, opcionalmente cambiando
tamaño de bloques de entrada salida y realizando diversas conversiones.
if=ARCHIVO leer la entrada del archivo indicado.
of=ARCHIVO dirigir la salida al archivo indicado.
ibs=BYTES
leer la entrada en bloques de BYTES bytes.
obs=BYTES
grabar la salida en bloques de BYTES bytes.
bs=BYTES
leer y grabar entrada y salida en bloques.
conv=CONVERSION[,CONVERSION]... convertir según argumentos.
Las opciones numéricas admiten los multiplicadores b para 512, k para 1024.
Los argumentos de conversión se separan por comas sin espacios; incluyen:
ascii convierte EBCDIC a ASCII.
ebcdic
convierte ASCII a EBCDIC.
ibm
convierte ASCII a EBCDIC alternativo.
block embloca cada línea de entrada en 'cbs' bytes, reemplaza
nueva línea por espacio, rellena con espacios.
unblock reemplaza espacios finales de cada bloque con nueva línea.
lcase convierte mayúsculas a minúsculas
ucase convierte minúsculas a mayúsculas.
notrunc no truncar el archivo de salida.
find
find [DIRECTORIO...] [EXPRESION]
Recorre una jerarquía de directorios buscando archivos seleccionados según cierta expresión y
muestra información sobre los encontrados.
Argumentos numéricos:
+N
-N
N
mayor que N
menor que N
exactamente N.
Criterios de búsqueda:
-name PATRON
-iname PATRON
-path PATRON
-ipath PATRON
-regexp EXP
-iregexp EXP
-lname PATRON
-ilname PATRON
-atime N
-ctime N
-mtime N
-amin N
-cmin N
-mmin N
-daystart
-size N[bckw]
-empty
-user UNAME
-group GNAME
-uid N
-gid N
-nouser
-nogroup
el nombre aparea con PATRON;
idem,insensible a mayúculas;
nombre con vía completa;
idem, insensible a mayústulas;
nombre aparea con expresión regular EXP
idem, insensible a mayúsculas;
archivo es un enlace simbólico;
idem, insensible a mayúsculas;
último acceso N*24 horas atrás
último cambio de estado N*24 horas atrás
última modificación N*24 horas atrás
último acceso N minutos atrás
último cambio de estado N minutos horas atrás
última modificación N minutos atrás
mide tiempos desde las 0 horas de hoy
tamaño de N bloques, caracteres, KB o palabras (2 bytes)
archivo vacío, regular o directorio
archivo del usuario UNAME
archivo del grupo GNAME
archivo del usuario de número N
archivo del grupo de número N
archivo sin dueño asignado
archivo sin grupo asignado
Acciones:
-print
imprime la ruta completa de los archivos encontrados.
-ls
lista los archivos encontrados en formato ls -dils
-exec COMANDO {} \; ejecuta COMANDO sobre los archivos encontrados
find /usr/local/doc -name '*.texi'
busca en el directorio indicado los archivos de nombre indicado.
find /usr/src -name '*.c' -size +100k -print
muestra nombres de archivos terminados en .c con tamaño mayor de 100 K.
find . -lname '*sysdep.c'
busca enlaces simbólicos del nombre indicado.
find /u/bill -amin +2 -amin -6
archivos que fueron leídos entre 2 y 6 minutos atrás.
La medición de tiempos se hace desde 24 horas atrás (1 día atrás); para medir tiempos desde
las 0 horas del día de hoy, usar la opción -daystart.
find ~ -daystart -type f -mtime 1
archivos que fueron modificados ayer.
find / -empty -exec rm -rf '{}' ';'
busca archivos o directorios vacíos y los elimina.
find . -name '*.h' -exec diff -u '{}' /tmp/master ';'
compara archivos de "header" (*.h) del directorio corriente contra el archivo /tmp/master.
grep, egrep, fgrep
grep [ -e PATRON | -f ARCHIVO | PATRON ] OPCIONES ARCHIVO ...
recorre los archivos indicados extrayendo las líneas que aparean con un patrón de cadena de
caracteres.
-G
el patrón es una expresión regular básica; opción por defecto
-E
-F
el patrón es una expresión regular extendida
el patrón es una cadena fija
Existen dos variantes: egrep, similar a grep -E, y fgrep, igual a grep -F.
-c sólo muestra la cantidad de líneas
-e PATRON usa el patrón indicado; útil cuando el patrón empieza con -f ARCHIVO obtiene los patrones del archivo, uno por línea
-h suprime indicación de archivo cuando se busca en varios archivos
-i ignora mayúsculas y minúsculas en el patrón y en los archivos
-n indicar número de línea
-v muestra las líneas que no aparean con el patrón
-w aparea el patrón como una palabra
-x el patrón aparea con toda la línea
sort
sort [OPCIONES] [ARCHIVO...]
ordena, mezcla o compara todas las líneas de los archivos indicados o de la entrada estándar.
Tiene 3 modos de operación: ordenar, verificar orden, mezclar archivos.
-c
-m
verifica si los archivos ya están ordenados
mezcla archivos ordenados en uno solo, ordenado
-b ignora blancos adelante en la ordenación
-d ordena considerando sólo letras, números y blancos
-f ordena como si todas fueran mayúsculas
-i ignora caracteres no imprimibles (fuera de 040-0176 octal)
-n ordena como valores numéricos y no como ASCII
-r invertir el sentido de la ordenación
-o arch archivo de salida; puede ser el de entrada
-t usar el caracter indicado como separador de campos
-k POS1[,POS2] campos de ordenación, POS1 hasta POS2 inclusive;
o hasta el final si no hay POS2
Las posiciones POS1 y POS2 son de la forma F.C donde F es el número del campo y C es el
primer caracter desde el comienzo del campo (para POS1) o desde el final del campo (para
POS2); si se omite C se ordena tomando en cuenta el primer caracter del campo.
cat
cat
cat
cat
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
|
|
|
|
sort
sort
sort
sort
-t:
-t: +4 -f | cut -d: -f5
-t: +5 | cut -d: -f6
-t: -n -k3,5 | cut -d: -f4,5
tr
tr [OPCION]... CONJ1 [CONJ2]
copia entrada en salida traduciendo, comprimiendo o borrando caracteres. CONJ1 y CONJ2
definen un conjunto ordenado de caracteres a transformar. La opción -c reemplaza CONJ1 por
su complemento, los caracteres no especificados en el conjunto.
-d
elimina los caracteres de CONJ1.
-s comprime caracteres repetidos en CONJ1 en una sola ocurrencia.
-ds primero borra según CONJ1 y después comprime según CONJ2.
El formato de CONJ1 y CONJ2 se parece al de las expresiones regulares, pero son sólo listas
de caracteres. La mayoría de los caracteres se representan a sí mismos, pero existen las
siguientes abreviaturas:
\a Control-G,
\b Control-H,
\f Control-L,
\' Control-J,
\r Control-M,
\t Control-I,
\v Control-K,
\OOO caracter representado por dígitos octales
\\ barra inversa.
M-N
0-9
intervalo de caracteres desde el M al N (M anterior al N)
equivale a 0123456789
La notación [:CLASE:] expande a los caracteres predefinidos en las clases:
alnum
alpha
blank
cntrl
digit
graph
lower
print
punct
space
upper
xdigit
letras y números.
letras.
espacio.
caracteres de control.
números.
caracteres imprimibles, excluído el espacio.
minúsculas
caracteres imprimibles, incluído el espacio.
signos de puntuación.
espacio
mayúsculas.
dígitos hexadecimales.
La traducción se realiza cambiando el primer caracter de CONJ1 por el primer caracter de
CONJ2, el 2o. de CON1 por el 2o. de CONJ2, etc. Los caracteres no indicados en CONJ1
pasan incambiados.
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
tr a-z A-Z
tr '[:lower:]' '[:upper:]'
convierten minúsculas en mayúsculas.
tr -d '\000'
elimina caracteres nulos (octal 000).
tr -cs '[a-zA-Z0-9]' '[\n*]'
separa las palabras una por línea.
tr -s '\n'
comprime caracteres nueva línea en uno solo (elimina líneas en blanco).
uniq
uniq [OPCION]... [ENTRADA [SALIDA]]
muestra una única línea para una entrada ordenada, eliminando líneas repetidas sucesivas.
Opcionalmente, puede mostrar solo líneas que aparecen una vez, o sólo líneas que aparecen
varias veces. La entrada debe estar ya ordenada; si no lo está, puede usars sort -u para
lograr un efecto similar.
-f N
-s N
-c
-i
-d
-u
saltear
saltear
indicar
ignorar
mostrar
mostrar
N campos antes de verificar unicidad.
N caracteres antes de verificar unicidad.
junto a cada línea el número de veces que aparece.
mayúsculas y minúsculas al comparar.
sólo líneas repetidas.
sólo líneas únicas.
Los campos son cadenas de caracteres separadas por uno o más blancos (espacios o
tabuladores). Si se indican saltear campos y caracteres, los campos se saltean primero.
Referencias:
Linux Debian/GNU. Páginas man, info.
Víctor A. González Barbone vagonbar en fing edu uy
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.
0123414567834142
24280
24
48124
3632
1261255682
012345679
44376
!"#$%&'(%)*"+%',%-,./
(01.20$,10),01.+//-0
34
5.26$.!,0)*16+16"7-"166-0
!"#$%&'(%)*"+%',%-,./
89-2.."$:.'.)0*,,;;;+<,6="-1,=
>?4@A
!"#$%&'(%)*"+%',%-,./
B";.C,D==,$B";.)'";.+'<.,,,-6
C.0"EF-F$GHIGJIKGGLFGMG)
N"06."7":,*,.O.P(2$QQQ-;.,1-,./)7R,"11"866."76",IS,2,==.1"I
T<.8"'K-G:1,==,01.6"U
VAAWXYY@AZ@[[\]^Y_@\@\Ỳabb\Yc]dY
01234525471851327
9
9
!"
#$
%&'()*+,&-
.)*/
%0
1
2
,
,
'0
/
3
4-
.&,,)56
7'
&)8
+%,
9%
%&:
9)8
+
9,
;4$4<=
+
9
<=
+
94$4<=
/,,
;4$4<<
/,
<<
/,4$4<<
7-9
'
%<
01345367895
4336
475374
3974883433661341
13657764767146714754671487786347754353537
367!"16
373366#137315773451747734517334517$6717!77
4773
16716315773567167%
315
4717%4$3171
747776745
5477345177
176
471533
&46714'
3433131345353741(
533
7%4
)
))
*
**
+
,49443713-3664434447173537'
3431
8736474
37!7431433134
04535375313
18348571673.3677737311737635676#1&/"0100
557374
73834435445374343012
0124562789
27512274567775827190157621
14595
92695
72
5791
50147
7972
157
1275812657212662795775556215
1
697562945718252472124752924751567758245
5775
8255852672827152
92
1
92695454777
57456878
846
926786
27915251858515
!2424779557557512491
55766282447745
5
45
565456
9266
1555191"5575
2651567758245
5795
12911522
2564776#515627
26745745647756$7
127477745
5727$57
8567758242622251
245952674777
7595452
545
8795751
570621491258126212662
8558691
282655456477
545658126955
"67
22
5575
6524751565
624
257
92515658126
5
29567
22
557225
2151212662%9195
25
525172519158126212662
891
5575878
1
591
24245
786
42462282
1451901
251242&7264257142721424'&(5757172"642445675662"926851575972151
4276279642457"27242751
176245)*0&1922
162462751242745
28262772642762182
145557!921491282
577555
92515
471"65757+,-./0+745694542719122625124222627264222
8728517257455454217
75457
"512
1192
11
1242571422"5242+,234
75565457
6579125124245694557455
5727
242265
624!9214
755
6525191282152
455755726851214625124257142!875
95455269172827586521918718"5745
57
829851745626$152
45
821475121625124257142251242571425727124226839.:2.+;-3<,=-:>
?2642571422"5242+,2=@,
75565457
6576272642455
4566945
22
55745912827455
5727
24226581265121227264251524222A74567
821475757
25162
726425714222755652425162212662272642571425727124226839.:2.+;-3<,=-:B
571422"5242+,2.--
75565457
65728"A191272642456945
22
5575759725
6972851522
87255792182
11562
1242
1675796247182657456
82147
455
572726425727
24226581264572642926956272642571426686
295
21749
8745
155151622126624584959545175
191442768445
162577522872456215272642455571425727
24226839.:2.+;-3<,=-:C
7457
5745
5456251242&72642571427597215156885145
52
1
7555
9
145912822265557
"
5745647
6658527
2
821472
572477757121467
8214745512427264252
28515
012145654557896
550
954514192949
55146540
15465
05194
9614
16550190
94994515450549
10591450
92557
81469145
9614994
69654545555450914555
9165946
0121
6590
17094
69654540
5949
6914515490
99461465
5450
9255741549650961995145496144
52914
456545996914
549614590
19545569900565249658
559410
9951!9
"56
500
7
414
5092
9946
46146509614599#901945658
746
4556
51256
1654211$7094
6965499#94961
1290
15
55
65465546
16546590
15192
%455655
96914954949
090
1544961
9456
500
1547
&5#521654165956
500
6546
5454
5555550129614150
59
596965691465465
051'
49(1254'59659051150961)59695469*!
01249256145556
9461741459051256
1654211+7
,55015
616590
1516599%
0156515591910121165969
549
491659699994014947&4961956
500
45565969949
69511
90
17
4
555#52149956
500
995
95549616501296141990
1
92961-99(1254.!
/65246556
4619905990
151455655556
461999096
6914990
195
455741459051256
1654211++7
54
555#5215015
616590
1-
014.45165955496145909659
90
1-99(1254.!
4
2195529095096145059
05141415961546556
500
6549
6941
5596141545654%465514012961445995#5096171
2
095
2
05105961010129616556
500
565459
5195473151145565
216
09
05145294
5545050
9!
4
5501
5591
2195545012961456549414195
55901415540
51
9701296154552
2155#509455496165541919%6
6965
691465
0511
9
55955
051515529695490173995
9545
1529450
92554565549
051
5256
151291!
012345689
99944489668119444898141614
6989819823992
4619989696491499846899248298468934919444
894692318161499918946496914
4894999444!64129698914161489
99819823"992
1194448#8998921688116988981
$812345698!4848949999162162496188994498981418
14889
118$992
844969964189141914%998&481'8
141914%481(9611'
(4
99494#69811211%99)49'*++,11684899698
94)411961116
2169614184691898
5891121112482924616661964691899
28)466992
489991
6819844969216
-819
2
"*,969189
6148198189894996961
11924619299948189468911
113149
11*
99891491
4641198
589823++,
4629411296998
588199819216
111
1
.1
16
991
2
/
$61131012894816189494698282698934(98161
11931889
98
94)4118968(39489&3
&188461548919494#6
99898464)414129694846184898189
0123156789
1111
321
33
113
3
73
1
13
3
1
13
3
!7
113
7
13
3
73
9
2
3
"3
9
2
31
113
1 ""13#
#111
$%113
3
73
$%1
13
3
$%1
13
3
!7
3&'
(
)
1
1
1111
1
2
2
1
1*
331
3+1
1
,8012-
1
31
1&
1
,11
1
.2
*
1
113
33
8
/31
0
*
118
1
311
23458
1136
1
111
131
131
11
11
18
3.
7
30
313182
11312-1
0
-
1%1
9
36
11112
1
313(
112-
113+111131
.111(
7
3
1
171312
6131
11
1
13+1131
-.11
3
31
18
$6
.11.11
3
31
1012-
3
3+1
36234!8
:
7
30
3.
1
1
3
13182
201%1
9
36
10
1%1
13*
1,
(
7
3(
01345678189
561
564
8
3111618
197598175416
818189779737
178
1511975797158719!"#$1518%777971877158719&#''(9
16785
1157
176)81577
1951997857181794547
*
515411851457
56
8487511146
56
78
5478
51
56
78
551
481897
176)81549781156
8
676
1981
1+517,94-
11+
.9678
15
411994-
11+
7571486
78
795/4181
*7497116
7971877158776797579715877308767
5
76%
57
56
7/418
51
41587716178
185
46
189
576%
5
(5
15196478
5141118%77
58
5)9
767487431758
7308/4774876
7
184876%
01976%
415115156318
8
1+51
7%75161701976%
7
1+51515
3115631196
818
195
78
514151496197
6)81727
*75
6
815196
78
115
89755/418153
47 527197187715879776%
151667
4 6/8
7975512791518146)841
78514977757777
186719
615
(8195/41811-19
1976%
9578
31551
1871
79730671811540551
6787977767111
74197579751/4777308181976%
7368
315*
57
5
5
818%7
518
8615796
78
891
7415184178975981759757971518
8615
18%777
76%
9977
7368
3153
*7497+7/55149777775748/78811
17/418
57
56
78
5*7
4977/59117/418
51519718771587197
5
1576
51839786
,19
1576
1839786
486
876
4867618
796478
5149771816
99755915
3915
754873778%17.
67761151579
198171-1647196
78
487
5
%16156
8647941811
17/418
586791551/4
5
9
57/418
591
515197
18771587*75981751839786
1971877158751/8
78(5
117486
78
6157 57/418
519
541186
86
8158
7915
7781-7
(8191-19
5/418151345678
59
576%
59(5:;(1897375117
59
671
4578
1998<9
671=578
+7/59
58
31519
576%
55
818%7
57974976741
57196
818
19
55
518787997>
191+
115
576%
55118%7797
49741
7179
57
575748 +
1?6776115
9817*757975118%7
8791817976%
@
1@78/1@17153
01234578987
59554889895998
4
1234578987
59554889895998
4
599
123454
854889858988854788
4
84759
0459588875849859554589754957
95
954
584!1"5575
87#897
555
89754988971
$
5995
55575
889
95598897589897588
412%
59&88759
02%485845
59545
8589'8
58885788897
5
(1)5
*1+5
%1,5
-1)!895
2%59595778
4
59984897
(1,.
*1+.
%1).
-1..
23459545
89589&888#/
785
55759
045989&885885
5
58989&85759457
459812587884
(19
)+12
*19
++
12+
%19
))
12
-19
))
55
)
12
384
844444487
8987589895599#580489888854
78455485
4#59&86577
9
0123567859
767
66767
7
5567366369667996566751
1567659
7
66767
7
556736636966799
777
9
77656
6751
169369
6676
6737
396
36
55!
56636636
9667996675639
1
013"#67$569"9
367$
%3
"39&'(
6936#67$
6676976)6675$76
5696
69123569
*63
696%5
763663696671+63
9
369
6$6
'(3
6
56661
01,169)
7*6
6676
6769
36636
56636
9766
971
1-1567659
7
*6366369667
777
999
7766751
1.169)
7*6
6676
6769
56697/73969,-
577
596167
96057
6675/6*
336.
367
96577
5961
119
109
*636636
566675636636
96679963
9
1
012314567817
376474
!"#!"$!%&'()*+,)()*
,*-"%./)01.23456#,7"%+899$/ (:9;<=>=;;89
7?(7)*""!%,%2
@A4""%.&)))0)66#B%>+899$/ (:><>C8;=D<
5/))A)E"7?:/76%E76
5/))F50/ (:9999;CG9H0#&7'7);+8999$
4)I?4JK)
*L:MMKKKF7?JKF5M675)M)N;=>CM79ODCO8C<CCCCM
P':KKKF"LF'
&L7)B:*L:MMKKK39<F!5F5M6J"LK1)M67M"36K3"7?3"L83F*5"
B7")E:*L:MMKKKF'7F'M"L357")M
Descargar