01 noviembre 2006

Una caja negra en la shell

Nunca me cansaré de decir que la potencia de Linux radica en su shell. De hecho, si como usuarios podemos "olvidarnos" (al menos en parte) de ella, como administradores de nuestro propio sistema debemos conocerla porque, tarde o temprano, tendremos que sumergirnos en ella. A veces por narices.

Pero podemos equivocarnos, y cometer un error como root puede hacer que nos carguemos partes fundamentales del sistema (recuerda: think before you type). En un caso así, es importantísimo saber qué hemos hecho mal (cosa que a veces no está tan claro) para saber qué debemos arreglar y, por tanto, cómo hacerlo.

También es muy útil guardar un registro de todo lo que hemos hecho cuando es posible que tengamos que hacer la misma tarea en el futuro, pero no estamos muy seguros de recordar cómo se hace para cuando llegue el momento (estamos siguiendo un tutorial, alguien nos está echando una mano con los comandos, etc). De esta manera tendremos una chuleta a mano para el futuro :)

Hay varias formas de registrar nuestra propia actividad en la consola. No me refiero al .bash_history, que guarda un registro de los comandos introducidos, sino a ver toda la sesión, con los comandos y sus resultados, tal y como nos ha ido apareciendo en pantalla.

script. El comando script es una de ellas. Simple y eficaz. Simplemente tecleamos script y la sesión comenzará a ser guardada en el archivo typescript. Cuando acabemos (Ctrl+D) podemos cómodamente examinar el archivo con un cat, more, less, vi o lo que nos dé la real gana.

tee. tee es un pequeño ejecutable que lee de la entrada estándar y puede escribir en la salida estándar o en un archivo. Simplemente iniciamos una consola con bash -i 2>&1 | tee <archivo de destino>. Una vez pulsemos Ctrl+D (o exit, que viene a ser lo mismo) tendremos toda la sesión registrada en el archivo que le hayamos indicado.

screen. Esto ya son palabras mayores. Quizá algún día escriba una entrada sobre screen. Esta utilidad es capaz de manejar distintas consolas, guardarlas, recuperarlas (incluso de forma remota), en fin, una fiesta en cuanto al manejo de terminales. No viene incluida en el sistema, por lo que hay que instalarla (apt-get install screen). En cuanto al tema que nos ocupa, basta con pulsar Ctrl+A H para que toda la sesión sea exportada al archivo hardcopy.0. Listo para examinarlo.

Como veis, opciones no faltan, a cuál más sencilla. De este modo, la sesión de consola queda registrada y guardada para futuras consultas. Rápido y eficaz. Como el propio Linux ;)

1 comentario:

Jokin dijo...

Queda añadido Script a mi lista de comandos. Que intentar averiguar lo que he hecho dándole a la flecha arriba para que aparezcan los últimos comandos tecleados es casi como la arqueología: Sabes qué, pero te inventas el cómo y el por qué :P