Terminales en Linux

¿Qué es una terminal?

Bash es una terminal, pero una terminal no es Bash. Bash es simplemente una implementación. En la próxima sección vamos a hablar más de Bash específicamente.

El término terminal (algunos les dicen consola, es lo mismo), proviene de las "terminales" físicas que se usaban en los inicios de la computación. Las computadoras no eran lo mismo que eran hoy, ya seguramente escucharon que en los inicios las computadoras eran máquinas enormes que ocupaban habitaciones enteras. También escucharon hablar de las tarjetas perforadas. Básicamente los programadores de esa época, codificaban los programas y los datos usando perforaciones en tarjetas de papel. Las terminales fueron un pequeño avance: ahora tenían un dispositivo que tenía una pantalla y un teclado y que servia como dispositivo de entrada y salida (para poner y recuperar datos).

DEC VT100 Terminal

Cuando hablamos de la terminal nos referimos a un programa que usualmente corre sobre una interfaz gráfica que emula a estas viejas terminales y su único propósito es comunicar al operador (ustedes) con el sistema operativo.

¿Qué es Bash?

Si llegaron hasta acá es probable que tengan alguna idea de cómo responder a esa pregunta. Pero, por cuestiones de completitud, veamos muy rápidamente una definición de Bash.

Bash (Bourne-again shell) es un programa informático, cuya función consiste en interpretar órdenes, y un lenguaje de consola. Es una shell de Unix compatible con POSIX y el intérprete de comandos por defecto en la mayoría de las distribuciones GNU/Linux

Analizemos un poco esa definición porque ya agrega un poco más de complejidad al concepto que teníamos.

Bash es un lenguaje que usamos en la consola. Usamos la consola para realizar tareas en los sistemas cuando no contamos con una interfaz gráfica. Nosotras, usando este lenguaje, vamos a dictar órdenes para realizar ciertas operaciones. Y cuando pase el tiempo y ganemos cierta experiencia usando este lenguaje, vamos a poder realizar tareas cada vez más complejas.

Es una shell de Unix compatible con POSIX. Es solo una shell de Unix. Existen otras implementaciones. Algunas de las más conocidas son zsh (actualmente por defecto en nuevas versiones de MacOS), fish, sh. Bash es tal vez la más conocida y adoptada en todas las distribuciones de GNU/Linux. Y es compatible con POSIX. Este es un estándar definido que nos garantiza interoperabilidad.

Por defecto en la mayoría de las distribuciones de GNU/Linux. Bash es su puerta de entrada a GNU/Linux. Estar cómodas con Bash les va a permitir hacer lo que quieran al operar una distribución cualquiera de GNU/Linux. Sabiendo esto, no hay nada que no puedan hacer.

Un clásico de XKCD