scripts

35
SCRIPTS INTEGRANTES: VANEZA CHENAZ JENIFER JÁCOME DIANA SANGOLUISA DAVID TAPIA

Upload: david-tapia

Post on 23-Jun-2015

464 views

Category:

Education


5 download

DESCRIPTION

presentacio acerca de que son los scripts en linux

TRANSCRIPT

Page 1: Scripts

SCRIPTS

INTEGRANTES:VANEZA CHENAZJENIFER JÁCOMEDIANA SANGOLUISADAVID TAPIA

Page 2: Scripts

INTRODUCCIÓN A SCRIPTS DEL SHELL El Shell UNIX tiene su propio lenguaje de

programación incorporado, que se utiliza para crear programas o scripts del Shell.

Escribir un script de shell es una manera de crear un comando personalizado que puede realizar una única tarea o una serie de tareas y puede utilizarse repetidamente. 

Page 3: Scripts

Los scripts de shell básicos son pequeños archivos que consisten en varios comandos que muestran información básica del sistema o manipulan archivos.

Los scripts más complejos consisten en variables y comandos de programación incorporados que incluyen el comando read para una entrada interactiva, los condicionales if, test, y case, y comandos de bucle for, while, y until.

Page 4: Scripts

CONCEPTOS BASICOS SOBRE SCRIPTS

La Shell permite al usuario interactuar con el Kernel a través de la interpretación de los comandos que el usuario ingresa en la línea de comandos ( ó a través de los "scripts", archivos que ejecutan un conjunto de comandos).

Variables Para utilizar una variable basta con hacer una

asignación como vemos a continuación.

Page 5: Scripts

variable = “valor”

Esta orden establece un valor en una variable.Si deseamos mostrar el contenido de una variable utilizaremos la orden:

echo $variable

Si deseamos introducir un dato a una variable desde el teclado, utilizamos la orden read seguido de la variable.

read variable.

Si además deseamos introducir un texto antes de leer la variable usamos read de la siguiente

forma:

read variable? “texto” 

Page 6: Scripts

DESCRIPCIÓN GENERAL DE LOS SCRIPTS DEL SHELL Sirven para evitar tener que recordar la sintaxis

de los comandos, o para poder ejecutar varios comandos simultáneamente, para lo cual se puede crear un alias o escribir un script de shell.

Un alias se utiliza normalmente para ejecutar uno o más comandos separados por punto y coma (;). Un script de shell es un archivo de texto que contiene una secuencia de comandos para que el shell ejecute de a una línea a la vez.

Page 7: Scripts

Además de los comandos, los scripts de shell incluyen comentarios. Los comentarios son texto que se utiliza para documentar qué hace el script y describir qué se supone que hagan las líneas dentro del script cuando éste se ejecuta. Los comentarios van precedidos por el simbolo # (numeral).

Page 8: Scripts

CREACION DE UN SCRIPT DE SHELL SIMPLE

Podemos introducir los siguientes caracteres en ubuntu para poder realizar un script simple:

1. Abrir un terminal, en ella escribir lo siguiente y presionen [Enter]:

cd $HOME && touch script.sh && chmod +x script.sh

Esto bastará para que se les cree un archivo script.sh en su carpeta personal.

2. En el terminal poner lo siguiente:

cd $HOME && echo '#!/bin/bash' > script.sh && echo '# -*- ENCODING: UTF-8 -*-' >> script.sh  3. Listo, ya tenemos un script. Si lo abrimos nos quedará algo así:

#!/bin/bash# -*- ENCODING: UTF-8 -*-

Page 9: Scripts

Después de esa segunda línea, a partir de ahí se escriben las instrucciones.Por ejemplo, le diremos que nos muestre en una terminal “<° ya se hacer un script”  Nos quedaría el script de la siguiente forma:

#!/bin/bash# -*- ENCODING: UTF-8 -*-echo "<° ya se hacer un scrpit"exit

