[go: up one dir, main page]

0% encontró este documento útil (0 votos)
17 vistas4 páginas

Ejercicios Shell Script

El documento presenta una serie de ejercicios para la creación de scripts en shell, que incluyen la manipulación de archivos, la obtención de información sobre usuarios del sistema y la modificación de permisos. Se requiere la implementación de scripts que realicen tareas específicas, como contar líneas en archivos, listar usuarios, y buscar archivos en directorios. Además, se enfatiza la importancia de la validación de parámetros y la correcta presentación de mensajes de salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas4 páginas

Ejercicios Shell Script

El documento presenta una serie de ejercicios para la creación de scripts en shell, que incluyen la manipulación de archivos, la obtención de información sobre usuarios del sistema y la modificación de permisos. Se requiere la implementación de scripts que realicen tareas específicas, como contar líneas en archivos, listar usuarios, y buscar archivos en directorios. Además, se enfatiza la importancia de la validación de parámetros y la correcta presentación de mensajes de salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

EJERCICIOS

1. Escribe un script que cree 5 archivos con los nombres fichero1.txt, fichero2.txt, ...,
fichero5.txt en el directorio actual.
Realiza 2 versiones: crearArchivo.sh y crearArchivoConArgumentos.sh.
La segunda versión debe recibir los archivos desde línea de comandos.

2. Usando redirecciones de E/S añade el siguiente contenido a los ficheros creados


en el ejercicio anterior: ¡Este es el fichero$i!

3. Añade sin borrar el contenido de los ficheros la siguiente información: Esto es


contenido extra para el fichero$i.

4. Supón que tienes tres archivos de texto archivo1.txt, archivo2.txt, y archivo3.txt.


Escribe un script que imprima cuántas líneas tiene cada archivo.

EJERCICIOS PARTE 2

1. Hacer un shell-script NumeroUsuarios que indique a la salida el número de usuarios


que tiene el sistema. Utilizar para ello el comando getent passwd que vuelca a la salida
estándar la base de datos de usuarios del sistema en formato CSV. El mensaje de salida
debe ser exactamente el siguiente:

El sistema tiene ?????? usuarios.

2. Hacer un shell-script ListaUsuarios que, usando el comando getent passwd, vuelque a


la salida los usuarios del sistema, ordenados por su UID (identificador de usuario).

3. Hacer un shell-script MaxUID que, usando el comando getent passwd, vuelque a la


salida el máximo UID del sistema.

4. Hacer un shell-script UsuariosConShell que, usando el comando getent passwd,


vuelque a la salida la lista de usuarios que tienen el shell indicado. La sintaxis sería:

UsuariosConShell <shell>

El mensaje de salida debe ser exactamente el siguiente:

La lista de usuarios con el shell ???? es:

<usuario1>

<usuario2>

…..

<usuarioN>
5. Hacer un shell-script InfoUsuario que, usando el comando getent passwd, vuelque a la
salida la información de dicho usuario. La sintaxis sería:

InfoUsuario <usuario>

El mensaje de salida debe ser exactamente el siguiente:

Información del usuario <usuario>:

UID: ?????

GID: ?????

Directorio personal: ?????

Intérprete de comandos: ??????

6. Hacer un shell-script InfoUsuarios que, vuelque a la salida la misma información del


ejercicio anterior, pero para varios usuarios. La sintaxis sería:

InfoUsuarios <usuario1> <usuario2> …. <usuarioN>

7. Hacer un shell-script ProcesosUsuario que, usando el comando ps uaxw, vuelque a la


salida solo los procesos del usuario indicado por parámetro. La sintaxis sería:

ProcesosUsuario <usuario>

8. Hacer un shell-script ExisteUsuario que, usando el comando getent passwd, indique si


un usuario pertenece o no al sistema. La sintaxis sería:

ExisteUsuario <usuario>

Los mensajes deberán ser exactamente así:

“El usuario <usuario> no pertenece al sistema” o bien

“El usuario <usuario> pertenece al sistema” sustituyendo <usuario> por el nombre de


usuario

9. Mejorar el shell-script realizado en el ejercicio 5 de forma que, usando el shell-script


realizado en el ejercicio 8, compruebe al principio de su ejecución si existe o no el usuario
indicado por parámetro. En caso de que no exista deberá visualizar un mensaje de error
indicándolo.

NOTA IMPORTANTE: En todos los ejercicios deberá comprobarse que el número de


parámetros es correcto. En caso contrario deberá indicarse el error y notificar al usuario
con un mensaje en pantalla con el uso del shell-script. Por ejemplo:

“El número de parámetros es incorrecto”


“USO: <nombre_shell-script> <argumentos>”

sustituyendo <nombre_shell-script> por el nombre del shell-script en cada caso y


<argumentos> por la lista de argumentos que espere con un nombre autoexplicativo del
argumento y encerrado entre < > si es obligatorio o entre [ ] si es opcional.

EJERCICIOS PARTE 3

Hacer un shell-script CambiaPermisos que cambie recursivamente los permisos de


todas las entradas a partir de una ruta a un directorio indicado por parámetro. La sintaxis
sería:

CambiaPermisos <ruta_directorio>

Cada una de las entradas deberá tratarse de la siguiente forma: si la entrada es un


directorio deberá asignársele los permisos rwxr-xr-x (chmod 755); si la entrada es un
fichero deberá comprobarse si se trata de un fichero ejecutable o no. En caso de ser un
fichero ejecutable deberá asignársele los permisos rwxr-xr-x (chmod 755), en otro caso
deberá asignársele los permisos rw-r--r-- (chmod 644).

NOTA IMPORTANTE: El ejercicio deberá resolverse utilizando el recorrido de directorios


mediante la sentencia for y no se podrá utilizar ningún comando u opción extra que
resuelva el ejercicio de forma automática.

2. Hacer un shell-script BuscaFichero que busque recursivamente los directorios en los


que aparece un fichero a partir de un directorio dado. Tanto el nombre del fichero como el
directorio de partida se indican por parámetro. La sintaxis de la órden sería:

BuscaFichero <nombre_fichero> <ruta_directorio_inicial_busqueda>

El mensaje de salida debe ser exactamente el siguiente:

El fichero ???? se ha encontrado en los directorios:

????????

????????

????????

NOTA IMPORTANTE: El ejercicio deberá resolverse utilizando el recorrido de directorios


mediante la sentencia for y no se podrá utilizar ningún comando u opción extra que
resuelva el ejercicio de forma automática. Para poder resolver el ejercicio se recomienda
utilizar, entre otros, el comando basename.

3. En la primera línea del fichero ventas.csv podrás ver el significado de cada campo.
Implementa un Shell-script llamado VentasFruta que, dada una fruta como argumento,
muestre a la salida los días, EN ORDEN CRECIENTE, que se vendió dicha fruta junto con la
cantidad vendida dicho día. La ruta al fichero CSV también se pasará como parámetro (no
puede ponerse directamente ventas.csv en el código del Shell-script, tiene que funcionar
con cualquier fichero CSV que se indique). La sintaxis de ejecución de este Shell-script es:
VentasFruta <fichero_CSV> <fruta>

La salida del Shell-script deberá ser exactamente como la siguiente:

La fruta ¿??? se vendió los siguientes días:

El día ¿???? se vendieron ¿???? Kg.

El día ¿???? Se vendieron ¿???? Kg.

NOTA IMPORTANTE: El ejercicio deberá resolverse utilizando la sentencia while


combinado con la sentencia read.

También podría gustarte