Muy buenas a todos, tengo un examen dentro de poco de shell script y lo llevo un poco pez, si me pudierais echar una mano con algunos o si sabéis hacer alguno de ellos para poder estudiarlos bien me sería de gran ayuda. Muchas gracias a todos. Dejo aquí la relación de ejercicios.
Ejercicio 1: Realice un programa de shell que envíe un mensaje a cada uno
de los usuarios que están conectados en ese momento al sistema. El mensaje
debe ser leído desde un archivo de texto pasado como argumento en la
línea de órdenes. (comprobar si el número de parámetros es correcto).
Ejercicio 2: Realizar un programa shell que cree el directorio “usuarios” si
no existe y dentro de él un directorio para cada usuario con cuenta en el sistema,
el nombre del directorio coincidirá con el del usuario. Dichos directorios
deberán tener permisos de lectura y escritura sólo para su usuario correspondiente.
Ejercicio 3: Comparar el tamaño de dos archivos pasados como argumentos
al programa e indicar cuál de ellos es más grande mostrando la información
del tamaño de cada uno de ellos.
Ejercicio4: Diseñar un programa ShellScript, que permita eliminar procesos tal y
como lo hacíamos con la orden kill. La ventaja de este programa es que no necesitamos
conocer el PID del proceso(s) que queramos eliminar. En su lugar, utilizaremos
únicamente el nombre del proceso. Para invocar al programa, lo haremos por
su nombre, mata, y a continuación le pasaremos como parámetro los procesos
que vamos a eliminar. Si no le pasamos ningún parámetro, el programa visualizará
por pantalla una pequeña ayuda, así como información relacionada con la persona
que lo ha escrito.
Ejercicio5: Adivina, adivinanza. El objetivo de este ejercicio es diseñar un
programa ShellScript, que genere un número pseudoaleatorio a partir de la
hora del sistema. El número propuesto por el usuario será introducido desde
el teclado, y si es mayor que el generado se visualizará el mensaje indicando
que es un número alto, y si es menor que el generado se visualizará un mensaje
indicando que se trata de un número bajo. De este modo, el usuario puede
ir acotando el número clave hasta que lo adivine. Cuando el número sea
acertado, se visualizará un mensaje indicando el número de intentos que hemos
necesitado. Todos los mensajes que se muestren al usuario deben ser utilizando
los cuadros de diálogo disponibles mediante interfaz gráfica.
Ejercicio6: Como sabemos, cuando en UNIX borramos un archivo es imposible
recuperarlo. A continuación se presentan dos utilidades que nos permiten borrar
y recuperar archivos, respectivamente. A estos programas los llamaremos borra
y recupera. La forma de operar del programa borra será la siguiente: cuando deseemos
eliminar un archivo, en lugar de invocar a la orden rm, el archivo será
enviado (movido) a un directorio oculto que denominaremos .papelera. En este
directorio se van a almacenar todos y cada uno de los archivos que hayamos
eliminado. Además, borra admitirá dos opciones, con una de ellas nos mostrará
el contenido completo de la papelera, y con la segunda, todos los archivos
de la papelera serán eliminados definitivamente.
!!!!! Ejercicios4
El programa para recuperar archivos sólo admitirá una opción, con la cual recuperaremos
todo el contenido de la papelera. Este shell script se utiliza para recuperar
archivos que estén guardados en la papelera. Estos archivos deben ser
pasados como parámetro a recupera. Si desea recuperar todos los archivos de
la papelera, tiene que pasarle la opción -t
Ejercicio7: En ocasiones resulta útil disponer de una herramienta que compruebe
que todos los usuarios tienen un directorio de inicio (home) e informe del espacio
ocupado por cada usuario en el sistema de archivos. En primer lugar analizaremos
todas las entradas del archivo /etc/passwd y nos quedaremos con
aquellas cuyo UID sea mayor que 500, ya que éste es el primer UID que asigna
Linux a los usuarios regulares. Para otros sistemas simplemente modificaremos
este valor. Este análisis previo lo haremos utilizando un filtro basado en awk.
Una vez obtenido el nombre de los usuarios, comprobaremos uno por uno si tienen
directorio de inicio en /home. En el caso de que no lo tengan se mostrar un
mensaje con una ventana de cuadro de diálogo en la interfaz gráfica, y en caso
contrario se mostrará un mensaje con el tamaño en KiloBytes de espacio ocupado
por el directorio.