Introducción a bash - paso 1: Bases, echo y "Hola mundo" (Pagina 1) / Scripts y programación / Foro Wifi-libre.com

El libre pensamiento para un internet libre

No estas registrado.     

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#1 05-03-2015 22:30:42

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,051

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

Introducción a bash

bash.jpg

                                                                                                                                                                         

Conceptos bases y primer script : "¡Hola mundo!"
¿Que significa bash?

  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"
Bournes shell es el "ancestro" de bash y se conoce como "sh"
Bournes Shell es obra de Steve Bournes; 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. tongue )
Une fecha importante en la vida es bash es 1990 cuando Chet Ramey se convirtió en su principal desarrollador.

¿Que es?

  Como su nombre lo indica, bash es una "shell".
Es decir : una consola. Terminal---kcdtv-Z1Z1coincoin-_230.png
Más precisamente es un interprete de ordenes que utilizamos en su 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 por defecto de la gran mayoría de las distribuciones GNU-Linux. Un detalle sin importancia pero curioso : es hasta el interprete de ordenes de Mac OS X Tiger.
 

¿...Y que es un intérprete de ordenes?

  Es una interfaz directa entre tu y tu sistema operativo.
Cada vez que escribes una orden en una consola " estas 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 

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.

Intérprete de ordenes

  Un interprete de ordenes simplemente "interpreta tus ordenes" : escribes "reboot" en la consola, bash lo "interpreta" ("traduce")  y manda tu orden haciendo que tu SO se reinicie (función del comando "reboot")


¿Es bash un "lenguaje de programación"?

  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.

¿Que es un script?

  De esto se trata y a esto vamos 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 en el orden que quieras que sigan.
Y bash seguirá el guión, el script : Va a ejecutar los ordenes en el orden, uno después del otro.

Primer script

  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    Terminal---kcdtv-Z1Z1coincoin-_231.png
  Guardamos el texto y lo llamamos "script" (el nombre no importa), lo guardo en mi carpeta "Documentos".

Ejecutar nuestro primer script

para ejecutar un script necesitamos hacer dos cosas:

  1. situarse en el directorio (la carpeta) dónde se encuentra nuestro script (se hace con el comando cd)
       - Lo he puesto en mi carpeta "Documentos" así que escribo en consola

    cd ~/Documentos/

    y como veis mi consola esta situada en "Documentos" Seleccion_232.png

  2. Invocar el interprete + dar el nombre del archivo a ejecutar
       - En nuestro caso el interprete es bash y el fichero se llama script lo que nos da para ejecutarlo :

    bash script

Seleccion_236.png

La "Bang Line"

  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: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.

#!/bin/bash
# primer script en bash copyleft GPL v3 @ wifi.libre.com
echo "Hola mundo"  # zona para comentarios

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.... script_sh--Escritorio---gedit_237.png

  gedit entra en acción gracias a la bang line y podemos distinguir perfectamente los elementos que componen el código

  • las ordenes en rojo y engrita (en nuestro caso es "echo")

  • Lo que es texto sale de negro , 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)

  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, interesante en lugar de escribir "Hoila mundo" en consola wink

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

Pie de página

Información del usuario

Ultimo usuario registrado: Ike
Usuarios registrados conectados: 1
Invitados conectados: 4

Conectados: Ike

Estadisticas de los foros

Número total de usuarios registrados: 356
Número total de temas: 615
Número total de mensajes: 4,217

Máx. usuarios conectados: 45 el 12-04-2016 12:02:20