Script presentacion

2,263 views

Published on

1 Comment
0 Likes
Statistics
Notes
  • Estaba buscando niños retrasados montados en caballo para tocarme a gusto cuando me he acordado de los ejercicios que tenia que hacer para clase de Ubuntu (el sistema operativo de negros para negros), entonces me he metido y las ganas de machacarmela se me han ido. Estupendo trabajo. Gracias.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
2,263
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
29
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Script presentacion

  1. 1. ESCUELA POLITECNICA NACIONAL SITEMAS OPERATIVOS ING. ADRIAN ZAMBRANO 14-11-2012
  2. 2. SCRIPTS EN ubuNTu“Todo lo que necesitas saber acerca de unScripts ”GRUPO 2Vanessa Estefania NapaRenato DiazPablo Medina
  3. 3. ara modificar el estilo de Que es un Script? texto del patrónivel Un script es un tipo de lenguaje informáticovel interpretado, formado por lineas de texto ASCII,nivel las cuales son ejecutadas de manera secuencial y ordenada por un programa padre, en este caso nuestro shell Bash. Es un conjunto de comandos presentados de manera sencilla y de acceso rápido para el usuario. ‘Un script es el medio de comunicación entre el programador y el usuario’.
  4. 4.  Dentro de la edición de un Script hay caracteres que cumplen una función predeterminada y especifica.‘ ’ Comillas simples: Se las utiliza para indicar caracteres literales ‘a’.“ ” Comillas dobles: Agrupa cadenas de caracteres “ Grupo 2 Script”` ` Comillas invertidas: Hacen que su contenido sea evaluado y que su resultado sea devuelto. Al tipear `date` en el script al momento que este se haya ejecutado se enviará una respuesta con el la fecha actual. Linea del script: `date` Respuesta mostrada por el shell: sab nov 19 18:58:31 ECT 2012 # se lo utiliza para dejar comentarios o hacer una descripción dentro del script.
  5. 5. Pasos para la creación de un script 1. Decidir la función que el script va a efectuar      2. Hacer una lista de comandos que se introducirán en el Script.      3. Crear un nuevo archivo para el script  4. Identificar el shell que utilizará el script      5. Agregar comandos y comentarios      6. Guardar el archivo script      7. Hacer ejecutable el archivo script      8. Tipear el nombre del script para ejecutarlo      9. Hacer debug y modificar el script si tiene algún error.
  6. 6. Pasos para la creacion de un script1. Decidir la función que el script va a efectuar Este es uno de los pasos más importantes ya que antes de crear el cómo tenemos que crear el que, es decir la función que cumplirá el programa a desarrollar
  7. 7. Pasos para la creacion de un script2.Hacer una lista de los comandos que seintroduciran en el Script El paso siguiente después de haber imaginado el programa es pensar en los comandos con los cuales desarrollaremos el como. Hay una serie de comandos que se utilizan en un script . A continuación les presentamos los más representativos:
  8. 8. Pasos para la creacion de un script2.Hacer una lista de los comandos que seintroduciran en el Script El paso siguiente después de haber imaginado el programa es pensar en los comandos con los cuales desarrollaremos el como. Hay una serie de comandos que se utilizan en un script . A continuación les presentamos los más representativos:
  9. 9. Comando echoEs uno de los comandos mas utilizados dentro de un script de shell, su función es la de mostrar en pantalla una cadenade caracteres. Su  sintaxis es:  echo [opciones] [cadena]OPCIONES:     -n   Suprime el caracter de nueva linea final     -e   Activa la interpretación de los caracteres alternativos          listados debajo     -E   Desactiva la interpretación de secuencias de cadena   Sin -E, las siguientes secuencias con reconocidas          barra inversa     b     retorno  f     salto de página  n     nueva línea     r     retorno de carro t     tabulación horizontal v     tabulación vertical
  10. 10. Comando echoEJEMPLO:  1. Comando echo     echo "La vida es Bella"   El comando mostrará: ”La vida es Bella” 2. Para usar el retorno     echo -e "La vida es bBella"     El comando eliminará el espacio y se mostrará:     ”La vida esBella”3. Para usar el espacio de tabulación en el comando echo     echo -e "LatvidatestBella"     El comando mostrará:     ”La     vida     es     Bella”
  11. 11. Comando read El comando read es de mucha ayuda dentro del desarrollo de scripts que necesiten que el usuario introduzca algún tipo de parámetro o dato.Durante la ejecución de un script, si este encuentrauna línea de comando que tenga el comando readseguido de un nombre de variable,dicha ejecución se detendrá y en pantalla se mostraráel cursor parpadeando en espera de que se introduzcael valor de la variable, este valor a continuación seraalmacenado por la shell como el valor de la variable.
  12. 12. Comando read EJEMPLO: #!/bin/bash #uso de read echo "Cuál es tu nombre?" read  nombre echo "Hola $nombre“ En este ejemplo se puede observar que al pedir el ingreso de la edad utilizamos read edad. Hay que fijarse bien que para que el shell entienda la orden y pueda mostrar la edad ingresada con el comando echo es necesario preceder a la variable edad de un signo de dinero ($), de esta forma $edad. 
  13. 13. Pasos para la creación de un script3. Crear un nuevo archivo para el script Elegir un editor de texto para la creación de     este archivo. Elegir un nombre para el script evitando    nombres como backup.sh son nombres que se deben evitar ya que estos tienen funciones específicas dentro del shell.           Los archivos script pueden ser guardados en el directorio home del usuario, pero también se los puede colocar en el directorio ~/bin que se encuentra como subdirectorio de home.    .
  14. 14. Pasos para la creación de un script4. Identificar el shell que utilizara elscript  El usuario debe introducir #!/bin/ksh o #!/bin/bash enla primera línea del script. Es importante empezar la primeralínea con "#!" ya que así el script no lo reconocer á comocomando a ser ejecutado.
  15. 15. Pasos para la creación de un script5. Agregar comandos y comentarios6. Guardar el archivo scriptEJEMPLO:  #!binbash   #Código que muestra información importante del terminal   #Este comando nos mostrará el directorio actual de  trabajo   echo "Directorio actual:"   pwd   #Limpiamos la pantalla   clc   echo "Usuario actualmente en el sistema:"   who
  16. 16. Pasos para la creación de un script7. Hacer ejecutable el archivo script1er método Asignando permisos mediante el comando chmod cambiamos de 664 a ..2do método Tipear bash en el prompt antes del nombre del archivo $ bash nombre_script.sh
  17. 17. Como 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. El alumno 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.
  18. 18. VARIABLES EN LOS SCRIPTS Una variable es un placeholder (marcador de posición) para la información requerida por los procesos para que puedan funcionar apropiadamente. Una variable tiene un nombre y guarda un valor. Cambiar el valor de una variable es configurarla. Existen dos tipos de variables utilizados en scripts de shell, las variables de shell y las variables del entorno. Las variables de shell son mantenidas por el shell y sólo son conocidas para el shell actual. Estas variables son variables locales. Las variables del entorno son variables conocidas para el shell actual y todos los shells hijos o subshells. 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)
  19. 19.  Las variables locales se configuran utilizando el formato VARIABLE=valor. Por ejemplo, BACKUPDIR =/home/user2/myfiles configura la variable denominada BACKUPDIR como igual al valor de /home/user2/myfiles. Los nombres de las variables van en mayúscula por convención pero también pueden ir en minúscula. Utilice el comando echo para mostrar el valor de una variable. La figura ilustra cómo configurar y mostrar la variable BACKUPDIR. El signo de dólar antes de un nombre de variable instruye al shell para que utilice el valor de la variable. De otro modo, echo BACKUPDIR, sin el signo de dólar daría como resultado la cadena de texto BACKUPDIR, como se ilustra en el ejemplo.  Haga clic para modificar el estilo de texto del patrón  Segundo nivel  Tercer nivel  Cuarto nivel  Quinto nivel
  20. 20.  Las variables también pueden configurarse para que sean igual al resultado de un comando. Por ejemplo, DATE=`date` asignaría el valor de la fecha actual a la variable DATE. Cuando ha de mostrarse una variable, los acentos graves (`) indican al shell que utilice la fecha actual en lugar de la palabra "date". Los acentos graves y otros caracteres de encomillado se trataron anteriormente en este capítulo. La ventaja de una variable es que una vez configurada puede hacerse referencia a ella muchas veces a lo largo de un script. Si el valor de la variable se cambia entonces todas las veces que se hace referencia a ella se utilizará el nuevo valor y no hacen falta otras modificaciones.
  21. 21. Comandos condicionales LOS OPERADORES DISPONIBLES PARA SENTENCIAS CONDICIONALES Y SUS SIGNIFICADOS Operador Significado Equivalente Matematico -eq Es igual a x == y -ge Mayor o igual x >= y que -gt Mayor que x>y -le Menor o igual x <= y que -lt Menor que x<y -ne No es igual a x != y
  22. 22. comandos condicionales Los comandos que llevan a cabo ciertas tareas basadas en si una condición tiene éxito o falla se denominan comandos condicionales. Los tres comandos condicionales utilizados más frecuentemente son if, test, y case. 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 permite 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 éxito then  ejecutar el/los comando(s) fi
  23. 23.  EJEMPLO #!/bin/bash x=3 y=9 if [ $x -lt $y ]   then      echo "x=$x es menor que y=$y" fi  x=3 es menor que y=9  El Formato del Comando if-then-else (si-entonces- de lo contrario):  if el comando tiene éxito then ejecutar el/los comando(s) else ejecutar el/los comando(s) fi
  24. 24.  EJEMPLO (Calculadora Básica) #!/bin/bash echo "Ingrese el primer numero" read x echo "Ingrese el segundo numero" read y echo "¿Que operacion matematica desea hacer?" echo "1. Suma" echo "2. Resta" echo "3. Multiplicación" echo "Escoja una opción [1,2 or 3]? " read oper if [ $oper -eq 1 ] then echo "La suma es: " $(($x + $y)) else if [ $oper -eq 2 ] then echo "La resta es: " $(($x - $y)) else if [ $oper -eq 3 ] then echo "La multiplicacion es: " $(($x * $y)) else echo "Invalido argumento" fi fi fi
  25. 25.  El Formato del Comando if-then-elif (else if) (si-entonces-de lo contrario si): if el comando tiene éxito then ejecutar el/los comando(s) elif el comando tiene éxito then ejecutar el/los comando(s) else ejecutar el/los comando(s) fi
  26. 26.  EJEMPLO(Comparar dos numeros) #!/bin/bash echo " Digite el primer número" read primero echo "Digite el segundo número" read segundo if [ $primero -eq 0 ] && [ $segundo -eq 0 ] then echo "Num1 y Num2 son cero" elif [ $primero -eq $segundo ] then echo "Ambos numeros son iguales" elif [ $primero -gt $segundo ] then echo "$primero es mayor que el $segundo" else echo "$primero es menor que el $segundo" fi
  27. 27.  EJEMPLO (Montar una particion)#!/bin/bashecho "¿Desea montar una particion?. ¿S/n?"read xif [ $x = S ]thenecho "Es necesario instalar el programa pysdm.¿desea instalarlo?.¿S/n? "read y if [ $y = S ] then sudo apt-get install pysdm echo "Elprograma pysdm esta a punto de iniciar.." sleep 3 echo "Utilice el entorno grafico para montar la particion" sudo pysdm echo "Saliendo del programa.." sleep 3 echo "¿Desea reiniciar el sistema?. ¿S/n?" read z if [ $z = S ] then reboot else clear exit fi else exit fielseexitfi
  28. 28. Comando test El comando condicional incorporado al shell test se utiliza a menudo para probar una o más condiciones que siguen al comando if. 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
  29. 29.  En el ejemplo que figura a continuación, test evalúa la variable $answer para determinar si el usuario respondió "y" (de "yes" - sí) a la pregunta ( "¿Despejar la pantalla antes de mostrar el listado de archivos?"). De ser verdadera, se despeja la pantalla y se muestra el contenido del directorio actual. De ser falsa, se muestra el contenido del directorio actual pero no se despeja antes la pantalla. #!/bin/ksh  echo "¿Despejar la pantalla antes de mostrar el listado de archivos?").   echo " enter y for Yes or n for No:c"  read answer  if test "$answer" = y  then         clear;ls  else         ls  fi El comando test se utiliza tan a menudo en los scripts de shell que los corchetes ([ ]) pueden utilizarse como alternativa a tipear "test". Por ejemplo, la línea de más arriba "if test "$answer" = y" también podría escribirse así: if [ $answer = y ]. Nota: el signo != (no igual) puede utilizarse para probar si una cadena no es igual a otra.
  30. 30. Comando case Una forma de realizar la misma acción sin escribir tantas lineas de condicionales elif y con ello disminuir el tamaño del guión es la utilización de la sentencia case-in-esac. Esta sentencia permite vincular patrones de texto con conjuntos de comandos; cuando la variable de la sentencia coincide con alguno de los patrones, se ejecuta el conjunto de comandos asociados. La sintaxis de la sentencia case-in esac es como sigue. Formato del Comando: case valor de la variable in value1 )        Comando        Comando        ;; value2 )        Comando        Comando        ;; *)        Comando        ;; esac
  31. 31.  El valor de una variable de case se compara con value1, value2, etcétera, hasta hallar una coincidencia. Cuando un valor coincide con la variable de case, los comandos que siguen a ese valor se ejecutan hasta llegar a los punto y coma dobles (;;). Luego el control se dirige a toda la línea directamente después del enunciado esac. Si el valor de una variable de case no coincide, el programa ejecuta los comandos después del valor por defecto *) hasta que se llega a los punto y coma dobles o hasta esac. EJEMPLO #!/bin/bash echo "Diga si o no:" read VAR  case "$VAR" in si) echo "Escribiste -si-" ;; no) echo "Escribiste -no-" ;; *) echo "Lo que escribió no se acepta" ;; esac Observe que el carácter (*) utilizado en la última opción significa "patrón no contemplado" en este caso.
  32. 32.  El valor de una variable de case se compara con value1, value2, etcétera, hasta hallar una coincidencia. Cuando un valor coincide con la variable de case, los comandos que siguen a ese valor se ejecutan hasta llegar a los punto y coma dobles (;;). Luego el control se dirige a toda la línea directamente después del enunciado esac. Si el valor de una variable de case no coincide, el programa ejecuta los comandos después del valor por defecto *) hasta que se llega a los punto y coma dobles o hasta esac. EJEMPLO #!/bin/bash echo "Diga si o no:" read VAR  case "$VAR" in si) echo "Escribiste -si-" ;; no) echo "Escribiste -no-" ;; *) echo "Lo que escribió no se acepta" ;; esac Observe que el carácter (*) utilizado en la última opción significa "patrón no contemplado" en este caso.
  33. 33. BUCLESSe puede utilizar bucles para controlar el flujo deejecución de un script. Un bucle repite unasecuencia de instrucciones hasta satisfacer unacondición predeterminada.A menudo un script tiene que ver con llevar a cabo lamisma operación o conjunto de operaciones de cadaarchivo en un directorio o lista, cada línea de unarchivo, o cada palabra de una línea.El shell proporciona tres construcciones de buclepara lograr este tipo de acción: el bucle for, el buclewhile y el bucle until.
  34. 34. EL BUCLE FOREl bucle for ejecuta una lista de comandos una vez para cada valor de variable de bucle.Formato del Comando:for variable inlistdoComandosDoneEl valor de la variable se cambia con cada pasada a través del bucle al siguiente valor enlist. Cada vez que un valor es asignado, los comandos se ejecutan en el cuerpo del bucle.Cuando ya no quedan más valores en list, el bucle se termina.
  35. 35. EL BUCLE WHILEEl bucle while ejecuta repetidamente un grupo de comandos dentro delcuerpo de un bucle hasta que la condición de prueba de la expresión sehace falsa. En otras palabras, mientras la expresión sea verdadera,ejecuta estos comandos.Formato del Comando:while condicióndoComandosdone
  36. 36. EL BUCLE UNTILEl bucle until es muy similar al bucle while pero ejecuta una serie decomandos mientras un comando continúe fallando (estado de salida no-cero).Cuando el comando finalmente se ejecuta con éxito, el bucle se termina y laejecución pasa al primer enunciado que sigue a la construcción done. Lacondición until se verifica en la parte superior del bucle, no en la inferior.Formato del Comando:until condicióndoComandosdone
  37. 37. Script1: Factorial de un número ingresado por el usuario .  #!/bin/bash  echo "ingrese el numéro para hallar su factorial"  read num  n=$num  fact=1  for (( i=1; i<=n; i++ ))  do  fact=`expr $fact * $i`  done  echo "el factorial de $num es: $fact "
  38. 38. Script2: Verifica si un usuario está loggeado. #!/bin/bash echo "Ingrese l nombre de un usuario: " read name while who | grep $name do echo "$name está loggeado" sleep 5 exit done echo "$name no está loggeado"
  39. 39. Script3: Indica si un usuario está loggeado . #!bin/bash echo "ingrese un usuario" read user until who | grep $user do echo "el $user no esta loggeado" sleep 5 done echo "el $user esta loggeado"
  40. 40. Script4: ver que número es mayor, menor o igual. Script.sh num1 num2(asi se ejecuta el script). #!/bin/bash if [ $2 -gt $3 ] then echo "$2 es mayor" elif [ $2 -eq $3 ] then echo "$2 = $3" else echo "$3 es mayor" fi
  41. 41. Script5: Permite crear respaldos de un carpetadeseada en un dirección ingreseda por el usuario.● #!/bin/bash● clear● cd● pwd● echo "ingrese el path absoluto de la carpeta con el contenido que desea que se respalde"● read path● while [ ! -d $path ]● do● clear● echo "$path no existe"● echo "ingrese el path absoluto de la carpeta con el contenido que desea que se respalde una vez por semana"● read path● done●
  42. 42.  clear echo "ingrese el nombre de la carpeta donde se guardarán los resplados" read name echo "ingrese el path absoluto en donde quiere que se cree la carpeta respaldos" read ruta while [ ! -d $ruta ] do clear echo "$ruta no es válido" echo "ingrese el path absoluto en donde quiere que se cree la carpeta $name" read ruta done
  43. 43. ● mkdir $ruta/$name● echo "ingrese el nombre del fichero donde se almacenarán y del cual se realizará un compresión"● read fichero● tar -cvf $ruta/$name/$fichero.tar $path/*● sudo apt-get install ncompress● compress -v $ruta/$fichero.tar $ruta/$name/$fichero.Z● clear● echo "Se han creado los respaldos de $path"

×