shell
DESCRIPTION
Shell. ARISO 2 Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona ( Universitat Politècnica de Catalunya). Licencia Creative Commons. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/1.jpg)
ShellARISO 2
Escola Tècnica Superior d’Enginyeria de Telecomunicació de Barcelona(Universitat Politècnica de Catalunya)
![Page 2: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/2.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/3.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/4.jpg)
ShellIntroducción
![Page 5: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/5.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/6.jpg)
ShellFicheros
![Page 7: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/7.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/8.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/9.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/10.jpg)
ShellComandos básicos
![Page 11: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/11.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/12.jpg)
Comandos Directorios:
◦ ls◦ mkdir <dir>◦ rmdir <dir>◦ cd <dir>◦ pwd
Ficheros:◦ cp <src> <dst>◦ mv <src> <dst>◦ rm <src>
![Page 13: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/13.jpg)
Comandos Filtros:
◦ cat◦ more◦ head◦ tail◦ sort◦ grep
Otros:◦ chmod◦ echo◦ clear◦ vi, vim, joe, emacs, nedit◦ logout
![Page 14: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/14.jpg)
ShellAmpliación de comandos
![Page 15: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/15.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/16.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/17.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/18.jpg)
ShellShellscripts
![Page 19: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/19.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/20.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/21.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/22.jpg)
Shellscript: for
for var in listado
comando1comando2
done
![Page 23: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/23.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/24.jpg)
Shellscript: if
if condición1then
comandos1
[ elif condición2then
comandos2 ]
[ else comandos3 ]
fi
![Page 25: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/25.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/26.jpg)
Shellscript: while
while condición1do
comandos1
done
until condición2do
comandos2
done
![Page 27: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/27.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/28.jpg)
Shellscript: case
case palabra inpatrón1) comandos1 ;;patrón2) comandos2 ;;...patrónN) comandos3 ;;
esac
![Page 29: Shell](https://reader036.vdocumento.com/reader036/viewer/2022070414/56814e44550346895dbbbc02/html5/thumbnails/29.jpg)
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