lunes, 20 de octubre de 2008

Mis programas de consola

En mi último envío propuse argumentos en defensa del uso de las aplicaciones de consola, con independencia de que se ejecuten desde la consola propiamente dicha o en un entorno de escritorio típico a través de un emulador de terminal. Cité además algunas, a modo de ejemplo.

He pensado que puede ser interesante para mis posibles lectores dejar constancia de las que utilizo con frecuencia. Casi todas tienen una o varias alternativas dentro también del mundo de la consola, de ahí que la selección sea estrictamente personal y obedezca tanto a razones de gusto, como a aspectos específicos de mi forma de usar el ordenador. Por ejemplo, puesto que edito todo con vim, tiendo a escoger aplicaciones cuyos atajos de teclado sean semejantes a los de vim o se puedan configurar fácilmente para hacerlos semejantes. Por otra parte, suelo preferir aplicaciones sencillas, que hacen bien una cosa y sólo una y cuyo consumo de recursos es reducido (o sea, que mis elecciones suelen estar en consonancia con la forma de pensar característica de Unix).

No pretendo comentar por separado estos programas (cada uno de ellos merecería un artículo aparte como mínimo), simplemente referirlos, describir su propósito someramente y de modo informal, e indicar, donde lo vea conveniente, algunas de las peculiaridades suyas que más me interesan.

Por otra parte, y aunque nadie me lea, siempre es agradable hablar, aun para uno mismo, de las cosas que gustan.

Vamos allá.


  • screen: Gestor de ventanas en pantalla completa que permite multiplexar distintos procesos. Las nuevas versiones disponen también de una mayor versatilidad en la definición de la forma de presentación de cada ventana (layout), así como de la posibilidad de organizarlas en grupos diferentes. Quizá su característica más destacada sea la de que, desde cualquier máquina remota, se puede abrir una sesión completa (o varias) de screen, con todos sus procesos en la situación en que estaban cuando cerramos dicha sesión en otra máquina. Un ejemplo: si estoy en mi casa trabajando con mis programas habituales de consola en una sesión de screen, puedo cerrar esa sesión (no apagar la máquina, claro, porque los procesos implicados deben seguir ejecutándose) y acceder luego a ella desde el ordenador del trabajo o desde la casa de un amigo, aunque su sistema operativo sea distinto. Basta con disponer de un emulador de terminal en este sistema y tener abierto el puerto correspondiente de mi máquina de casa.


  • vim: Editor rapidísimo, al que se pueden añadir todas las extensiones imaginables que convengan (mediante plugins o scripts). Su rápidez se basa en usar combinaciones sencillas de teclado (fáciles para la mano) gracias a su diferenciación de modos de operación distintos.


  • mutt: Un cliente de correo muy potente y versátil. Puede usarse como sistema autónomo y completo de correo (las nuevas versiones disponen de opciones incorporadas para recepción y envío de email), o se puede utilizar en combinación con programas específicos de transporte, de recogida, de distribución de correo y de control de spam.


  • newsbeuter: Un lector/agregador de fuentes RSS y similares. Permite importar fuentes ya existentes. Es muy sencillo y fácil de usar y configurar.


  • w3m: Navegador web y paginador. Me gusta especialmente, aparte de las teclas de movimiento al estilo vi, su función para poder seleccionar distintos navegadores gráficos, lo que permite ver cualquier página rápidamente en modo texto y revisarla con más detalle en su forma gráfica a golpe de una tecla.


  • ikiwiki: Un constructor de wikis escrito en Perl y con soporte CGI (es decir, a la antigua usanza), pero con una filosofía peculiar y novedosa si se la compara con otros sistemas de wiki. Su extensibilidad (mediante plugins) y flexibilidad son muy notables. Aunque su uso común implica la necesidad de un servidor web, es posible configurarlo para que funcione sin tener uno instalado, siempre que se use w3m para editarlo, ya que este último posee un soporte CGI incorporado. Igualmente destacable es el uso de un sistema real de control de versiones independiente (svn, git, etc). Cuando madure el plugin para latex (se está en ello) tendrá todo lo que necesito y exactamente como lo necesito. Merece la pena echarle un vistazo, incluso aunque no se use.


  • vifm: Un gestor de ficheros sencillo y con atajos de teclado a la vi, de ahí su nombre.


  • cplay: Un reproductor de ficheros de audio. Consume muy pocos recursos y es muy sencillo de usar.


  • shell-fm: Una aplicación de línea de comandos para reproducir flujos de la radio last.fm. Sencillísimo y eficaz.


  • htop: Un monitor en tiempo real de los procesos del sistema en la línea del top original, pero con una interfaz más amigable.


  • trafshow: Un monitor en tiempo real del tráfico de las interfaces de red. Es de los pocos que conozco para consola. Me permite tener a la vista, siempre que quiera, cómo se desarrolla el trafico, sin necesidad de ejecutar netstat o similares aplicaciones de línea de comandos, que reservo para cuando necesito conocer más detalles. En mi distribución (debian) forma parte del paquete netdiag.


  • aptitude: El frontend moderno de debian para administración de los paquetes de sus ingentes almacenes de software. Conviene echar un vistazo a la página de manual en cada nueva versión que sale, porque casi siempre incorpora novedades interesantes.


  • devtodo: Una aplicación de línea de comandos bastante sencilla de usar y que va exclusivamente de lo que va: de organizar y llevar la pista de las tareas pendientes. Puede almacenar distintas series de tareas según el directorio en que se esté y mostrarlas al cambiar a ese directorio.


  • wodim: Forma parte del proyecto cdrkit. Todo lo que necesito para escribir CDs/DVDs desde la línea de comandos. Aunque k3b sigue siendo una maravilla que nunca sobra.


  • pdftex: Mi herramienta habitual para construir un documento pdf a partir de una fuente TeX/LaTeX. Porque vivir en el mundo de los procesadores de textos es casi como vivir en la edad de hierro en lugar de en la edad de oro ;-)



Omito el recuento de aplicaciones de línea de comandos de uso común y genérico en sistemas Unix o GNU: herramientas típicas de acceso y procesamiento de ficheros, de administración, etc., porque son muchas, porque ya hay cientos de miles de páginas escritas al respecto y porque están a la mano de todos los que quieran.

Espero que este repaso general por "mi" caja de herramientas siga siendo un acicate para los amantes o curiosos de la consola. Los primeros conocerán casi todas, pero quizá alguna no les resulte familiar o ni siquiera hayan oído hablar de ella; los segundos, tienen materia de sobra para investigar y hurgar. Por lo menos, antes de que me entren ganas de redactar artículos específicos y extensos sobre alguna y acabe poniendo todo el plato precocinado en la mesa electrónica. Quien sabe :-)

2 comentarios:

  1. Hola, gracias por tu conocimiento, ¿Sabes por casualidad como ejecutar un programa en otro equipo por medio de la consola de windows?

    Feliz día.

    ResponderEliminar
  2. Si el otro equipo es Windows no lo sé. Prácticamente no uso Windows desde hace mucho, mucho tiempo.

    Si el otro equipo es Unix, debes tener un medio para acceder via ssh a la máquina Unix (Putty es una aplicación que puede hacer esto desde una máquina Windows). De los privilegios asociados a tu cuenta ssh en la máquina Unix de destino dependerá el tipo de órdenes que puedas ejecutar allí.

    ResponderEliminar