Porqué aprender esto

¿Por qué aprender a usar la terminal?

Esta es una hermosa discusión que solemos tener muchas veces. ¿Por qué, en un mundo de interfaces gráficas, querrías aprender a usar la consola? ¿Para qué vas a sufrir usando esos comandos poco amigables si podés resolver las cosas con algunos clicks?

Existen varias razones:

  • Cuando hay recursos limitados, la terminal es la reina. Imagínense teniendo que cambiar la configuración de un servicio corriendo en un datacenter a miles de km y no teniendo la opción de acceder a una terminal. La opción que tienen es, por ejemplo, VNC. Y cada movimiento de mouse que hacen son datos que tienen que transmitirse sobre una conexión de Internet dudosa. Todo se vuelve muy complicado y engorroso. Al contar con una terminal, cambiar un archivo de configuración se realiza sólo transmitiendo los datos necesarios para hacer esto. ssh <host>, vim <file>, wq!, exit. Éxito! (después vamos a explicar esto)

  • La disponibilidad de funcionalidades suele estar atrasada en las interfaces gráficas en relación a la interfaz de línea de comandos (CLI). Es muy simple... implementar una funcionalidad en la CLI es mucho más fácil porque no tengo que estar pensando en componentes gráficas y usabilidad. Por ende los programas que tienen equivalentes de interfaz gráfica e interfaz de línea de comandos usualmente difieren en las funcionalidades ofrecidas. Un ejemplo de esto es Git. Git usualmente se usa en la consola, no con la interfaz gráfica, porque es mucho más potente y simple de usar. Alguna gente usa la interfaz gráfica... pero bueno, hay gente para todo.

  • Para operaciones complejas, la terminal tiene ventaja. Para reemplazar una determinada cadena de caracteres sobre un conjunto de archivos, para renombrar un conjunto de archivos, etc. Todo lo que tenga que hacerse sobre un conjunto de cosas, es más fácil de realizar a través de la terminal. Usando un término más específico, todas las bulk operations, en Español suele decirse procesamiento por lotes.

  • Una palabra: containers. ¿Saben lo que es? Bueno, ya mismo vayan a leer al respecto. No, en serio. Los containers son una (no tan) nueva abstracción que se está utilizando para administrar recursos. Pasamos de solo poder usar máquinas físicas (las computadoras propiamente dichas), a poder usar máquinas virtuales (una emulación de una computadora), a poder usar containers. No vamos a discutir mucho más sobre este tema, pero básicamente los containers son Linux. Y Linux es, muchas veces, poder usar bien una terminal. La única forma para uds de poder administrar containers es sabiendo utilizar correctamente las terminales de Linux.

CLI vs GUI