Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Programar en Bash, pequeño manual de referencia [Cheat Sheet]

Aquí os dejo mi cheat sheet, o pequeño manual de referencia, personal sobre Bash. Faltan cosas pero creo que he cubierto lo más básico. Espero que os guste. 😉

1. Cómo ejecutar scripts Bash

Para escribir en Bash puedes hacerlo directamente desde la consola/terminal de GNU/Linux, sin embargo, su mayor potencia radica en poder escribir ‘scripts’ y ejecutar piezas de código para automatizar tareas. Aquí muestro paso a paso un ejemplo.

1.1. Escribe un ‘script’ Bash

Abre tu editor de textos favoritos y escribe el siguiente código.

Guárdalo como holamundo.sh (la extensión no importa pero ésta es renococida por muchos editores de texto) .

1.2. Dale permisos

Para lanzar el ‘script’ Bash, dále permisos de ejecución. Para ello escribe en tu terminal/consola de comandos:

chmod u+x holamundo.sh

Recuerda ejecutar este comando y los siguientes en la misma carpeta/directorio donde se encuentra holamundo.sh

1.3. Ejecútalo

Lanza el ‘script’ ejecutando en tu terminal/consola:

./holamundo.sh

Si no ha habido ningún problema se ejecutará el ‘script’ de Bash mostrando la frase “Hola mundo”.

2. Características Bash

Aquí se mostrarán las características de dicho intérprete de comandos o shell de GNU. Recuerda que los comandos son las acciones a ejecutar desde la consola/terminal Linux. En la siguiente sección hay una recopilación de ellos.

2.1. Comentarios

Los comentarios en Bash se hacen línea a línea con el símbolo #.

2.2. Variables

Las variables no tienen tipo, es decir, una variable puede contener una cadena, un número, etc. sin necesidad de definirlo.

La sintaxis es:

nombre_variable=valor_variable

Es obligatorio no dejar espacios antes o despues del simbolo ‘=’ ya que sino Bash interpretaría la variable como un comando Linux.

Para acceder a una variable simplemente escribe como prefijo $ en el nombre de la variable.

echo $varname

Un ejemplo sencillo:

2.2.1. Paso de variables

Cuando ejecutas desde tu terminal/consola tienes la posibilidad de pasarle más argumentos. Por ejemplo:

./miScript.sh hola 4

Para recoger estos valores escribe $ y a continuación el número de posición del argumento pasado. El primer argumento tiene valor $1, que sería ‘hola’, y el segundo argumento sería $2, en el ejemplo sería el número 4. La variable $0 es el propio nombre del archivo.

También hay que destacar que $? guarda el valor de salida del último comando ejecutado. $* almacena todos los argumentos y $# es el número de argumentos pasados.

2.3. Comparaciones y/o expresiones

Los condicionales y bucles se rigen mediante la evaluación de una expresión. Por eso lo primero es saber cómo programar en Bash las evaluaciones de una expresión.

La evaluación de una expresión da como resultado verdadero o falso. Si la comparación o evaluación de la expresión es verdadera se ejecutará el bucle o la condicional, si es falsa la evaluación no se ejecutará.

En Bash, la sintaxis es la siguiente:

ó

Un ejemplo de expresión sería [ 3 -eq 5 ] que comprueba si el valor 3 es igual a 5. Como es incorrecto, el valor que devuelve es falso. Los símbolos [ y ] tienen que estar obligatoriamente separados por un espacio.

2.3.1. Comparaciones numéricas

2.3.2. Comparaciones de cadenas

2.3.3. Comparaciones de ficheros

2.3.4. Comparaciones de expresiones

2.4. Condicionales

En programación, una sentencia condicional es una instrucción que se pueden ejecutar o no en función del valor de una expresión. En Bash, las condicionales más populares son los siguientes:

2.4.1. If – Then

2.4.2. If – Then – Else

2.4.3. If – Then – Else if – Else

2.4.4. Case

Se comprueba cadena. Si concuerda con cadena1 se ejecutará los comandos correspondientes hasta llegar a ;;. Lo mismo ocurre con cadena2. Si cadena no coincide con cadena1 o cadena2 entonces se ejecutará *. Se puede añadir tantas cadenas de verificación como uno desee.