Para poder ejecutarlo debemos ir hacia la carpeta donde están los scripts, entonces abrimos un terminal y en este teclemos lo siguinet para visualizarlo:

cd $HOME

Ahora lo ejecutamos poniendo un punto y un slash (seguidos), y seguido a esto el nombre del script, o sea:./script.sh

Y asi obtenemos un script de shell simple en ubuntu. 

Page 10: Scripts

EJEMPLO DE UN SCRIPT SIMPLE 1)Primero abriremos un editor de texto, el cual se lo localiza tecleando «gedit» en el terminal o en el ícono de Inicio en Ubuntu. Una vez en el editor colocaremos los siguientes comandos:

Page 11: Scripts

2) Para correr el script, tenemos que abrir un terminal y primero cambiaremos los permisos de ejecución, para lo cual colocamos lo siguiente:

El script consiste en un colocar un mensaje en pantalla, el cual se repita infinitamente.3) A continuación, nos colocaremos en el Escritorio, que para nuestro ejemplo es en donde se encuentra el script.

Page 12: Scripts

4) Una vez en el escritorio, llamamos a nuestro script, de la siguiente manera:

5) Una vez que tenemos nuestro script funcionado, este es el resultado.

Page 13: Scripts

EJECUCIÓN DE UN SCRIPT

Existen dos formas de ejecutar un script de shell. El alumno puede utilizar los comandos ksh o bash seguidos por el nombre del archivo script. El alumno también puede hacer el archivo script de shell ejecutable, luego tipear el nombre del script para ejecutarlo.

Ejecución de Scripts por medio de ksh o bash.

Si el script no es un archivo ejecutable, puede ejecutarse iniciando un nuevo programa de shell seguido del nombre del archivo script como argumento.

Page 14: Scripts

Cómo Hacer Ejecutables los Archivos Script.

La otra forma de ejecutar un script es cambiar sus permisos, de modo tal que al menos tenga permisos de lectura y ejecución (chmod 555 nombre_de_archivo). Si el alumno ha de modificar o hacer debug del script, deberá también tener permiso de escritura (chmod 755 nombre_de_archivo).

Page 15: Scripts

CÓMO HACER DEBUGGING DE UN SCRIPT

Un problema común al escribir scripts de shell es que el shell no interpreta el comando de la manera en la cual lo espera el usuario.

Se puede utilizar los comandos ksh o bash con las opciones -x (echo - eco) y -v (verbose - "elocuente") para ayudar a identificar en qué parte del script se encuentran los problemas.

Page 16: Scripts

La opción -x muestra cada línea tras haber sido identificada por el shell y coloca un signo más (+) tras haber ejecutado cada línea. Las líneas que se encuentran debajo de ellas muestran el resultado de los comandos.

 La opción -v es similar a la opción -x excepto en que muestra los comandos antes de efectuar la sustitución de las variables y los comandos.

Juntas, las opciones -x y -v nos permite observar cada línea del archivo script antes y después de que sean ejecutadas. Esto es de mucha ayuda al señalar en qué parte del script se encuentra el problema. 

Page 17: Scripts

DESCRIPCION DE SCRIPTS AVANZADOS Para cada shell UNIX existe un lenguaje de

programación completo el cual consiste en comandos y construcciones que se pueden utilizar para la creación de scripts más complejos

Este contiene comandos muy similares a los de programación que viene incluidos en el shell tales como son el if, else, read, case, while, y exit, los scripts complejos van a utilizar variables predefinidas y otras ya definidas por el usuario.

Page 18: Scripts
Page 19: Scripts

VARIABLES EN SCRIPTS

Es un tipo de parámetros que corresponden al concepto clásico de variable que se encuentran presente en los lenguajes de programación convencionales, debido a la relativa simplicidad de ese entorno, su funcionalidad es reducida. Las variables no se declaran, creándose cuando se les asigna un valor usando la construcción variable=valor, por ejemplo; BACKUPDIR =/home/user2/myfiles configura la variable denominada BACKUPDIR (backup directory - copia de seguridad del directorio).

