Descubre la potencia oculta de Linux con estas 5 características de la terminal
Tags: linux, programming, beginners, computerscience
Published: 2023-02-10 21:41:16

> Usar Linux no se trata solo del Software Libre, sino de tener control sobre la tecnología que usamos en nuestra vida cotidiana
**Autor: Richard Stallman**

En esta simple frase, el creado de GNU y defensor de la libertad en el software, nos habla de la importancia de tener el control sobre la tecnología que usamos día a día; Así que si eres un profesional en cualquier área de la informática sea en desarrollo, seguridad, diseño, administración o cualquier otra, estarás de acuerdo con esta sentencia tan sencilla y directa.

Por lo tanto, hoy te voy a hablar de que es la terminal de comandos y cuáles son las ventajas al usarla como herramienta diaria, seas o no un usuario avanzado de cualquier sistema Unix-like.

---

## ¿Qué es la terminal?

En simples palabras, es una interfaz que simula una línea de comandos de los antiguos **sistemas operativos Unix creados en la época de 1970 por Ken Thompson y Dennis Ritchie de AT&T Bell Labs,** el cual fue utilizado primero como herramienta interna para mejorar la eficiencia del área de computación, pero con el tiempo se convirtió en el sistema operativo más influyente del mundo, **gracias a su filosofía de menos es más**, teniendo una línea de comandos simple pero poderosa.

![Prompt y símbolo del sistema de una terminal de comandos
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4oh2fg1dh40vkdebe14j.png)

En esta imagen se nos **muestra el prompt** que no es más que la línea donde el usuario puede empezar a ingresar comandos para interactuar con el sistema operativo, usualmente presenta el nombre del usuario (ricardoveronica), el nombre del equipo (manjaro) y la ruta actual donde se encuentra el usuario (~), además se nos presenta el **símbolo del sistema** que marca el nivel de acceso de cada usuario, en este caso el signo de dólar **$** indica que es un usuario regular, si se tratara de un superusuario o usuario root este símbolo cambiaria por una almohadilla, numeral, hashtag o gato, según lo conozcas **#**

## ¿Qué es un comando?

Un comando se puede ver como un programa de Unix el cual tiene una responsabilidad única, esta responsabilidad es típicamente una tarea muy sencilla y se puede decir qué hasta resulta un poco simple.

![Comando ls y su output en una terminal Linux
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2ilpoa7zy682ts7dnrq.png)

En la imagen anterior podemos ver el comando **ls** (List) el cual imprime en pantalla los directorios y archivos que existen en la ruta donde se encuentra el usuario; Este, como todos los comandos, es sumamente flexible y poderoso, pues admite parámetros, los cuales amplían su funcionalidad, otra gran ventaja es que puedes combinar estos comandos para potenciarlos y tener mayor control en sus respuestas.

![Combinación de comandos con parámetros y opciones
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwarksay1uc1q3sl00dp.png)

Como ves en la imagen, le estoy pasando al comando **ls** opciones las cuales modifican su comportamiento (**-la** por **List All**) en este caso le pido que me muestre en forma de lista todos los directorios y archivos, incluyendo los archivos ocultos del sistema, los cuales mayormente sirven para configuración o revisar logs del sistema, estos inician con un punto antes de su nombre (.bash_history), además lo estoy combinando con el comando **grep** (Global Regular Expression Print) el cual busca e imprime el contenido que coincida con una expresión regular que le pasemos como parámetro, el cual, en este caso, le estoy pidiendo que me imprima todos los archivos o carpetas que tengan la palabra **bash**.

## Las 5 características de funcionamiento de la terminal

Muy bien, pasando a lo que inicialmente indica el título… A continuación te voy a dar la lista de las 5 funcionalidades que te permite tener esta magnífica herramienta.

- La terminal, como vimos anteriormente, está específicamente diseñada, para interactuar con el usuario, dándole el control absoluto del sistema operativo, pudiendo **recibir y ejecutar comandos,** los cuales el usuario tiene el poder de modificarlos y ampliarlos para tener un mejor resultado de esta interacción máquina-usuario.

- Existe la posibilidad de **crear Alias para los comandos,** sus opciones y las combinaciones que el usuario le resulten más útiles.

![Alias creado en la terminal de Linux
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t9skrfmqexi1hl60xqsk.png)

En este ejemplo estoy creando el alias **printbdf** (print bash dot files), para ahorrarme el escribir todo el comando, con opciones y combinaciones en una sola palabra que puedo recordar fácilmente.

- El usuario tiene la posibilidad de revisar el historial de comandos escritos incluso desde la primera vez que utilizó el sistema operativo, esto se logra o bien con el comando **history**, o revisando el archivo **.bash_history** en caso de usar bash o **.zhistory** para los usuarios de ZSH

- **Gestionar variables de entorno,** esta simple característica da para otro artículo completo, pues es un tema amplio y muy útil que podemos tratar en otra ocasión, pero por lo pronto te dejo un ejemplo de lo que es una variable de entorno

![Variable de entorno con el comando echo
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2hol1nrd7ipded29svtk.png)

En la imagen puedes ver que estoy imprimiendo la variable de entorno **$HOME** la cual **indica la ruta de mi usuario en el sistema** y así como esta variable existen muchas más, e incluso puedes crear tus propias variables para cualquier caso de uso, si tienes acceso a una terminal escribe el comando printenv o env para ver todas las variables de entorno en tu sistema, pero repito esto lo veremos en otra ocasión.

- Por último, pero no menos importante, tenemos el famoso caso del **Bash Scripting**, esta característica no solo da para escribir otro artículo completo, sino todo un **curso al respecto,** pues se trata de poder crear tus propios programas combinando el poder de todos los puntos anteriores para automatizar tareas o procesos en tu trabajo diario, además de que si eres desarrollador de software esto te interesará mucho, pues aquí puedes utilizar el lenguaje de programación llamado **shell programming** o incluso **PHP, Node, Python** o cualquier lenguaje que tenga la característica de interactuar con la terminal de comandos.

## Conclusión

La terminal de cualquier sistema Unix-like, como macOS o cualquier distribución Linux, es extremadamente útil para los profesionales en el campo de la informática, pues **te permite ser más eficiente** al darte libre acceso a tu sistema operativo. Además de tener un sinfín de comandos existentes, puedes ampliarlos con opciones o parámetros y guardarlos como aliases para ser usados de inmediato y con menos esfuerzo de tu parte, incluso **puedes escribir tus propios programas ejecutables** para automatizar cualquier tipo de proceso o tarea que tengas en mente; Por lo tanto, **la terminal es la herramienta más flexible, poderosa y veloz que tienes a tu alcance.**

## ¿Dónde ver más contenido al respecto?

Puedes encontrar un sinfín de documentación en la web, así como cursos especializados en **Udemy**, **Platzi** o incluso en **YouTube**, pero lo que te recomiendo para iniciar inmediatamente es ir al siguiente artículo
{% embed https://medium.com/@ricardoveronica/controla-linux-desde-la-terminal-158915bdd128 %}

**Lo escribí teniendo en mente la forma más fácil de iniciar** con la terminal de Linux, aunque **si eres usuario de Windows también puedes iniciar con esta maravillosa herramienta** directamente en el sistema operativo de Microsoft con el siguiente artículo
{% embed https://medium.com/@ricardoveronica/s%C3%A9-el-amo-de-windows-desde-la-terminal-8b980e1676f2 %}

> Si te gusta mi contenido, considera suscribirte y apoyar mi trabajo dando like, comentando o compartiendo este o cualquier artículo que he escrito.

Estoy preparando contenido para mi canal de YouTube, puedes suscribirte para que puedas verlo en cuanto este listo.
{% embed https://www.youtube.com/@ricardoveronica203/featured %}

Puedes ver este mismo artículo en Medium
{% embed https://medium.com/@ricardoveronica/descubre-la-potencia-oculta-de-linux-con-estas-5-caracter%C3%ADsticas-de-la-terminal-761cf6daaad3 %}

Photo by Markus Spiske on Unsplash