Sei sulla pagina 1di 5

Ingeniería de Sistemas Docente: Ing.

Rodrigo Tufiño

SISTEMAS OPERATIVOS II Período Lectivo: 52

FORMATO DE GUÍA DE PRÁCTICA DE LABORATORIO / TALLERES / CENTROS DE SIMULACIÓN –


PARA DOCENTES

CARRERA: SISTEMAS ASIGNATURA: SISTEMAS OPERATIVOS II


PRACTICA: 03 TÍTULO: PROGRAMACIÓN SHELL
OBJETIVO:
• Mejorar las destresas del estudiante para programar sobre el Shell de Bourne
PRE REQUISITOS:
a) Sistema operativo GNU/Linux con Shell de Bourne instalado (BASH)
INSTRUCCIONES: 1. Revisar el contenido teórico y el ejemplo que se adjunta en los anexos
2. Realizar los ejercicios planteados en las actividades de la práctica.
3. Generar un informe con todos los pasos, ejecuciones y resultados de los
ejercicios
4. Profundizar los conocimientos mediante el uso de Internet como herramienta de
investigación.
ACTIVIDADES A DESARROLLAR:
Dar una solución para cada uno de los ejercicios planteados a continuación:

1. Crear un script que permita listar SOLO los archivos de un directorio (donde sea ejecutado el
script), adicionalmente despliegue el nombre del usuario y el path absoluto de los archivos.
2. Definir un script que cuente el número de líneas de un archivo provisto como parámetro (Ej: $
bash ejercicio2.sh archivo.txt).
3. Crear un script con cuatro funciones (métodos), imprimir un mensaje y preguntar al usuario que
función desea ejecutar:
a) Función “hola”: pregunta al usuario su nombre y lo imprime.
b) Función “tiempo”: imprime el año, mes, día, hora, minuto y segundo actual
c) Función “nacimiento” pregunta al usuario el año de nacimiento e imprimir su edad actual.
d) Función “salir”.
4. Mediante el uso de arreglos (vectores), simular una tabla de ruteo donde el array tiene la IP y
nombre de un host, por ejemplo [192.168.1.45] = ”máquina de juan”. Ingrese la dirección IP con su
respectivo host, en la consola el usuario ingresa como parámetro la dirección IP, el programa debe
retornar la IP y el nombre de la maquina a quien le pertenece.
5. Crear un script utilizando el lazo de repetición WHILE, ingresar nombres a un vector, indicar la
posición actual en la que se va guardando cada nombre, una vez que el usuario ya no quiera
ingresar ninguno más, imprimir los nombres que se han almacenado en dicho vector.
6. Realizar un programa con CASE, el cual permita realizar dos acciones:
a) -e Editar un archivo (vi) y
b) -v Ver un archivo con (cat)
Se debe ingresar dos parámetros $ bash ejercicio5.sh opcion archivo
7. Crear un script que permita realizarlas operaciones básicas de (-s) suma, (-r) resta, (-m)
multiplicación y (-d) división, ingresando en la línea de comando los valores y la opción de
operación que se desea realizar. Tomar en cuenta la división para cero y desplegar un mensaje en
caso de ser necesario, también que los números ingresados no sean iguales y desplegar un
mensaje. Se debe ingresar dos números como parámetros. El script debe ejecutarse de la
siguiente manera: $ bash ejercicio6.sh +s 8 9
8. Crear un script que permita recibir como parámetro un archivo de texto y cambie las líneas impares
en minúsculas y las líneas pares en mayúsculas. El archivo debe ser ingresado como parámetro y

Resolución CS N° 076-04-2016-04-20
Ingeniería de Sistemas Docente: Ing. Rodrigo Tufiño

SISTEMAS OPERATIVOS II Período Lectivo: 52

FORMATO DE GUÍA DE PRÁCTICA DE LABORATORIO / TALLERES / CENTROS DE SIMULACIÓN –


PARA DOCENTES

la salida solamente debe ser mostrada en la pantalla.


9. Crear un script que cuente el número de directorios, el número de ficheros, y el número de ficheros
más grande que 524Kbytes, especifique el directorio pasado como parámetro. Ej: $ bash
ejercicio8.sh /home/laboratorio
10. Crear un script que permita desplegar el nombre, el directorio raiz (home) y el tamaño de cada
usuario del sistema Utilizar el archivo /etc/passwd para obtener los usuarios. Si un usuario no
dispone de directorio, no listarlo.
11.
RESULTADOS OBTENIDOS:
1. Mayor destreza para programar sobre el Shell de Bourne.
CONCLUSIONES:
1. Generar al menos dos conclusiones del trabajo realizado.
REFERENCIAS:

Docente / Técnico docente:

Firma: ___________________

Resolución CS N° 076-04-2016-04-20
Ingeniería de Sistemas Docente: Ing. Rodrigo Tufiño

SISTEMAS OPERATIVOS II Período Lectivo: 52

ANEXO

SHELL es un programa que actúa como una interface entre el usuario y el sistema de UNIX, permitiendo ejecutar
comandos para ejecutarlos en el sistema operativo.
El re direccionamiento de un archivo usa < y >, una tubería | y una salida para un subproceso con $(…), en conjunto con
la implementación de los detalles que son creador por uno mismo, UNIX es un lenguaje de programación de alto nivel.
UNIX es modular, se tiene diferentes tipos de Shell en uso, la mayoría de ellos se deriva de Bourne Shell.
Nombre del SHELL Poco de historia
sh (Bourne) Es el Shell original
csh, tcsh y zsh Es el C Shell creado por Bill Joy, probablemente es el segundo más popular luego de bash.
Es un elemento de Linux, del proyecto GNU. Bourne Again Shell, tiene la ventaja de que el código
bash
es libremente disponible.
rc Es un C que un csh, también pertenece al GNU Project.

En muchos de los sistemas Linux, el comando /bin/sh no es nada más que un link al actual Shell en uso. En varios
sistemas de Linux está enlazado con /bin/bash es decir el bash Shell.

Se puede revisar en el sistema que Shell se tiene con el comando:

ls -l /bin/sh

Para saber la versión del bash:

/bin/bash -version

$BASH_VERSION

PARA CREAR SCRIPTS TOMAR EN CUENTA

Siempre la primera línea debe llevar #!/bin/sh significa que el script siempre se va a ejecutar con
BASH en vez de otro Shell.

Se lo puede crear con vi o con nano:

vi ejemplo.sh

 Para editar presione la tecla esc.

 Presionar dos puntos “:”.

 Finalmente, ingresar los comandos wq para guardar y salir.

nano ejemplo.sh

 Guardar cambios presionando ctrl+x.

Resolución CS N° 076-04-2016-04-20
Ingeniería de Sistemas Docente: Ing. Rodrigo Tufiño

SISTEMAS OPERATIVOS II Período Lectivo: 52

 Confirmar la modificación con la letra y.

 Escribir los cambios presionando enter.

Cabe mencionar que se necesita permisos de ejecución.


chmod +x ejemplo.sh

Existen tres maneras de ejecutar los programas en Shell.


1) ./ejemplo.sh
2) sh ejemplo.sh
3) bash ejemplo.sh

A CONTINUACIÓN UN EJEMPLO

1. Crear script.

vi ejemplo.sh

#!/bin/sh

#ejemplo.sh

#MUestra datos relativos al usuario que lo invoca

echo "MI INFO"

echo "Nombre: " $LOGNAME

echo "Direccion: " $HOME

echo -n "Fecha: "

date

echo

# fin ejemplo.sh

2. Dar permisos de ejecución

chmod +x ejemplo.sh

3. Ejecutar

Resolución CS N° 076-04-2016-04-20
Ingeniería de Sistemas Docente: Ing. Rodrigo Tufiño

SISTEMAS OPERATIVOS II Período Lectivo: 52

./ejemplo.sh

4. Resultado

[laboratorio12@localhost Escritorio]$ ./ejemplo.sh


MI INFO
Nombre: laboratorio12
Direccion: /home/laboratorio12
Fecha: mar oct 3 08:36:01 -05 2017

Resolución CS N° 076-04-2016-04-20

Potrebbero piacerti anche