Publi

  • 31 Atajos de teclado que podemos usar en nuestra terminal o consola

    Foto: Thomas (Flickr CC)

    ¿ Qué podemos hacer en nuestra terminal a un golpe de teclado ? Muchas más cosas de las que nos imaginamos. Hay muchas teclas alternativas, algunas no funcionarán en versiones muy antiguas, otras son teclas algo más fáciles pero en ocasiones algunas terminales remotas no aceptan esos códigos y pueden no funcionar. Las teclas alternativas suelen estar especificadas en /etc/inputrc . También incluyo alguna palabra clave que suele ser el significado de la tecla, o alguna aclaración mnemotécnica para no olvidarnos (o eso pretende).… Leer artículo completo

  • Enviar e-mails con adjuntos desde la terminal con sendmail [Bash script]

    En varias ocasiones, he necesitado enviar un e-mail a un compañero de trabajo (o a mí mismo) con información recién extraída de un servidor (por ejemplo un CSV de base de datos o información subida desde la web) y lo que he hecho al final ha sido bajármelo por SSH y una vez en mi ordenador he enviado el archivo donde ha sido necesario. Si eres como yo, que siempre tengo una sesión SSH abierta en mi servidor, ganarás un par de minutos con este script.… Leer artículo completo

  • Magia en Bash 50 ejemplos en una sola linea (o dos)

    Bash es una de las herramientas más potentes que tenemos a nuestro alcance, aunque no sólo de bash trata el artículo, sino de trucos para consola, one-liner como dirían muchos (aunque habrá algunos two-liners) que podemos utilizar y pueden hacernos la vida un poco más fácil:

    Cadenas de texto

    Trim

    Es una herramienta que utilizaremos para recortar nuestra cadena basándonos en los a la ìzquierda y a la derecha, en este caso nos basaremos en los espacios, que es uno de sus usos más comunes (así podemos obtener la cadena limpia tanto por delante como por detrás.… Leer artículo completo

  • Hacer funcionar tu viejo ordenador de router, y filtrar por dirección MAC

    computers

    Si tenemos un viejo ordenador, una de las funciones que puede hacer es de router. Personalmente, yo lo tengo de router, centro de descargas, almacenamiento compartido, copias de seguridad remotas, ejecutar cron jobs en ciertos servidores que no los soportan y para ver películas en la tele.

    Para que un ordenador pueda funcionar como router, es tan fácil como incluir en /etc/sysctl.conf la siguiente línea:

    net.ipv4.ip_forward=1

    (Aún con IPv4, sí, aunque podemos utilizar el forward ipv6, teóricamente sin ningún problema)
    En muchos sistemas ya funcionaría, pero dependiendo de la distribución debemos dar un permiso adicional:

    $ sudo iptables -A FORWARD -j ACCEPT

    Aunque si queremos restricción por MAC tendremos que currar un poco más.… Leer artículo completo

  • Introducir el resultado de una consulta SELECT de mysql en un Array [BASH]

    data

    ¡Bash es una pasada! Es capaz de dejarnos hacer maravillas en poco tiempo y de automatizar lo inautomatizable, en este caso, traigo un ejemplo más, de cómo un código muy corto es capaz de presentarnos los resultados de una consulta SELECT de mysql:

    Los datos de prueba provienen de uno de mis proyectos: Málaga Bloguea donde muestro las últimas novedades de blogs de Málaga.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #!/bin/bash

    OLDIFS=IFS
    MYSQL_USER=#Usuario Mysql
    MYSQL_PASSWORD=#Password Mysql
    MYSQL_HOST="localhost"
    # IFS personalizado, para poder delimitar los campos correctamente
    IFS="`echo -e "\t\n\r\f"`"

    # Declaramos la variable como array, no es estrictamente necesario, pero sí un poco más correcto
    declare -a IPS

    # Generamos la consulta (Si vamos a utilizar un juego de caracteres determinado, como
    # UTF8, debemos especificar primero para evitar sorpresas.
    Leer artículo completo
  • Ejecutar scripts mientras inicia el sistema

    botas

    En ocasiones, queremos automatizar tareas al arranque del ordenador, tal vez para ofrecer asistencia remota (y enviarnos la IP del ordenador), actualizar una base de datos, correr scripts en una página web, hacer que el ordenador emita un sonido, inicializar un sistema antirrobo, o incluso interactúe con un arduino.

    En muchas ocasiones, incluir nuestros scripts en /etc/rc.local basta, en Debian y derivadas lo encontramos fácilmente, en otras distribuciones también hay forma de hacerlo, aunque si necesitamos algo más complicado, como por ejemplo ejecutar varios scripts en un directorio determinado, en varios runlevels y que cuando se apague el ordenador se ejecuten otros scripts diferentes he hecho un pequeño init-script.… Leer artículo completo

  • [Bash] Llamar a una variable cuyo nombre lo contiene otra variable

    numbers

    Imaginemos el caso en que tenemos tres variables (ROJO=5 ; VERDE=6 ; AZUL=7), y una función a la que le pasaremos el nombre del color y nos devolverá su valor (así visto parece tontería, pero luego podremos normalizarlo, aclararlo, oscurecerlo, etc).

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ROJO=5
    VERDE=6
    AZUL=7

    function get_color()
    {
       echo ${!1}
    }

    get_color ROJO

    Efectivamente si en Bash escribimos ${!VARIABLE} no nos devuelve el nombre que contiene la variable, sino que devuelve el valor de la variable cuyo nombre es $VARIABLE.… Leer artículo completo

  • mayúsculas y minúsculas en BASH (toupper(), tolower()) [copia y pega]

    mayuscula En ocasiones, es muy útil crear scripts en bash, aunque en ocasiones debemos controlar las mayúsculas y minúsculas, por ejemplo renombrando archivos, escribiendo informes o para ajustarse a diferentes convenciones a la hora de hacer un programa. Aquí dejo ejemplos de funciones tipo strtoupper(), strtolower(), por decir un equivalente en PHP.

    Hay opciones, la elección de alguna de estas opciones depende del entorno en que nos encontremos, ya sea BASH, algún otro clon, y dispongamos de awk o tr.… Leer artículo completo

  • Números grandes en C usando GMP. Resolución del primer reto de #tuentiContest (Super Hard Sum)

    Aquí llega mi primera aportación a las soluciones de los retos del I concurso de programación de Tuenti. La utilización de números grandes es algo que siempre me llamó la atención, y normalmente utilizo bc cuando necesito algún cálculo. Este reto se podía resolver con bash/sed/bc y, aunque varios lenguajes permiten la utilización de números de precisión arbitraria «de serie»  como python y Java, yo decidí hacerlo en C, utilizando la biblioteca GMP.… Leer artículo completo

  • Now playing… para mplayer

    screenshot-14-11-2010-201150Se trata de un script para bash que representará en pantalla información del archivo que se está reproduciendo al mismo tiempo que este se visualiza. Perfecto para un sistema mediacenter.

    Requerimientos:

    • bash =3.0
    • mplayer
    • xosd
    • utilidades de sistema utilizadas: date, sed, tr, cut, sleep

    Entre sus características destaca la escritura de un archivo: $HOME/.videolog con los archivos que se reproducen. Uno de los posibles usos es la descarga de muchos vídeos de youtube en un directorio concreto, posterior visualización y borrado de cada uno de los archivos tras su visionado.… Leer artículo completo