Línea de comandos 🖥

Ari Olvera 28/jul/21
Desarrollo

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.


prompt

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.


prompt

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.


webos_commandline_tutorial


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


touch_command

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:


node_version

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):


npm_help

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.


autofill

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.


search

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:


pwd

ls

mkdir

cd

cp

mv

mv

cat

nano

grep_node

rm_rf

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 🤣.