22
MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Embed Size (px)

Citation preview

Page 1: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

MATERIA:SISTEMAS OPERATIVOS II

INTEGRANTES:CARLOS NAJERALUIS ACOSTAANGEL CASTILLO

Page 2: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

CONCEPTOS GENERALES:

El shell proporciona una interfaz entre el núcleo y el usuario. Se puede describir como un intérprete: interpreta las órdenes que introduce el usuario y las envía al núcleo.

Normalmente consiste en un inductor desde el que se teclea una orden y después se pulsa enter. En cierta forma, se está tecleando una orden en una línea. A menudo, esta línea se conoce como la línea de órdenes.

Page 3: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

PARA QUE SIRVEN LOS SCRIPT DE SHELL

Un shell es la parte fundamental de un sistema operativo encargada de ejecutar las órdenes básicas para el manejo del sistema Suelen incorporar características tales como control de procesos, redirección de entrada/salida y un lenguaje de órdenes para escribir programas por lotes o (scripts).

Page 4: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Principales interpretes de comandos:

command.com: perteneciente a los sistemas MS-DOS y derivados como Windows 95 y 98.

ksh: El korn shell de UNIX. C Shell (csh): similar en sintaxis al lenguaje C. Bourne Shell (sh) GNU Bourne Again Shell (bash): variante del

Bourne Shell clásico para Linux con características avanzadas como control de procesos, historial de órdenes y edición similar a Emacs entre otras.

Tcsh: versión de C Shell para Linux con funcionalidades similares a bash.

Zsh: pequeño intérprete similar al Bourne Shell.

Page 5: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Scripts de Shell - Básicos

Con el shell estamos creando pequeños programas. Cuando a estos pequeños programas se guardan en un archivo que pueda ejecutarse luego, lo son llamados "script". Estos scripts sirven, entre otras cosas, para tareas de automatización.

Los scripts de shell son básicamente programas escritos en el lenguaje del shell, se parecen a los archivos .BAT del DOS

Page 6: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

ESCRIBIR PROGRAMAS PARA EL SHELL Al utilizar el shell para ejecutar comandos, puedes

usar su lenguaje de programación para escribir tus propios comandos o programas. Puedes poner comandos en el fichero (conocido como shell script) y después ejecutar el fichero como un comando o programa.

EL Bourne shell (sh) está disponible en todos los sistemas UNIX. Los scripts del Bourne shell también pueden trabajar bajo el Bourne Again Shell (bash). Los shells C y TC usan un lenguaje de programación similar al lenguaje C.

Page 7: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Sentencias para el Control del flujo del programa

Las estructuras de control de flujo del programa que tenemos disponibles cuando programamos en shell son:

if Case While for until

Page 8: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

FORMATO IFif [ condicion ] then ... else if [ condicion2 ] then ... fi fi

Page 9: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Estructura case

La estructura case del Bourne Shell es una estructura parecida a la de Pascal: (no así en C, en el que las etiquetas del case actúan como etiquetas de un JMP en ensamblador

La estructura general es:

case valor in expreg1) ... ultimaorden1;; expreg2) ... ultimaorden2;;... ultimaordenn;; esac

Page 10: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Estructura while

La estructura básica para construir bucles.

La sintaxis es:

while orden do ... done

Page 11: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Creación y ejecución de shell scripts simples Para crear un shell script simple, se debe poner líneas

de comando en un fichero, ponles los permisos de acceso apropiados y después ejecuta el fichero.

EJEMPLO :Este es el contenido de un shell script llamado display :

cat display # Este script displaya la fecha, hora, nombre de

# usuario y directorio actual echo "Fecha y hora:" date echo echo "Tu usuario es: `whoami` \\n" echo "Tu directorio actual es: \\c" pwd

Page 12: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

UTILIZAR VARIABLES EN EL SHELL

En la Programación en shell existen las variables, que son nombres simbólicos para zonas de memoria que almacenan datos que nos interesan.

Al contrario que los lenguajes de alto nivel normales, las variables de los guiones no tienen tipo, o quizás sería más apropiado decir que tienen un tipo único y permanente: a todos los efectos se tratan como ristras de caracteres.

