EJERCICIOS 1) Escribir un script (while.sh) que muestre una lista de números del 1 al 10 usando un blucle while. Hacer lo mismo, con un bucle for. (for.sh) 2) Hacer un script que muestre información sobre los parámetros del programa. (params.sh) 3) Crear una librería (lib.sh) que contenga tres funciones para mostrar un mensaje recibido como parámetro. A continuación se muestran los detalles de estas funciones: a. error: muestra el mensaje en rojo negrita b. infor: muestra el mensaje en azul negrita c. success: muestra el mensaje en verde negrita tupt setaf 1 = ROJO tput setaf 2 = VERDE tput setaf 4 = AZUL tput bold = NEGRITA tput sgr 0 = RESTABLECER VALOR POR DEFECTO 4) Hacer un script que borre un archivo o directorio pasado como parámetro. Si el parámetro es un directorio, se borrarán todos los archivos y directorios que contenga. (borrar.sh) 5) Hacer un script que reciba como parámetro el nombre de un archivo y muestre si existe o no, y los permisos que el usuario que ejecuta el script tiene sobre él (permisos.sh). NOTA: se puede saber usando la orden TEST. 6) Reescribir el comando “cp” (cp.sh), mostrando un error si el comando falla, o mostrando un mensaje de éxito en otro caso (hacer uso de la librería creada en el anterior ejercicio, lib.sh). 7) Escribir un script que permita elegir entre 3 opciones: ver un listado del directorio actual, mostrar los usuarios conectados o salir del programa. 8) Hacer un script que haga una copia de seguridad (tar -czf) de la carpeta personal del usuario que ejecuta el script, y guarda el resultado en la carpeta /tmp , con el nombre de archivo (fecha)_backup.tar.gz Ampliación del ejercicio 8 (Para aquellos que quieran saber más sobre el tema, es totalmente opcional): Instalar el servidor de correo “mutt”, en caso de que no esté ya instalado. Ver el manual para el envío de correos con ficheros adjuntos, y enviar un script que hayáis hecho a vuestro correo. 9) Escribir un script que muestre los permisos de los archivos y directorios pasados como parámetro. Posteriormente, mostrar otro listado con el tamaño que ocupan en caso de ser archivos (que sea legible, en KB, MB, etc.) 10) Escribir un programa que muestre el contenido del fichero de usuarios (situado en /etc/passwd) o el contenido del fichero de contraseña (situado en /etc/shadow, sin permiso de lectura, por lo que será requisito imprescindible que el script sea ejecutado por root) Ejemplo de llamadas válidas al programa: Mostrar fichero - tipo contraseñas - tipo usuarios 11) Mostrar todos los archivos de tu directorio particular (y subdirectorios) que tengan premisos de ejecución para el usuario, grupo y otros usuarios (usar grep para ello, no TEST esta vez). 12) Mostrar el nombre de los archivos y directorios presentes en tu directorio particular (el listado se debe obtener con ls –l, y formatear con algún comando de los vistos en clase) 13) Usando como fuente el archivo /etc/passwd, mostrar: a. Los nombres de todos los usuarios en el sistema, y guardarlos en el fichero usuarios.txt b. Los nombres seguidos del ID (separados por una coma) de todos los usuarios. c. Lo mismo que en el punto “a.”, pero sólo para aquellos usuarios que tengan en home su directorio personal d. Mostrar los nombres de todos los usuarios separados con un espacio (el salto de línea se puede especificar con el caracter \n) 14) Usando el fichero datos.txt, obtener: a. Todas las líneas que contengan la cadena “gato” b. Todas las líneas que contengan la palabra “atun”, con dos o más n. c. Obtener todas las palabras que contengan la cadena “atun” (completa) d. Obtener todas las palabras “gatas” o “atas” 15) Mostrar todos los procesos que no estén asociados a ningún terminal (procesos TTY es “?”). Mostrar únicamente el ID del proceso, y guardarlo en un fichero de nombre procesos.txt 16) Mostrar un listado de todos los usuarios regulares del sistema (aquellos cuyo ID empieza a partir de 1000), e indicar si están o no conectados. 17) Escribir un scritp (chat.sh) que permita establecer una charla interna (en el mismo servidor) de dos usuarios conectados a través de terminales. Se especificará un nombre de usuario, el programa detectará si está o no conectado, y en caso de estarlo comenzará la charla, enviando los mensajes a los dispositivos especiales /dev/ptsX. Usar los comandos: who, echo, cut, grep, tr.Grado de dificultad: ALTA, os va a llevar varias horas de trabajo, seguramente).