← Volver a la lista de posts

La línea de comandos

También llamada “consola” o “terminal”, la línea de comandos es una de las herramientas más importantes de todo programador. ¿Qué es? ¿Para qué sirve? ¿Por qué los programadores la usamos tanto? Esas son las preguntas que vamos a intentar responder en este post.

Screenshots

La línea de comandos. Los colores y la apariencia pueden variar según el sistema operativo y la personalización.

En pocas palabras, la línea de comandos es un aplicación que nos permite escribir y ejecutar comandos sobre el sistema operativo sin necesidad de usar el mouse. (A los comandos también se les llama aplicaciones de la línea de comandos).

Algunos ejemplos de comandos que nos permiten navegar y manipular archivos y carpetas del sistema operativo son:

  • cd: cambia la carpeta en donde estamos ubicados.
    $ cd /Users/germanescobar/
  • mkdir: crea una carpeta.
    $ mkdir mi-super-carpeta
  • ls (dir en Windows creo): lista las carpetas y los archivos.
    $ ls
  • mv: mueve una carpeta o archivo a otra ubicación.
    $ mv archivo.txt /otra/ruta.txt
  • rm (del en Windows creo): elimina una carpeta o archivo.
    $ rm archivo.txt

Además de los comandos que trae por defecto el sistema operativo, también es posible crear nuestros propios comandos, e instalar y usar comandos de terceros.

Anatomía de un comando

Todos los comandos se componen de:

  • Un nombre con el que se invoca el comando.
  • Opciones que modifican el comportamiento del comando. Son opcionales.
  • Argumentos sobre los que actúa el comando. También opcionales.

Screenshots

Anatomía del comando ls que lista las carpetas y archivos (en este caso de la carpeta /usr/local). La opción -a muestra los archivos ocultos y -l muestra los detalles de cada carpeta/archivo.

El comando ls, sin opciones ni argumentos, lista los contenidos de la carpeta en la que estamos ubicados como se muestra a continuación:

$ ls
archivo1.txt archivo2.txt archivo3.txt

Si al comando ls le pasamos las opciones -a y -l podemos ver los archivos ocultos y los detalles de cada archivo. Además, le podemos pasar cualquier carpeta como argumento:

$ ls -al /Users/germanescobar/mi-otra-carpeta
drwxr-xr-x    4 germanescobar  staff   136 Apr  5 17:40 .
drwxr-xr-x+ 165 germanescobar  staff  5610 Apr  5 17:40 ..
-rw-r--r--    1 germanescobar  staff     0 Apr  5 17:40 .archivo-oculto
-rw-r--r--    1 germanescobar  staff     0 Apr  5 17:40 archivo4.txt

Para ver las opciones y los argumentos que soporta un comando incluido en el sistema operativo (al menos en Linux/Mac) se usa el comando man <nombre_del_comando>. Para comandos hechos por terceros (p.e. git, rails, etc.), se usa <nombre_del_comando> --help o <nombre_del_comando> -h.

Ventajas de usar la línea de comandos

¿Por qué los programadores usamos tanto la línea de comandos? Por tres razones principales:

1. Los comandos se pueden anidar.

Por ejemplo, supongamos que queremos saber cuántos archivos de la carpeta actual fueron modificados en Abril 5. Podemos usar la siguiente secuencia de comandos (en Linux/Mac):

$ ls -l | grep "Apr  5" | wc -l

Acepto que este comando es un poco críptico pero podemos desglosarlo en partes:

  • ls es el comando que, con la opción -l, lista los archivos con la fecha de modificación.
  • grep es el comando que nos permite encontrar las coincidencias.
  • wc : es el comando que, con la opción -l, cuenta el número de líneas.

El caracter | (pipe) es el que nos permite componer los comandos. La salida de un comando se convierte en la entrada del siguiente. ¡Es muy poderoso!

2. Es posible automatizar tareas repetitivas.

Otra razón por la que los programadores usamos la línea de comandos es la posibilidad de crear scripts, archivos de texto con secuencias de comandos para automatizar tareas repetitivas.

Por ejemplo, podemos guardar la secuencia de comandos del punto anterior en un archivo llamado contar-archivos.sh:

#!/bin/bash
ls -al | grep $1 | wc -l

La primera línea nos dice que este es un script. En la segunda línea hemos cambiado la fecha por la variable $1, que se refiere al primer argumento recibido. Podemos ejectuar el script de la siguiente forma:

$ ./contar-archivos.sh "Apr  5"

3. Somos más productivos.

Aprender a usar la línea de comandos toma tiempo, pero eventualmente los programadores somos más productivos que con la interfaz gráfica.

Primero, tomar el mouse y moverlo por la pantalla es un proceso lento y dañino para tus muñecas. Nada como mantener las manos sobre el teclado. Navegar y manipular archivos por la línea de comandos, por ejemplo, es mucho más rápido que por la interfaz gráfica después de memorizar los comandos y aprender que las rutas se autocompletan con la tecla tab.

Segundo, a diferencia de las aplicaciones gráficas, la línea de comandos consume muy pocos recursos del computador. Eso se traduce en productividad a la hora de crear y ejecutar comandos en nuestra máquina o en un servidor remoto (una tarea frecuente de los programadores).

Por último, al crear scripts o aplicaciones para la línea de comandos, no es necesario diseñar elementos gráficos como campos de texto, botones, etc. Eso nos permite concentrarnos en el problema, no en la decoración.

Estas razones son el motivo por el cuál hoy los programadores hacemos uso de la línea de comandos. No es porque nos queramos ver más hackers ;)


Si tienes un verdadero interés por la programación y quieres aprender a diseñar e implementar tus propias aplicaciones Web no dudes en aplicar a Make it Real!

comments powered by Disqus