La línea de comandos ¿una interfaz anticuada?

Anuncio
La línea de comandos ¿una interfaz anticuada?
Por Pablo Luis De Napoli 1 Para los usuarios del sistema GNU/Linux, la linea de comandos es un mundo de posibilidades, no un cuco al que hay que tenerle miedo. En este artículo, comentamos algunas de las posibilidades que ofrece esta interfaz. Algunos usuarios tienden a pensar (muchas veces por desconocimiento o prejuicio) que el sistema GNU/Linux es dificil de usar, y que muchas tareas no pueden realizarse sin acudir a la linea de comandos. La verdad es que las versiones modernas de GNU/Linux están pensadas para ser amigables con el usuario. Ubuntu 7.10 desktop, por ejemplo, puede utilizarse perfectamente por medio de interfaces gráficas, a través de las cuales pueden realizarse perfectamente todas las tareas cotidianas.
Sin embargo, sería equivocado pensar por ello que el intérprete de comandos (el shell) es una interfaz pasada de moda. El intérprete de comandos permite realizar muchas cosas que no se pueden hacer por medio de la interfaz gráfica, y es de fundamental importancia tanto para usuarios avanzados como para administradores de sistemas o programadores.
Veamos algunos ejemplos de tareas comunes que requieren el uso del shell:
Permite automatizar tareas que se realizan en forma repetida.
Por ejemplo podemos tener un script (esto es, un programa en el lenguaje del shell) que efectúe un backup de nuestros archivos, y con la ayuda del cron hacer que nuestro script se ejecute todos los días (o todas las semanas) a una determinada hora.
Otra aplicación común es la personalización de los scripts de inicio del sistema, de modo que por ejemplo determinada tarea se ejecute automáticamente cuando arrancamos el sistema.
El shell permite ejecutar comandos en forma remota en una máquina a la cual no tenemos acceso físico, por ejemplo por medio de secure shell (ssh). Como en un sistema Unix virtualmente cualquier tarea se puede realizar desde la linea de comandos, ello significa que basta tener un acceso por ssh, para poder realizar cualquier tarea en una computadora situada quizás en la otra punta del mundo.
Si tengo que explicarle a alguien como realizar alguna tarea, una descripción del tipo “buscá tal ícono y apretá tal botón” es sumamente vaga e imprecisa, ya que distintos escritorios o distintas versiones del sistema, pueden tener una apariencia visual completamente diferente, y lo más 1Sobre el autor: Pablo Luis De Napoli es matemático, Doctor de la UBA en el Área de Ciencias Matemáticas, Profesor Adjunto con dedicación exclusiva en el Departamento de Matemática de la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires e investigador del Conicet.
probable es que esa persona no logre realizar exitosamente la tarea. En cambio, si le digo “ejecutá tal comando”, eso constituye una descripción exacta, sin ninguna ambigüedad, y por ello es altamente probable que la persona pueda realizarla con éxito.
Al crear un pequeño script para ejecutar varias tareas en forma automática, el usuario de Unix/Linux se transforma sin pensarlo demasiado en un improvisado programador. Es lo que Eric Raymond llama “casual programming” en su libro The Art of Unix Programming. Esto significa que el sistema Unix no tiene barreras de entrada para quienes desean aprender a programar. Escribir nuestro primer programa es tan fácil, como juntar un par de comandos, y escribirlos en un archivo en un determinado orden. El usuario toma entonces conciencia de que la programación no es, como algunas personas creen, un arte hermético sólo para iniciados, sino que todos podemos programar.
La linea de comandos permite que un programa sea ejecutado por otros programas. Esto se relaciona con la filosofía de Unix, donde cada pequeño programa efectúa una o muy pocas tareas, pero los programas se pueden intercomunicar entre sí para realizar tareas complejas, utilizando las interfaces provistas por el sistema (linea de comando, redirección, pipes, etc.)
Como vemos, lejos de ser obsoleta, la linea de comandos es una interfaz potente y versátil, que presta una funcionalidad insustituible. Cuando alguien me presta una computadora con un sistema Windows, lo primero que busco desesperado (y lógicamente no encuentro), es un shell. El intérprete de comandos de Windows es realmente tosco y primitivo en relación al intérprete de comandos de Linux (Bash)
Quizás la prueba más contundente de que la linea de comandos no es una interfaz obsoleta, es que a pesar de que los sistemas de Apple tienen la merecida fama de ser los que tienen las interfaces de usuario mejor diseñadas, no por ello el sistema Mac OS X deja de venir con el intérprete de comandos Bash incorporado.
En resumen, para los usuarios avanzados de Linux, el shell es una herramienta de gran utilidad y potencia. Para decirlo en una frase:
“Denme un shell y moveré el mundo”
Licencia de este documento: Creative Commons
Atribución­No Comercial­Compartir Obras Derivadas Igual
2.5 Argentina
(http://creativecommons.org/licenses/by­nc­sa/2.5/ar/)
Descargar