Curso de programación sheel script intermedio

download Curso de programación sheel script intermedio

If you can't read please download the document

description

Curso de nivel intermedio de programación shell script.

Transcript of Curso de programación sheel script intermedio

LINUX INTERMEDIO

Expresiones RegularesLinux Shell ScriptEjercicios

Juan Luis Snchez Flores

Comando grep

Es un programa de utilidad que permite seleccionar las lneas de un texto que cumplen con un patrn determinado. La orden para invocarla es:

grep patrn ficheros...

El patrn se escribe como una expresin regular. Los nombres de los ficheros de entrada pueden incluir comodines. El programa lee los ficheros y copia a la salida cada lnea que se ajuste al patrn.

Comando grep

Ejemplos:

grep -rin eth0 messages | grep "00:37:"

ps aux | grep tty1

netstat -ano | grep 22 | grep -i LISTEN | grep -w tcp

grep user /var/log/auth.log | grep -v root | grep failure

Comando awk

AWK es un lenguaje para procesar ficheros de texto, lnea a lnea.

La potencia del lenguaje reside en el uso extensivo de expresiones regulares para seleccionar los fragmentos de informacin apropiados, y la posibilidad de combinar los estilos de programacin declarativo e imperativo.

Se invoca de la siguiente manera:

awk patrn { accin } fichero

Comando awk

Ejemplos:

awk '{print $7}' FS=":" /etc/passwd

awk 'BEGIN { print "Usuario UID Shell\n------- --- -----" } $3 >= 500 { print $1, $3, $7 | "sort -r"}' FS=":" /etc/passwd

uptime | awk '{print NF}'; uptime | awk '{print $NF}'; uptime | awk '{print $(NF - 2), $(NF - 1), $NF}'

uptime | awk '{print "1min:"$(NF - 2), "5min:"$(NF - 1),"15min:"$NF}'

Comando sed

Sed es usado tpicamente para extraer parte de un archivo usando un patron o sustituyendo mltiples ocurrencias de una cadena de texto dentro de un archivo para luego imprimir el resultado.

Se invoca de la siguiente manera:

sed opcin(es) patrn fichero

Comando sed

Ejemplos:

sed -e '1d' notas_examen.txt

sed -e '/^$/d' area_circulo.c

uptime | awk '{print NF}'; uptime | awk '{print $NF}'; uptime | awk '{print $(NF - 2), $(NF - 1), $NF}'

uptime | awk '{print "1min:"$(NF - 2), "5min:"$(NF - 1),"15min:"$NF}'

Expresiones Regulares

Las expresiones regulares son patrones que permiten reconocer secuencias de smbolos con una estructura sintctica determinada.La fcil: Permite realizar un anlisis de una cadena y buscar dentro de ella un patrn especfico.

ExpresinSignificado

xcarcter x, si es carcter normal

.cualquier carcter

[aeiou]un carcter del conjunto

[a-z]un carcter del rango

[^aeiou0-9]complementa el conjunto

\xcarcter x, si x es un carcter especial

^principio del texto, si va al comienzo

$fin del texto, si va al final

\fin de palabra (*)

xyexpresin x seguida de y

x+una o ms repeticiones de x

x*cero o ms repeticiones de x

x?cero o una aparicin de x

una|otrauna u otra expresin

(x)expresin x

Un dgito numrico, decimal: [0-9] Una vocal: [AEIOUaeiou] Una letra, mayscula o minscula: [A-Za-z] Una palabra que empieza por letra y puede contener nmeros: [A-Za-z][A-Za- z0-9]* Un nmero, con punto decimal, al comienzo del texto: ^[+\-0-9][0-9]*\. [0-9]* Abreviatura del nombre de un mes: (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago| Sep|Oct|Nov|Dic)

Ejemplos de Expresiones Regulares

Un dgito numrico, decimal: [0-9] Una vocal: [AEIOUaeiou] Una letra, mayscula o minscula: [A-Za-z] Una palabra que empieza por letra y puede contener nmeros: [A-Za-z][A-Za- z0-9]* Un nmero, con punto decimal, al comienzo del texto: ^[+\-0-9][0-9]*\. [0-9]* Abreviatura del nombre de un mes: (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago| Sep|Oct|Nov|Dic)

Ejemplos de uso de expresiones regulaes

SHELL SCRIPTING

