Introducción a bash - paso 1: Bases, echo y "Hola mundo"

[h]Introducción a bash[/h]https://www.wifi-libre.com/img/members/3/bash.jpg [h]Conceptos bases y primer script : “¡Hola mundo!”[/h]

[h]¿Qué significa bash?[/h]

Significa Bourne Again SH.
Se trata de un chiste de informático.
El chiste : Un juego de palabra entre “Born again” (volver a nacer) y “Bourne shell
Bourne shell es el “ancestro” de **bash **y se conoce como “sh
Bourne Shell es obra de Steve Bourne, Fue lanzada con la versión 7 de Unix (1978).
Bash es un “renacimiento” de sh (Ahora que lo habéis pillado estoy seguro de que os estáis partiendo de risa. :stuck_out_tongue: )
Une fecha importante en la vida es bash es 1990 cuando Chet Ramey se convirtió en su principal desarrollador.

[h]¿Qué es?[/h]

Su nombre lo dice todo; bash es una “shell”. O consola. O Terminal.
https://www.wifi-libre.com/img/members/3/Terminal---kcdtv-Z1Z1coincoin-_230.png
Más precisamente es el interprete de ordenes que podemos usar nosotros mismos en una simple consola.
Fue diseñado para el proyecto** GNU-Linux** y esta basado directamente en el interprete de ordenes de UNIX **
Es, hoy en día, el
interprete de ordenes de las distribuciones GNU-Linux y de los macOS**,

[h]¿…Y qué es un intérprete de ordenes?[/h]

Es una interfaz directa entre tú y tu sistema operativo.
Cada vez que escribes una orden en una consola " estás hablando" en bash. Y lo que dices se ejecuta directamente en tu sistema.
Te permite sobrepasar los limites de tu entorno gráfico y tener un control total sobre tu distribución GNU-Linux.
Es lo mismo que la cmd de windows… en mucho más chulo y potente. :cool:

[quote]Hoy día los lanzadores de aplicaciones predominantes están basados en gestores de ventanas gráficos, que suelen emplear el ratón como dispositivo de entrada. El clic sencillo o el doble clic determinan la orden de ejecutar un cierto programa.
En los años 90 corporaciones como Microsoft y Apple consideraron que el intérprete de órdenes ofrecía una interfaz complicada de cara al usuario final, de ahí que decidieran limitar su funcionalidad o prácticamente eliminarlos de sus sistemas operativos. Por su parte, los sistemas operativos tipo UNIX siempre han mantenido esta funcionalidad.
Hoy día se experimenta un cambio en este paradigma en el sentido opuesto, volviendo dichos fabricantes a ofrecer intérpretes de órdenes funcionales y flexibles argumentando que tienen gran valor para tareas de mantenimiento y recuperación en situaciones críticas. Un ejemplo es el MS-PowerShell o el hecho de que las últimas versiones del sistema operativo de Apple estén basadas en un sistema operativo tipo UNIX, incluyendo sus intérpretes de órdenes.

[/quote][right]Intérprete de ordenes[/right]
Un interprete de ordenes simplemente “interpreta tus ordenes” : 1) Escribes “reboot” en la consola, 2) bash lo “interpreta” (“traduce”) y manda tu ordenes a tu computadora que 3) se reinicie (función del comando “reboot”)

[h]¿Es bash un “lenguaje de programación”? [/h]

Es una pregunta que puede hacer debate.
Podemos hablar de lenguaje interpretado pero no podemos hablar de un lenguaje de programación stricto sensus.
Con bash no hacemos “programas” pero “scripts”.
A la diferencia de un programa; no tenemos que compilar y instalar un script bash para que funcione.
Solo tenemos que ejecutarlo desde la consola.

[h]¿Qué es un script?[/h]

De esto se trata y a esto vamos :slight_smile:
Un script te permite ejecutar todos los ordenes que quieres.
En lugar de tener que escribir los de uno en uno en una consola; los escribes en un archivo de texto.
Y bash seguirá el guion; Bash va a leer y ejecutar los ordenes inscritos en tu “script” uno tras otro,

[h]Primer script[/h]

Así que para hacer nuestro script no necesitamos nada más que un editor de texto para poner nuestros ordenes.
Lo hago con gedit que recomiendo porque pone colores en las liñas de nuestros scipts para ayudarnos a redactarlos (ver en fin de post).

sudo apt-get install gedit

Abrimos nuestro editor de texto y escribimos nuestro primer script.

echo "Hola mundo"
  • echo es una orden. Otro “chiste” de informático en referencia a la ninfa Ἠχώ (eko); condenada a repetir lo que oye.
    Y es que echo sirve para escribir en consola lo que ponéis después.
    abrir una consola > escribir echo hola > darle a enter > y obtenemos Hola https://www.wifi-libre.com/img/members/3/Terminal---kcdtv-Z1Z1coincoin-_231.png
    Guardamos el texto y lo llamamos “script” (el nombre no importa), lo guardo en mi carpeta “Documentos”.

[h]Ejecutar nuestro primer script[/h]

para ejecutar un script necesitamos hacer dos cosas:
[list=1]
*]situarse en el directorio (la carpeta) dónde se encuentra nuestro script (se hace con el comando cd)

[h] La “Bang Line”[/h]

No es necesario (hemos ejecutado el script antes sin ella) pero muy aconsejado.
La bang line es la primera liña de un script bash y es esta:https://www.wifi-libre.com/img/members/3/bash.jpg
Se pone para indicar cual es el interprete de ordenes (en este caso es el camino hacía bash : “/bin/bash”)
Las liñas que empiezan con una almohadilla no se ejecutan y por lo tanto la bang line no se ejecuta. Esto si, esta reconocida por el sistema como “bang line” y se toma en cuenta.
vamos también a dejar un comentario en nuestro script, una liña en el código que no se ejecuta pero que esta aquí para dar unas indicaciones sobre el script.

[code]#!/bin/bash

primer script en bash copyleft GPL v3 @ wifi.libre.com

echo “Hola mundo” # zona para comentarios[/code]
Que guardamos como script.sh (para tomar buenas costumbres)
La extensión en linux es solo a titulo indicativo. “*.sh” es la extensión usada para los script bash; así que es la que usamos.
En cuanto lo guardamos… https://www.wifi-libre.com/img/members/3/bashwxho2.jpg

gedit entra en acción gracias a la bang line y podemos distinguir perfectamente los elementos que componen el código
[list=]
]las ordenes en rojo y engrita (en nuestro caso es “echo”)/]
]Lo que es texto (entre separadores* "**) sale de rosa , lo que se imprimirá en consola ( Hola mundo)/
]
]Nuestra bang line sale en azul oscuro y negrita. Es un comentario especial ya que no se ejecuta (empieza por una almohadilla) pero se toma en cuenta. Por esto esta en negrita a la diferencia de los…/]
]… Comentarios “normales” (no se ejecutan ni se toman en cuenta) que salen en azul (sin negritos)/]
[/list]

Como lo podéis ver; hacer un script en bash es ultra simple y no hay nada más directo.
Es ideal para automatizar tareas y; como lo veremos en otros temas, podemos hacer muchas más cosas que poner ordenes los unos después los otros.
El próximo ejemplo será algo más practico que escribir “Hola mundo” en consola :wink: