Tutorial

Bash shell: ¿Qué es y para que sirve?

Conozcamos uno de los shells más populares de Linux: Bash

Bash shell es uno de los programas que más usamos en Linux y muchas veces no nos damos cuenta de ello. Vamos a ver ¿qué es y para qué sirve?

Bash: ¿Qué es y para que sirve?

Vale empezar por lo que no es: la terminal de Linux. Hay quienes confunden Bash con la terminal porque es lo primero que ven cuando abren la terminal.

Bash se define como un intérprete de comandos. Va corriendo una a una las órdenes introducidas por nosotros, como alternativa podemos usar directamente un archivo que contiene todas las instrucciones —una forma de programación híbrida—.

Bash corre sobre un shell. Un shell es simplemente un macroprocesador que ejecuta comandos.

Hay una diversidad de shells, entre ellas está Bash. Por lo general una distribución de Linux viene con dos o más opciones. Las podemos ver si escribimos en la terminal:

vi /etc/shells

En mi caso aparece este listado:

/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash

Es importante entender que cuando usamos la terminal y escribimos comandos como ls, pwd, clear, etc. estamos usando Bash, pero a un nivel básico. Para poder explotar al máximo todo el potencial de Bash tenemos que aprender sobre bash scripting.

El bash scripting es realizar una programación usando las instrucciones que están comprendidas en Bash -> shell.

Usar las funciones de Bash a su nivel de scripts nos ayuda a eliminar las tareas repetitivas. Escribimos la tarea que se debe realizar y después solo la dejamos programada, incluso las veces que tiene que repetirse. Escribimos una vez, ejecutamos muchas veces.

Otra de las razones para usar el Bash scripting es para dar dinamismo a las tareas, mediante variables y marcadores de posición (placeholders) es posible alcanzar un nivel profesional de uso de la terminal.

Si queremos contar con información resumida del shell Bash podemos escribir en la terminal:

man bash

Y para ahondar en la información y ser un ‘pro’ en su uso lo recomendable es que leamos el manual oficial de referencia que se encuentra en el sitio de la GNU.org.

Te recomendamos la lectura:  Lanzamiento de Bash 5.0 con nuevas características

¿Tienes alguna consulta o duda relacionada con Bash? Escríbenos en los comentarios para que te podamos ayudar.

Carlos Coria

Soy usuario de GNU/Linux desde el año 2000 cuando instalé por primera vez Debian. En 2004 recibí mi primer CD con Ubuntu 4.10 y desde allí esta es mi distro favorita.

Publicaciones relacionadas

Un comentario

  1. Hola a todos

    Tengo el siguiente código que me lo pasaron para correr un programa en Fiji (un analizador de imágenes) de tal suerte que en la línea 5 corra la app de Fiji, en la línea 7 un script que corra dentro de Fiji y en la línea 11 cargue las imágenes a analizar (son varias pero creo que como me pasaron el código 3_1). Tal como está el código me manda el siguiente error:

    ./ObtenHistogramasFondoNegroE_karl.zsh: line 11: /Users/karl/neto/pba/images/ImagenPrueba_3_1.tiff: cannot execute binary file

    Ignoro si el error es en el archivo ImagenPrueba_3_1.tiff o en algún otro. Sé que el código corre perfectamente bien en LINUX pero yo necesito correrlo en MacOs. Lo que me encantaría es que de este path corriera todas las imágenes ahí contenidas.

    Muchas gracias y ahí va el código que me pasaron:

    #!/bin/bash
    echo 2
    #fijiBin=»/Applications/Fiji.app»
    #fijibin=»/Users/karl/neto/Fiji.app»
    fijiBin=»/Users/karl/neto/Fiji.app/Contents/MacOS/ImageJ-macosx»
    echo 6
    script=»/Users/karl/neto/pba_fiji»
    #script=»/Users/karl/neto/AnalizaImagenCompletaFondoNegro-PruebaE_karl.ijm»
    echo 9
    #PASSED=$(readlink -n «/Users/karl/neto/pba/images/ImagenPrueba_3_1.tiff») #fullpath
    PASSED=$(readlink -n «$1») «/Users/karl/neto/pba/images/ImagenPrueba_3_1.tiff» #fullpath
    echo 12
    echo 13
    if [ -d «${PASSED}» ] ; then
    echo 15
    shopt -s globstar
    lista=»$PASSED»/listaArchivosHistograma.txt
    echo «Procesando con lista de archivos»;
    echo «$lista»;
    echo «–«;
    ls -d -1 «$PASSED»/**/*tif? > «$lista»
    cat «$lista»
    echo «–«;
    $fijiBin -macro $script «$lista:LA»
    echo 25
    else
    if [ -f «${PASSED}» ]; then
    echo «${PASSED} is a file»;
    $fijiBin -macro $script «$PASSED»
    else
    echo «${PASSED} is not valid»;
    exit 1
    fi
    fi
    echo 35
    -dBATCH -sOutputFile=GrayScal»$var».pdf «$var»
    echo 37

    #done

Deja una respuesta

Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar mi política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected].

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *

Botón volver arriba