Shell, Bash, emulador de terminal, y otras definiciones

Shell, Bash, emulador de terminal, y otras definiciones

Shell y Bash

Los sistemas operativos (SO) utilizan un programa para interactuar con el usuario en un bajo nivel. Este programa es la shell y es un intérprete de comandos. Los intérpretes leen código escrito por seres humanos y lo traducen para que el sistema operativo entienda qué hacer. Este intérprete entiende en un lenguaje de programación específico. Los intérpretes no son parte del sistema operativo, pero si ejecutan comandos para operar con este. Entonces, la shell lee comandos y los ejecuta. Estos comandos pueden ser escritos en consola, es decir, por una interfaz de línea de comando (CLI por sus siglas en Inglés), o en una interfaz de usuario gráfica que emula una consola (GUI por sus siglas en Inglés) como Terminal. Así, la shell provee una CLI, que permite la comunicación entre el usuario y el SO.

Bash (Bourne Again SHell) es una de las shell más comunes para sistemas operativos UNIX como Linux y MacOS. Antes de adentrarnos, veamos algunas definiciones. Sin embargo, hay otros tipos de shell como sh, csh, tcsh, ksh, zsh, entre otras. Además, Bash también es un lenguaje de programación interpretado, y se utiliza para el control de las tareas que lleva a cabo un computador.

Emuladores de terminal

Un emulador de terminal es un programa que permite interactuar con la shell. De forma general, se le llama terminal. Algunos ejemplos de emuladores de terminal son: terminator, tilda, guake, terminology, entre otros. A continuación se presenta un ejemplo de un emulador de terminal en Ubuntu:

./img/em.png

Otras definiciones importantes

Lenguaje de programación: Es un lenguaje formal compuesto de comandos, instrucciones y sintaxis para crear varios tipos de lógica a través de un computador. Se utilizan con frecuencia para implementar algoritmos. Algunos ejemplos son Bash, AWK, Python, C++, C, Julia, Sed, Java.

Algoritmo: Secuencia finita de instrucciones bien definidas, computables, diseñada para resolver problemas lógicos y hacer computación. Se estudian formalmente en matemáticas y en ciencias de la computación. Se usan frecuentemente para procesar datos, hacer cálculos o automatizar procesos.

Consola: Es una CLI para receptar comandos que un usuario escribe para la shell. Es independiente de una interfaz de usuario gráfica. Básicamente una interfaz donde solo hay texto.

Terminal: Es un emulador de una consola ya que cumple la función de un CLI, pero a través de una GUI. Esto implica que posee botones para facilitar el acceso al usuario.

Interfaz por línea de comandos: Se refiere a una interfaz de programación que ejecuta sentencias sin ayuda de botones y gráficas donde hacer click con el mouse, sino donde solo se puede escribir código.

Interfaz gráfica: Se refiere al uso de herramientas gráficas como botones y ventanas interactivas intuitivas para ayudar al programador a escribir código. Jupyter Lab y VSCode son ejemplos de interfaz gráfica para programación interactiva.

Material suplementario

Si quieren aprender temas más especializados bash, emulador de terminal y otros temas, pueden explorar los siguientes recursos, que son de acceso libre: