lunes, 16 de febrero de 2009

Mi primera orden para HAL

Es hora ya de agarrar fuertemente el timón y enderezarlo para que apunte al objetivo inicialmente marcado:

... escribir nuestras órdenes complejas en ficheros de texto y hacer que HAL las lea de ahí y las interprete como debe.

Conocemos todos los pasos del proceso por los cuatro últimos artículos de esta serie de conversaciones. Vamos, no obstante, a reproducirlos, pero esta vez con un ejemplo de verdad. Para ello, en lugar de hacer que HAL lea un tonto fichero de prueba y ejecute su contenido, utilizaremos el resultado de una de las tareas que el lector debería haber completado. Al fichero que guardará las órdenes necesarias para llevar a buen término la susodicha tarea lo llamaremos chuleta_cch, que será, por tanto, el nombre de nuestro guión y el nombre de la orden que HAL ejecutará, como cualquier otra orden del sistema, tantas veces como queramos.

Los pasos son los siguientes:

  1. Moverse al directorio guiones, dentro de nuestro home:

    cd guiones

  2. Editar el fichero chuleta_cch con el siguiente contenido [una de las posibles soluciones al problema complementario planteado aquí]:

    wget \
    http://los-pajaros-de-hogano.blogspot.com/feeds/posts/default/-/Conversaciones\ con\ HAL?max-results=50

    mv Conversaciones\ con\ HAL\?max-results\=50 Conversaciones\ con\ HAL

    LC_MESSAGES="C" whatis \
    $(grep -E -o '<code class="orden">[[:alnum:]]*</code>' \
    Conversaciones\ con\ HAL \
    | sed -e 's/<code class="orden">//g' -e 's/<\/code>//g' \
    | sort -u) \
    | grep -E '\(1\)|\(8\)' \
    | sed -e 's/(1)//' -e 's/(8)//g' \
    | tee chuleta.txt

    more chuleta.txt

  3. Tras guardar los cambios en el fichero, modificar su modo para que contenga el necesario permiso de ejecución:

    chmod u+x chuleta_cch

  4. Pedir a HAL que lo ejecute:

    ./chuleta_cch


El resultado es la tan ansiada chuleta de las órdenes aprendidas hasta hoy en nuestras conversaciones, que habrá quedado guardada, además, en el fichero chuleta.txt:

apropos - search the manual page names and descriptions
aptitude - high-level interface to the package manager
awk - pattern scanning and text processing language
bc - An arbitrary precision calculator language
chmod - change file mode bits
cp - copy files and directories
cut - remove sections from each line of files
date - print or set the system date and time
dict - DICT Protocol Client
echo - display a line of text
file - determine file type
grep - print lines matching a pattern
locale - Get locale-specific information.
ls - list directory contents
man - an interface to the on-line reference manuals
mkdir - make directories
more - file perusal filter for crt viewing
mv - move (rename) files
printenv - print all or part of environment
readelf - Displays information about ELF files.
rm - remove files or directories
sed - stream editor for filtering and transforming text
sort - sort lines of text files
strings - print the strings of printable characters in files.
su - change user ID or become superuser
tee - read from standard input and write to standard output and files
tty - print the file name of the terminal connected to standard input
whatis - display manual page descriptions
zmore - file perusal filter for crt viewing of compressed text


La orden chuleta_cch es la primera orden que hemos creado nosotros mismos y, en cuanto tal, podremos ejecutarla siempre que deseemos actualizar la chuleta de las órdenes tratadas en estas conversaciones. Una buena recompensa para el principiante que haya llegado hasta aquí y una demostración incontrovertible de las infinitas posibilidades y de la versatilidad que HAL pone generosamente en nuestras manos.

No hay comentarios:

Publicar un comentario