Apuntes Bash #1

En esta entrada voy a dejar algunos apuntes del funcionamiento del Bash en linux.

¿Qué es Bash?

Wikipedia: GNU Bash o simplemente Bash (Bourne-again shell) es un lenguaje de órdenes y shell de Unix escrito por Brian Fox para el Proyecto GNU como un reemplazo de software libre para el shell Bourne.

Como es la principal interfaz que nos encontraremos en un entorno linux, considero que merece la pena tener estos apuntes a mano.

Se debe tener en cuenta que Bash se puede ejecutar en modo interactivo o no-interactivo. La principal diferencia para que lo entendamos fácilmente, es que en modo interactivo vamos dando las instrucciones nosotros con el teclado y vamos ejecutando los comandos uno a uno, mientras que el modo no-interactivo sería cuando ejecutamos un script y bash lo ejecuta secuencialmente sin que nosotros tengamos que intervenir.

En modo interactivo nos aparece el prompt antes del cursor, normalmente representado o terminado por «$». Si en su lugar tenemos «#», significa que estamos identificados en ese bash con la cuenta de superusuario (root). Este prompt es fácilmente modificable.

Una vez estamos en el prompt, podemos interactuar con bash usando el teclado. Para conocer rápidamente los comandos que están integrados en bash, podemos ejecutar la orden «man bash». Esta orden nos mostrará el manual del propio bash.

No voy a entrar en el uso del Bash en modo interactivo, ya que el gran potencial lo encuentro en la creación de sus scripts para automatizar procesos. Los que ya hayan tenido contacto con archivos batch de Microsoft o en cualquier lenguaje de programación, encontrarán muchas similitudes.

El archivo de comandos

Un script en bash, es un archivo de texto con propiedades de ejecución. Para conseguir estas propiedades, debemos asignarle el bit x al archivo mediante el comando chmod (chmod +x nombrearchivo.sh)

Gestión de variables:

  • VARIABLE=1 Inicialización de variable
  • export VARIABLE=1 Crear una variable de entorno
  • FECHA=`date` Asignar el resultado de un comando a una variable. En este caso la fecha del sistema.
  • unset VARIABLE Eliminar una variable
  • readonly VARIABLE Variable de solo lectura
  • ${VARIABLE-OTRACOSA} Si VARIABLE tiene valor se usa, si no se usa OTRACOSA
  • ${VARIABLE=COSA} Si variable no tiene valor, se le asigna COSA. No funciona con $1, $2, …

…..

Cadenas

  • Definimos la variable : NOMBRE=»JPerezF»
  • Concatenamos el contenido de la variable Hola JPerezF : echo «Hola $NAME»
  • Imprimimos una cadena Hola $NOMBRE : echo ‘Hola $NOMBRE’

EN CONSTRUCCIÓN