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.
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.
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!
Descarga gratis el e-book
Conoce la mentalidad, los roles y las tecnologías que debes saber para convertirte en desarrollador Web.
Descargar e-book