Archivo | bash RSS feed for this section

Wget 2. Descargas Recursivas

4 mar

Para variar, en esta ocasión intentaré ser breve, mientras seguimos explorando los usos de mi gestor de descargas favorito: Gnu Wget.
Hagamos un breve repaso de la primera parte, si no entiendes estos comandos, te recomiendo que estudies la 1a. lección completa.

1. Descargar un sólo archivo.

wget http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.1. Por si se nos corta la descarga, continuar y ver progreso

wget -c -v http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.2. Limitar la velocidad de descarga.

wget -cv --limit-rate=10k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.3. Descarga en Background (segundo plano).

wget -b -cv http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.4. En Background, Continuando, Volcando información y Limitando Rate (tasa).

wget -b -cv --limit-rate=5k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.5. Descargar página con todos los archivos de los que depende para mostrarse correctamente.

wget -pE -cv http://mexico.indymedia.org/?article1288

Hasta aquí hemos descargado un sólo elemento, o una página con todos los archivos asociados, ahora veremos unos cuantos ejemplos solamente de como usar wget para descargar colecciones de páginas.

Continuar leyendo 

Comparando *binarios* con Bash

11 feb

Actualización por Gunnar 11/Feb/’10 22:00. Script más breve aún y elegante. ¡Gracias Gunnar!

#!/bin/bash
# Elimina el uso de temporales, y usa descriptores de archivos.
[ $# -lt 2 ] && echo "Usage: $0 file_a fileb" && exit 0
if [ -f $1 -a -f $2 ]; then
diff <(hexdump $1) <(hexdump $2)
fi

En el artículo original, se describe este sencillo script para un proyecto de ingeniería reversa, intentando encontrar la estructura de archivo de datos. Mientras un simple diff hace bien el trabajo con archivos de texto, lo que vemos es un pequeño rodeo que hace el trabajo, y para nuestra suerte el tipo es todo un hacker, que se tomó algunos minutos para compartir la solución.

Aquí está el poema original (el de Gunnar es todo un haikú, y nos lo explica en sus comentarios):

#!/bin/bash
# script to compare two binary files
TMP=/tmp
[ $# -lt 2 ] && echo "Usage: $0 file_a fileb" && exit 0
R1=`mktemp -u -p /tmp XXXXXXXX`
R2=`mktemp -u -p /tmp XXXXXXXX`
if [ -f $1 -a -f $2 ]; then
hexdump $1 > $R1
hexdump $2 > $R2
diff $R1 $R2
rm $R1 $R2
fi

Como pueden ver, si se usan adecuadamente las capacidades de bash puede llevarnos a código más sencillo y más fácil de corregir y mantener.

Tutorial para usar identi.ca con curl

9 feb

Mientras existen magníficos clientes de microblog para GNU/Linux tanto gráficos (como choqok, gwibber), de línea de comandos (bashic, twidge) y alguno más incluso integrado a mi entorno favorito, Emacs! todos adolecen de una característica básica para poder utilizar identi.ca como una herramienta más de administración: ser programables de modo que disparen dents ante determinados eventos o momentos (que son eventos de reloj).

Para ir desarrollando estos hacks mi inspiración inicial provino de curl y un poco (hay algunos ejemplos malos) de twitter. Continuar leyendo 

Tu propia biblioteca de comandos en Bash

9 feb

El historial de bash recoge montones de comandos complejos que lleva su rato concebirlos, diseñarlos, ajustarlos (al menos es mi caso). Buscando por recursos compartidos por otr_s, para mejorar mi experiencia con bash y compartirla con ustedes, encontré en un par de ajustes sencillos que me ayudan a conservar un historial más largo, y una forma de definir una función personalizada de bash para hacer aún más fácil mis búsquedas por el historial.

Inicialmente, en el archivo que configura mi sesión de bash al iniciar sesión (~/.bashrc para mí, pero podría ser ~/.bash_profiles para otros) ajusté la configuración de 3 líneas:


export HISTCONTROL=erasedups
export HISTSIZE=10000
shopt -s histappend

Y ahora trato de explicarlo.
Continuar leyendo 

WebQuest de Bash 1

7 feb

Retomando la idea de los webquests, se nos ha ocurrido proponer a las compañeras y compañeros del Taller de Bash (aunque no estén participando en las sesiones sincrónicas), que investiguen una serie de tópicos básicos, de hecho no exclusivos de bash, sino aplicables a cualquier sistema *nix (¡ni siquiera sólo GNU/Linux!).

Estos tópicos serán de utilidad para cualquier persona interesada en dominar sus sistemas operativos libres. Aunque no nos sigan en el blog, el grupo en crabgrass, el chat, o lo que se nos ocurra después implementar (un curso de Moodle, screencasts, etc.), el sólo éxito de concluir la investigación de este cuestionario de 8 preguntas, le permitirá a cualquiera seguir un curso de autoformación en sistemas operativos, a su propio ritmo, recursos, necesidades e intereses.

Sin más preámbulo, van las 8 preguntas:

1. Preguntaste a un(a) compañera(o) como podrías encontrar un archivo en su sistema GNU/Linux y te responde que leas las páginas man de comandos find y locate . ¿Qué quiso decir con las páginas de man?
Continuar leyendo 

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 210 seguidores