Page 20: Scripts

Un aspecto importante relacionado con las variables es la posible exportación a los procesos creados por el propio Shell durante la ejecución de los distintos mandatos. Por defecto la variables no se exportan, por lo tanto los procesos que fueron creados no obtienen una copia. Si se requiere que una variable sea exportada a los proceso hijos del Shell, se lo debe especificar mediante el comando export.

El Shell durante su fase de arranque crea una variable por cada una de las definiciones presentes en el entorno del proceso que ejecuta el shell. Algunos ejemplos de variables del entorno predefinidas son:

El shell de login (SHELL) El nombre de login (LOGNAME) La ruta de búsqueda que se utiliza para buscar

comandos (PATH) Las configuraciones de terminal (TERM)

Page 21: Scripts

PARAMETROS POSICIONALES Corresponden a los argumentos con los que se

invoca a un script o a una función. Su identificador en un número que corresponde con su posición. Por ejemplo, si tenemos $1 nos indica el número del primer argumento, $2 el del segundo y así sucesivamente, $i se refiere al i-ésimo argumento.

El usuario no puede modificar de forma individual un parámetro posicional, pero puede reasignarlos mediante un comando llamdo set.

Page 22: Scripts

PARAMETROS ESPECIALES

Son parámetros mantenidos por el propio shell por lo que el usuario no puede modificar su valor. Estos son algunos de los mas usados:

0: Nombre del sript#: Numero de parámetros posicionales.: lista de parámetros posicionales.: valor devuelto por el último mandato ejecutado.$: Identificador del proceso del propio Shell.!: Identificador de proceso asociado al último mandato en background arrancado.

Page 23: Scripts

ENTRADA INTERACTIVA Cuando se invoca como un shell interactivo con el nombre sh,

bash busca la variable ENV, si está definida expande su valor, y utiliza el valor expandido como el nombre de un archivo para leer y ejecutar.

Un script es un archivo tipo texto, cuyas líneas tienen comandos que son ejecutados (interpretados) por bash. Para lograr que el intérprete de comandos intérprete las líneas de un archivo puede:

Ejecutar /bin/bash seguido del nombre del archivo (o redireccionar la entrada estándar para que provenga del archivo).

Emplear el comando source seguido del nombre del archivo. Emplear el caracter '.' seguido de un espacio y el nombre del archivo.

Agregar en la primera línea del archivo la cadena #!/bin/bash, dar permiso de ejecución al archivo y teclear el nombre del archivo desde el intérprete de comandos ---como si fuera un nuevo comando.

Page 24: Scripts

EL COMANDO TEST El comando test evalúa una expresión, y si el resultado es

verdadero, devuelve un estado de salida de cero. De otro modo el resultado es falso, y devuelve un estado de salida que no es cero.

La expresión compara normalmente dos números o dos cadenas para comprobar si los valores son idénticos. La expresión se utiliza también para probar el estado de un archivo.

Formato del Comando:

if test expresión o if [expresión] then ejecutar comando(s)fi

Page 25: Scripts

Operadores del Comando Test

Casi todos los scripts de shell avanzados funcionan con archivos. El comando test permite a los operadores probar el tipo de archivo, los permisos del archivo y si un archivo contiene o no determinados datos. La figura presenta una lista de los operadores de archivos utilizados más comúnmente con test.

Page 26: Scripts

El signo ! (bang) denega una prueba, de modo que [ ! -w archivo] denega [ -w archivo]. Por ejemplo, el siguiente script de shell filetest.sh acepta un nombre de archivo como argumento y luego lleva a cabo una cierta cantidad de pruebas para determinar los permisos de los archivos.

$ cat filetest.sh #!/bin/ksh if [ ! -f $1 ] #test:Si el primer archivo especificado no existe then echo mensaje then echo "Lo siento, el archivo no existe" elif [ ! -r $1 ] # test:Si el primer archivo especificado no existe a leido perms then echo messagethen echo "la carpeta no es leíble" elif [ ! -w $1 ] then echo " la carpeta no es editable " else echo " la carpeta es editable y leíble " fi

Page 27: Scripts

EL COMANDO IF La forma más simple de un comando condicional es el

comando if. El comando if es un comando de shell incorporado que le

permite al alumno probar una condición y luego cambiar el flujo de la ejecución de un script de shell basándose en el resultado de la prueba.

Existen tres formatos del comando if. El comando fi (if invertido) se coloca siempre al final de un condicional if.

El Formato del Comando if-then (si-entonces):  

if el comando tiene éxitothen ejecutar el/los comando(s)fi

Page 28: Scripts

El Formato del Comando if-then-else (si-entonces-de lo contrario): 

if el comando tiene éxitothen ejecutar el/los comando(s) else ejecutar el/los comando(s) fi 

El Formato del Comando if-then-elif (else if)(si-entonces-de lo contrario si):  

if el comando tiene éxitothen ejecutar el/los comando(s) elif el comando tiene éxitothen ejecutar el/los comando(s) else ejecutar el/los comando(s) fi

Page 29: Scripts

Podemos comprobar los valores de terminacion de un comando, y comparar cadenas alfanumericas/numericas y atributos de ficheros. Algunos ejemplos para aclararnos las ideas.

1.- Llamamos al interprete de comando de bash2.- Documentacion3.- Guardamos

Page 30: Scripts

4.- Abrimos el terminal5.- Cambiamos los permisos con el comando chmod

6.- Ahora pasamos a la respectiva comprobacion

Page 31: Scripts

EL COMANDO CASE El comando incorporado al shell case se utiliza

cuando existen muchas condiciones que probar. Formato del Comando:

La sintaxis de esta construccion es la siguiente:case expresion in     caso_1 )        comandos;;     caso_2 )         comandos;;     ......esac

Page 32: Scripts
Page 33: Scripts

CONTROL DEL FLUJO Las expresiones de control de flujo influyen en la forma en que el código es

ejecutado, y dividen el código en bloques. Los bloques empiezan con una palabra reservada, por ejemplo while y terminan con la palabra reservada endwhile, formada por el prefijo end y la misma palabra que empezó el bucle. También es posible acabar un bloque con la palabra end. El código que se entre dichas palabras se denomina el cuerpo de la expresión de control.

Las siguientes construcciones son posibles 

Sentencia while La sintaxis es la siguiente  while condiciondo comandosdone Las sentencias del cuerpo se ejecutaran mientras condición se siga

evaluando a cierto. Si en el cuerpo no se modifica alguna de las variables que se evalúan en la condición entraremos en un bucle infinito.

Page 34: Scripts

Sentencia for

Ejecuta una serie de comandos un numero determinado de veces

La sintaxis de la sentencia for es muy semejante a la del while.for nombre [in lista]do comandos que pueden utilizar $nombreDone

En el bucle for se evalúa la expresión una vez al principio y se asigna a la variable var. Sin embargo la expresión de asignación del for funciona un poco distinto que en el resto de los casos. En lugar de asignar la expresión completa, se asigna sólo una columna y el bucle va iterando en todas las columnas.

Normalmente el bucle for se usa cuando se quieren hacer las cosas cierto número de veces (tantas como columnas tenga el resultado de evaluar la expresión).

Page 35: Scripts

Sentencia Until

Funciona exactamente igual al while, sin embargo al revés, es decir, es losiguiente: ambos verifican comandos; ambos poseen la misma sintaxis y ambosactuan en ciclo, sin embargo, mientras el while ejecuta el bloque deinstrucciones del ciclo mientras un comando este bien ejecutado, el until ejecuta el bloque del ciclo hasta que el comando este bien ejecutado. En otraspalabras se podria decir que en el while el comando tiene que ser verdadero para que el ciclo se realice, y en el until, el comando tiene que ser falso. La sintáxis del comando es practicamente la misma del while.Observa:

until condicion; do comandosdone