1 shellscript espedmume/asignaturas/2006/lao/lab_1/shellscript… · 1 jorge blanco rodríguez...

25
1 Jorge Blanco Jorge Blanco Rodr Rodrí guez guez Peter T. Peter T. Breuer Breuer Andr Andrés Mar Marín López pez Pedro J. Pedro J. Mu Muñoz oz Merino Merino Ralf E.D. Seepold Ralf E.D. Seepold Shell Shell Script Script Laboratorio de Arquitectura de Ordenadores Laboratorio de Arquitectura de Ordenadores Shell Script Lab. de Arquitectura de Ordenadores 2005 2 © Departamento de Ingenería Telemática, UC3M Índice Introducción Tipos de Shell Estructura de un programa de Shell Ejecución de un script Aritmética del bash Estructuras de control Entrada/Salida

Upload: others

Post on 23-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

1

Jorge Blanco Jorge Blanco RodrRodrííguezguezPeter T. Peter T. BreuerBreuer

AndrAndrééss MarMaríínn LLóópezpezPedro J. Pedro J. MuMuññozoz Merino Merino

Ralf E.D. SeepoldRalf E.D. Seepold

ShellShell ScriptScript

Laboratorio de Arquitectura de OrdenadoresLaboratorio de Arquitectura de Ordenadores

Shell ScriptLab. de Arquitectura de Ordenadores 2005 2

© Departamento de Ingenería Telemática, UC3M

Índice

● Introducción● Tipos de Shell● Estructura de un programa de Shell● Ejecución de un script● Aritmética del bash● Estructuras de control● Entrada/Salida

Page 2: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

2

Shell ScriptLab. de Arquitectura de Ordenadores 2005 3

© Departamento de Ingenería Telemática, UC3M

Introducción (Definiciones)

● Shell: Interfaz usuario / sistema● Script: Fichero con comandos de Shell

Shell ScriptLab. de Arquitectura de Ordenadores 2005 4

© Departamento de Ingenería Telemática, UC3M

Introducción (Caract. Espec.)

● No se interpretan literalmente dentro de un string― | & ; ( ) < > $ !

● Para que sean interpretados han de escaparse mediante \

● Con ‘string’ todo el string se interpreta literalmente.● Con “string” se preserva el significado de:

― $ ’ \$ \’ \” \\― \retorno_de_carro $@ $*

Page 3: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

3

Shell ScriptLab. de Arquitectura de Ordenadores 2005 5

© Departamento de Ingenería Telemática, UC3M

Introducción (Variables)

● Definición: nombre_de_var=valor

● Valor por defecto: “”

● Valor de una var:― $nombre_de_var

― ${nombre_de_var}

● Longitud:― ${#nombre_var}

Shell ScriptLab. de Arquitectura de Ordenadores 2005 6

© Departamento de Ingenería Telemática, UC3M

Introducción (Funciones)

● Definición:

functionnombre_de_funcion{

comandos_de_shell}

nombre_de_funcion(){

comandos_de_shell}

Page 4: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

4

Shell ScriptLab. de Arquitectura de Ordenadores 2005 7

© Departamento de Ingenería Telemática, UC3M

Introducción (Funciones 2)

● Eliminar una función de la memoria:― unset –f nombre_de_funcion

● Variables locales:― local nombre_de_var_local

● Devolver valores:― return [codigo]

Detiene la ejecución de la funciónSi no se especifica codigo, se devuelve como estado de salida el del último comando ejecutado

Shell ScriptLab. de Arquitectura de Ordenadores 2005 8

© Departamento de Ingenería Telemática, UC3M

Introducción (Parám. Posic.)

● Almacenan los parámetros de entrada de un script― Nombre variables: 0 1 2― Valores: $0 $1 $2

● $0 Nombre del script● $* Todos los argumentos separados por el separador

por defecto (IFS)● $# Número de parámetros● $@ N strings (se usa con for)

Page 5: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

5

Shell ScriptLab. de Arquitectura de Ordenadores 2005 9

© Departamento de Ingenería Telemática, UC3M

Introducción (Operadores)

● ${nombre_var :- string} Si la var no está definida devuleve string

● ${nombre_var := string} Si la var no está definida asigna string a la var

● ${nombre_var :? mensaje} Si la var no está definida muestra el mensaje de error y aborta la ejecución del script

Shell ScriptLab. de Arquitectura de Ordenadores 2005 10

© Departamento de Ingenería Telemática, UC3M

Introducción (Operadores 2)

● ${nombre_var :+ string} Si la var existe y no vale null devuelve string, si no, devuelve null

● ${nombre_var :offset} Devuelve el string desde la posición offset hasta el final

● ${nombre_var :offset:longitud} Devuelve el string desde la posición offset hasta offset+longitud

Page 6: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

6

Shell ScriptLab. de Arquitectura de Ordenadores 2005 11

© Departamento de Ingenería Telemática, UC3M

Introducción (Patrones)

● ${nombre_var #patrón} Devuelve el valor de la var quitando un prefijo, que es el acierto más corto del patrón

● ${nombre_var ##patrón} Devuelve el valor de la var quitando un prefijo, que es el acierto más largo del patrón

Shell ScriptLab. de Arquitectura de Ordenadores 2005 12

© Departamento de Ingenería Telemática, UC3M

Introducción (Patrones 2)

● ${nombre_var %patrón} Devuelve el valor de la var quitando un sufijo, que es el acierto más corto del patrón

● ${nombre_var %%patrón} Devuelve el valor de la var quitando un sufijo, que es el acierto más largo del patrón

Page 7: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

7

Shell ScriptLab. de Arquitectura de Ordenadores 2005 13

© Departamento de Ingenería Telemática, UC3M

Introducción (Patrones 3)

● ${nombre_var /patrón/string}Devuelve el valor de la var sustituyendo el acierto más largo del patrón por string

● ${nombre_var //patrón/string}Devuelve el valor de la var sustituyendo todos los aciertos del patrón por string

Shell ScriptLab. de Arquitectura de Ordenadores 2005 14

© Departamento de Ingenería Telemática, UC3M

Introducción (Comandos)

● Ejecución de comandos:― nombre_var =$(comando)

― nombre_var =`comando`

● El valor de nombre_var será la salida del comando

● Ej: fecha=$(date)lun ene 19 17:05:15 CET 2004

Page 8: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

8

Shell ScriptLab. de Arquitectura de Ordenadores 2005 15

© Departamento de Ingenería Telemática, UC3M

Tipos de Shell

● Existen varios intérpretes, cada uno con sintaxis diferente, pero con misma filosofía― sh En todas las distribuciones UNIX― csh Sintaxis un poco más sencilla que sh― Bourne Shell También basado en sh― bash Multitud de operadores nuevos (sh ++)― tcsh Recuerda últimos comandos

● echo $SHELL Tipo de shell utilizado

Shell ScriptLab. de Arquitectura de Ordenadores 2005 16

© Departamento de Ingenería Telemática, UC3M

Estructura de un prog. Shell

● Primera línea: Especifica tipo de Shell― #!/bin/bash

● Funciones de usuario― function check_param() {...}

● Conveniente devolver un código de error― exit 0

Page 9: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

9

Shell ScriptLab. de Arquitectura de Ordenadores 2005 17

© Departamento de Ingenería Telemática, UC3M

Ejecución de un script

● source <nombre_script>

● sh <nombre_script>

● bash <nombre_script>

― Crea un nuevo proceso bash para correr el scriptnombre_script

― Antes dar permiso de ejecución con chmod

Shell ScriptLab. de Arquitectura de Ordenadores 2005 18

© Departamento de Ingenería Telemática, UC3M

Ejecución de comandos

● El operador ;― Para ejecutar varios comandos en la misma línea, podemos usar

el operador ; como un separador. Por ejemplo: "comando1 ; comando2" ejecutará primero comando1, esperará hasta quetermine, ejecutará comando2, esperará hasta que termine y entonces nos devolverá el control

● El operador &― Para ejecutar un comando en background, podemos usar el

operador & después del comando. Esto nos devolverá el control inmediatamente en vez de esperar a que el programa termine. Por ejemplo: " comando1 & comando2 &" ejectará comando1 e inmediatamente después comando2 e inmediatamente nosdevolverá el control

Page 10: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

10

Shell ScriptLab. de Arquitectura de Ordenadores 2005 19

© Departamento de Ingenería Telemática, UC3M

Aritmética del bash

● Operaciones:+ - * / %== != <= >= < >!& |

Shell ScriptLab. de Arquitectura de Ordenadores 2005 20

© Departamento de Ingenería Telemática, UC3M

Aritmética del bash (2)

● Valor aritmético de una expresión: $((expresion))

var1=5var2=7var3=$var1+$var2 “5+7”var4=$((var1+var2)) “12”

Page 11: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

11

Shell ScriptLab. de Arquitectura de Ordenadores 2005 21

© Departamento de Ingenería Telemática, UC3M

Aritmética del bash (3)

● Otra forma: expr

● expr evalúa una expresión aritmética para dar su resultado

i=1i=$(expr $i + 1) “2”i=$((i+1)) “3”

Shell ScriptLab. de Arquitectura de Ordenadores 2005 22

© Departamento de Ingenería Telemática, UC3M

Control de flujo

● if / else

● for

● case

● select

● while

● until

Page 12: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

12

Shell ScriptLab. de Arquitectura de Ordenadores 2005 23

© Departamento de Ingenería Telemática, UC3M

if / else

if condicion ; thencodigo

[elif condicion ; thencodigo]

[elsecodigo]

fi

Shell ScriptLab. de Arquitectura de Ordenadores 2005 24

© Departamento de Ingenería Telemática, UC3M

if / else (2)

● condicion no es un valor booleano, sino el estado de salida de un comando― ÉXITO 0 (cierto)― ERROR >0 (falso)

● let $((expresion)) da como estado de salida el valor de la evaluación aritmética de la expresión

● [ ] da como estado de salida el resultado de aplicar un operador de comparación a un string― Equivalente a test

Page 13: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

13

Shell ScriptLab. de Arquitectura de Ordenadores 2005 25

© Departamento de Ingenería Telemática, UC3M

if / else (3)

● Anidamiento de condiciones:― and $$

― or ||

― not !

● Para comprobar otro tipo de condiciones de forma indirecta (ej: existe archivo??):― Operadores de comparación, aritméticos, etc.― [ ]

Shell ScriptLab. de Arquitectura de Ordenadores 2005 26

© Departamento de Ingenería Telemática, UC3M

if / else (4)

● Operadores de comparación de strings― string==string lexicográficamente igual ― string!=string lexicográficamente distinto ― string<string lexicográficamente menor ― string>string lexicográficamente mayor

Page 14: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

14

Shell ScriptLab. de Arquitectura de Ordenadores 2005 27

© Departamento de Ingenería Telemática, UC3M

if / else (5)

● Más operadores:-d archivo existe y es un directorio -e archivo existe -f archivo existe y es un fichero normal -r archivo permisos de lectura-s archivo existe y no está vacio-w archivo permisos de escritura-x archivo permisos de ejecución

Shell ScriptLab. de Arquitectura de Ordenadores 2005 28

© Departamento de Ingenería Telemática, UC3M

if / else (6)

● Más operadores:-b archivo es un dispositivo de bloque-c archivo es un dispositivo de caracter-n variable no es null-O archivo propietario de archivo -G archivo grupo con acceso

● Algunos más:man bash

Page 15: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

15

Shell ScriptLab. de Arquitectura de Ordenadores 2005 29

© Departamento de Ingenería Telemática, UC3M

if / else (7)

● Más operadores:expresion -a expresion AND

expresion -o expresion OR

archivo1 -nt archivo2 más nuevo

archivo1 -ot archivo2 más antiguo

Shell ScriptLab. de Arquitectura de Ordenadores 2005 30

© Departamento de Ingenería Telemática, UC3M

if / else (8)

● Operaciones sobre strings interpretadas aritméticamente:-lt menor que -le menor o igual que -eq igual que -ge mayor o igual que -gt mayor que -ne distinto que

Page 16: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

16

Shell ScriptLab. de Arquitectura de Ordenadores 2005 31

© Departamento de Ingenería Telemática, UC3M

if / else (9)

echo “Diga si o no: ”

read var

if [ $var == “si” ]

then

echo “Ha dicho -si-”

else

echo “No ha dicho -si-, ha dicho -$var-”

fi

Shell ScriptLab. de Arquitectura de Ordenadores 2005 32

© Departamento de Ingenería Telemática, UC3M

if / else (10)if [ -d correo ] ; then

echo "El archivo -correo- existe y es un directorio"

fi

if [ -e correo ] && [ ! -d correo ] ; then

echo "El archivo -correo- existe y NO es un directorio"

fi

Page 17: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

17

Shell ScriptLab. de Arquitectura de Ordenadores 2005 33

© Departamento de Ingenería Telemática, UC3M

for

for variable_del_bucle [in lista]

do

codigo

done

● Repite codigo un número fijo de veces● lista: string con varias palabras separadas por IFS,

que por defecto es ‘ ’ (si se omite $@)

Shell ScriptLab. de Arquitectura de Ordenadores 2005 34

© Departamento de Ingenería Telemática, UC3M

for (2)

notas_de_lao=“9:9:10:9,5:10:9:8:10”

IFS=:

for nota in $notas_de_lao

do

echo “$nota”

done

Page 18: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

18

Shell ScriptLab. de Arquitectura de Ordenadores 2005 35

© Departamento de Ingenería Telemática, UC3M

case

case expresion in

patron1 )

codigo ;;

patron2 )

codigo ;;

patron3 )

codigo ;;

...

esac

Shell ScriptLab. de Arquitectura de Ordenadores 2005 36

© Departamento de Ingenería Telemática, UC3M

case (2)

● Utilizado para comprobar valores simples, como enteros o caracteres

case “$#” in

0 )

echo “Nigún argumento” ;;

* )

echo “Algún argumento” ;;

esac

Page 19: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

19

Shell ScriptLab. de Arquitectura de Ordenadores 2005 37

© Departamento de Ingenería Telemática, UC3M

select

select nombre_de_variable [in lista] ; do

codigo

done

● Genera un menú para cada objeto de la lista● Pregunta al usuario por un nº (prompt=PS3)● Guarda la opción seleccionada en REPLY (nº)● Repite el proceso de forma contínua Hay que salir con break

Shell ScriptLab. de Arquitectura de Ordenadores 2005 38

© Departamento de Ingenería Telemática, UC3M

select (2)PS3=“Que quiere comer? ”

IFS=:

comidas=“paella:tortilla:salir”

select eleccion in $comidas ; do

case $eleccion in

paella ) echo “Va a comer paella” ;;

tortilla ) echo “Va a comer el plato $REPLY” ;;

salir ) echo “Saliendo...”

break ;;

* ) echo “Comida no disponible. Elija otra” ;;

esac

done

Page 20: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

20

Shell ScriptLab. de Arquitectura de Ordenadores 2005 39

© Departamento de Ingenería Telemática, UC3M

while

while estado_de_salida

do

codigo

done

● Ejecuta el bucle mientras el estado_de_salida sea 0

Shell ScriptLab. de Arquitectura de Ordenadores 2005 40

© Departamento de Ingenería Telemática, UC3M

while (2)

i=1

while true

do

echo $i

i=$(expr $i + 1)

if [ $i == 10 ] ; then

exit 0

fi

done

Page 21: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

21

Shell ScriptLab. de Arquitectura de Ordenadores 2005 41

© Departamento de Ingenería Telemática, UC3M

until

until comando

do

codigo

done

● Corre codigo hasta que comando se ejecute con éxito (el estado de salida sea 0)

Shell ScriptLab. de Arquitectura de Ordenadores 2005 42

© Departamento de Ingenería Telemática, UC3M

until

until command

do

code

done

● The loop executes code as long as the condition is false

Page 22: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

22

Shell ScriptLab. de Arquitectura de Ordenadores 2005 43

© Departamento de Ingenería Telemática, UC3M

Redirección de entrada/salida

● <

― Redirección del flujo de entrada― Ejemplo: cat < mifichero

● >

― Redirección del flujo de salida― Ejemplo: cat mifichero > miotrofichero

● >>

― Añadir algo al final del fichero (cf. operador >)

Shell ScriptLab. de Arquitectura de Ordenadores 2005 44

© Departamento de Ingenería Telemática, UC3M

