Laboratorio 2

Anuncio
Programacion Bajo Plataformas Abiertas
Laboratorio
2
Daniel Méndez Zeledón
A83911
Entrega extemporánea -15
Nota: 85
Primera Parte: Uso del shell en GNU/Linux
GNU/Linux ofrece ciertas herramientas muy útiles en lo que respecta al direccionamiento de
archivos. Cuando colocamos por ejemplo cd / y presionamos tab, la maquina nos permite
escoger de entre los archivos y carpetas que estén en este directorio, en este caso en root. Asi
mismo, para no copiar varias veces la misma instrucción, utilizando simplemente las teclas
arriba o abajo, podemos navegar entre los comandos previamente utilizados. El historial de
direcciones a su vez se puede obtener al presionar Ctrl+r.
Lo siguiente que pusimos en práctica fue el uso de las variables de entorno. Las variables de
entorno son comandos del shell que pueden ser utilizadas para desplegar o ejecutar algún
comando que nosotros determinemos.
$ echo $SALUDO
$ SALUDO=hola
$ echo $SALUDO
$ bash
$ echo $SALUDO
$ exit
$ export SALUDO=hola
$ bash
$ echo $SALUDO
$ exit
Al ejecutar el primer echo, se llama a la variable llamada SALUDO; como esta aun no tiene
nada escrito, la siguiente línea que despliega es una línea en blanco. Luego se determina que la
variable SALUDO va a tener asociado a hola, por lo que al ejecutar de nuevo el echo,
desplegamos la palabra hola.
Al hacer el comando bash, me traslado al terminal bash, ejecutamos de nuevo el echo pero no
sale nada, esto es porque las variables de entorno son locales para cada shell. Es por esto que
luego se hace un export, esto hace que la variable de entorno SALUDO se exporte a todos los
shells durante la sesión, una vez que cierro el terminal, la variable se pierde. Seguidamente se
cambia de nuevo a bash y se despliega ahora si la palabra hola al hacer el comando echo.
El comando printenv permite observar todas las variables de entorno disponibles para ser
llamadas, por lo que la variable SALUDO aun se puede observar, eso sin haber cerrado el
terminal.
Existe una forma de poder hacer que las variables de entorno que nosotros declaremos no se
eliminen al cerrar el terminal, esto se hace simplemente modificando el archivo que contiene a
las variables de entorno del shell. Con el comando gedit ~/.bashrc abrimos el archivo donde
esta configurado el bash, aquí agregamos las variables que queramos como export
SALUDO=hola y cada vez que la llamemos siempre va a estar en cualquiera de los shells, a
pesar de que salgamos de la terminal.
Luego practicamos el uso de los pipes, líneas de comandos que lo que hacen es que la salida de
un comando sea la entrada de otro comando. A continuación se muestra ciertos comandos
que utilizan los pipes:
$ date > fecha.txt
El comando date lo que hace es darnos la fecha actual, el simbolo > lo que indica es que va a
guardar lo que se despliegue en date, y crear un documento llamado fecha.txt conteniendo a
date. Cada vez que se ejecute el comando, se rescribe el documento.
$ date >> fecha.txt
Hace lo mismo que el comando pasado pero no reescribe el documento sino que lo concatena,
agregando una línea extra de fecha.
$ ls -l /etc/ > dir.txt
Se genera una lista del directorio etc y se guarda en un archivo llamado dir.txt
$ ls -l /bin/ > dir.txt
Se genera una lista del directorio bin y se sobre escribe sobre el archivo ya existente dir.txt
$ echo Hola Mundo! > hola.txt
Lo que hace es que al desplegar la frase Hola Mundo! toma esa frase y la guarda en un archivo
llamado hola.txt
$ gzip < /etc/passwd > passwd.gz
Este comando comprime el archive passwd del directorio etc en un archivo tipo gz llamado
passwd.
$ gzip -dc passwd.gz | less
Descomprime el archive passwd pero se genera una lista de lo que se esta descomprimiendo,
al agregarle el pipe, genera un scroll con el comando less que me permite navegar dentro de la
lista de lo descomprimido si necesito ver algún archive presente en el comprimido que haya
quedado fuera de visión por el tamaño de la pantalla.
$ apt-cache search text editor | less
Busca los programas y archivos que tengan la palabra text editor y genera una lista, el
comando less permite generar de nuevo un scroll.
$ cat /etc/passwd | grep root
Concatena lo que haya en passwd y enlista la direccion de este archive concatenado.
$ cat /usr/share/doc/gcc/copyright | wc
Concatena lo que haya en copyright y el comando wc genera una linea para cada una de las
direcciones que usamos, o sea para root, usr, share, etc.
$ ls -l /etc/ | tee ls.txt
La información de la lista generada por el comando ls –l sobre etc, es escrita en un documento
de texto ls.
Segunda Parte: Programación de tareas con cron
Primero, editamos el crontab como usuario para que muestre la fecha cada minuto con el
comando date >> /tmp/date, esto se hace editando el crontab con el comando crontab –e la
cual despliega una ventana para que pueda ser editado. En este se puede especificar
exactamente el minuto, hora, día del mes, mes y día de la semana que quiere que se ejecute
asi como también el comando a ejecutarse para este caso sería el de la fecha para el cual se
comprobó su efectivo funcionamiento esto pues al ser ejecutado con el comando sudo
cat/tmp/date la fecha no se desplegaba instantáneamente, sino un minuto despues.
Final mente se debe editar el crontab para que escriba “Esto es una prueba” en el archivo
/root/prueba dentro de tres minutos, y luego cada jueves a esa misma hora. Abrimos la
ventana para edición con crontab-e, se verifica la hora y se programa para que se ejecute
dentro de 3 minutos y que escriba el texto con el comando "Esto es una prueba" >
/root/prueba su funcionamiento se verifica viendo la fecha y hora en la terminal, se esperan 3
minutos y se ejecuta escribiendo en pantalla el texto especificado anteriormente.
Descargar