¿La línea de comandos está fuera de moda?

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.

Tomado de: La línea de comandos ¿una interfaz anticuada? de Pablo Luis Napoli

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. Debian Wheezy, 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 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 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”

¿Te resultó interesante? Compártelo ...



Maikel Llamaret Heredia

Publicado por Maikel Llamaret Heredia

https://swlx.info » Facebook » Twitter » Google+ » Linkedin » Forma parte de GUTL desde el 6 diciembre, 2011. Parte de la familia GUTL. Usuario de Tecnologías Libres desde hace varios años. Fiel a GNU/Linux y las filosofías del Software Libre y el Código Abierto. Linux User # 587451. Creador y actual mantenedor del Proyecto SWL-X. Freelancer dedicado al Desarrollo / Diseño Web y Marketing Online. Creador de Web & Media Integrated Solutions

Este artículo tiene 24 comentarios

  1. Sinceramente yo cada vez la uso mas seguido, a pesar de no realizar tareas complejas, siempre me ha gustado ver lo que sucede por debajo de la interfaz gráfica, casi nunca uso synaptic, gdebi u otros paquetes si lo puedo hacer desde la consola, la versatilidad del shell no te lo da ninguna aplicación GUI (como bien dice el artículo), además, esta última viene con más código y es más factible a posibles bugs, sin mencionar el conocimiento que se adquiere.

    @Maikel, vaya avatar te has puesto xD.

    Saludos comunidad.

  2. Mi respuesta: Para nada… una de las mejores cosas que se ha inventado y que las distros de Linux y BSD potencian, aunque últimamente en algunos casos (Ubuntu, por ejemplo) están escondiendo la consola y a veces cuesta trabajo encontrar.

    • Si te falta el iconito de la consola … pues acude a tu amigo teclado y pulsale ctrl+alt+f1, logueate y a trabajar 😀

      • @Maikel y @paradix: Gracias, pero yo particularmente nunca he tenido problemas para encontrar la terminal. Me referia a que antes en cualquier distro era facil hallar el icono de la terminal, ya en el panel ya en el menu, sin embargo en las versiones recientes de Ubuntu (quizas con la aparicion de Unity) si no conoces estos atajos, cuesta un poco de trabajo dar con ella. Me referia especialmente a los usuarios inexpertos y recien llegados a GNU/Linux. A diario recibo solicitudes de ayuda de usuarios (especialmente de Ubuntu) y muchos no saben como llegar a la consola. A veces los que tienen conocimientos avanzados en GNU/Linux se NOS olvida que no todos, sobre todo los recien llegados, no conocen estos trucos. Y si, lo repito, parece que en algunas distros con el afan de hacer los sistemas mas amigables (entiendase, no tener que usar la consola para nada), se olvidan de hacerla mas accesible. 😉

        Nota: Disculpen la falta de acentos, estoy en una PC que no es mia y tiene el teclado en ingles.

    • En muchos ambientes gráficos la combinación de teclas Ctrl + F2 desplega un ejecutar y tecleando «console» o «terminal» puedes levantar un shell. Los que he probado y se que funcionan «gnome-terminal-console» para GNOME y «kconsole» para KDE. 😉

      Salu2

    • Pues mira, que uso Fedora 19 y encuentro la consola facilito facilito 😀 Si mencionas mejor a OpenSuSe con Yast, que es casi innecesario abrir una consola.

  3. Concuerdo como casi siempre con la mayoría del contenido del artículo, 😀 cuando no ???
    Discrepo en el primer punto de los relacionados, eso (a lo cual se refiere) en un sistema con interface GUI se llama administrador (manejador) de tareas, si no sabes usarlo entonces busca ayuda (o lee la que trae, esto no es lo que recomiendan con el man de Linux ??? ), asesórate de otra persona, etc.
    Me parece injusto que los usuarios «avanzados» de Linux quieran ridiculizar la consola de Windows o adjudicarle su poco uso. Mejor preguntarse: Por qué no se usa con mayor frecuencia ?? LOS ASISTENTES GUI !!! Desde que aparecieron estos ayudantes, muchas operaciones se basan solo en simples clics. El que crea que esto es una real pérdida de tiempo y recursos pues entonces tengan de cuenta que con este mismo principio de asistente GUI los CMS y cualquier otra aplicación en la web en la cual todo se basa en el uso de los famosos asistentes. Personalmente apoyo cada vez que mejoran el paquete webmin para la gestión web de procesos de un servidor, es el ejemplo modelo de que se puede administrar (u operar un servidor o PC) sin necesidad de estar pegados a una consola. Que conste que nunca dejo de reconocer que un buen admin de red (y todo aquel que le interese usar un software a plenitud) sepa utilizar esta poderosa herramienta, o sea la consola. Al final cada quien elige las herramientas a usar así como la forma de hacerlo. 😀
    Muy importante los logros que se mencionan en cuanto al uso de la consola y su invitación a que todo usuario puede convertirse en un programador con el simple hecho de experimentar el uso combinado de comandos, conozco de gente que se han asombrado de ver los resultados de novatos con buenas ideas. 😀

    Salu2

    PD: Quizás y me sume algún día a enviar alguna artículo sobre mis experiencias con Webmin pero para ello debo romper la barrera de escribir sin falta de ortografías.

  4. Es cierto que el usuario promedio prefiere hacer las cosas de forma visual pero muchas configuraciones de nuestros sistemas y escritorios (mucho mas si utilizamos WM en vez de entornos) se hacen mejor abriendo una consola y editando los archivos manualmente. Quizás los que como yo tengamos que trabajar con servidores (aunque sean pequeños) sin interfaz gráfica le vayamos con el tiempo cogiendo amor a la terminal que después de todo no es tan malo… al menos nos sirve para responder preguntas en los trivias que ponen en GUTL lol.

  5. El interprete de comandos comparado con bash/dash/et al deja mucho que desear, como minimo las estructuras de control son muy limitadas asi como las sentencias para crear ciclos y bucles. Antes de mi metamorfosis linuxera, trabajé con Windows en todas sus versiones y con MSDOS y nunca encontré anda semejante a bash/dash/et al. Hoy por hoy en Windows lo unico que se le asemeja es monad, el cual no he tenido el «gusto» de tocar

  6. Evidentemente el autor de este artículo no conoce Windows PowerShell y aparentemente no ha usado ninguna versión de Windows diferente de Windows XP. Muchas personas tampoco conocen nada de esto porque deciden quedarse en la edad de piedra con Windows XP y nunca conocen las mejoras sustanciales de las versiones más recientes de Windows.

    Para el que no sepa qué es Windows PowerShell, le recomiendo que lea el artículo acerca de éste en Wikipedia, aunque debo decir que el artículo en inglés tiene mucho mejor contenido y está mejor redactado, como de costumbre. Como resumen, Windows PowerShell es una plataforma de automatización y un lenguaje de secuencias de comandos (scripts) construido encima de .NET Framework, el cual proporciona un entorno de línea de comandos extremadamente similar al de UNIX y Linux con todas sus ventajas y funciones avanzadas. Incluso los comandos de Linux funcionan textualmente y producen el mismo o casi el mismo resultado que si fuesen ejecutados en Linux.

    «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)».

    Puras tonterías. Windows siempre ha tenido un «shell». Es cierto que Windows XP tiene un shell muy limitado con respecto a los de UNIX/Linux, pero este tema se ha convertido en algo irrelevante gracias a Windows PowerShell, pero el que no sabe es como el que no ve.

Los comentarios están cerrados.