jueves, 27 de septiembre de 2018

Scripts de Linux XV.

  1. Realiza un guión que me pida el nombre de un grupo, me indique si existe en el sistema, en este caso me muestre el nombre, el GID y los usuario que pertenecen a el.
  2. Tengo un fichero solo con los nombres de los alumnos.Realiza un script que me genere otro fichero con esos nombres en una columna.
  3. Realiza un script que de la lista de ficheros que le pasas solo te muestre los nombres de los ficheros que contienen en su interior una palabra que también pasas en primer lugar. Comprueba que le pasas argumentos y que son ficheros con el permiso oportuno.
  4. Realiza un guión que me muestre tu nombre y 3 apellidos, al revés, es decir 1º el tercer apellido, luego el 2º apellido... .
  5. Realiza un script que me muestre la cadena que le pasas totalmente al revés, letras.
  6. Crea un script que muestre los usuarios del sistema y permita acceder al usuario elegido al sistema.
  7. Diseña un script que busque cualquier fichero que pueda ser modificado por cualquier usuario y guarde una lista de estos fichero con su ruta en el fichero "ficherospeligrosos".
  8. Versión 1:Crea un script que busque todos los archivos que contengan la palabra "hack" en el nombre y los guarde en /root/cuarentena.
  9. Versión 2:Crea un script que busque todos los archivos que contengan la palabra "hack" y los guarde en /root/cuarentena.
  10. Crea un script que me muestre solo el PID del proceso "bash". Utiliza distintos comandos.

miércoles, 19 de septiembre de 2018

Scripts de Linux XIV.

  1. Realiza un guión que me muestre sólo los nombres de los usuarios, sin repetir.
  2. Realiza un script que me muestre un menú que me permita elegir entre sumar, restar, multiplicar, dividir, dos números que pida por teclado. También tendré la opción salir.
  3. Realiza un script que me muestre el contenido de un fichero con las líneas numeradas. No utilizar nl.
  4. Realiza un guión que me cuente las líneas que contiene un fichero. No utilizar wc.
  5. Realiza un script que me diga que si la frase que le paso es palíndroma.

martes, 18 de septiembre de 2018

Procesos en Linux II

Comandos que nos permiten gestionar procesos en Linux. II parte.

Ejecuta los siguientes comandos y analiza los resultados:

  1. time who
  2. 
    
  3. sleep 20; echo han pasado 20 segundos
  4. 
    
  5. uptime
  6. 
    
  7. Lanza el proceso sumas.exe con la máxima prioridad:
  8.   nice -n-20 sumas.exe                 
    
  9. Ejecuta el comando oportuno para comprobar que la prioridad ha sido cambiada:
  10.   ps al
    
  11. Lanza el proceso restas.exe con la mínima prioridad:
  12.   nice -n20 restas.exe
    
  13. Disminuye la prioridad del proceso sumas.exe en 10 puntos.
  14.   renice +10 -p PID (averigua antes el pid)
    
  15. Como consecuencia del excesivo uso de recursos de los procesos del usuario pepe, disminuye en 15 puntos la prioridad de los procesos de pepe.
  16.   renice +15 -u pepe
    
  17. Lista los archivos abiertos al ejecutar tu navegador.
  18.   lsof -p PID (averigua antes el pid)
           lsof -c firefox
    ¿hay diferencias? ¿aparecen el mismo numero de ellos?
    
  19. Lista los ficheros abiertos por un usuario.
  20.   lsof -u alex
    
  21. Analiza la información que se muestra con:
  22.   lsof -i
    
  23. Sácame el pid del proceso "bash".
  24.   pidof bash
    
  25. Haz el ejercicio anterior con otros comandos.

viernes, 14 de septiembre de 2018

Introducción programación shell. Parte IV Comando For.

Comando for:

Ejemplo:

Programa un script que muestre todos los parámetros que pasas, hasta que encuentre una "f", y se acabe el programa.

for var in $*
do
  if [ $var = "f" ]
      then
          break 
  else
      echo $var
  fi
done

con while

while [ $# -gt 0 ]
do
  if [ $1 = "f" ]
    then
        break
  fi
echo Argumento: $1
shift
done

Realiza un script que te muestre todos los parámetros que le pases, excepto si es una ”c” que no la muestre y si es una “f” que finaliza el programa. 4º pregunta del examen 20-6-2018 entrada en el blog 20-6-2018

for var in $*
do
  if [ $var = "f" ]
      then
          break 
  elif [ $var = "c" ]
       then
          continue      
  else
      echo $var
  fi
done

Realizar un script que haga la media de los números que pase como parámetros.

var=0
for v in $*
do
    var=`expr $var + $v`        $(($var+$v))
done
media=`expr $var / $#`
echo $media

El for con otro formato

suma=0
s=$#
for((i=1;i<=$s;i++))
do
    suma=$(($suma+$1))
shift
done
media=$(($suma/$s))
echo $media

Observa que hemos utilizado una variable intermedia para utilizar $# en este formato de for


Hacer un script que genere 6 ficheros numerados secuencialmente. Ejemplo fichero1, fichero2, fichero3....

for var in 1 2 3 4 5 6
do
    touch fichero$var
    
done

Hacer un script que genere el factorial del número pasado como argumento.