Fundamentos de la línea de comandos

Teoría: Interfaz de línea de comandos

Cuando usamos un computador, muchas veces lo hacemos dando clic en botones, viendo menús o utilizando ventanas. Esa es la llamada interfaz gráfica de usuario o GUI. Es lo que estamos acostumbrados a ver todo el tiempo.

Pero, ¿sabías que hay otra forma de usar el computador? Más directa, más poderosa, y muy común entre programadores. Se llama interfaz de línea de comandos (Command-Line Interface o CLI). Hoy vamos a comenzar a familiarizarnos con ella paso a paso.


¿Qué es la línea de comandos?

La línea de comandos es una interfaz donde escribimos instrucciones directamente. No hay botones ni ventanas, solo palabras que el sistema interpreta como órdenes. Y funciona muy bien cuando sabes qué escribir.

Primeros pasos: el comando ls

Vamos a empezar con un comando sencillo que nos muestra los archivos y carpetas dentro de una carpeta, muy parecido al "Explorador de Archivos". Este comando se llama ls. Mira cómo funciona:

ls

Este comando nos muestra el contenido de la carpeta actual:

Desktop Documents Downloads Library Movies Music Pictures Public

Hasta aquí todo bien, ¿cierto? Ahora vamos a ver cómo personalizamos este comando usando dos cosas muy importantes: argumentos y opciones.


Argumentos y Opciones: ¿Qué son?

Cuando usamos un comando como ls, podemos pasarle información adicional. Esta se da en forma de:

Elemento¿Qué hace?Ejemplo
ArgumentoLe dice a qué carpeta o archivo aplicar el comando.ls Music
OpciónCambia el comportamiento del comando (por ejemplo, mostrar más información).ls -a

Explorando argumentos

Supongamos que estás en tu carpeta personal y quieres ver qué hay dentro de la carpeta Public. Solo necesitas escribir:

ls Public

Esto es lo que se llama pasar un argumento (Public en este caso) al comando ls.


Explorando opciones

Las opciones son palabras que modifican cómo se comporta un comando. Siempre van precedidas por uno o dos guiones:

OpciónSignificado
-aMuestra también los archivos ocultos (comienzan con . como .git)
-lMuestra información detallada (tamaño, fecha, permisos, etc.)

Veamos los efectos de cada uno:

ls -a     # Muestra todos los archivos, incluso los ocultos
ls -l     # Muestra detalles de cada archivo
ls -la    # Combina ambas opciones

Ejemplo:

ls -la Music

Esto muestra todos los archivos dentro de Music, incluyendo los ocultos, y con detalles de cada uno como tamaño, fecha de modificación y permisos.


¿Y si usamos las opciones de forma incorrecta?

Es importante usar el guion correctamente:

ls la   # ❌ Aquí "la" es un argumento, no una opción
ls -la  # ✅ Aquí estamos usando dos opciones combinadas

Consultar la documentación de un comando

Cuando no sabes qué hace un comando o qué opciones tiene disponibles, puedes usar man (abreviatura de manual):

man ls

Esto abre una guía que te explica todo sobre ese comando. Puedes navegar así:

  • Avanzar: presiona f
  • Retroceder: presiona b
  • Salir: presiona q

También puedes usar el sitio explainshell.com, que explica cada parte de un comando paso por paso con solo copiar y pegar.

Explain Shell


Versiones cortas y largas de opciones

Algunos comandos permiten escribir opciones en forma corta (una letra) o larga (nombre completo):

php -v           # Versión corta
php --version    # Versión larga
VersiónFormato¿Cuándo usarla?
Corta-vEs más rápida para escribir en la terminal
Larga--versionMás clara en scripts o documentación

Opciones con valores

Algunas opciones necesitan que les digamos un valor.

Por ejemplo, en macOS hay un comando llamado say que reproduce en voz alta lo que le digamos. Veamos:

say -o hi.aac 'Hello, World.'

Acá la opción -o le dice dónde guardar el archivo de audio. El texto 'Hello, World.' es lo que queremos que lea.

En general, si el valor tiene espacios o caracteres especiales, lo mejor es usar comillas (simples o dobles):

say -o 'mi audio.aac' 'Hola mundo'

Algunos comandos permiten usar un signo = para asignar un valor (aunque no todos lo aceptan):

say -o=hi.aac 'Hello'

(NOTA: el comando say no acepta este formato, pero otros programas sí).


Más completo: say con múltiples opciones

Es posible usar varias opciones al mismo tiempo:

say -v Alex -o hi -f hello_world.txt

Aquí estamos:

  • Usando la voz Alex (-v)
  • Guardando el resultado en un archivo hi.aac (-o)
  • Leyendo el contenido desde un archivo (-f hello_world.txt)

Este es el formato que describe su uso, llamado SYNOPSIS:

say [-v voice] [-r rate] [-o outfile [audio format options] | -n name:port | -a device] [-f file | string ...]

Interpretamos esta línea así:

  • Todo lo que está entre [] es opcional.
  • El símbolo | indica alternativas (una opción u otra, pero no ambas).
  • string ... significa que puedes pasar múltiples palabras como texto para leer.

Resumen

  • La CLI nos deja usar el sistema por medio de comandos de texto.
  • Argumentos son datos que un comando utiliza, como un archivo o carpeta.
  • Opciones cambian el comportamiento de un comando, y generalmente comienzan con - o --.
  • Combinamos argumentos y opciones para tener comandos más útiles.
  • Hay versiones cortas y largas de opciones (ej. -v y --version), elige según el contexto.
  • Algunas opciones requieren un valor adicional, que se indica después de un espacio o con =.
  • Consulta man o explainshell.com para entender mejor cualquier comando.