shell

29
Shell ARISO 2 Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona (Universitat Politècnica de Catalunya)

Upload: laken

Post on 19-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Shell. ARISO 2 Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona ( Universitat Politècnica de Catalunya). Licencia Creative Commons. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Shell

ShellARISO 2

Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona(Universitat Politècnica de Catalunya)

Page 2: Shell

Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España de Creative Commons. Para ver una copia de esta licencia, visite:

http://creativecommons.org/licenses/by-nc-sa/2.5/es/

o envíe una carta a:Creative Commons, 559 Nathan Abbott Way, Stanford,California 94305, USA.

Licencia Creative Commons

Page 3: Shell

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)

Licencia Creative Commons

Page 4: Shell

ShellIntroducción

Page 5: Shell

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

Page 6: Shell

ShellFicheros

Page 7: Shell

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

Page 8: Shell

Sistema Ficheros Organización en forma de árbol

/

bin etc tmp lib dev usr

profes

ariso2

rubenb

docs

F1.txt

F2.txt

practicas

proyectos

alumnes

Page 9: Shell

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

Page 10: Shell

ShellComandos básicos

Page 11: Shell

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

apropos keyword◦ Buscador

Page 12: Shell

Comandos Directorios:

◦ ls◦ mkdir <dir>◦ rmdir <dir>◦ cd <dir>◦ pwd

Ficheros:◦ cp <src> <dst>◦ mv <src> <dst>◦ rm <src>

Page 13: Shell

Comandos Filtros:

◦ cat◦ more◦ head◦ tail◦ sort◦ grep

Otros:◦ chmod◦ echo◦ clear◦ vi, vim, joe, emacs, nedit◦ logout

Page 14: Shell

ShellAmpliación de comandos

Page 15: Shell

Metacarácteres Herramienta del Shell para designar

conjuntos de ficheros Expresiones regulares

Metacarácter

Descripción

* Secuencia de caracteres (de 0 a n)

? Cualquier carácter (1)

[-] Carácter en un rango ([abcd] [a-f])

Page 16: Shell

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

Page 17: Shell

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

Page 18: Shell

ShellShellscripts

Page 19: Shell

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

Page 20: Shell

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◦ …

Page 21: Shell

Shellscript chmod u+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

Page 22: Shell

Shellscript: for

for var in listado

comando1comando2

done

Page 23: Shell

Shellscript: for#!/bin/bashfor variable in ord*do echo "Fichero $variable" echo "Caracteres 1: `wc -c $variable`" echo "Caracteres 2: `cat $variable | wc -c`" echo "----------------------"done

Page 24: Shell

Shellscript: if

if condición1then

comandos1

[ elif condición2then

comandos2 ]

[ else comandos3 ]

fi

Page 25: Shell

Shellscript: if#!/bin/bashfor 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

Page 26: Shell

Shellscript: while

while condición1do

comandos1

done

until condición2do

comandos2

done

Page 27: Shell

Shellscript: while#!/bin/bashvar=10while test $var -gt 0do var=`expr $var - 1` echo "$var"done

#!/bin/bashvar=10until test $var -eq 0do #var=$var-1 var=`expr $var - 1` echo "$var"done

Page 28: Shell

Shellscript: case

case palabra inpatrón1) comandos1 ;;patrón2) comandos2 ;;...patrónN) comandos3 ;;

esac

Page 29: Shell

Shellscript: case#!/bin/bashcase $# 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