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.