Sed es usado tpicamente para extraer parte de un archivo usando un patron o sustituyendo mltiples ocurrencias de una cadena de texto dentro de un archivo para luego imprimir el resultado.

Se invoca de la siguiente manera:

sed opcin(es) patrn fichero

Las distribuciones ms comunes son:

http://www.slackware.com/ http://www.redhat.com/ http://www.debian.org/

http://fedoraproject.org/es/ http://www.suse.com/ http://www.freebsd.org/

http://www.netbsd.org/ http://www.ubuntu.com/ http://www.centos.org/

Componentes del Sistema Operativo LINUX

LINUX esta compuesto bsicamente de cuatro capas, la capa ms interna esta conformada por el hardware, que es el conjunto de piezas fsicas delequipo de cmputo.

La segunda capa es el Kernel o ncleo del sistema, su funcin principal es interpretar las instrucciones proporcionadas por el usuario y convertirlas enlenguaje de mquina e indicarle al hardware lo que tiene que realizar con dicha informacin.

Cmo interpretar los nmeros de las versiones de Kernel:

Las versiones del kernel se numeran con 3 nmeros, de la siguiente forma: XX.YY.ZZ

XX: Indica la serie principal del kernel. Hasta el momento slo existen la 1 y 2. Este nmero cambia cuando la manera de funcionamiento del kernel ha sufrido un cambio muy importante.

Y: Indica si la versin es de desarrollo o de produccin. Un nmero impar, significa que es de desarrollo, uno par, que es de produccin.

ZZ: Indica nuevas revisiones dentro de una versin, en las que lo nico que se ha modificado, son fallos de programacin/bugs.

La tercer capa esta conformada por el grupo de los Shells o intrpretes de comandos, los cuales funcionan como la interfaz entre el usuario y el kernel, proporcionan las herramientas para que el usuario se pueda comunicar con el ncleo del sistema de LINUX.

La cuarta y ltima capa es donde se encuentra el usuario junto con los programas y aplicaciones que se le han agregado al sistema como hojas declculo, lenguajes de programacin, manejadores de bases de datos, procesadores de texto, etc.

Sistema de archivos

LINUX esta compuesto de un sistema de archivos jerrquico en el cual no existen unidades de disco, en su lugar cada unidad de almacenamiento ascomo cada dispositivo de hardware, son reconocidos como un archivo o directorio dentro del sistema.

Existe slo una raz en el sistema, la cual representa la parte ms alta de la estructura de directorios y es conocida como root o raz, es representada por el smbolo de / a partir de este punto se desprenden diferentes ramas de directorios como las siguientes:

Directorios principales:

/ Raz del sistema.

/bootArchivos de inicio del sistema.

/sbin Comandos del sistema.

/binComandos del sistema.

/home Directorios de los usuarios.

/etc Archivos de configuracin del sistema.

/dev Dispositivos de hardware.

/var Variables del sistema.

/var/log Bitcoras del sistema.

/var/spool/mail Archivos de correo electrnico.

/mntEquipos montados.

Elementos bsicos de una cuenta de usuario

Una cuenta de correo esta basada en un login y un password, sta se complementa con el nombre del servidor y el dominio del mismo en el cual se encuentra alojada dicha cuenta.

El login es el identificador del usuario dentro del servidor, dicho login es nico, es decir, no puede haber dos cuentas en el servidor con el mismo login ya que ste es el nombre con que se conoce al usuario dentrodel servidor.

[email protected]@dominio.com

El password es la clave de acceso al sistema, slo debe conocerla el dueo de la cuenta ya que permite el acceso al servidor, a todos susservicios disponibles y a la informacin del usuario.

Cuando el sistema nos pide la contrasea y nosotros la tecleamos, sta no es impresa en el monitor por seguridad para evitar que sea vista por otra persona.

Cambio de contrasea

passwd

ste comando nos permite realizar el cambio de contrasea de una cuenta, para poder realizar el cambio necesitamos saber la contrasea actual de la cuenta ya que por seguridad el sistema nos pedir que insertemos dicha contrasea para a continuacin teclear la nueva contrasea dos veces para verificar que haya sido escrita correctamente.

Cierre de Sesion

Es necesario indicarle al sistema que queremos terminar la sesin de trabajo en el servidor, para ello existen varios comandos, entre ellos se encuentran los comandos exit y logout o la combinacin de teclas Ctrl+d.

