martes, 28 de noviembre de 2017

Que es el Terminal de comandos y Bash en Ubuntu?



Este artículo va destinado a la gente que no tiene del todo claro que es el Terminal de comandos en GNU/Linux, que es el Shell, y que es Bash.

Lo habréis oído multitud de veces y lo estáis utilizando casi cada día, pero no tenéis del todo claro si el Terminal, el Shell y Bash son sinónimos o no y que relación hay entre ellos.


Pues vamos allá, empecemos:

El Terminal o consola (hardware) es un dispositivo electrónico o electromecánico que se utiliza para interactuar con una computadora. Suele confundirse con su homónimo virtual, programado para emular las especificaciones de un terminal estándar.


Años atrás los sistemas operativos no tenían una interfaz gráfica, y solo disponían del Terminal para poder visualizar la introducción de comandos o ordenes en la computadora, y a su vez para poder visualizar la salida o resultados de los mismos.




En cambio, en el entrono gráfico del sistema operativo GNU/Linux un emulador de Terminal o emulador de Consola, es un programa informático que simula el funcionamiento de un Terminal de computadora.
Esta es la imagen de un Emulador de Terminal en el entorno gráfico de escritorio en la distribución Ubuntu:



Tenemos clara la diferencia entre un Terminal y un emulador de Terminal, pues continuemos.

En Ubuntu, el emulador de terminal se abre o ejecuta con la combinación del teclado "Ctrl" mas "Alt" mas "T". O también realizando una búsqueda en el tablero como terminal, y os aparecerán 3 terminales: el Terminal, el XTerm, y el UXTerm.

El emulador de Terminal de gnome es el mas actualizado, los otros son terminales derivados del sistema operativo UNIX, que es en el cual se "inspiró" Richard M. Stallman para crear GNU/Linux. También los podréis ejecutar, pero tienen algo menos de funcionalidades que el emulador de terminal de gnome, así que en este artículo los ignoraremos.




En el emulador de Terminal veréis un indicador de linea de ordenes esperando a que el usuario introduzca una orden, se le llama prompt, y tiene un formato donde la primera palabra antes del signo @ es el nombre de usuario con el que se ha iniciado la sesión, y después del signo @ se muestra el nombre del equipo, seguido de los dos puntos (:) que también es un separador. A continuación nos viene la cedilla que es la abreviatura del directorio home del usuario seguido del signo del dolar $ que nos indica que no somos usuarios root o superusuarios.


El prompt puede ser modificado por el usuario y mostrarse con un formato diferente.

El prompt es una indicación que muestra el intérprete para anunciar que espera una orden del usuario.

Y que es el Intérprete?

El Intérprete de órdenes o también llamado Shell (en Unix), es el programa que recibe lo que se le escribe en el Terminal, y si la sintaxis de la orden es correcta lo convierte en instrucciones para el Kernel de Linux en un sistema operativo GNU.
Básicamente permite a los usuarios comunicarse con el núcleo del sistema operativo (Kernel) y darle órdenes.

En otras palabras, el objetivo del Intérprete de ordenes es de traducir los programas o comandos que el usuario teclea en el prompt del mismo, para posteriormente entregárselos al kernel, el cual utiliza el hardware de la computadora (CPU, RAM, etc) para que realice las operaciones oportunas y devuelva los resultados de vuelta al mismo intérprete, que los traducirá  y mostrará en el Terminal para que el usuario pueda entenderlos.

No podemos decir que el Terminal y el Intérprete es lo mismo, pero si que van de la mano. Ya que un usuario con el Terminal pero sin el Intérprete no puede comunicarse con el Kernel del sistema operativo y un Intérprete sin el Terminal de línea de comandos no puede saber que le introduce el usuario.

El Intérprete o Shell por defecto en el Sistema Operativo GNU/Linux y por ende en la distribución Ubuntu es el Bash.
Su nombre es un acrónimo de Bourne-Again Shell ("shell Bourne otra vez"), haciendo un juego de palabras (born-again significa "nacido de nuevo") sobre el intérprete Bourne shell (sh), que fue uno de los primeros intérpretes importantes del Sistema Operativo Unix.

Bash a parte de ser un intérprete de comandos de GNU/Linux, es reconocido como un lenguaje de programación interpretada.

Los comandos que aportan los intérpretes, pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell-scripts.

Cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas, escribe en un fichero de texto, marcado como ejecutable. El intérprete traducirá al núcleo las operaciones línea por línea para que las realice. Sin ser un shell estrictamente un lenguaje de programación, al proceso de crear scripts de shell se le denomina programación shell o en inglés, shell programming o shell scripting.

En el caso del shell Bash, la programación de guiones se denomina bash programming o bash scripting.

Aquí os muestro uno de mis vídeos donde os defino estos conceptos desde el inicio del video hasta el minuto 3:00.



Espero os haya aclarado las dudas. Y nos vemos en el próximo artículo.
Saludos.

2 comentarios:

  1. Hola, quisiera saber si me pueden ayudar ya que necesito hacer un bash en la terminal de ubuntu que me sume los archivos por su tipo y que adicional me de el peso en bytes de esa suma de archivos.

    Gracias

    ResponderEliminar
  2. Hola, que tal si empiezas a mirarte y estudiarte programación scripting en lenguaje Bash. No es dificil, es ponerse. No esperes que alguien haga el trabajo por ti desde cero. Cuando hayas empezado a solventar tu problema y te quedes atorado en alguna parte, expón tu problema y se intentará ayudarte.
    Saludos y suerte con Bash.

    ResponderEliminar

Gracias por participar en este blog.