EJERCICIOS

Anuncio
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).
Descargar