Ambos comandos nos permiten terminar la sesin en el servidor, al momento que lo tecleamos y presionamos enter se cierra la conexin en el servidor.

Comandos Bsicos

Estructura

comando -opciones argumento1 argumento2 ...

La estructura de los comandos es muy rgida y generalmente siguen la misma sintaxis, es decir, siempre se escribe primero el comando, en seguida las opciones si se requieren y al final los argumentos necesarios.

Las opciones modifican el funcionamiento de un comando, generalmente se utilizan para agregar informacin a la salida de un comando o aumentarel potencial del comando a ejecutar, las opciones no son necesarias para la ejecucin del comando, siempre son antecedidas de un guion y se puedeutilizar ms de una pocin.

Los argumentos son requisito para la ejecucin del comando, si no damos el argumento apropiado para la ejecucin del comando, ste no se ejecutary mandar un mensaje de error el sistema.

Caracteres Especiales

UNIX maneja varios caracteres especiales, cada uno de ellos realiza una funcin en especfico, en ocasiones pueden ser combinados para aumentarel potencial del comando en ejecucin o para redireccionamiento, se recomienda que estos caracteres no se utilicen al nombrar archivos o directorios.

Estos caracteres son:

; , < > | >> ^ $ & / ~ \ [ ] ( ) . * ?

Reconocimiento del servidor y del Sistema

hostname nos muestra el nombre del servidor, se pueden utilizar las siguientes opciones:

-i Esta opcin nos muestra la direccin ip que tiene asignada el servidor.

-d Nos muestra el dominio del servidor si fue configurado.

-f Muestra un listado completo incluyendo el nombre del servidor y su dominio.

uname

uname Nos indica el tipo de LINUX que se esta utilizando.

-n Indica el nombre del servidor.

-r Muestra la versin del Kernel.

-a Muestra todos los datos antes mencionados.

pwd (Print Working Directory)

pwd

Este comando imprime en pantalla el directorio actual de trabajo, es decir, donde nos encontramos posicionados dentro del sistema de directorios indicndonos la ruta absoluta.

/nivel1/nivel2/nivel3

Rutas Absolutas y Relativas

Las rutas absolutas siempre inician con el smbolo de / que indica el punto ms alto de la estructura de directorios, a partir de aqu se debe de poner la ruta completa para llegar al punto que se quiera afectar.

cd /home

cd /var/spool/mail

Las rutas relativas nunca inician con el smbolo de raz / en lugar de ello inician la ruta a partir del directorio actual de trabajo.

Supongamos que se encuentra dos niveles bajo su directorio home y quiere regresar al nivel superior:cd ../..

mkdir (Make Directory)

ste comando nos permite crear directorios, es posible crear varios directorios en la misma lnea de comando escribiendo uno a continuacin de otro separados por un espacio.

mkdir tareas

mkdir examen ejercicios msica imgenes

Opciones

-p Crea todos los directorios padres inexistentes, es decir, primero busca la rama de directorios y si no la encuentra la crea.

-v Informa sobre la creacin de directorios.

rmdir (Remove Directory)

ste comando borra directorios, la nica condicin que debe cumplir es que se encuentre vaco el directorio a ser borrado.

rmdir tareas

ls (list)

Muestra un listado del contenido del directorio actual de trabajo, este comando tiene varias opciones, entre las ms importantes se encuentran lassiguientes:

-l Muestra un listado con formato largo indicando todas las propiedades de los archivos y directorios del directorio actual de trabajo.

-a Muestra todo el contenido del directorio, incluyendo los archivos y directorios ocultos.

-r Muestra el listado en orden inverso alfabtico.

-R Muestra un listado en forma recursiva, es decir lista el contenido de directorios y subdirectorios a partir de la ruta donde le indiquemos.

-t Muestra un listado tomando como opcin la fecha de modificacin del archivo o directorio.

Comodines * ?

Existen dos caracteres llamados comodines los cuales pueden sustituir un carcter o conjunto de caracteres durante la ejecucin de comandos, Ej.

ls ??a Muestra aquellos archivos y directorios los cuales tengan el nombre de tres letras y la tercera sea la letra a

ls *u*t* Muestra aquellos archivos y directorios los cuales tengan en el nombre una u y una t en cualquier posicin pero en el orden que se le indica.

cd (Change Directory)

ste comando nos permite movernos entre directorios, es necesario que le indiquemos la ruta del directorio al que nos queremos cambiar.

cd dir1/dir2/dir3

Es posible utilizar rutas absolutas o rutas relativas segn sea nuestra conveniencia.

cp (copy)

El comando cp nos permite hacer copias de archivos uno por uno, mltiples archivos o incluso hacer copias de estructuras de directorios.cp origen destino

cp prueba prueba.res

Aqu se esta haciendo una copia del archivo llamado prueba a otro archivo el cual se llamar prueba.res

cp arch1 arch2 arch3 arch4 /ruta_destino

Aqu se esta haciendo una copia de mltiples archivos del directorio actual a una ruta destino enumerando uno a uno.

cp /dev/*.res .

Aqu se esta haciendo una copia de todos los archivos que terminen en .res dentro del directorio actual de trabajo.

cp -r informe respaldo

Aqu se esta haciendo una copia recursiva del directorio informe dentro del directorio respaldo.

cp i * respaldo/

La opcin i indica al sistema que realice una copia interactiva de tal forma que si se esta copiando un archivo con un nombre de un archivo que ya existe, el sistema pedir confirmacin para sobrescribir el archivo existente.

cp v * respaldo .

La opcin v nos va informando del nombre de los archivos a los cuales se les esta haciendo la copia.

rm (remove)

El comando rm borra archivos, puede ser borrado un solo archivo o varios haciendo uso de los comodines * ?

rm saludo

rm lo*

rm pr??ba

rm r directorio

La opcin r hace un borrado en forma recursiva, esta opcin es de mucho cuidado ya que se borrar el directorio especificado y todo su contenido.

rm f *

La opcin f forza a que los elementos sean borrados sin realizar una confirmacin para ello.

mv (move)

El comando mv tiene dos funciones bsicas, la primera es mover archivos o estructuras de directorios de un lugar a otro, la segunda es renombrar archivos o directorios.

mv saludo carta/

Aqu se esta moviendo el archivo saludo dentro del directorio carta.

mv saludo hola

Aqu se est cambiando el nombre del archivo saludo, ahora se llamar hola.

Trabajo con Archivos

cat nos permite ver el contenido de uno o ms archivos, su funcin original es concatenar archivos.cat archivo1 archivo2 ...

n Utilizando la opcin el comando imprime el contenido del o los archivos numerando las lneas en forma ascendente.cat -n archivo1 archivo2 ...

more

Este comando nos permite ver el contenido de uno o ms archivos imprimindolos en pantalla, para avanzar una pantalla se presiona la barra espaciadora, para avanzar una lnea se presiona la tecla de enter.

more archivo1 archivo2 ...

head

nos muestra las primeras 10 lneas contenidas en un archivohead nom_archivo

-n esta opcin le indica al comando que despliegue las primeras n nmero de lneas en lugar de 10.head 20 nom_archivo

tail

nos muestra las ltimas 10 lneas contenidas en un archivotail nom_archivo

-n Esta opcin le indica al comando que despliegue las ltimas n nmero de lneas en lugar de 10.tail n20 nom_archivo

Redireccionamiento

En LINUX existe una salida estndar que es el monitor, de igual manera hay una entrada estndar que es el teclado, de tal modo que todo lo que queramos hacer en forma convencional se lo debemos indicar al sistema operativo insertando las instrucciones desde el teclado, de la misma forma todo resultado de los comandos ser impreso por default en la pantalla a no ser que se le indique otra cosa al sistema.

Redireccionamiento de Salida

El carcter mayor que (>) nos permite redireccionar la salida de un programa hacia un archivo, ej.ls > milista

Manda la salida del comando ls a un archivo llamado milista, el resultado del comando ls no se imprime en pantalla, sino en el archivo indicado.

Si el archivo milista no existe ser creado automticamente, si el archivo existe ser sobrescrito y su contenido se perder.

Redireccionamiento de Entrada

El carcter menor que (>) nos permite redireccionar la salida de un programa hacia un archivo, si el archivo no existe lo crea, pero si el archivo existe el resultado del comando lo aade al final del archivo existente sin eliminar el contenido del archivo, ej.

ls >> milista

Redireccionamiento condicionado

Existe una salida estndar de verdadero y una de falso, a la salida de verdadero le corresponde el nmero 1 y a la salida de falso le corresponde el nmero 2, de tal forma que si en algn comando no se cumple una condicin en lugar de que el error se imprima en pantalla puede ser redireccionado hacia un archivo, ej.

ls R /etc 1>milistado 2>error

Aqu, la salida de verdad esta direccionada al archivo milistado mientras que la salida de error esta direccionada al archivo error.

Redireccionamiento condicionado

Existe una salida estndar de verdadero y una de falso, a la salida de verdadero le corresponde el nmero 1 y a la salida de falso le corresponde el nmero 2, de tal forma que si en algn comando no se cumple una condicin en lugar de que el error se imprima en pantalla puede ser redireccionado hacia un archivo, ej.

ls R /etc 1>milistado 2>error

Aqu, la salida de verdad esta direccionada al archivo milistado mientras que la salida de error esta direccionada al archivo error.

Filtros

grepEste comando busca patrones en archivos. Por defecto devuelve todas las lneas que contienen un patrn determinado en uno o varios archivos.Utilizando las opciones se puede variar mucho este comportamiento. Si no se le pasa ningn archivo como argumento hace la bsqueda en la entrada estndar.

Sintaxis:grep [opciones] [ficheros]

Algunas opciones:

-c : devuelve slo la cantidad de lneas que contienen al patrn.

-i : ignora las diferencias entre maysculas y minsculas.

-H : imprime adems de las lneas, el nombre del archivo donde se encontr el patrn. Es as por defecto cuando se hace la bsqueda en ms de un archivo.

-l : cuando son mltiples archivos slo muestra los nombres de aquellos donde se encontr al patrn y no las lneas correspondientes.

-v : devuelve las lneas que no contienen el patrn.

-r : busca en un directorio de forma recursiva.

-n : imprime el nmero de cada lnea que contiene al patrn.

Ejemplos:

$ grep -H -r linux /usr/share/doc

# grep -n error /var/log/messages

$ grep -i ftp /etc/passwd

$ grep -c root /etc/group

$ grep -l -r -i img /var/www/icons/*

Atributos de los archivos

Tipos de archivos:

Dentro del sistema operativo vamos a encontrar archivos de diferentes tipos, los cuales se distinguen por el primer bit de sus propiedades.

El atributo del primer bit nos indica si el elemento listado es directorio o archivo, as mismo nos indica de qu tipo de archivo se trata.

Archivos ms comunes

d Nos indica que el elemento es un directorio.

_ Archivo ordinario.

l El elemento listado es una liga suave.

c Archivo de tipo carcter (archivos de acceso de hardware mediante un bit como el mouse).

b Archivo de bloque (acceso por bloques en paralelo como la impresora).

Permisos

Existen tres tipos de permisos que se aplican tanto a los archivos como a los directorios, ellos son:

r lectura

w escritura

x ejecucin

Debemos asignar los permisos a los archivos de acuerdo a la funcin que van a realizar dependiendo para lo que fueron creados.

r El permiso de lectura permite que el archivo pueda ser ledo o copiado.

w Permite escribir en el archivo, hacer modificaciones o borrarlo si as lo desea.

x Los archivos ejecutables son aquellos que pueden realizar un proceso.

Estos permisos se encuentran asignados en tres bloques, los cuales representan al usuario o dueo del elemento listado, al grupo al que pertenece el usuario y a los otros usuarios del sistema, de ello que los atributos se componen de 10 bits, el primer bit indica el tipo de elemento que esta listado (archivo o directorio), los siguientes 9 bits representan los tipos de permisos asignados a cada elemento listado.

chmod (Permisos)

Este comando nos permite modificar los permisos a los archivos y directorios, la asignacin de permisos puede hacerse de dos formas, mediante el mtodo simblico o mediante el mtodo octal.

chmod indica al sistema el cambio de permisos.

u Indica que se modificarn los permisos del usuario dueo del elemento.g Indica que se modificarn los permisos asignados al grupo.o Indica que se modificarn los permisos de los otros usuarios que no pertenecen al grupo.a Indica que afectar los permisos para todos los usuarios.

chmod u+r,g-rx,o+r hola

Para modificar los permisos se pone el indicador de los permisos a afectar ya sea para el usuario, el grupo o los otros, seguido del signo + si se quiere agregar el permiso o de si se quiere quitar el permiso separando con una coma los bloques de permisos, al final se indica el nombre del elemento a afectar.

Mtodo Octal

Con el mtodo octal se asignan directamente los permisos en base a una tabla de validacin que va numerada de 0 a 7 dependiendo de los permisos que se deseen asignar, cada permiso adquiere un valor numrico:

X vale 1

W vale 2

R vale 4

quedando nuestra tabla de la siguiente forma:

Mtodo Octal

Asignacin Permisos0_ _ _ Ninguno1_ _ x Ejecucin2_ w _Escritura3 _ w x Escritura y ejecucin4 r _ _ Lectura5 r _ x Lectura y ejecucin6 r w _ Lectura y escritura7 r w x Lectura, escritura y ejecucin

De tal forma que si deseamos poner todos los permisos para el usuario, permisos de lectura y ejecucin para el grupo y ninguno para los otros el comando quedara de la siguiente forma:chmod 750 hola

Sustituyendo el nmero correspondiente para cada bloque de permisos al usuario, al grupo y a los otros.

Procesos

Un proceso es un programa que se encuentra corriendo dentro del servidor, cada proceso tiene un tiempo de vida que va desde el momento en que presionamos la tecla de enter hasta que termina la ejecucin del proceso.

Todos los procesos tienen un dueo, este dueo es el usuario quien invoco el proceso desde el intrprete de comandos, de tal forma que ningn otro usuario puede afectar las tareas que ese usuario esta realizando, debido a que no son dueos del proceso que se esta realizando.

Cuando nosotros iniciamos una sesin dentro del servidor en realidad estamos ejecutando una copia del intrprete de comandos que tenemos por default, a esta copia del intrprete se le asigna un nmero el cual esta asociado al proceso en ejecucin, por cada sesin que nosotros iniciemos se va a ejecutar una nueva copia del Shell asignndole un nuevo nmero de identificacin para este proceso.

Es importante recalcar que todo proceso tiene una dependencia del shell principal del sistema, en nuestro caso como usuarios todos los procesos que generemos van a depender de la copia del Shell que nosotros estamos ejecutando.

ps

Este comando permite ver los procesos que se estn ejecutando desde nuestra sesin abierta, y que se encuentra en uso en este momento, muestra un listado de los procesos en formato corto.

ps u login muestra un listado de todos los procesos que esta ejecutando un usuario, aunque se encuentre trabajando en varias sesiones el sistema listar todos los procesos que le pertenecen a dicho usuario.

ps f entrega un listado de los procesos que se estn ejecutando en nuestra sesin, muestra los procesos en formato largo, donde podemos ver la dependencia de los procesos por el UID, PID y el PPID

El UID es el identificador del Usuario dueo del proceso

El PID es el nmero del identificador del Proceso en ejecucin.

El PPID es el identificador del Proceso Padre del Proceso en ejecucin.

ps e Muestra un listado en formato sencillo de todos los procesos ejecutndose en el servidor.

ps fea Muestra todos los procesos ejecutndose en el servidor en formato largo.

Los procesos pueden encontrarse en diferente estado dependiendo de la atencin que estn teniendo en un momento en especfico.

ps h nos indica el estado en que se esta ejecutando los procesos.

Estado de los Procesos

Z Zombie, cuando un proceso corre en forma independiente, incluso del shell o del proceso que lo invoc.

R En ejecucin, se encuentra en la CPU.

T Stopped o detenido.

S Sleeping Durmiendo en espera de recibir una solicitud para iniciar su trabajo.

D Dormido sin interrupcin posible, normalmente relacionado con entrada/salida

kill Este comando nos permite entre otras opciones matar procesos, nosotros como usuarios nicamente podemos matar nuestros propios procesos.

kill 9 PID mata el proceso indicado

kill 15 PID mata el proceso pero al mismo tiempo lo reinicia asignndole el mismo PID, generalmente se utiliza esta opcin para procesos que necesitan estar siempre en ejecucin.

Pulse para editar el formato del texto de ttuloClick to edit Master title style

Pulse para editar los formatos del texto del esquemaSegundo nivel del esquemaTercer nivel del esquemaCuarto nivel del esquemaQuinto nivel del esquemaSexto nivel del esquemaSptimo nivel del esquemaOctavo nivel del esquema

Noveno nivel del esquemaClick to edit Master text styles

Second level

Third level

Fourth level

Fifth level

14/09/13