Source: http://blog.codexion.com/2007/10/15/listado-de-comandos-utiles-para-linux/
Timestamp: 2017-09-21 03:18:05+00:00

Document:
Un listado de comandos útiles para Linux – «Andante con moto». Rapidillo, ma non troppo…
by Lucas Vieites · Monday, 15-10-2007
Redirigir la salida de error al mismo sitio que la salida estándar. Ver aquí por qué.
cat archivo.txt > archivo.log 2>&1
Montar un archivo ISO para poder leerlo.
mount fichero.iso /mnt/directorio/ -t iso9660 -o ro,loop=/dev/loop0
Crear un ISO de un directorio
ídem con «dd»:
la unidad de CD (dev/hdd) tiene que estar desmontada
dd if=/dev/hdd of=fichero.iso
Convertir un archivo de latin1 a utf-8
iconv -f latin1 -t utf8 archivo_entrada > archivo_salida
Vice-versa; de utf8 a latin1
iconv -f utf8 -t latin1 archivo_entrada > archivo_salida
Nota: Con la opción «-c» de iconv se omiten los caracteres no válidos en la salida (ver: «iconv –help»).
Crear un .wav desde un .mp3
NOTA: el archivo de salida viene primero.
mpg123 -w song.wav song.mp3
Reemplazar una cadena por otra en todos los archivos del directorio «DirectoryName» y guarda los originales con la extensión «.save»
perl -e "s/old_string/new_string/g;" -pi.save $(find DirectoryName -type f)
Renombrar *.png.jpg a *.jpg
rename 's/.png.jpg$/.jpg/' *.jpg
Renombrar archivos sustituyendo el espacio por un guión bajo:
find . -depth -name '* *' \ | while read f ; do mv -i "$f" "$(dirname "$f")/$(basename "$f"|tr ' ' _)" ; done
Fórmula de conversión de grados Fahrenheit a Celsius
ºF = 32 + (1,8 * ºC)
Convertir un PDF a PS con dos páginas por hoja
pdf2ps download/nombre.pdf - | psnup -2 > nombre.ps
Buscar la cadena «unit1» en los archivos tipo «f» d el directorio «/etc» y sus subdirectorios
find /etc -depth -type f -exec grep -il unit1 {} ;
Activar los cambios realizados en .Xdefaults
Crear archivo tar con ficheros después de una fecha
tar cvf backup.tar -N yyyy-mm-dd
Crear archivo tgz manteniendo la ruta absoluta
tar cvfzP backup.tgz /ruta/al/dir/
Activar los pitidos del sistema con kernel 2.6
Convertir un video mpg a avi (mencoder es parte de Mplayer)
mencoder entrada.mpg -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -sws 2 -oac copy -o salida.avi
Crear un vídeo a partir de una imagen y un archivo de música
ffmpeg -shortest -loop_input -r 1 -i mi_imagen.png -i mi_musica.mp3 -acodec copy -vcodec libx264 -vpre slow -qscale 2 -g 5 -cmp 3 -subcmp 3 -mbd 2 -r 24 -crf 22 mi_video.avi
Cambiar una cadena en varios archivos
find *.php -type f | xargs sed -i s/cadena/otracadena/g
find . -type f | xargs sed -i s/cadena/otracadena/g
otra forma más larga de hacerlo:
find ./ -type f | while read filename; do sed 's/cadena/otracadena/g' $filename > tmp.php; mv tmp.php $filename; done
Buscar una cadena de texto en todos los archivos encontrados
find . -name *.ext -exec grep "cadena_buscada" '{}' ; -print > ~/archivo_destino
Evitar la ejecución de la comprobación del sistema de archivos cada x montajes (ver «man tune2fs»)
tune2fs -c 0 -i 0
Muestra el estado actual
El siguiente busca la partición raíz y configura la comprobación cada 30 montajes y cada mes
tune2fs -c30 -i1m `mount -l -t ext3|egrep "on / type"|awk '{print $1}'`
Reiniciar con comprobación de errores en las particiones
shutdown -t0 -r -F now
Parámetros para el lanzador de gnome-terminal en el panel
gnome-terminal --geometry=129x37+50+65
Parámetros para lanzar Eclipse con una máquina virtual en concreto
/ruta/a/eclipse/eclipse -vm /var/opt/jdk1.5.0/bin/java -vmargs -Xmx256M
Ejecución de «./configure» para inkscape de cvs/svn
./configure --prefix=/var/opt --with-perl --with-python --enable-inkboard
Crear/editar password de root en CUPS
Ordenar las líneas de todos los archivos .txt, eliminar las duplicadas y guardar todo en «resultado.txt»
cat *.txt | sort | uniq > resultado.txt
Concatenar varios archivos pdf en uno solo (se puede omitir la opción -sPAPERSIZE para que cada página quede en su tamaño original). Origen: http://ansuz.sooke.bc.ca/software/pdf-append.php
gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=test3.pdf test1.pdf test2.pdf
Añadir una cadena de texto al inicio de todas las páginas de un documento PDF.
echo "Este texto aparecerá al inicio de todas las páginas." | enscript -B -f Courier-Bold16 -o- | ps2pdf - | pdftk entrada.pdf stamp - output salida.pdf
Abrir una instancia de Gnome-terminal a pantalla completa en cuyo interior se ejecuta el comando indicado con «-e»
gnome-terminal --full-screen --hide-menubar -t "NombreAplicacion" -e "comando"
Modo seguro de Firefox (por ejemplo, para desactivar extensiones que funcionan mal)
Obtener un archivo de la web desde la línea de comando
links -source <a href="http://www">http://www</a>.... > archivo.ext
Cambiar la resolución de pantalla desde línea de comandos durante la sesión
Cambiar el mapa de teclado a otro idioma ([] = opcional)
en una sesión «X-Window»:
setxkbmap -layout 'es' [-model pc105]
Cambiar configuración de la tarjeta de red
Crear un listado de paquetes con su tamaño, los ordena por nombre y los guarda en el archivo indicado (más info en: Maximum RPM)
rpm -qa --queryformat '%{NAME}:%{ARCHIVESIZE}\n' | sort > lista_paquetes.txt
Crear un listado de paquetes con su fecha de instalación
rpm -qa --queryformat '%{installtime} (%{installtime:date}) %{name}\n'
Obtener un listado de los paquetes rpm instalados y su tamaño, ordenados:
rpm -qa --queryformat="%{SIZE}\t%{NAME}\n" | sort -k1,1n
Formatear una partición como ext3
Desactivar «Ctrl+Alt+Del» ver «/etc/inittab» => Three finger salute
Redimensionar un sistema de archivos ReiserFS en una partición que es más grande
resizefs.reiserfs /dev/sda1 +60GB
Gestionar procesos iniciados en los distintos runlevels
chkconfig nombre_daemon
Icono del menú «Aplicaciones» en Gnome
/opt/gnome/share/pixmaps/novell-button.png
Ver el comportamiento de un programa con strace
strace nombre_programa 2>&1
por ejemplo, para ver los archivos .mo que intenta abrir inkscape:
strace inkscape 2>&1 | grep open.*.mo
Ejecutar un comando constantemente, mostrando los cambios de la salida.
El siguiente comando ejecutará la instrucción «ls -lh» cada 3 segundos
watch -n3 'ls -lh'
Muestra los scripts ejecutados dentro de un archivo rpm
rpm -qp --scripts archivo.rpm
Descarga una URL, sin crear la carpeta con el nombre del dominio (-nH), recursivo (-r), sin ir hacia atrás (-np)
wget -nH -r -np http://www.dominio.com/bla/bla/bla/
Borrar un archivo cuyo nombre empieza con un guión
rm ./-nombre_archivo.ext
Vaciar la partición swap: man swapon/swapoff. Realmente se deshabilita el swap en dicha partición
swapoff /dev/particion
Para volver a activar el swap
swapon /dev/particion
Obtener la dirección MAC de un sistema (SuSE Linux) y eliminar los dos puntos «:»
/sbin/ifconfig -a | awk '/eth/ {print $5}' | sed 's/://g'
ip -o link show | awk '/ether/ { print $11 }' | sed 's/://g'
Sumar el tamaño de todos los archivos de un tipo. Esto va en dos partes:
Encontrar los archivos que queremos, en este caso son todos los archivos SVG, averiguamos su tamaño con «stat» y los guardamos en un archivo:
find . -name "*.svg" | xargs stat -c%s > tamanos_svg.txt
awk '{total+=$0}END{print total}' tamanos_svg.txt
find . -name "*.svg" | xargs stat -c%s > tamanos_svg.txt awk '{total+=$0}END{print total}' tamanos_svg.txt
Aceptación automática de «RSA Fingerprint» al conectar por ssh a un servidor nuevo:
ssh root@vfltst02 -o StrictHostKeyChecking=no
Ordenación de las líneas de un archivo por su longitud
cat archivo.txt | awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $0}' > otro_archivo.txt
Ejecución de un comando para cada archivo en un directorio; en este caso se descomprimen todos los archivos «.zip» del directorio actual.
for FILE in $(ls *.zip); do unzip  $FILE; done
for FILE in $(ls *.zip); do unzip $FILE; done
Extraer una parte de una conjunto de imágenes con la herramienta «convert», de ImageMagick. Este comando extrae de todas las imágenes png del directorio actual un trozo de 630×460 píxeles, comenzando en el punto 330×326 (será su origen superior izquierdo) y lo guarda en una serie de imágenes llamadas «pq_xx.png» donde «xx» es un número de dos dígitos (desde «00» a «nn»).
convert '*.png' -crop 630x460+330+326! pq_%02d.png
Reparar o recuperar una tabla de particiones de un disco duro o dispositivo de memoria Flash USB, obtenido de : http://enavas.blogspot.com/
gpart -W /dev/sdX /dev/sdX
Convertir una página «man» en un documento pdf (visto en http://120linux.com/man-en-pdf/):
man -t comando | ps2pdf - > archivo.pdf
Mover archivos de una carpeta a otra (renombrar), creando una copia de seguridad de los existentes con un sufijo indicado:
mv --backup --suffix=_old /carpeta/origen/* /carpeta/destino/
Matar varios procesos, obteniendo sus PIDs del comando «ps», en dos pasos: el primer comando mete en la variable «procs2kill» los PIDs de los procesos encontrados; el segundo los mata a todos de golpe.
procs2kill=`ps ax | grep keyring | awk '{print $1}'`;kill $procs2kill
Terminar una copia de archivos mediante «scp» que ha sido truncada.
rsync --partial --progress --rsh=ssh ORIGEN DESTINO
Capturas de pantalla desde la línea de comandos con ImageMagick:
# Toda la pantalla:
import -window root archivo.png
# Una ventana abierta (pulsa con el ratón sobre una ventana)
# o una sección de la pantalla (arrastrando con el ratón)
import archivo.png
# Toda la pantalla: import -window root archivo.png # Una ventana abierta (pulsa con el ratón sobre una ventana) # o una sección de la pantalla (arrastrando con el ratón) import archivo.png
Desactivar el salvapantallas en Xorg, incluso la configuración DPMS «Energy Star».
xset s 0;
xset -dpms; xset s 0;
Más Xorg:
xrandr                          # Muestra las resoluciones posibles
xrandr -s <em>ancho</em>x<em>alto</em>            # Fija la resolución indicada
xdpyinfo | grep dimensions      # Muestra la resolución actual
xdpyinfo | grep "dots per inch" # Muestra la resolución en ppp
xrandr # Muestra las resoluciones posibles xrandr -s <em>ancho</em>x<em>alto</em> # Fija la resolución indicada xdpyinfo | grep dimensions # Muestra la resolución actual xdpyinfo | grep "dots per inch" # Muestra la resolución en ppp
Mostrar una alerta visual mediante un script desde cron:
Importante: Hay que ejecutar el comando
al inicio de sesión, en «~/.bashrc» o algo similar y ejecutar desde tu crontab un script como este:
# exportar la variable DISPLAY: MUY IMPORTANTE
# Uno simple, con Zenity
zenity --display=:0.0 --info --title "Recordatorio" --text "Acuérdate de la copia de seguridad" &
# Para notify-send
if [[ -z "$DBUS_SESSION_BUS_ADDRESS" ]]; then
source "$HOME/.dbus/session-bus"/*-0 && export DBUS_SESSION_BUS_ADDRESS;
# -t indica los milisegundos que se ve en pantalla el aviso
# -i indica el icono que se mostrará
notify-send "Acuérdate de la copia de seguridad" -t 5000 -i /usr/share/pixmaps/apple-green.png &
#!/bin/bash # exportar la variable DISPLAY: MUY IMPORTANTE export DISPLAY=:0.0 # Uno simple, con Zenity zenity --display=:0.0 --info --title "Recordatorio" --text "Acuérdate de la copia de seguridad" & # Para notify-send if [[ -z "$DBUS_SESSION_BUS_ADDRESS" ]]; then source "$HOME/.dbus/session-bus"/*-0 && export DBUS_SESSION_BUS_ADDRESS; fi # -t indica los milisegundos que se ve en pantalla el aviso # -i indica el icono que se mostrará notify-send "Acuérdate de la copia de seguridad" -t 5000 -i /usr/share/pixmaps/apple-green.png &
Mover una estructura de directorios entre dos equipo mediante «tar» y «ssh»:
ver (http://www.linuxjournal.com/content/stupid-tar-tricks)
Obtener el último carácter de una cadena:
mi_cadena=abcdefg
lastchr=${mi_cadena#${mi_cadena%?}}
echo $lastchr # Muestra "g"
mi_cadena=abcdefg lastchr=${mi_cadena#${mi_cadena%?}} echo $lastchr # Muestra "g"
Convertir los nombres de todos los archivos de un directorio en minúsculas.
for i in *; do mv $i $(echo $i | tr [:upper:] [:lower:]); done
Generar una cadena de ceros y unos. En este caso genera 100 dígitos. Para obtener una cadena más larga solo hace falta cambiar el número 100. El último «echo “”» es para añadir un cambio de línea al final para que quede bonito en la línea de comandos.
for i in `seq 1 100`;do echo -n $[$RANDOM%2];done; echo ""
Crear una vista previa de todas las tipografías (archivos TTF) de un directorio:
# blank.jpg debe existir (una imagen JPG en blanco que sirva de fondo
# El directorio ./output debe existir
for FONTNAME in *.ttf; do convert -antialias -pointsize 80 -font $FONTNAME -draw "text 10,60 'abcdefghijklABCDEFGHIJKL0123456789'" blank.jpg output/$FONTNAME.jpg; done
# blank.jpg debe existir (una imagen JPG en blanco que sirva de fondo # El directorio ./output debe existir for FONTNAME in *.ttf; do convert -antialias -pointsize 80 -font $FONTNAME -draw "text 10,60 'abcdefghijklABCDEFGHIJKL0123456789'" blank.jpg output/$FONTNAME.jpg; done
Convertir todos los archivos ogg de un directorio en mp3
for name in *.ogg; do ffmpeg -i "$name" -ab 128k -map_metadata 0:s:0 "${name/.ogg/.mp3}"; done;
Tags: awkbashcomandofindgreplinuxshellxargs
Next story Listado de comandos útiles para SQL

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución