Aprender a usar la terminal

2021-07-25

Este artículo es una réplica del topic que abrí en el foro de Cybercirujas: https://cybercirujas.rebelion.digital/foro/viewtopic.php?f=7&t=29

A la hora de recuperar equipos que el mercado y las big tech han decidido dejado obsoletos, el mundo del Software Libre aparece como un oasis de libertad y de sobrevida para ese hardware que, de regirse por las reglas de la obsolesencia programa, hubiese terminado enterrado por miles de años, empujando a sus previos usuarios a desembolsar una suma de dinero considerable en un reluciente aparato nuevo.

Esto no es nuevo para les cybercirujas. Todes conocemos las bondades del Software Libre, y no solo en equipos viejos, sino que se nos presenta como la primera -y para algunes, única- opción para instalar incluso en un hardware nuevo. Sin embargo, muchas personas que están comenzando con la recuperación de equipos, o bien las mismas personas que reciben equipos recuperados, se enfrentan por primera vez a un Sistema Operativo de PC distinto a los comerciales más utilizados. En general, les cybercirujas optamos por instalar alguna distribución de GNU/Linux.

Con ninguna certeza, pero cero dudas, diría que cualquier usuarie que interactuó alguna vez con un interfaz gráfica de escritorio puede adaptarse muy fácilmente a la mayoría de los Entornos de Escritorio que ofrecen las distros de GNU/Linux, sea XFCE, GNOME, KDE, LXDE, LXQT, etc. Sin embargo en algún momento se verán en la necesidad de interactuar con su computadora mediante una interfaz de texto que se conoce como Terminal, shell o línea de comandos.

La reacción de las personas que tienen una larga historia con las interfaces gráficas puede ir desde la curiosidad hasta un terror absoluto al verse en la necesidad de introducir caracteres en una línea de comandos. Para muches, el mundo de la terminal puede parecerles una lugar exclusivo para los mejores hackers, programadores y especialistas informáticxs.

La realidad es muy distinta. Antes de que apareciesen las interfaces gráficas en las PC de consumo hogareño (allá por finales de los 80, principios de los 90), la mayoría de las personas interactuaban con sus computadoras mediante la línea de comandos. Y con “las personas” me refiero a informáticxs y científicxs, pero también a empresarixs, docentes, estudiantes, empleadxs administrativxs, etc. Interactuar con la computadora mediante la terminal era una habilidad que toda persona que quisiera utilizar una computadora necesitaba adquirir. La aparición de las interfaces gráficas hizo que muchas personas dejen de necesitar recurrir a la terminal para las tareas que realizaban a diario. Sin embargo, para muchas tareas la terminal se presenta como una interfaz muy eficiente para realizarlas, incluso hasta hoy en día.

Por ejemplo, en distribuciones como Debian, Ubuntu y derivadas (como Huayra), podemos actualizar todas las aplicaciones de nuestro sistema escribiendo solo tres palabras en una sola línea:

sudo apt upgrade

¿Esta es la única forma que tengo en GNU/Linux de actualizar mis aplicaciones? Claro que no! Muchas distribuciones ofrecen interfaces gráficas para hacerlo, y en general apretando un solo botón. Entonces, si ya tengo un botón para hacerlo, ¿vale la pena seguir usando la terminal? Claro! Por ejemplo, si cada vez que instalo un GNU/Linux en una computadora quiero instalarle siempre las mismas aplicaciones, podría utilizar la interfaz gráfica y buscar cada una de esas aplicaciones (algo que probablemente requiera muchos clicks y scrolleos). Ahora bien, si la primera vez que lo hago anoto el nombre de los paquetes de esas aplicaciones, por ejemplo:

mpv firefox blender thunderbird libreoffice

En la próxima máquina puedo copiar esos nombres e instalar todos esos programas en una sola línea:

sudo apt install mpv firefox blender thunderbird libreoffice

Si tenés que hacer esto en muchas máquinas, te ahorrás mucho tiempo!

Las distribuciones de GNU/Linux siguen ofreciendo y promoviendo el uso de la terminal, no por una cuestión elitista, sino por su eficiencia para realizar muchas tareas. Y dado que GNU es un sistema operativo que nació inspirado en Unix, los comandos que utilizamos en él soy muy similares a los que utilizamos en una terminal de Unix. Muches aprendimos a utilizar la terminal medio a los golpes, copiando y pegando lineas, buscando información en Internet, leyendo las ayudas o manpages de los programas. A pesar de ser una forma muy divertida de aprender, quizás está bueno tener una base para entender qué estamos haciendo con esas líneas.

Existe una comunidad de personas dedicadas a generar material y enseñar a programar y proveer conocimientos sobre el manejo de datos a científiques de todo el mundo: The Carpentries. La idea fundamental es que ellos ofrecen cursos a partir de materiales didácticos que se construyen de manera comunitaria bajo licencias Creative Commons. La mayoría de sus cursos están en inglés, pero hay uno en particular sobre aprender a utilizar la Terminal de Unix que se encuentra traducido al español.

Si bien la audiencia de The Carpentries está orientada al ambiente académico, creo que el material de ese curso es muy útil para cualquier persona que quiera aprender a utilizar la terminal sin contar con ningún conocimiento previo. Además de la terminal, el material recorre contenidos como el sistema de archivos de Unix y GNU/Linux, cómo leer la documentación de los programas, cómo encadenar programas para realizar diversas tareas y hasta como podemos escribir scripts que nos permitan automatizar tareas.

Espero que el material le pueda servir a algune cyberciruja que se está iniciando con la terminal, o bien a les más expertes que quieren aprender algún que otro truquito que no conocían.