290 likes | 462 Views
Shell. ARISO 2 Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona ( Universitat Politècnica de Catalunya). Licencia Creative Commons.
E N D
Shell ARISO 2 EscolaTècnica Superior d’Enginyeria de Telecomunicació de Barcelona (UniversitatPolitècnica de Catalunya)
Licencia CreativeCommons Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España de CreativeCommons. Para ver una copia de esta licencia, visite: http://creativecommons.org/licenses/by-nc-sa/2.5/es/ o envíe una carta a: CreativeCommons, 559 NathanAbbottWay, Stanford, California 94305, USA.
Licencia CreativeCommons Eres libre de: • copiar, distribuir y comunicar públicamente la obra • hacer obras derivadas Bajo las condiciones siguientes: • Atribución. Debes reconocer la autoría de la obra en los términos especificados por el propio autor o licenciante. • No comercial. No puedes utilizar esta obra para fines comerciales. • Licenciamiento Recíproco. Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta. • Al reutilizar o distribuir la obra, tienes que dejar bien claro los términos de la licencia de esta obra. • Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor Advertencia: • Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley no se ven • afectados por lo anterior. • Esto es un resumen legible por humanos del texto legal (la licencia completa)
Shell Introducción
Que es el Shell? • Interprete de comandos • Aplicación que permite al usuario interactuar con el sistema • Iniciar aplicaciones • Borrar un fichero • …Matar una aplicación • Diferentes shells: sh, csh, ksh, zsh, bash
Shell Ficheros
Ficheros • Tira de bytes identificados por un nombre • Los programas interpretan la semántica • Tipos: • Ficheros de datos • Texto • Bases de datos • Ejecutables • Dispositivos E/S (discos, terminales) • Canales de comunicación (pipes, sockets) • Directorios
Sistema Ficheros • Organización en forma de árbol
Referencias a Ficheros • El identificador del fichero (path) • . directorio de trabajo • .. directorio padre • / directorio raíz • Tipo de referencias: • Absoluta: desde la raíz • Relativa: desde el directorio de trabajo
Shell Comandos básicos
Comandos • man COMANDO • Información extensa sobre todo el sistema • Llamadas a sistema • Comandos • Librerías • Programas de usuario • whatis COMANDO • Descripción de un comando • aproposkeyword • Buscador
Comandos • Directorios: • ls • mkdir <dir> • rmdir <dir> • cd <dir> • pwd • Ficheros: • cp <src> <dst> • mv <src> <dst> • rm <src>
Comandos • Filtros: • cat • more • head • tail • sort • grep • Otros: • chmod • echo • clear • vi, vim, joe, emacs, nedit • logout
Shell Ampliación de comandos
Metacarácteres • Herramienta del Shell para designar conjuntos de ficheros • Expresiones regulares
Redirección de E/S • Los procesos tienen 3 canales de e/s por defecto: • Canal 0: Entrada estándar (teclado) • Canal 1: Salida estándar (pantalla) • Canal 2: Salida error estándar (pantalla) • La redirección supone cambiar estos canales por otros ficheros • program > file • program < file • program &> file • program >> file
Redirección de E/S • Redirección entre canales de procesos: PIPES • program1 | program2 • canal 0 del program2 recibe canal 1 del program1 program1 program2
Shell Shellscripts
Shellscript • Lenguaje de programación que usa el shell como base • Permite ejecutar todos los comandos shell • Permite usar variables • Permite usar control de flujo (bucles, condicionales) • Paso de parámetros #!/bin/bash
Shellscript • Variables • Declaración y asignación de valores: • var=“valor” • var=“$var”valor • var2=10 • var2=$var2+10 • Parámetros • $# Número de parámetros • $1 Valor del parámetro 1 • $2 Valor del parámetro 2 • …
Shellscript • chmodu+x script • test • test 1 –ge 2 • test 4 –ne 6 • Sin prints, con valor de retorno • expr • expr 3 + 4 • expr 3 \* 4 • Imprime • echo • ’Valor $val’ Literal • "Valor $val" Sustitución de variables • `programa $val` Ejecución y sustitución
Shellscript: for forvarin lista do comando1 comando2 done
Shellscript: for #!/bin/bash for variable in ord* do echo "Fichero $variable" echo "Caracteres 1: `wc -c $variable`" echo "Caracteres 2: `cat $variable | wc -c`" echo "----------------------" done
Shellscript: if ifcondición1 then comandos1 [elifcondición2 then comandos2 ] [ else comandos3 ] fi
Shellscript: if #!/bin/bash for variable in ord* do echo "Fichero $variable" echo "Caracteres 1: `cat $variable | wc -c`" palabras=`cat $variable | wc -c` if test `expr $palabras % 2` -eq 0 then echo "PAR" else echo "IMPAR" fi echo "----------------------" done
Shellscript: while whilecondición1 do comandos1 done untilcondición2 do comandos2 done
Shellscript: while #!/bin/bash var=10 while test $var -gt 0 do var=`expr $var - 1` echo "$var" done #!/bin/bash var=10 until test $var -eq 0 do #var=$var-1 var=`expr $var - 1` echo "$var" done
Shellscript: case case palabrain patrón1) comandos1 ;; patrón2) comandos2 ;; ... patrónN) comandos3 ;; esac
Shellscript: case #!/bin/bash case $# in 0) echo "Sin argumentos: escriba algo mas" exit ;; 1) echo "1 argumento, OK" ;; *) echo "Demasiados argumentos: solo necesita uno" exit ;; esac case $1 in dir) ls ;; cls) clear ;; *) echo "Comando no reconocido" ;; esac