1 / 29

Programación en Shell

Programación en Shell. Profesor: Héctor Abarca A. Los comandos internos de Bash.

gaura
Download Presentation

Programación en Shell

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programación en Shell Profesor: Héctor Abarca A.

  2. Los comandos internos de Bash • Bash busca los comandos a ejecutar en los directorios indicados en la variable de entorno $PATH, pero además existen una serie de comandos que no corresponden a archivos del disco duro, sino que son internos a bash y siempre están cargados en su memoria. • Se puede obtener una lista completa de estos comandos con su descripción ejecutando: $ man builtin Programación de Sistema Operativo Héctor Abarca A.

  3. Analizando Shells export TERM=vt100 alias psa=“ps –aux|more” cat <hola.txt> chao.txt kill -9 14532 > /dev/null 2>$1 !ps kill %1 mkdir test{1,2,3,4} ls –l [a-d]* Programación de Sistema Operativo Héctor Abarca A.

  4. Programación en Shell • Primera línea: #! Intérprete • Ejemplo: #!/bin/bash echo Hola!!! Programación de Sistema Operativo Héctor Abarca A.

  5. Ejercicio uno.sh Programación de Sistema Operativo Héctor Abarca A.

  6. ¿Cómo ejecutar un script? • El script debe ser interpretado: $ /bin/sh ./uno.sh ó $ . ./uno.sh ó $ sh –x ./uno.sh • O puede ser convertido en ejecutable $ chmod +x uno.sh $ chmod 755 uno.sh $ ./uno.sh Programación de Sistema Operativo Héctor Abarca A.

  7. Uso de variables. dos.sh Programación de Sistema Operativo Héctor Abarca A.

  8. Paso de argumentos. tres.sh • Ejecutar este script como: ./tres a bc d Programación de Sistema Operativo Héctor Abarca A.

  9. Test o [ ] • Equivale a… Programación de Sistema Operativo Héctor Abarca A.

  10. Más test… if… Programación de Sistema Operativo Héctor Abarca A.

  11. … y más test… Programación de Sistema Operativo Héctor Abarca A.

  12. If…then. cuatro.sh Programación de Sistema Operativo Héctor Abarca A.

  13. For… cinco.sh y seis.sh Programación de Sistema Operativo Héctor Abarca A.

  14. While… siete.sh Programación de Sistema Operativo Héctor Abarca A.

  15. Until… ocho.sh $ . ./ocho.sh usuario Programación de Sistema Operativo Héctor Abarca A.

  16. Case… nueve.sh Programación de Sistema Operativo Héctor Abarca A.

  17. Funciones… diez.sh Programación de Sistema Operativo Héctor Abarca A.

  18. Varios x =‘expr $x + 1’ printf “%s %d\t%s” “Hola” 15 veces set $(date) echo El mes es $2 Programación de Sistema Operativo Héctor Abarca A.

  19. Debugging (búsqueda de los “bugs”) sh –n <script> • Revisa errores sintaxis, no ejecuta los comandos. sh –v <script> • Imprime a pantalla los comandos antes de ejecutarlos sh –x • Imprime a pantalla los comandos después de ejecutarlos. Programación de Sistema Operativo Héctor Abarca A.

  20. awk • Awk es un lenguaje de procesamiento de datos dado un patrón de búsqueda. $ cat /etc/passwd | awk –F: ‘{printf(“El usuario %s posee el directorio %s\n”, $1, $6)}’ $ ls –l |grep drwx |awk ‘{printf(“directorio = %s \n”, $9 Programación de Sistema Operativo Héctor Abarca A.

  21. Ejercicios • Escriba un script que dado el “uid” indique cuantas veces está logeado (who, grep,wc) • Escriba un script llamado “lslink” que sólo liste los archivos tipo link. • Ordene alfabéticamente el listado de usuarios de su máquina linux (sort, /etc/passwd) Programación de Sistema Operativo Héctor Abarca A.

  22. Automatización y Programación de tareas Profesor: Héctor Abarca A

  23. Automatización y Programación de Tareas • Necesidad de automatizar • Tareas Rutinarias y repetitivas • Copias de Seguridad • Comprobación de la Seguridad • Eliminar archivos temporales • Comprobar cuotas • Etc… Programación de Sistema Operativo Héctor Abarca A.

  24. Automatización y Programación de Tareas • Solución: • Programación Temporal. • Permite: • Ejecutar Tareas periódicamente • Programar una tarea para ejecutarse fuera del horario de trabajo. • No es necesario tener una sesión abierta • Es necesario que el equipo esté encendido • En unix se utilizan los comandos: • at • cron Programación de Sistema Operativo Héctor Abarca A.

  25. Automatización y Programación de Tareas • Comando at • Programar una tarea para un momento concreto. • Son ejecutadas por el demonio atd • Funciona con colas de tareas • Puede condicionarse la ejecución a la carga del sistema • at  programar una tarea • atq  consultar tareas • atrm  borrar tareas Programación de Sistema Operativo Héctor Abarca A.

  26. Automatización y Programación de Tareas • Ejecución periódica cron • Demonio del sistema crond • Consulta las tareas a ejecutar cada minuto • Gestión de tareas con crontab • crontab –l  listar tareas • crontab –e  editar tareas • crontab –r borrar tareas Programación de Sistema Operativo Héctor Abarca A.

  27. Automatización y Programación de Tareas • Ejecución periódica cron • Entradas de la forma min hora día mes día _ semana tarea • Se admiten rangos, listas y * • Ejemplos: 0 0 * * * *  todos los días a las 0:00 45 12 * * * 1-5  de lunes a viernes a las 12:45 30 5 1,15 * * *  a las 5:30 los días 1 y 15 de cada mes Programación de Sistema Operativo Héctor Abarca A.

  28. Automatización y Programación de Tareas • Ejecución periódica cron • Las tareas del sistema se almacenan en directorios especiales. • /etc/cron.hourly  ejecución cada hora • /etc/cron.daily  ejecución cada día • /etc/cron.weekly  ejecución cada semana • /etc/cron.monthly  ejecución cada mes Programación de Sistema Operativo Héctor Abarca A.

  29. Ejercicios • Cree un crontab que realice una copia de seguridad todos los lunes a las 2 de la mañana. • Cree un crontab que reinicie la máquina los días lunes, miércoles y viernes de cada mes a la 21:30. Programación de Sistema Operativo Héctor Abarca A.

More Related