Pipe

● |

― Operador pipe― Ejemplo ls –l | less

Muestra sólo tres líneas y esperapara evitar el desbordamientode la ventana

Page 23: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

23

Shell ScriptLab. de Arquitectura de Ordenadores 2005 45

© Departamento de Ingenería Telemática, UC3M

Control de permisos

● 3 roles: dueño (owner) – grupo (group) –mundo(world)

● 3 tipos de acceso: read, write execute => rwx● 3 veces 3 tipos de acceso : rwx rwx rwx● chmod – cambia los permisos● chmod 751 directory ???● chmod g=u-w

Shell ScriptLab. de Arquitectura de Ordenadores 2005 46

© Departamento de Ingenería Telemática, UC3M

Programación en shell: teclas

● C-c Aborta el programa actual. No deberíamos tener que usarlos, pues cada programa debe ser capaz de terminar por sí mismo. Perosi el programa se cae o no puede terminar por sí mismo, necesitaremos abortarlo.

● C-d Envía un carácter EOF (end of file). Este carácter está presenteal final de cada fichero. Si un programa espera un fichero comoentrada, a veces se puede teclear manualmente, y se termina con este carácter.

● Flecha arriba/abajo Se mueve por la historia de comandos. ● Flecha izquierda/derecha Mueve el cursor en la línea actual. ● Tab Completa automáticamente la línea actual hasta que surja una

ambigüedad. Funciona tanto con comandos como con nombres de ficheros. Si se vuelve a pulser Tab, lista todas las posiblesterminaciones.

Page 24: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

24

Shell ScriptLab. de Arquitectura de Ordenadores 2005 47

© Departamento de Ingenería Telemática, UC3M

…y otros comandos útiles

● FLAGSls –l

― Ejemplo:varpa:~/Test> ls

test_1 test_2

varpa:~/Test> ls -ltotal 8

-rw-r--r-- 1 ralf prof 8 feb 5 13:42 test_1

-rw-r--r-- 1 ralf prof 7 feb 5 13:42 test_2

varpa:~/Test>

Shell ScriptLab. de Arquitectura de Ordenadores 2005 48

© Departamento de Ingenería Telemática, UC3M

necesitados con frecuencia:● awk: para procesamiento de texto, más completo que sed● chsh: para cambiar el tipo de shell por defecto● cat: concatena ficheros y los imprime por la salida estándar● cd: cambia el directorio actual● cut -d: separator -f column: corta columnas● date: informa sobre el día y la hora● dd: convierte y copia un fichero● echo: ECHO, Echo, echo... ● exit: Provoca una terminación de la shell con estado n● grep: cosas como: “toma todas las líneas que empiecen por ...'' ● head -n X: muestra las primeras X líneas de la entrada estándar● mail: pues eso● paste: pega● read: lee de la enrtada estándar y se guarda en una variable● sed: para procesado de texto, sustitución, borrado... ● sort: ordena alfabética o numéricamente [-n] ● tail -n X: muestra las últimas X líneas de la entrada estándar● touch: cambia la hora de modificación● who: infroma acerca de quién está en el sistema

Page 25: 1 ShellScript ESpedmume/asignaturas/2006/LAO/Lab_1/ShellScript… · 1 Jorge Blanco Rodríguez Peter T. Breuer Andrés Marín López Pedro J. Muñoz Merino Ralf E.D. Seepold Shell

25

Shell ScriptLab. de Arquitectura de Ordenadores 2005 49

© Departamento de Ingenería Telemática, UC3M

Bibliografía

● info bash

― Información de GNU Linux sobre bash● man bash

― Páginas de manual de bash