Herramientas de usuario

Herramientas del sitio


clase:daw:si:2eval:tema13

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:daw:si:2eval:tema13 [2021/01/29 10:32]
admin [grep]
clase:daw:si:2eval:tema13 [2021/02/09 09:47] (actual)
admin [grep]
Línea 1: Línea 1:
 ====== 13. Scripts avanzados en Linux ====== ====== 13. Scripts avanzados en Linux ======
 +En este temas vamos a ver usa serie de órdenes que se usan concatenadas usando una tubería ''|''.
 +
 +Mas información:
 +  * [[https://www.linuxadictos.com/tuberias-lo-que-necesitas-saber-para-empezar-a-usarlas-en-gnu-linux.html|Tuberías: lo que necesitas saber para empezar a usarlas en GNU/Linux]]
  
  
Línea 17: Línea 21:
 </sxh>  </sxh> 
  
 +  * Expresiones regulares
 +
 +^ Expresion ^ Significado ^ Ejemplo ^ Explicación Ejemplo ^
 +| ''^'' | Inicio de linea | ''^pepe'' | Que empiece con pepe
 +| ''$'' | Final de línea | ''juan$'' | Que acaba con juan
 +| ''[abc]'' | Algunos de los caracteres que hay dentro | ''[aeiou]'' | Que contenga alguna vocal |
 +| ''[a-z]'' | Algunos de los caracteres que hay dentro del rango | ''[a-z]'' | Que contenga alguna letra entre a letra "a" y la letra "z" |
 +| ''.'' | Cualquier caracter | ''p.p'' | Que tenga una p , cualquier cosa y otra p |
 +| ''[^a]'' | Que no sea al caracter de dentro | ''p[^a]p'' | Que tenga una p , que no sea una "a" y otra p |
 +| ''*'' | Que se repite de 0 a infinitas veces | ''pa*p'' | Que tenga una p , cero o infinitas "a" y otra p |
 +| ''+'' | Que se repite de 1 a infinitas veces | ''pa+p'' | Que tenga una p , 1 o infinitas "a" y otra p |
 +| ''{n,m}'' | Que se repite entre n y m veces | ''pa{3,10}p'' | Que tenga una p , entre 3 o 10 "a" y otra p |
 +| ''{n}'' | Que se repite entre n veces | ''pa{3}p'' | Que tenga una p , tres "a" y otra p |
 +| ''\s'' | El carácter de un separador, sea una espacio o un tabulador | ''p\sp'' | Que tenga una p , un espacio o un tabulador y otra p |
 ===== cut ===== ===== cut =====
  
Línea 80: Línea 98:
  
 </note> </note>
 +===== head =====
 +Muestra las primeras lineas de un fichero. Por defecto son las 10 primeras.
 +
 +\\
 +
 +  * Mostrar solo las primeras 10 líneas de un fichero
 +<sxh bash>
 +cat fichero | head 
 +</sxh>
 +
 +\\
 +
 +  * Mostrar solo las primeras 13 líneas de un fichero
 +<sxh bash>
 +cat fichero | head -13
 +</sxh>
 +
 +\\
 +
 +===== tail =====
 +Muestra las últimas lineas de un fichero. Por defecto son las 10 últimas.
 +
 +\\
 +
 +  * Mostrar solo las últimas 10 líneas de un fichero
 +<sxh bash>
 +cat fichero | tail 
 +</sxh>
 +
 +\\
 +
 +  * Mostrar solo las últimas 13 líneas de un fichero
 +<sxh bash>
 +cat fichero | tail -13
 +</sxh>
 +
 +\\
 +
 +
 +
 ===== sed ===== ===== sed =====
  
Línea 129: Línea 187:
  
 ==== Ejercicio 3 ==== ==== Ejercicio 3 ====
-Haz un Script llamado "grupo_usuario.sh" que dado el "id" de un usuario muestre el nombre de su grupo principal 
- 
- 
-==== Ejercicio 4 ==== 
 Haz un script llamado ''cache_cpu.sh'' que muestre el tamaño de la cache del procesador en MB y GB Haz un script llamado ''cache_cpu.sh'' que muestre el tamaño de la cache del procesador en MB y GB
  
Línea 138: Línea 192:
  
  
-==== Ejercicio ====+==== Ejercicio ====
 Haz un Script llamado "memoria.sh" que muestre lo siguiente por pantalla: Haz un Script llamado "memoria.sh" que muestre lo siguiente por pantalla:
  
Línea 149: Línea 203:
   La memoria libre del sistema es de  69 MB   La memoria libre del sistema es de  69 MB
  
-==== Ejercicio ====+==== Ejercicio ====
 Haz un script llamado "numusers.sh" que muestre por pantalla el número de usuarios del sistema Haz un script llamado "numusers.sh" que muestre por pantalla el número de usuarios del sistema
  
  
- +==== Ejercicio ====
-==== Ejercicio 7 ==== +
-ps y kill +
- +
-  * Muestra todos los procesos del sistema +
-  * Ejecuta la orden "less" sobre un fichero cualquiera pero no acabes la orden +
-  * En otra terminal muestra los procesos y verás que está el proceso "less" +
-  * Haz que solo se muestre el pid y nombre del proceso de "less" +
-  * Ahora mata el proceso. +
- +
-==== Ejercicio 8 ====+
 Haz un Script que muestre el siguiente mensaje: Haz un Script que muestre el siguiente mensaje:
  
Línea 172: Línea 216:
  
    
-==== Ejercicio ==== +==== Ejercicio ==== 
-Haz un Script llamado "process_info.sh" que dado el pid de un proceso muestre **únicamente** la orden de ese pid+Haz un Script llamado "process_info.sh" que dado el pid de un proceso muestre **únicamente** el comando que lanzó el proceso de ese pid
  
-==== Ejercicio 10 ====+==== Ejercicio ====
 Haz un Script llamado "pcpu.sh" que dado el PID de un proceso muestre el siguiente texto: Haz un Script llamado "pcpu.sh" que dado el PID de un proceso muestre el siguiente texto:
   El % de uso del proceso con PID 3456 es 45   El % de uso del proceso con PID 3456 es 45
Línea 181: Línea 225:
  
  
-==== Ejercicio 11 ====+==== Ejercicio ====
 Haz un Script que dado un PID de un proceso: Haz un Script que dado un PID de un proceso:
  
Línea 190: Línea 234:
 Si la prioridad (nice) es mayor que 0 que muestre: Si la prioridad (nice) es mayor que 0 que muestre:
   Prioridad baja   Prioridad baja
 +
 +Deberás validar que se le pasa un argumento al script.
 +
 +==== Ejercicio 10 ====
 +Haz un Script llamado "info.sh" 
 +
 +Tendrá un único parámetro que deberá valer alguno de los siguientes:
 +  * ''TAMANYO_MEMORIA_RAM'': el programa deberá mostrar el tamaño de la RAM en MB
 +  * ''TAMANYO_MEMORIA_LIBRE_RAM'': el programa deberá mostrar la cantidad de memoria libre de la RAM en MB
 +  * ''TAMANYO_CACHE_CPU'':  el programa deberá mostrar el tamaño de la cache de la CPU en MB
 +
 +
 +Deberás validar que se le pasa un argumento al script.
 +
 +==== Ejercicio 11 ====
 +Haz un Script llamado "crear_home.sh" que dado el login de un usuario busque  cual es su carpeta home y:
 +  * Cree sea carpeta
 +  * Que ese usuario tenga permisos sobre esa carpeta
 +
 +Deberás validar que se le pasa un argumento al script.
 +
  
 ==== Ejercicio 12 ==== ==== Ejercicio 12 ====
-Haz un script llamado "buscar.shque acepte como argumento el nombre de un fichero a buscar. La orden buscará ese fichero por todo el disco.+Modifica el ejercicio anterior para añadir un segundo parámetro optativo que sea "KB", si está este segundo parámetro, la información de mostrará en "KB"
  
-También ejecuta el Script de forma que toda su salida por consola se guarde en el fichero "salida.txt"  
-   
  
 +==== Ejercicio 13 ====
 +Haz un Script llamado "grupo_usuario.sh" que dado el "id" de un usuario muestre el nombre de su grupo principal
 +
 +
 +Deberás validar que se le pasa un argumento al script.
 +
 +
 +==== Ejercicio 14 ====
 +Dado un fichero llamado ''facturas.txt'' con el siguiente formato:
 +
 +  NumFactura,fecha_factura,base_imponible,iva,loginCliente
 +  1,2019/09/01,1300,21,cdiaz
 +  2,2018/03/21,700,13,jcano
 +  3,2020/01/15,700,21,vperez
 +
 +Y suponiendo que en linux existen los usuarios a los que hace referencia ''facturas.txt''
 +
 +Crea un script llamado "info_facturas.sh" que haga lo siguiente:
 +  * El primer parámetro siempre será el número de la factura
 +  * El segundo parámetro puede valer alguno de los siguientes
 +    * ANYO_FACTURA : Mostrará el año de la factura
 +    * BASE_IMPONIBLE: Mostrará el valor de la base imponible
 +    * IMPORTE_TOTAL: Mostrará el valor de la base imponible mas el % de IVA de la base imponible.
 +    * NOMBRE: Mostrará el nombre completo del cliente. El nombre se debe sacar del fichero ''/etc/passwd''
 +
 +Deberás validar que se le pasan 2 argumentos al script y que el segundo de ello tiene un valor válido.
      
-==== Ejercicio 13 (OPTATIVO) ====+==== Ejercicio 15 (OPTATIVO) ====
 Servidor web con la calidad del aire de la ciudad Servidor web con la calidad del aire de la ciudad
  
Línea 220: Línea 309:
   * Desde Windows navega al servidor y veras los datos   * Desde Windows navega al servidor y veras los datos
  
-==== Ejercicio 14 (OPTATIVO)  ====+==== Ejercicio 16 (OPTATIVO)  ====
 Modifica el ejercicio anterior para mostrar también la gráfica del Óxidos de nitrógeno (NOx) y dióxido de nitrógeno  (NO<sub>2</sub>) Modifica el ejercicio anterior para mostrar también la gráfica del Óxidos de nitrógeno (NOx) y dióxido de nitrógeno  (NO<sub>2</sub>)
      
 {{:clase:daw:si:2eval:calida_aire.png?600|}} {{:clase:daw:si:2eval:calida_aire.png?600|}}
  
-==== Ejercicio 15 (OPTATIVO)  ====+==== Ejercicio 17 (OPTATIVO)  ====
 Haz un Script, llamado calida_aire_png.sh que generará la gráfica de un parámetro de la calidad del aire. Haz un Script, llamado calida_aire_png.sh que generará la gráfica de un parámetro de la calidad del aire.
 La gráfica debe mostrar el nombre de la zona, lo que está mostrando y las unidades. (tal y como hemos visto en las anteriores gráficas) La gráfica debe mostrar el nombre de la zona, lo que está mostrando y las unidades. (tal y como hemos visto en las anteriores gráficas)
clase/daw/si/2eval/tema13.1611912734.txt.gz · Última modificación: 2021/01/29 10:32 por admin