He aqui una lista de comandos utiles (y no tanto) que fui anotando durante un tiempo. Esta lista me sirve como una ayuda memoria o “cheat-sheet” de comandos que uso a menudo, o que me parecen interesantes. La idea de un “cheat-sheet” no es explicar los comandos en profundidad, sino simplemente refrescar la sintaxis. Donde lo vea oportuno, enlazare a documentacion mas detallada. Esta lista no pretende ser completa, ni siquiera esta ordenada. Sin embargo, creo que observando los comandos que usan otros usuarios, generalmente podemos aprender algun truco nuevo, o combinar un comando viejo de alguna nueva forma. Este es el humilde objetivo de esta nota, y estaré satisfecho simplemente con que hayan encontrado siquiera un comando que no conocian. Con el tiempo, ire completando la lista y seguramente ira creciendo con el aporte de todos. Por su puesto estan invitados a agregar comandos, programas o ideas. La mayoria de los comandos esta orientado al prompt o linea de comandos (lo cual corresponde a una preferencia personal), pero tambien pueden aparecer programas con interfaz grafica. Los comandos estan agrupados por secciones y se cuenta con un indice para facilitar la busqueda. Nota: Los comandos han sido probados en Debian GNU/Linux o Ubuntu, pero la mayoria deberia funcionar en cualquier distribucion.

Indice de contenidos

Comandos para grabar CDs y DVDs Reproduccion de videos con mplayer Comandos para fecha y hora Obtener o setear propiedades de la pantalla, placa de video o aceleracion 3D Firewall con IPTABLES Conversion de archivos (videos, pdf, imagenes, html) Descarga de archivos con wget gphoto2 con Camaras digitales PTP – descarga y borrado de fotos Bittorrent desde linea de comandos


Comandos para grabar CDs y DVDs

Manipular la bandeja de la unidad de cdrom o dvd

Existe un comando para cada necesidad …

Cerrar la bandeja

eject -t /cdrom/ 

Abrir la bandeja

eject /cdrom/

A veces, con solo escribir eject (sin el parametro) el comando es interpretado correctamente.

crear una imagen de cd

Con el siguiente simple comando, podemos generar una imagen .iso del contenido del cdrom.

dd if=/dev/hdc of=/home/seba/cd.iso bs=2k

Grabar CDs y generar imagenes ISO

Tener en cuenta: En Debian, a partir de la version 4 Etch, cdrecord y mkisofs cambian de nombre por wodim y genisoimage respectivamente.

cdrecord -> wodim mkisofs -> genisoimage

Ejemplos:

Generar una imagen iso con el contenido de un directorio

mkisofs -R -J -o planillasesc.iso ./planillasescuela/ 

Grabar la imagen iso en un cdrom

nice --10 cdrecord  -dummy -multi -v speed=4 dev=/dev/hdc planillasesc.iso 
nice --10 cdrecord -v -eject speed=4 dev=/dev/hdc edubuntu-6.06.1-live-i386.iso

Informacion sobre el CD o la grabadora de CD

cdrecord -v dev=/dev/hdc  -atip

Grabar DVDs

Ejemplos:

informacion sobre el DVD que se encuentra en la grabadora.

dvd+rw-mediainfo /dev/hdc
nice --10 growisofs -dry-run -dvd-compat -speed=2 -Z /dev/hdc -R -J ./films12
nice --10 growisofs -dry-run -dvd-compat -speed=2 -Z /dev/hdc -R -J -V F266_ROBIN_HOOD  ./Robin\ Hood/

Para ver la explicacion completa, ver la nota: Como grabar DVD-RW en GNU/Linux desde linea de comandos


Reproduccion de videos con mplayer

Algunas opciones y teclas del mplayer

para reproducir un VCD

mplayer -display :0  vcd://2 -cdrom-device /dev/hdd 

Tomar screenshots de una pelicula

Se utiliza el mplayer junto con la opcion -vf screenshot

mplayer -vf screenshot pelicula.avi

(luego pulsar s para sacar screenshot )

Reproducir pelicula.avi sin sonido (mute) y en monitores widescreen (aspecto 16:9)

mplayer -nosound -monitoraspect 16:9  pelicula.avi

reproducir pelicula.avi en una ventana mplayer de 100×100 pixeles, y posicionada en la esquina superior derecha (geometry 95%:30%) sin sonido, y en camara lenta a una velocidad del 20 % (-speed 0.20)

mplayer  -xy 100 -geometry 95%:30% -nosound -speed 0.20 pelicula.avi

reproducir todos los videos MOV encontrados en subdirectorios

Este comando nos permitira abrir varios videos en forma secuencial (es decir, cuando termina uno empieza a reproducirse el siguiente ). Util para reproducir varios videos cortos. La misma idea puede aplicarse para otras aplicaciones, por ejemplo para ver varios pdfs reemplazar mplayer por evince o xpdf, etc.

find ./ -iname "*mov" | xargs mplayer

en el mplayer, se puede pasar al siguiente video con: > y al anterior: con <


Usar un browser o navegador en modo texto

Siempre conviene tener a mano un browser en modo texto.

w3m -B -bookmark w3mbooks.html

uso de scp (copy sobre secure shell)

Notar los dos puntos para separar el hostname del directorio

scp -r usuario@hostname:/home/usuario/download/go-open-vol-2 ../linux_podcasts/

Comandos de fecha y hora

Imprimir fecha y hora en el formato que elijamos

date '+DATE: %m/%d/%y%nTIME:%H:%M:%S' 

# Listaria la fecha y hora en el siguiente formato: DATE: 02/08/01 TIME:16:44:55

El siguiente ejemplo es util para usarlo en scripts como un timestamp

date '+%y%m%d_t%H%M%S'

sincronizar el hardware clock con la hora del sistema:

A veces notaremos que cambiamos la hora de la computadora, pero al reiniciar la hora del reloj del hardware no ha cambiado. Justamente existe un comando para decirle al sistema que actualice la hora del reloj del hardware con la hora del reloj del sistema:

hwclock -s

Grabar la sesion de lo que hacemos en el shell

Es interesante desde el punto de vista didactico como asi tambien para guardar bitácoras con lo que vamos haciendo, tener la posibilidad de guardar todo lo que vamos escribiendo en el shell. Para esto existen básicamente dos métodos: El programa script, o usar una redireccion para simular lo que hace el programa script:

$ script 
$ bash -i 2>&1 | tee typescript 

Firewall con IPTABLES

Forwardear un puerto a una maquina interna

Siempre me ovlido la sintaxis, asi que aqui va un ejemplo: Ejemplo de como forwardear un puerto desde la maquina firewall hacia alguna maquina interna. Por ejemplo, si estamos hosteando paginas en alguna maquina que estas destras del firewall y nos gustaria que se pudiese acceder externamente desde internet. En este ejemplo: ppp0 es la interfaz externa 192.168.0.200 es la IP de la maquina interna

iptables -I PREROUTING -t nat -i ppp0 -p tcp --dport 8080 -j DNAT --to 192.168.0.200:80
iptables -A FORWARD -p tcp -m state --state NEW -d 192.168.0.200 --dport 80 -j ACCEPT

Comandos para interrogar o setear la pantalla

Cambiar la resolucion de la pantalla desde la linea de comandos, sin reiniciar el motor X

Cambiar la resolucion de la pantalla a 800×600

xrandr -s 800x600

Setear la pantalla en 800×600 con 75Hz de refresco.

$ xrandr -s 800x600 -r 75

Listar los modos de pantalla disponibles

$ xrandr -q
 SZ:    Pixels          Physical       Refresh
*0    800 x 600    ( 282mm x 212mm )   85  *75   72   60   56
 1    640 x 480    ( 282mm x 212mm )   100  85   75   73   60
 2    768 x 576    ( 282mm x 212mm )   56
 3    720 x 576    ( 282mm x 212mm )   56
 4    800 x 480    ( 282mm x 212mm )   85   75   60
 5    720 x 480    ( 282mm x 212mm )   61
 6    640 x 400    ( 282mm x 212mm )   72
 7    512 x 384    ( 282mm x 212mm )   60
 8    400 x 300    ( 282mm x 212mm )   60
 9    320 x 240    ( 282mm x 212mm )   61
 10   320 x 200    ( 282mm x 212mm )   71

Tomar un screenshot de la pantalla, desde linea de comandos

To capture the entire X server screen in the JPEG image format in a file entitled root.jpeg, without using the mouse, use:

$ import -window root root.jpeg

Testeo de tarjetas y aceleracion 3D

en el paquete mesa-utils

glxgears -printfps
$ glxinfo | grep -i render
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
$ glxinfo | grep -i render
direct rendering: Yes
OpenGL renderer string: Mesa DRI UniChrome 20050526

Descarga de archivos con wget

Aqui estan las opciones que mas uso con wget

wget -r -nH –cut-dirs=1

-np –no-parent Do not ever ascend to the parent directory when retrieving recur- sively. This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

-k –convert-links After the download is complete, convert the links in the document to make them suitable for local viewing. This affects not only the visible hyperlinks, but any part of the document that links to external content, such as embedded images, links to style sheets, hyperlinks to non-HTML content, etc. Note that when –output-docu- ment is specified, –convert-links is ignored.

-K –backup-converted When converting a file, back up the original version with a .orig suffix. Affects the behavior of -N.

-m –mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf -nr.

Ejemplo de un script para descarga recursiva con wget

#! /bin/sh

# Follow all local links recursivly and make the files suitable
# for off-line viewing.
# Use a random wait of 0 to 5 seconds between files.
# When there is a failure retry for up to 7 times with 14 seconds
# between each retry.
# Set the user agent to Firefox on Windows XP and ignore robot exclusions.
# Collect access results to the local file "myLog.log"

wget -t 7 -w 5 --waitretry=14 --random-wait --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1" -m -k -K -e robots=off  http://www.linuxtopia.org/LinuxSecurity/index.html     -o ./myLog.log

Descargar archivos secuenciales

El siguiente script es util para descargar o trabajar con archivos que tengan nombres secuenciales. Notar el uso del comando seq