Para poder hacer sumas y restas hay una orden especial, la orden expr. Esta orden tiene que recibir cada número u operando como un parámetro independiente, así que devolverá un error si se intenta hacer algo como expr 5+7.

Page 13: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

EJEMPLO DE ASIGNACION DE VARIABLES:

Para asignar un valor a una variable, basta con poner el nombre de la variable seguido de un signo de igual y el valor:

$ variable=valor El nombre de la variable precedido por el carácter $ es el valor de la variable. La mejor manera de examinar el valor es utilizando el comando echo:

$ color=rojo$ echo $colorRojo$ telefono=5552314$ echo $telefono5552314$

Page 14: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

¿Cómo funciona el analizador del intérprete? Como la mayoría de los analizadores de los

lenguajes interpretados, primero realiza algunas sustituciones, al leer la orden, y luego ejecuta la orden que le queda después de las sustituciones.

Las sustituciones hechas por el intérprete de órdenes de UNIX son sustituciones de comillas y sustituciones de variables (lo que vea con un signo dólar que no esté “escapado'').

Según el intérprete en particular, hará algunas sustituciones más, como sustituciones del caracter ~ (que indica el directorio raíz del usuario), los caracteres {}, los caracteres [], etc.

Page 15: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

Dos órdenes útiles: Echo Y Read Dos órdenes bastante útiles para probar algunas

ejemplos con variables son echo y read. La primera se utiliza para mostrar texto por pantalla, y la segunda, como su nombre indica, es para leer del teclado y poner el resultado en una o varias variables.

El funcionamiento de read es el siguiente: lee del teclado una ristra, y va asignando las palabras en orden a cada una de las variables que se le pasen como parámetros, asignando el resto de la ristra a la última variable. Es decir, que si se le pasan tres variables como parámetro, se asigna la primera palabra a la primera variable, la segunda a la segunda variable, y el resto de la ristra leída a la tercera variable.

Page 16: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

EJEMPLO

Por ejemplo: $ read foo bar

Escribo demasiadas palabras $ echo $foo Escribo $ echo $bar demasiadas palabras

Page 17: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

ESCRIBIR FUNCIONES EN EL SHELL Funciones

Uno de las mayores utilidades que posee una shell es el permitirnos crear funciones para realizar tareas repetitivas fácilmente.

Es parecido al que posee cualquier lenguaje de programación, en el cual se agrupan conjunto de comandos y se los llama por un nombre.

Page 18: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

El formato de las funciones es el siguiente: nombre_funcion(){ primero_a_realizar segundo_a_realizar}

Estas funciones pueden ser definidas en cualquier lugar, incluso en la misma línea de comandos.

Como en la programación, donde los límites entre las funciones y los procedimientos esta dada de acuerdo a la función que se esta cumpliendo, en el caso de las funciones del shell varía de acuerdo donde se encuentren guardadas

Page 19: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

DISPONIBILIDAD DE FUNCIONES

Una forma de hacer que queden disponibles en forma permanente es incorporarla en el archivo de inicio del shell, el .bash_profile, en el cual se pondrá la función.

De esta forma podremos seguir utilizándola dado que será cargada en memoria cada vez que ejecute el shell.

Page 20: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

EJEMPLO

[shrek@pantano:~]$ que_tal()> {> echo "Hola $1, como estás?“> }[shrek@pantano:~]$ que_tal shrekHola shrek, como estás?

Page 21: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO

DESCRIPCIÓN DEL EJEMPLO

Primero se nombra a la función, seguida de un par de paréntesis "( )" indica al shell que deberá ser tomado como una función.

Inmediatamente después de los paréntesis se abrirá una llave "{", indica que comienzan los comandos de la función.

Al terminar se cierra la llave "}". El otro punto es el reemplazo que efectúa el shell

de las variables. La variable se asigna directamente y es un número que vendrá después del signo "$".

Indica el número del argumento de que tomara su valor y que es dado al invocar a la función.

En este caso su valor pasa a ser "shrek".

Page 22: MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO