Sol

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

---- ## donde_esta.

txt ## ---Hacer un shell-script que busque la presencia del comando pasado como argumento en alguno de los directorios referenciados en la variable $PATH, sealando su localizacin y una breve descripcin del comando caso de existir su pgina man.

---- ## estadisticas_dir.txt ## ---Programe un script llamado 'estadistica_dir.sh' que realice un estudio de todo el arbol de directorios y ficheros partiendo del directorio pasado como parmetro de forma que obtengamos la siguiente informacin: Nmero Nmero Nmero Nmero Nmero Nmero de de de de de de ficheros ficheros ficheros ficheros ficheros ficheros en en en en en en los los los los los los cuales disponemos de permiso de lectura = cuales disponemos de permiso de escritura = cuales disponemos de permiso de ejecucin = cuales carecemos de permiso de lectura = cuales carecemos de permiso de escritura = cuales carecemos de permiso de ejecucin = encontrados encontrados encontrados encontrados encontrados = = = = =

Nmero de ficheros regulares Nmero de directorios Nmero de dispositivos de bloques Nmero de dispositivos de carateres Nmero de fifos

---- ## gen_menu2.txt ## ---Programar un shell-script que admita como argumentos parejas formadas por 'comando' y 'descripcion' y que construya con todo ello un menu de opciones donde cualquiera de los comandos pueda ser ejecutado seleccionando la descripcion correspondiente. Es decir si dicha shell-script se llamara 'gen_menu2.sh' un ejemplo de uso sera: ./gen_menu2.sh \ Listar ls \ 'Quien est conectado' who \ 'Fecha actual' date \ Ocupacion du \ 'Quien soy' whoami \ 'Memoria libre' free \ 'Calendario' cal \ 'Nombre mquina' hostname Con ello se obtendra un menu de la forma: 0 1 2 3 4 Terminar Listar Quien est conectado Fecha actual Ocupacion

5 6 7 8

Quien soy Memoria libre Calendario Nombre mquina

Elija opcin.

---- ## grafica.txt ## ---Realizar un shell-script que reciba como argumentos numeros comprendidos entre 1 y 75. Dara error en caso de que algun argumento no este dentro del rango y terminar sin hacer nada. En caso contrario generar una linea por cada argumento con tantos asteriscos como indique su argumento.

---- ## incr.txt ## ---Hacer un shell-scritp que utilice dos funciones 'incr1()' e 'incr2()' las cuales ejecutaran un simple bucle iterando 1000 veces. La funcin 'incr1()' solo usara un contador IND1 que sera incrementado de uno en uno usando un comando de tipo 'let' y la funcion 'incr2()' solo usara un contador IND2 que se incrementar de uno en uno calculando su siguiente valor mediante el uso del comando expr. Hacer una tercera funcin 'PruebaDiezSegundos()' que aceptar como argumento el nombre de la funcion de prueba (incr1 o incr2). Primero informara del tiempo real, de cpu de usuario y de cpu del sistema que consume dicha funcin y luego deber ejecutar dicha funcin tantas veces sea posible en el transcurso de 10 segundos (aproximadamente, basta usar date '+%s') obteniendose el nmero de veces que se ejecuto en esos diez segundos. Compare los resultados obtenidos con ambas funciones y explique los resultados.

---- ## lista_fich.txt ## ---Hacer un shell-script que acepte como argumentos nombres de ficheros y muestre el contenido de cada uno de ellos precedido de una cabecera con el nombre del fichero

---- ## media.txt ## ---Hacer un shell-script que calcule la media aritmtica de todos los argumentos pasados como parmetros con una precisin de 40 digitos decimales despues de la coma.

---- ## mi_banner.txt ## ---Localice en su sistema la utilidad 'banner' para consola. Puede haber mas de una utilidad para esto y algunas estn pensadas para su uso con impresora. Nos interesa la utilidad 'banner' para terminal de forma que el comando 'banner hola' genere la siguiente salida: # # # # ###### # # # # # # #### # # # # #### # # # # # # # # # ###### ## # # # ###### # # # # #

Partiendo de esta utilidad realice un shell-script 'mi_banner.sh' que admita hasta tres argumentos de tamao mximo de cuatro caracteres tal que el comando './mi_banner.sh hola jose luis' obtenga: ooooooooo oooooooo _/ _/ _/_/_/_/ _/ _/_/ ooooooo _/ _/ _/ _/ _/ _/ _/ oooooo _/_/_/_/_/_/ _/ _/ _/ _/ _/ ooooo _/ _/ _/ _/ _/ _/_/_/_/_/_/ oooo _/ _/ _/ _/ _/ _/ _/ ooo _/ _/ _/_/_/_/ _/_/_/_/_/_/ _/ _/ oo ooooooooo oooooooo _/ _/_/_/_/ _/_/_/_/ _/_/_/_/_/_/ ooooooo _/ _/ _/ _/ _/ oooooo _/ _/ _/ _/_/_/_/ _/_/_/_/_/ ooooo _/ _/ _/ _/ _/ oooo _/ _/ _/ _/ _/ _/ _/ ooo _/_/_/_/ _/_/_/_/ _/_/_/_/ _/_/_/_/_/_/ oo ooooooooo oooooooo _/ _/ _/ _/ _/_/_/_/ ooooooo _/ _/ _/ _/ _/ oooooo _/ _/ _/ _/ _/_/_/_/ ooooo _/ _/ _/ _/ _/ oooo _/ _/ _/ _/ _/ _/ ooo _/_/_/_/_/_/ _/_/_/_/ _/ _/_/_/_/ oo

---- ## mi_cal1.txt ## ---Realizar un shell-script 'mi_cal1.sh' que utitilzando la salida del comando 'cal' filtre su salida para resaltar entre corchetes el da actual. Ponga atencin a los das a principio de lnea, los das a final de lnea. La salida para el da ./mi_cal1.sh S [5] 12 May 2002 M Tu 6 13 7 14 W 1 8 15 Th 2 9 16 F 3 10 17 S 4 11 18 5 de Mayo de 2002 debera ser la siguiente:

19 26

20 27

21 28

22 29

23 30

24 31

25

No es un ejercicio trivial. Necesitar hacer un filtrado en varios pasos. Utilice alguna combinacin de filtros sed encadenados con pipe. Para poder comprobar que el programa funciona correctamente para los distintos das hacer que en caso de pasar un argumento este ser considerado el da del mes. ./mi_cal1.sh 1 S 5 12 19 26 May 2002 M Tu 6 13 20 27 7 14 21 28 W [1] 8 15 22 29 Th 2 9 16 23 30 F 3 10 17 24 31 S 4 11 18 25

---- ## mi_cal2.txt ## ---Basandose en el ejercicio anterior realizar una modificacin de 'mi_cal1.sh' que llamaremos 'mi_cal2.sh' que en lugar de encadenar varios comandos sed con pipes crear un fichero temporal '/tmp/$0.$$.sed' para ser usar mediande la opcin -f de sed. Ambos scrits debern producir idntico resultado.

---- ## mi_logrotate.txt ## ---Asumiremos que tenemos en un directorio una serie de ficheros de log que van creciendo de forma ilimitada con el uso regular de ciertos programas. Realizar un shell-script que actue sobre los ficheros con nombre tipo '*.log' del directorio actual de forma tal, que si alguno de ellos supera en tamao las 2000 lineas, dejar solo las ltimas 1000 lneas del fichero y las restantes sern guardadas en un directorio old_rot en formato comprimido. En dicho directorio habr que conservar en formato comprimido no solo la ltima porcin eliminada del original, sino las cuatro ltimas porciones eliminadas. Para ello ser necesario ir rotando los nombres de estos ficheros comprimidos incorporando en los mismos un digito de secuencia. (parte eliminada) --> *.log.rot1.gz --> *.log.rot2.gz --> *.log.rot3.gz --> *.log.rot4.gz --> eliminado El programa durante su ejecucin ir mostrando los ficheros encontrados y sealar aquellos que por su tamao sea necesario rotar.

---- ## ocupa_tmp_log.txt ## ----

Obtiene la ocupacion de los directorios presentes en el sistema cuyo nombre sea de la forma '*tmp' o '*log', ordenados por orden de ocupacion. Debera mostrar el numero de errores provocados por 'find'. Si se decide usar algzn fichero temporal debera usar el directorio '/tmp' para ello y usar un nombre que contenga el nombre del proceso que lo origino y su pid.

---- ## palabras.txt ## ---Realice un shell-script que admita tres palabras como argumentos y que muestre un mensaje informando de las relaciones de igualdad y desigualdad entre esas palabras. "Las "Son "Son "Son "Son tres son iguales" iguales primera y segunda" iguales primera y tercera" iguales segunda y tercera" las tres distintas"

---- ## piramide.txt ## ---Realice un shell-scrip 'piramide.sh' que admita como argumento un nmero 'N' y que optenga a la salida una serie de 'N' filas de forma triangular. Para ./piramide.sh 12 la salida sera. 01 02 03 04 05 06 07 08 09 10 11 12 02 03 04 05 06 07 08 09 10 11 12

03 04 05 06 07 08 09 10 11 12

04 05 06 07 08 09 10 11 12

05 06 07 08 09 10 11 12

06 07 08 09 10 11 12

07 08 09 10 11 12

08 09 10 11 12

09 10 10 11 11 11 12 12 12 12

---- ## proceso.txt ## ---Hacer un shell-script llamado 'proceso.sh' para ser lanzado en background que como maximo permanecera vivo 30 segundos. Podra ser lanzado varias veces en background y cada vez generara un shell-script distinto 'stop_proceso.sh.' que al ser ejecutado matara el proceso lo origino y despues se borrara a si mismo.

---- ## vigila.txt ## ---Realizar un shell-script que escriba en el fichero '/tmp/usuarios' una linea con la fecha y otra con el nmero de usuarios distintos que estan conectados en ese momento cada dos minutos.

También podría gustarte