#! /bin/sh

# script para descargar archivos secuenciales

for i in `seq -f %04g 251 280`; do
        for j in `seq 1 5`; do
                #video_00251_1.mpg
                wget -c --limit-rate 30k http://url.net/video_${i}_${j}.mpg;
        done
done

Conversion de archivos (videos, pdf, imagenes, html )

Convertir un video a formato .flv (Macromedia Flash Video)

Ejemplo del uso de ffmpeg para convertir a formato .flv

ffmpeg -i TrustedComputing_LAFKON_HIGH.mov -acodec mp3 -ar 22050 -ab 32 -f flv TrustedComputing_LAFKON_HIGH.flv

Convertir imagenes de CD bin/cue a formato iso

bchunk: CD image format conversion from bin/cue to iso/cdr

bchunk -v cujr6.bin cujr6.cue cujr6.iso

Convertir archivos .chm a html estandard

Para visualizar archivos (generalmente libros) en formato .chm, uso el programa **gnochm ** Sin embargo, tambien es interesante saber que los archivos .chm se pueden convertir a html, logrando que algunos libros sean mas livianos de abrir, y ademas pueden ser leidos con algun browser en modo texto (util si estamos en un shell remoto).

$ sudo apt-get install libchm-bin
$ extract_chmLib book.chm outdir

Convertir archivos PDF a HTML

$ pdftohtml -c archivo.pdf

Pasar una seccion del manual a pdf

Con la siguiente combinacion de comandos generamos un .pdf con el contenido del man (manual).

$ man -t ls > ls.ps && ps2pdf ls.ps && rm ls.ps 

Conversion de video con mencoder

El siguiente comando convierte un video a xvid-mp3. El archivo generado es compatible como para subirlo a youtube. El bitrate de 687 es el default, en el ejemplo se setea en 300. Tamaño reducido y se mantiene la calidad.

$ mencoder 100_0358.MOV -ovc xvid -oac mp3lame -xvidencopts bitrate=300 -o 100_0358.avi

Generar un thumbnail de una imagen con Image Magic

Descartar perfiles mientras que se achica el tamaño , particularmente para generar thumbnails pequeños de imagenes, es tan comun que ambas opciones “-resize” y “-strip” fueron combinadas en una nueva operacion, que comple este objetivo. Naturalmente, esta operacion es llamda “-thumbnail”.

Por ejemplo…

convert -size 240x180 image.jpg -thumbnail 120x90 thumbs/image.gif
  mogrify -path thumbs -format gif -size 240x180 -thumbnail 120x90 '*.jpg'

El comando “mogrify” generara thumbnails para un directorio entero de imagenes JPEG, pero hay que tener cuidado de que no sobreescriba las imagenes que se quieren conservar.

Documentacion completa: www.imagemagick.org/Usage/thumbnails

Mi ejemplo:

$ convert -size 600x400 maby002.png -thumbnail 300x250 maby002.gif

En el siguiente listado, puede verse la diferencia de los tamaños al generar los thumbnails ( en este ejemplo, los thumbnails son .gif, y los originales .png )

$ ls -lh MyDomain.maby00*
-rw-r--r-- 1 seba seba 9,2K 2008-06-13 02:44 maby001.gif
-rw-r--r-- 1 seba seba 142K 2008-06-13 00:03 maby001.png
-rw-r--r-- 1 seba seba 8,9K 2008-06-13 03:09 maby002.gif
-rw-r--r-- 1 seba seba 132K 2008-06-13 00:07 maby002.png

Ejecutar un comando a una determinada hora

Si bien existe el cron, tambien a veces viene bien tener a mano el comando at En este ejemplo, el comando mv se ejecutara dentro de un minuto ( at now + 1 minute )

echo "mv math/ /media/sda6/seba2/bookshelf/" | at now + 1 minute

Ejemplo del uso de XARGS

Find files named core in or below the directory /tmp and delete them, processing filenames in such a way that file or directory names containing spaces or newlines are correctly handled.

find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
cut -d: -f1 < /etc/passwd | sort | xargs echo

Uso basico de gphoto2 con Camaras digitales PTP

descargar todos los archivos desde la camara digital al disco rigido ( no borra los originales de la camara)

gphoto2 -P

Borrar todos los archivos de un directorio dentro de la camara digital

gphoto2 -f /store_00010001/DCIM/100KC813/ -D

borrar un directorio de la camara digital

gphoto2 -f /store_00010001/DCIM/  --rmdir 100KC813

Para la explicacion completa, ver la nota: Como descargar o borrar fotos / archivos de una camara digital PTP con gphoto2

Uso de bittorrent desde linea de comandos

Particularmente util en combinacion con el comando screen

btlauchmanycurses  ../torrents   --max_upload_rate 4  --max_uploads 2

Los “cheat sheets” que se vienen

En la parte 2 de la serie “cheat-sheet” ire agregando “ayuda memorias” de los siguientes programas:

**Subversion, Mysql, vnc, x11vnc, screen, vim, … **


Si tienes alguna duda o consejo, o quieres compartir algun programa o script que te parezca interesante, por favor escribe un comentario.