domingo, 11 de julio de 2010

Jugando con el entorno

Hoy, voy a jugar con Bash,y un poquito con Perl.

A Bash, lo conocemos la mayoría de los usuarios de GNU/Linux. Podéis repasar algunos de los comandos básicos para pasar el rato con este inseparable amigo.

Sobre Perl, decir que es un lenguaje de Scripting, multiparadigma, bastante parecido a C. Mas info, aquí.

Voy a explicar como "fabricar" nuestros propios comandos. Estas técnicas, son muy usadas en el oscuro mundo de la programación (Hace poco, leía en un libro como practican un desbordamiento de buffer en un programa en C, con la ayuda de Perl)

Aquí solo voy a explicar como añadir variables de entorno, suponiendo claro, que estáis bajo GNU/Linux.

La forma de añadir variables al entorno bash, es la siguiente:
export NOMBRE_VARIABLE=Dato
Podemos usar el comando env para ver todas las variables de entorno del sistema. Al ser una lista, generalmente, bastante larga, recomiendo direccionar el flujo de datos a un archivo.
env > /home/serch/Escritorio/env1.txt
(Sustituir mi usuario por el vuestro, o la ruta por la que queráis).

Ahora, vamos a proceder a guardar nuestra primera variable de entorno, la cual, al ser llamada, mostrará una cadena.
export VAR1=Hi_world
Para llamar a nuestra variable, usamos el comando echo.
echo $VAR1
Lo que nos devolverá lo siguiente:
serch@serch-server:~$ echo $VAR1
Hi_world
También podemos guardar variables de entorno como comandos. Por ejemplo, para ejecutar el comando ps -aux, podemos hacer:
export VAR2="ps -aux"
Observamos que para guardar comandos, necesitamos las comillas. Para llamar a esta variable, no nos hace falta echo, basta solo con invocarla.

serch@serch-server:~$ $VAR2
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2800 1644 ? Ss 04:54 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 04:54 0:00 [kthreadd]
...

(He acortado la línea USER PID.. para poder mostrarla en 1 sola línea, y no he imprimido, obviamente, toda la lista de procesos).

Podríamos usar también una redirección de flujo para nuestra variable $VAR2, con lo que nos enviaría todos los datos al archivo que deseemos. (Ahora imaginad el buen uso que le podéis dar a las variables de entorno, sobretodo si os conectáis vía shh desde un dispositivo móvil, y no os apetece escribir comandos largos desde un mini-teclado)

Ahora vamos a crear una variable de entorno usando perl. Dentro de Perl tenemos la orden print, que para los que estéis dentro del mundo de la programación, sabréis bien lo que hace.

Para empezar, ejecutamos el siguiente comando
perl -e 'print "Hola";'
Como vemos, nos muestra la cadena "Hola". Podemos indicar que una cadena se muestre X veces, ejecutando lo siguiente:

perl -e 'print "Hola" x 20;'
Esta es una buena introducción a la base del Scripting, añadiendo variables de entorno y haciendo nuestros primeros pasos en Perl. En próximas entregas, mas y mejor.

1 comentario: