Etiqueta: Linux

tput para mejorar tus scripts en bash

bash
Cuando escribes scripts en bash acostumbras a hacerlo todo simple, sin embargo hay ocasiones en las cuales quieres tener un mayor control de la salida del programa. Una de las herramientas que sirve para este propósito es tput que viene por defecto instalado con ncurses, en muchas distribuciones ncurses viene instalado por defecto, asi que no debería ser problema.

La idea de usar tput es poder controlar de una forma sencilla distintos aspectos de tu terminal y hacer algunas cosas divertidas como dar formato y poner texto en negritas o de colores por citar un ejemplo, a continuación daré una lista de usos para tput que para mí resultaron especialmente útiles.

Limpiar pantalla
# tput clear
ejemplo:
echo "Este mensaje no lo veras"; tput clear; echo "Este mensaje si lo veras"

Para saber el número total de líneas que tiene tu consola actual
# tput lines

Para sabe el número total de columnas
# tput cols

Mover el cursor a una posición específica
# tput cup 15 20

Para poner un mensaje en negrita
# tput bold
ejemplo:
tput bold; echo "mensaje en negrita"

Para saber cuántos colores soporta tu consola usamos
# tput colors

Usar colores para el texto y el fondo, este me gusta bastante porque te evita tener que usar secuencias de escape ANSI.
Para poner texto de color rojo usamos
# tput setaf 1

Para poner background de color verde usamos
# tput setab 2

Les dejo 2 scripts para que vean la lista de colores básicos 🙂
for i in `seq 1 7`; do tput setaf $i; echo "Este es el color $i"; done

for i in `seq 1 7`; do tput setab $i; echo "Este es el color $i"; done

Si quieres usar más colores entonces vas a tener que especificarlo ejecutando
export TERM=xterm-256color ; reset

Si vuelves a ejecutar tput verás que ahora ya tienes soporte para 256 colores
# tput colors

Hint: cambia el script que puse arriba y en vez de 7 ponle 255 para que tengas toda la lista de colores

Si quieren ocultar el cursor pueden ejecutar
# tput civis

Para volver el cursor a su estado normal
# tput cnorm

AHora veremos unas funciones de formato, si por algún motivo quieren quitar el formato
# tput sgr0

Un reseteo general de toda la consola se hace con reset
# tput reset

Para subrayar texto
# tput smul

Para quitar subrayado
# tput rmul
ejemplo
tput smul; echo "texto subrayado"; tput rmul

Para hacer que el texto tintilee (blink)
# tput blink
ejemplo
tput blink; echo "blink blink blink"

No se olviden de # tput sgr0 para quitar el blink

Finalmente les dejo el enlace con algunos scripts de ejemplo hechos en bash

https://github.com/cvillegas/bash

Espero que les sea de utilidad 🙂

Howto: Como cambiar el timezone en RedHat/Centos/Fedora Linux

Los 2 métodos mas comunes son:

a) Usando la herramienta system-config-date
Lo cual te obliga a instalar una serie de dependencias que finalmente no tienen mayor utilidad en tu servidor

b) Editando manualmente la configuración
– Entra como root al sistema
– Edita el contenido del archivo /etc/sysconfig/clock
por ejemplo en mi caso los valores correctos serí­an
America/Lima
UTC=False

Recuerden que UTC y GMT son lo mismo, asi que a menos que quieran sincronizar con el Meridiano de Greenwich deberí­an tener este valor en False.
– Ahora hacemos que nuestro sistema identifique nuestro timezone de forma correcta
/usr/sbin/tzdata-update
– Actualizar la hora en el sistema con el comando
lo puede hacer manualmente con date o mucho mejor aún con ntp
/usr/sbin/ntpdate -b clock.redhat.com
Obvio que pueden cambiar clock.redhat.com por el servidor ntp de su preferencia 🙂

Espero les sea útil.

10 aniversario de Gentoo Linux

Revisando el blog de Daniel Robbins (el creador de Gentoo) me entero que mi distribución favorita tiene 10 años de existencia!! Precisamente Daniel hace una recopilación de los eventos ocurridos en el nacimiento de esta distribución para tratar de encontrar el momento exacto en que deberí­a considerarse como el aniversario de Gentoo.

Por lo visto aún no hay un dí­a exacto pero la fecha tiene que ser en última parte del año si consideramos la linea de tiempo que Daniel puso en el post:

http://blog.funtoo.org/2009/06/10th-anniversary-of-gentoo.html

Se esta discutiendo mucho y por lo visto la fecha va a ser el 4 de Octubre que fué la fecha en que el dominio gentoo.org fué registrado. Asi que ya saben todos los fieles usuarios de Gentoo, tenemos motivos para celebrar por nuestra magní­fica distro.

BSD is dead

Es una broma recurrente entre gente que usa *nix decir BSD is dead en alusión a el bajo porcentaje de uso que tiene esta familia de sistemas operativos que son bastante parecidos a Linux.

Particularmente yo prefiero Linux en vez de *BSD, pero hay gente que prefiere BSD sobre Linux y esto genera intensas flamewars. Yo creo que ambos son excelentes SOs para servidores, cada uno tiene sus pros y contras pero en general ambos pueden hacer lo mismo.

El video que presento a continuación se llama BSD is still Dying y es la continuación de uno denominado BSD is dying donde se cuenta un poco que es BSD, sus orí­genes, quiénes lo usan y que esta pasando con su comunidad, es una excelente charla dada por Jason Dixon en la conferencia DCBSDCon2009

Y si quieren ver la antigua charla que es casi igual visiten:
BSD is Dying

Divertidos trucos para hacer en tu consola linux

El otro dí­a estuve haciendo una “limpieza” de diskettes y CDs que tení­a guardados y me pasé mucho rato revisando los contenidos para ver si tení­a algo que valiera la pena rescatar antes de tirar todo a la basura, y asi fué como encontré una venerable carpeta llamada console_fun donde tení­a algunos scripts que hací­an tonterí­as y que ahora comparto con Uds.

Los pueden usar de 2 formas, o se crean un archivo y le pegan el contenido para luego ejecutarlo o simplemente lo escriben directamente en sus consolas

Casi todos se pueden cortar con CTRL-C

1) Efecto Matrix

tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

2) Efecto Matrix 2
echo -e "\e[31m"; while $t; do for i in `seq 1 30`;do r="$[($RANDOM % 2)]";h="$[($RANDOM % 4)]";if [ $h -eq 1 ]; then v="\e[1m $r";else v="\e[2m $r";fi;v2="$v2 $v";done;echo -e $v2;v2="";done;

3) Ver StarWars desde la consola
telnet towel.blinkenlights.nl

4) Ver escala de grises
yes "$(seq 232 255;seq 254 -1 233)" |
while read i; do printf "\x1b[48;5;${i}m\n"; sleep .01; done

Hay otros mas pero ya son un poco nerds o son mas trucos para Linux que quizás deberí­a publicar en otro post.

Enjoy 🙂

Cuidado con las fork bombs como
:(){ :|:& };:

Como extraer el audio de un video en Linux

Al principio pensé que serí­a una tarea complicada, encontré unos videos con unas charlas en FLV y AVI y querí­a llevarmela para poder oí­r en mi celular que reproduce mp3, el video en el celular se ve muy mal, asi que no vale la pena transformar el video para verlo en el celular ocupando un gran espacio cuando realmente lo que mas me interesaba era OIR la charla.

Asi que mi misión era clara, solo tení­a que extraer el audio del video y meterlo en un archivo mp3, para eso tenemos un maravilloso programa llamado ffmpeg que hace muchí­simas cosas y es totalmente libre, si no lo tienes instalado pues casi todas las distribuciones traen el binario precompilado y listo para usar en rpm o deb.

Abren una consola y lo único que deben hacer es lo siguiente:
ffmpeg -i video.avi -vn -acodec copy audio.mp3

Donde video.avi es el video del cual queremos extraer el audio y audio.mp3 es el archivo que resultará de la operación.

Es importante recordar que si el video fué codificado con el audio en mp3 sólo podrás extraer un mp3, si lo codificaron con Ogg Vorbis por ejemplo solo podrás extraer un .ogg

Espero le sirva a alguien, para mi fué muy util y sencillo 🙂