
¿Por qué es útil saber comandos de Linux?
No es tan habitual que cuando empiezas a trabajar en el mundo de la ciencia de datos e inteligencia artificial tengas que utilizar máquinas virtuales o ejecutar comandos en una consola de Linux. Los profesionales que somos estadísticos o ingenieros industriales a menudos no aprendemos este tipo de cosas en las universidades. Hoy en día, creo que ya hay hartas universidades con departamentos de ciencia de datos, pero pocas enseñan cosas prácticas.
Esta semana, durante mi master en Computer Science, estuvimos revisando este tipo de cosas, y pensé: ¿Por qué no escribo un poco sobre esto?
En general, este tipo de cosas se aprenden cuando empiezas a trabajar o cuando te enfrentas a este tipo de problemas. Como Data Science, tampoco se usan a diario, pero es bueno aprenderlo de a poco. Si se te olvida algún comando, usa ChatGPT (es bueno en esto).
Hace unos cinco años tomé una pequeña decisión que, con el tiempo, me ha ayudado mucho a practicar comandos de Linux: particioné mi computador personal. Tengo una parte en Linux y otra en Windows. Estoy constantemente descargando e instalando programas, junto con otros comandos . Hoy en día, Windows ya incorporó nativamente el uso de Linux, así que ya no hay excusa para no aprender.
Si inicio mi computador, la primera imagen es:
Pero, ¿realmente usaras Linux en tu trabajo?
En la gran mayoría de tu trabajo no lo usaras, muy posiblemente si trabajas en datos, y especialmente si trabajas como Data Science, trabajaras en desarrollo e implementación de modelos. Tus modelos serán implementados en servicios Serverless, tales como: Cloud Run (Google), Function App (Windows), etc. No obstante, te puede tocar la oportunidad de instalar tus servicios en una máquina virtual o hacer una POC en este tipo de ambientes, por lo que, nunca es malo saber más sobre esto.
Manos en la masa.
Aquí escribiré algunos comandos que son utilices de saber y que no necesitas tenerlos anotados en un cuaderno como biblia. Si se te olvidan, ChatGPT los conoce muy bien.
Este tutorial fue hecho en base a una VM desplegada en Google Cloud. No obstante, todos los comandos son agnósticos de la plataforma (todos en Linux).
a) Conectarse a Máquina Virtual (MV).
Uno de los métodos más transversal para conectarse a una maquina virtual es el protocolo SSH (Secure Shell). Esta metodología permite conectarse de forma segura y cifrada a otra computadora. En este caso, el primer paso es crear una carpeta de nombre. shh en tu computador (PowerShell), usando el siguiente comando:
1mkdir %USERPROFILE%\.ssh
Después se debe ejecutar el siguiente comando para crear la clave .shh.
1ssh-keygen -t rsa -f %USERPROFILE%\.ssh\id_rsa -C "francisco_macaya"
En mi sistema, el nombre del usuario es Francisco_macaya. El comando anterior genera tanto una clave publica como privada. Si desea revisar la clave, debes ejecutar el siguiente comando:
1type %USERPROFILE%\.ssh\id_rsa.pub
Luego de crear la clave, yo cree una instancia (VM) en Google Cloud. Dentro de la configuración de la instancia, específicamente en la parte de conexiones, se añadió la clave publica (id_rsa.pub) generada en el paso anterior, logrando que la nube certifique y valide que mi conexión es segura. Finalmente, la conexión a la maquina virtual se realiza utilizando el siguiente comando:
1ssh -i ~/.ssh/id_rsa francisco_macaya@34.63.1.152
b) Current path directory.
Una buena practica luego de conectarte a la VM es conocer el directorio de la terminal. Generalmente, el usuario no sabe en que directorio esta ubicado, por lo que, se recomienda usar el comando pwd (Print Working Directory) al inicio. Este comando mostrará en que directorio de la computadora esta el usuario
1pwd
c) User (agregar y sudo)
Los usuarios son un elementos relevante en la configuración de Linux. En general, una buena practica es crear un nuevo usuario al levantar una VM, dándole privilegios para instalar, actualizar y descargar programas tanto como librerías. La creación de un nuevo usuario se realiza de la siguiente manera:
1sudo adduser test
El comando anterior solicitará ingresar una contraseña al momento de la creación, que la puedes dejar en blanco o no. Si se crea exitosamente el usuario, volverás al terminal. La instrucción para darle privilegio al usuario es:
1sudo usermod -aG sudo test
Los privilegios principalmente permiten que el usuario pueda moverse entre directorios y carpetas sin ningún problema. Además, el usuario esta capacitado para instalar programas, librerías y paquetes dentro de la maquina. Como las VMs son desplegadas por default, es normal que los clientes tengan que instalar muchos paquetes o sistemas antes de ejecutar sus servicios o productos.
c) Crear una carpeta, leer sus archivos y moverte entre directorios.
El comando para la creación de un nuevo directorio en una VM es:
1mkdir prueba
Donde prueba significa el nombre de la carpeta creada. Junto con esto, para desplazarte al directorio creado, se utiliza el comando cd, de la siguiente manera:
1cd prueba
Si desea volver al path original, se puede utilizar el comando cd con dos puntos, de la siguiente manera:
1cd ..
Finalmente, si necesitas conocer que archivos están dentro de un directorio, simplemente usas el comando ls.
1ls
d) Actualizar e instalar servicios.
Es común que debas instalar programas o paquetes al desplegar tu maquina virtual. Estas VMs esta por defecto, sin ningún programa tal como: Docker, Docker-compose o paquete para instalar librerías de python (pip). Por temas de buenas practicas, se recomienda que al iniciar tu MV se ejecute el siguiente comando:
1sudo apt update
Este comando actualiza todos los paquetes de la VM, instalando las ultimas versiones disponibles en cada uno de ellos. Después, si desea instalar un programa o librerías, debe usar el comando sudo apt install más el nombre de la librería a instalar.
1sudo apt install nano
e) Crear/leer/editar/remover archivos (txt).
Una forma de crear un archivo txt es usando la librería nano previamente instalada. El comando es:
1nano test.txt
En la consola se abrirá el objeto creado, donde puedes modificarlos, escribiéndole texto. Si desea guardarlo, aprietas el comando CTRL + S. Después, el archivo se puede guardar usando el comando CTRL+ X.
Junto con lo anterior, el archivo se puede desplegar desde la consola usando el siguiente comando:
1cat
Conclusion
Siempre saber es mejor. Aprender Linux no es complicado, y hoy en día, ChatGPT es una excelente herramienta para guiarte y conocer más sobre sus comandos. Tu mente debe estar enfocada no en aprenderte de memoria los comandos, sino que practicarlos, para que si te enfrentas a estos ambientes sepan y tengas la noción de como trabajar con ellos sin mayores problemas.