Universidad de Costa Rica | Escuela de Ingeniería Eléctrica IE-0117 Programación Bajo Plataformas Abiertas 100 Laboratorio No. 2 Gabriel Valverde Primera Parte: Uso del shell en GNU/Linux 1. Usando comandos conocidos, explore las funciones de autocompletado, historial y búsqueda de comandos del shell, así como las distintas formas de indicar nombre de archivos y directorios. 2. Explore el funcionamiento de las variables de entorno. Ejecute los siguientes comandos Comando: echo $SALUDO Salida: no aparece nada variable: SALUDO=hola Comando: echo $SALUDO Salida: hola Comando: bash Comando: echo $SALUDO Salida:no aparece nada Comando: exit Comando: export $SALUDO=hola Comando:bash Comando: echo $SALUDO Salida: hola ¿Qué sucede en cada caso? ¿Cuándo no funciona el comando echo y por qué? Cuando se define una variable de entorno, la misma esta definida en Gnome terminal, por lo que al darle el comando bash esta arranca una “terminal dentro de otra” por lo tanto como no se ha definido como una variable global esta nueva terminal no lo vera. Si se ejecuta el comando export, todas las terminales que se habrán a partir de acá utilizando bash podrán ver el valor de la variable de entorno. 3. Declare algunas variables usando el comando export. Verifique que la declaración haya sido exitosa usando printenv. ¿Qué sucede con las variables declaradas si cierra la sesión y la inicia de nuevo Cuando se crean las variable de entorno y se cierra la sesión esta borra las variables de entorno creadas 4. Declare algunas variables usando export, pero esta vez editando el archivo ~/.bashrc (archivo de configuración de bash para el usuario). Cierre la sesión e ingrese de nuevo. ¿Qué sucede ahora con las variables. I- Primero se edita el archivo bash: gedit ~/.bashrc II- Se agrega en el archivo de texto: export USUARIO=login III- Salva y exit [cierra la terminal] IV- cuando se abre la terminal de nuevo: se llama a usuario: echo $USUARIO V- La salida del comando es: login 5. Explore las redirecciones de entrada y salida y las tuberías usando los siguientes comandos (si tiene dudas sobre lo que hace alguno de los comandos, consulte la página de manual) - date > fecha.txt: Mon Mar 19 09:43:01 CST 2012 - date >> fecha.txt: Mon Mar 19 09:43:52 CST 2012 - ls -l /etc/ > dir.txt: Imprime en un archivo de texto el listado de los archivos con sus permisos de lo que contiene la carpeta etc. - ls -l /bin/ > bin.txt: Imprime la lista de archivos y permisos del directorio /bin con sus permisos en un archivo de texto en este caso [bin.txt] - echo Hola Mundo! > hola.txt: Escribe en un archivo de texto denominado hola.txt, Hola Mundo! - gzip < /etc/passwd > passwd.gz: Comprime el contenido del archivo /etc/passwd en un archivo denominado passwd.gz - gzip -dc passwd.gz | less: Descomprime el archivo passwd y con el uso del comando less imprime el contenido en una “pagina de texto” en el terminal, permitiendo al usuario leer el mismo sin mayores problemas. - apt-cache search text editor | less: La primera parte: apt-cache search text editor, este comando lo que hace es buscar editores de texto, al utilizar la tuberia, la salida de esta busqueda la imprime en pantalla utilizando el comando less. - cat /etc/passwd | grep root: El comando imprime el contenido del archivo /etc/passwd y la salida le aplica el comando grep root, que lo que hace es buscar archivo /etc/passwd alguna linea que contenga la palabra root. Segunda Parte: Programación de tareas con cron 1. Edite el crontab del usuario y agregue el comando date >> /tmp/date para que sea ejecutado cada minuto. Espere un par de minutos y compruebe que la acción se haya efectuado correctamente. Con el comando sudo gedit /etc/crontab se agrega la linea en azul: # m h dom mon dow user command */1 * * * * root date >> /tmp/date Salida: gabriel@gabriel-PC:/tmp$ cat date Mon Mar 26 13:42:01 CST 2012 Mon Mar 26 13:43:01 CST 2012 Mon Mar 26 13:44:01 CST 2012 Mon Mar 26 13:45:01 CST 2012 Mon Mar 26 13:46:01 CST 2012 Mon Mar 26 13:47:01 CST 2012 Mon Mar 26 13:48:01 CST 2012 2. Edite el crontab del sistema y agregue el comando que se muestra a continuación para que sea ejecutado dentro de tres minutos (compruebe la hora del sistema usando el comando date) y todos los demás días jueves de cada semana a la misma hora. El comando debe ser ejecutado por el usuario root: Con el comando sudo gedit /etc/crontab se agrega la linea en azul: # m h dom mon dow user command */1 * * * * root date >> /tmp/date */3 * * * * root echo "Esto es una prueba" > /root/prueba Salida: root@gabriel-PC:~# cat prueba Esto es una prueba Bibliografía: “Comandos Linux”, http://dns.bdat.net/documentos/cursos/ar01s14.html, consultado 15 de marzo 2012, 9:30am.