2.5. Bucles

Un bucle repite los comandos que uno ha escrito tantas veces hasta que la expresión se verifique.

2.5.1. For

Existen muchas maneras de realizar un bucle for en Bash. Yo sólo uso ésta:

Su sintaxis es casi idéntica a C. Aquí un ejemplo:

2.5.2. While

2.5.3. Until

3. Comandos Linux

Lista de comandos más importantes según la Wikipedia.

3.1. Ayuda

3.2. Archivos y directorios

3.3. Usuarios

3.4. Procesos

3.5. Discos

3.6. Red

3.7. Sistema

4. Ejemplos

Introducir dos números diferentes e indicar cuál es el mayor
Pasar dos números como parámetros e indicar el menor
Ver los procesos que está ejecutando un usuario concreto
Mostrar los usuarios que pasamos como parámetros y saber si están conectados

Bibliografía

  • Pingback: Bitacoras.com()

  • Nacho,

    ¡¡Te lo has currado tío!!

    Genial 😀

  • zinitri

    Estaría genial si lo pudieras exportar a odt o pdf para descargarlo y poderlo ver offline ;P

  • Pingback: Bash, pequeña guía de referencia()

  • Pingback: Bash, pequeña guía de referencia | El Noticiero()

  • Muy bueno. Pero por seguridad recomiendo chmod u+x archivo.sh

  • Zinitri: En cuanto tenga tiempo lo exportaré, mientras puedes guardar esta página. 😉
    Totoloco: gracias por el aviso, lo he cambiado.

  • Pingback: Tweets that mention Linux Hispano | Bash – Mi pequeño manual de referencia [Cheat Sheet] -- Topsy.com()

  • Muy buen tutorial, Nacho. Sencillo, ameno y didáctico. Enhorabuena.

  • domingo

    Simplemente una aclaracion,
    creo que los comandos dentro de los bucles deben
    ser separados por ;

  • Enrique

    Que buen resumen, ademas se hace ameno de leer.

  • alex

    excelente algo asi estaba buscando hace mucho tiempo, otra cosa esta pagina frisa el navegador midori que usualmente uso.

  • Es un resumen fantástico: ¡muchas gracias!

  • Pingback: Cuatro maneras de lanzar un Script en Linux | Linux Hispano()

  • Pingback: Cuatro maneras de lanzar un Script en Linux | Superlinux()

  • farias

    muy buen trabajo…

  • farias

    Muy bueno….Me ayudastes un monton

  • Pingback: Top 10 año 2010 – Linux Hispano | Linux Hispano()

  • Jairo

    Es bueno, pero puede ser aún mejor, además, pasarlo a pdf lo hace más “portable!”, también sabemos que esto nos sirve pero que debemos buscar más información para que la programación en esta shell( Bash), sea lo más completa posible…

  • raynaud

    esta genial tu manual, solo una pregunta ya he estado practicando y estudiando mas pero por ejemplo quiero pasarle un parametro a un comando ejemplo

    >scp archivo.txt user@192.168.11.10:/tmp
    este comando es para mandar el archivo.txt con el usuario ftp y la ip en el directorio tmp
    pero este me solicita 2 parametros confirmacion de continual al cual le pongo yes y la cotnraseña si yo tengo que enviar ese mismo archivo a varios servidores linux se me ocurrio hacer un scrip que lo haga pero al momento que me solicita parametros como se los ingreso en el scrip, si me pueden apoyar

  • sergio

    Muy buen tuto… pero quiero consular como se puede realizar el mismo algoritmo de
    introudicir dos numero diferentes e indicar cual es el mayor pero ahora:

    Introducir tres o mas números diferentes e indicar cuál es el mayor ??

    es posible realizar esa accion.???

    Saludos y gracias.

  • Pingback: Introducción a Bash | @l30bravo()

  • Pingback: Cursos de Mysql, Oracle, PostgreSQL, SQL Server. | fsanchez | blog()

Leer entrada anterior
Google Store – Venta al público de accesorios googleados

La semana pasada, dándome una vuelta por el blog oficial de Google, me encontré con una entrada en la que...

Cerrar