educatica!

educación, informática y demás

GNU/Linux bash, Informática, Shell scripts, Sistemas operativos

Primeros pasos con bash shell script

Vamos a lanzar el editor de texto en modo gráfico gedit para crear nuestro primer script. Además vamos a lanzarlo en segundo plano o como un nuevo proceso del sistema utilizando el caracter &.

Escribimos el siguiente código

Configuramos los permisos del fichero para que cualquier usuario del sistema pueda ejecutarlo.

Para ejecutarlo tenemos que escribir la ruta del fichero a ejecutar. Vamos a utilizar una ruta relativa, haciendo mención al directorio actual.

A la hora de ejecutar un script debemos indicar al interprete de comandos de forma inequívoca dónde encontrar el fichero que contiene el script.

Bash funciona de forma un poco diferente a como lo hace la shell de Windows. Cuando tratamos de ejecutar un comando o aplicación bash la busca en los directorios almacenados en la variable de entorno PATH.

La variable de entorno PATH, al igual que en Windows, almacena una lista ordenada de directorios en los que la shell bash buscará el comando o aplicación a ejecutar. Si no encuentra la aplicación en ninguno de estos directorios, bash no la busca en nuestro directorio actual.

Por este motivo, cuando queremos ejecutar un script que está en nuestro directorio actual, debemos proporcionar la ruta relativa completa, en nuestor caso: ./holaMundo.sh.

¿Por qué no funciona .holaMundo.sh? Resulta que en los sistemas de ficheros de GNU/Linux los ficheros ocultos se represetan con un punto delante. Es decir .holaMundo.sh es el nombre de un fichero distinto del fichero holaMundo.sh.

Actividades

sysInfo.sh

Crea un script llamado sysInfo.sh que almacenará información de tu cuenta de usuario en un fichero de log en tu directorio personal.

El script almacenará información en el fichero sysInfo.log que se almacenará en tu escritorio. Toda la información que almacenes deberá añadirse al final del fichero.

  • Primero almacenarmos una cadena de texto con la fecha actual, ojo solo la fecha sin la hora.
  • Debajo, almacenaramos una cadena de texto con la hora actual, solo la hora.
  • Almacenaramos el listado de todos los ficheros que contiene el directorio personal del usuario actual.
  • Almacenaremos el nombre del usuario actual.
  • Información de los últimos 10 procesos ejecutados en el sistema.
  • La ocupación el disco del directorio personal del usuario actual. Ojo, solo la ocupación resumida y en formato comprensible por humanos del directorio personal.

Recuerda los comandos que hemos utilizado de bash y que si quieres más información sobre cualquiera de ellos para conocer como usarlo para que realice lo que se pide en esta actividad deberías consultar su página de manual con el comando man.

showHomes.sh

Crea un script llamado showHomes.sh que mostrará en pantalla información de cada los directorios personales de los usuarios en el sistema.

Por defecto, los sistemas GNU/Linux almacenan los directorios personales de los usuarios en un directorio concreto dentro del sistema de ficheros raíz. Vamos a suponer que nuestro sistema también lo hace así.

Primero mostrará información de permisos, propietario y grupo de todos los directorios personales de los usuarios del sistema con información de ocupación comprensible por humanos.

Después mostrará información de ocupación de disco de todos los directorios personales de los usuarios del sistema, de forma resumida y con un formato comprensible por humanos.

showFileSystems.sh

Crea un script llamado showFileSystems.sh que mostrará en pantalla información sobre los sistemas de ficheros montados en nuestro sistema, pero solo mostrando aquellos que estén conectados a algún puerto SATA, SCSI o USB.

buscaDocumentos.sh

Crea un script llamado buscaDocumentos.sh que mostrará en pantalla información sobre ficheros de distinto tipo en nuestro sistema.

Para cada tipo de los que se especifiquen a continuación se mostrará:

  1. Una cadena de texto que indique el tipo de fichero.
  2. Los ficheros cuya extensión coincida con el tipo que estén el el directorio personal del usuario actual y todos sus subdirectorios.

Los tipos de ficheros para los que se buscará información serán: odt, pdf, txt, jpg y png.

buscaDocumentos2.sh

Copia el script buscaDocumentos.sh con el nuevo nombre buscaDocumentos2.sh

Este nuevo script deberá almacenar la información de búsqueda obtenida en un fichero llamado buscaDocumentos.log en el directorio personal del usuario actual.

Si el fichero ya existía, deberá sobrescribir la información que contiene con la nueva información generada en el script.

Además, después de haber almacenado la información deberá mostrarla en pantalla.

showUser.sh

Crea un script llamado showUser.sh que mostrará información en pantalla del usuario alumno.

Deberá mostrar uno a uno información sobre los distintos campos que se guardan para el usuario alumno en el fichero de cuentas de usuario del sistema.

Para cada campo se deberá mostrar en pantalla:

  • Una línea con la etiqueta del campo, por ejemplo «Nombre de usuario»
  • Una línea con el valor del campo para el usuario. Por ejemplo, «alumno»
  • Una línea en blanco que separe con el siguiente campo.

Si necesitas información sobre los campos almacenados en el fichero de cuentas de usuario puedes consultar la página de manual de dicho fichero.

Deja un comentario

Tema creado por Anders Norén