Universidad de Costa Rica Escuela Ing Eléctrica Programación Bajo Plataformas Abiertas Informe de Laboratorio 2 100 Muy bien! Profesor: Francisco Siles Pablo José Cubero Campos A92049 Primera Parte: Uso del shell en GNU/Linux 2- Ejecutamos los comandos de la imagen. La primera vez que se ejecuta echo $SALUDO se imprime el valor de la variable $SALUDO, como esta no tiene un valor asignado no se imprime nada. Luego se le da un valor a la variable (SALUDO=hola) y ahora si se imprime un valor a la hora de usar echo $SALUDO. Luego con el comando bash se entra en bash donde la variable no esta declarada por lo que no tiene ningún valor. Usando exit se sale de bash para luego exportar la variable. Con la variable exportada se puede entrar a bash y $SALUDO ya va a tener un valor acá. 3- Se declaran las variables y con el comando printenv se ven todas las variables, incluido las declaradas por nosotros. Si la variable no se exporta el comando printenv no la muestra. Si se cierra la sesión las variables declaradas se pierden. 4- Para declarar variables de manera que no se borren cuando se cierra sesión se edita el archivo ~/bashrc agregando al inicio del archivo la linea donde se exporta la variable. Luego se guarda y la variable siempre va a estar aunque se cierre sesión. pablo@pablo-desktop:~$ echo $SALUDO hola pablo@pablo-desktop:~$ cat .bashrc export SALUDO=hola # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything [ -z "$PS1" ] && return # don't put duplicate lines in the history. See bash(1) for more options # ... or force ignoredups and ignorespace HISTCONTROL=ignoredups:ignorespace 5- Usando el comando > y >> vemos como la salida se exporta al archivo, en el segundo caso escribe en una linea nueva Lo mismo pasa con los primero 5 comandos. pablo@Casa-PC:~$ echo Hola Mundo! > hola.txt pablo@Casa-PC:~$ cat hola.txt Hola Mundo! pablo@Casa-PC:~$ Cuando se usa < el archivo de la derecha esta siendo la entrada del comando de la izquierda. Usando gzip < /etc/passwd > passwd.gz, se esta comprimiendo el archivo. Se dice que se ejecute el programa gzip con passwd como entrada y que la salida sea passwd.gz. En este caso el uso de < y > no tiene mucho sentido. Luego se descomprime el archivo con la notación normal y por medio de la opción -c imprimimos el archivo descomprimido en stout. En este caso se utiliza, por medio de un pipe, el comando less para cambiar la forma en la que se va a imprimir el archivo passwd. Ocurre lo mismo con el siguiente comando. En el comando cat /etc/passwd | grep root se usa también el pipe para modificar lo que imprimimos y ver solo los archivos que nos interesan, en este caso los relacionados con root. pablo@Casa-PC:~$ cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash pablo@Casa-PC:~$ En el siguiente comando se usa el pipe para que wc realice el conteo de lo que debería desplegar cat. Así wc despliega el conteo de letras, palabras y bytes pero sin poner el nombre del archivo ya que su entada no es el archivo sino que solo el texto dentro de copyright. pablo@Casa-PC:~$ cat /usr/share/doc/gcc/copyright | wc 42 330 2207 En el ultimo comando se usa el pipe para grabar la salida en un nuevo archivo y también desplegarlo en stdout. pablo@Casa-PC:~$ ls -l /etc/ | tee ls.txt total 1192 drwxr-xr-x 3 root root 4096 2012-03-19 07:56 acpi -rw-r--r-- 1 root root 2981 2011-10-12 08:27 adduser.conf -rw-r--r-- 1 root root 10 2012-03-14 10:56 adjtime drwxr-xr-x 2 root root 12288 2012-03-20 21:50 alternatives -rw-r--r-- 1 root root 395 2010-06-20 02:11 anacrontab . . . pablo@Casa-PC:~$ cat ls.txt total 1192 drwxr-xr-x 3 root root 4096 2012-03-19 07:56 acpi -rw-r--r-- 1 root root 2981 2011-10-12 08:27 adduser.conf -rw-r--r-- 1 root root 10 2012-03-14 10:56 adjtime drwxr-xr-x 2 root root 12288 2012-03-20 21:50 alternatives -rw-r--r-- 1 root root 395 2010-06-20 02:11 anacrontab -rw-r--r-- 1 root root 112 2007-06-22 09:08 apg.conf drwxr-xr-x 6 root root 4096 2011-10-12 08:28 apm . . . Segunda Parte: Programación de tareas con cron 1- Se agrega la siguiente linea al crontab ** * * * root date >> /tmp/date Luego se guarda y después de unos minutos en /etc/date aparece lo siguiente: pablo@Casa-PC:/tmp$ cat date dom 25 mar 02:23:01 CST 2012 dom 25 mar 02:24:01 CST 2012 dom 25 mar 02:25:01 CST 2012 2- Se edita el crontab igual que en la parte anterior y se agrega la linea. Hay que agregar el comando sudo y dar permisos a la carpeta para que se logre ejecutar el comando. pablo@Casa-PC:/root$ cat prueba Esto es una prueba pablo@Casa-PC:/root$