Línea de comandos 🖥
Como primer artículo técnico, decidí comenzar con un tema fundamental para cualquier perfil de desarrollo de software, como desarrollo web, mobile, cloud engineer, DevOps, data scientist, etc…
La línea de comandos es una poderosa herramienta, rápida, muy completa y aunque no lo creas sumamente intuitiva, con la práctica continua te sentirás más seguro al teclear los comandos necesarios para realizar tareas.
Tengo que reconocer que a primera vista la línea de comandos impone bastante, solamente es una pantalla negra con un “prompt” (indica que el equipo está listo para recibir entradas), en una configuración de fábrica sería el nombre de tu equipo seguido de algún carácter especial por ejemplo: en Linux ubuntu@direcciónIP_~$, en MacOs mac-book-pro-usuario:~ y en Windows c:\>. Un amigo me comentó que le daba miedo tocar el terminal porque tenía la sensación de que al ingresar cualquier comando erróneo, podría generar un grave problema en su sistema o eliminar accidentalmente archivos importantes, pero no te preocupes, después de leer este artículo te sentirás con más confianza.
Personalización
El prompt es muy flexible en su configuración, indicando información relevante como la ruta en la que te encuentras, la rama del repositorio de git en la que estés trabajando y mucho más.
En MacOs utilizar la aplicación “Terminal” no es tu única opción o Shell en Linux, puedes instalar otras aplicaciones de la línea de comandos como iTerm o Tilix respectivamente.
Además de elegir la aplicación que emule la interfaz gráfica de la línea de comandos que más te guste, es posible incluir temas, tipografías, atajos, funciones de personalización, plugins de terceros y la lista continúa…
Uno de los grandes creadores de contenido que sigo “Wes Bos”, publicó un sencillo tutorial (gratuito) donde aprenderás a personalizar la interfaz gráfica de la línea de comandos.
Sin embargo, también existen distintos intérpretes de la línea de comandos; son programas que gestionan las entradas que el usuario proporciona por medio del teclado, el intérprete procesa las entradas para convertirlas en instrucciones que el sistema operativo puede entender. Hago este comentario por si te encuentras con términos como Bash, ZSH, Tcs, Ksh, Fish. Por ejemplo el intérprete predefinido en la línea de comandos del Terminal para MacOs era Bash hasta la versión Catalina 10.15 donde cambió a ZSH, no hay porque agobiarse, independientemente de los intérpretes de la línea de comandos, su funcionalidad es la misma y todas responden a los mismos comandos básicos.
Si has usado algún manejador de versiones como el popular GIT, te habrás dado cuenta que al ejecutar los comandos siempre, siempre, … siempre inicia con la palabra git, por ejemplo:
git clone
git pull
git stash
Esto significa que el primer comando que escribes es el nombre del programa que quieres ejecutar o al que le quieres dar instrucciones seguido de la operación específica del programa.
Virgulilla o Tilde ~
Significa que estamos en la raíz del ordenador, es decir la carpeta base de todo el sistema, de donde derivan las demás.
Comando ejecutado correctamente
Si el comando ha sido ejecutado correctamente, simplemente observaras que el prompt hace un salto de linea, eso quiere decir que el comando se ejecutó con éxito, de lo contrario mostrará un error por pantalla
Modificadores (flags) -
Casi todos los programas ofrecen modificadores para mostrar información de diferente manera o para utilizar funciones específicas de los programas, las cuales estarán indicadas por un guión alto - seguido de una letra que puede ser mayúscula o minúscula, también existe la sintaxis de un doble guión alto -- seguido de una palabra, por ejemplo: revisar la versión de node instalada:
Documentación
Como mi profesor de React comentaba “No hay mejor libro para entender React que la documentación oficial”, tomando en cuenta estas sabias palabras, el primer comando con modificador que te recomiendo tener siempre presente es -help, el cual despliega un manual de usuario del programa, por ejemplo: revisar las opciones de npm (Node Package Manager):
Recuerda puede ser la versión corta npm -h o la versión larga npm -help
Cancelar comando
Al estar tecleando si tienes un error y quieres borrar o cancelar el comando puedes utilizar la combinación de teclas:
CTRL + c
Autocompletar
Es posible autocompletar nombres de rutas, comandos y casi cualquier enunciado con la tecla tab, así como navegar con las flechas del teclado.
Buscar comando
Opción 1: teclear la flecha arriba ⬆️, te mostrará uno a uno, los comandos tecleados en orden histórico.
Opción 2: CTRL + r, busca por palabras que coincidan en tu historial de comandos tecleados.
Comandos básicos
Comando | Descripción | Funcionalidad |
---|---|---|
help | - | Despliega el manual de usuario del programa |
pwd | present working directory | Indica la ruta en la que te encuentras |
ls | list | Muestra el contenido de una carpeta ordenado alfabéticamente |
ls -l | - | Muestra los archivos y directorios con permisos, usuario, grupo, tamaño y fecha de modificación |
ls -la | - | Agrega al listado los archivos ocultos que empiezan por . |
touch | - | Crear un archivo vacío |
mkdir | make directory | Crear una carpeta |
cd | change directory | Cambia de directorio al que especifiques con ruta absoluta o relativa |
cp | copy | Copia un archivo o carpeta de una ruta a otra |
mv | move | Mueve un archivo o carpeta de una ruta a otra, también puedes modificar el nombre del archivo o carpeta manteniendo la ruta de origen y destino igual, modificando el nombre del archivo o carpeta |
sudo | super user do | Antecede al comando que requiera permisos de administrador |
cat | - | Abre un archivo en modo lectura |
nano | - | Abre un archivo en modo edición por medio del editor de texto predefinido |
grep | global regular expressions print | Busca caracteres especiales en un String. Este comando requiere su propio tutorial, es super útil |
clear | - | Limpia la pantalla |
rm | remove | borrar archivo o carpeta |
rm -r | remove recursive | Además de borrar la carpeta, se carga todo lo que esté dentro de ella; es decir subdirectorios, archivos, todo! |
rm -rf | remove recursive forced | Si algún archivo tuviera una protección especial para confirmar su borrado, el borrado forzado omite esa validación y lo hace directo |
Importante al ejecutar el comando borrar ya no hay vuelta atrás ni para acudir a la papelera de reciclaje, lo que has borrado, no se puede recuperar, presta mucha atención y piensa bien que estas borrando.
A continuación ejemplos de los comandos listados para un mejor entendimiento:
La terminal o consola de comandos, es una herramienta imprescindible para los desarrolladores, además recuerda que intuitivamente ya la has utilizado por medio de git, Node e incluso en cualquier IDE (Integrated Development Environment) como VS Code, al ejecutar los comandos básicos para instalar dependencias, arrancar el servidor de desarrollo y sobretodo para aprender a utilizar mejor git, porque no todo es git clone y git push 🤣.