Un listado de comandos útiles para Linux
Este artículo contiene una colección de comandos y utilidades que suelo usar en la línea de comandos de Linux. No sé si tendrá mucho interés para vosotros puesto que, más que nada, lo pretendo llenar de cosas que necesito tener a mano desde muchos sitios. Vedlo más o menos como un «backup» online de truquillos.
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
mkisofs -o /tmp/cd.iso /tmp/directory/
í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.mp3Reemplazar 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
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
xrdb -merge .XdefaultsCrear 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
modprobe pcspkr
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
tune2fs -l /dev/hdaX
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 el lanzador de Eclipse en el escritorio
/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
lppasswd -g sys -a root
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)
firefox --safe-modeObtener 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
xrandr -s 1280x1024Cambiar el mapa de teclado a otro idioma ([] = opcional)
en terminal:
loadkeys esen una sesión «X-Window»:
setxkbmap -layout 'es' [-model pc105]
o, simplemente,
setxkbmap es
Cambiar configuración de la tarjeta de red
ethtool -s eth0 speed 10 duplex half
Crear un listado de paquetes con su tamaño, los ordena por nombre y los guarda en el archivo indicado
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'
Formatear una partición como ext3
mke2fs -j /dev/hdaX
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'
o también:
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
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
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 630x460 píxeles, comenzando en el punto 330x326 (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
Desactivar el salvapantallas en Xorg, incluso la configuración DPMS «Energy Star».
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
Mostrar una alerta visual mediante un script desde cron:
Importante: Hay que ejecutar el comando
xhost +al inicio de sesión, en «~/.bashrc» o algo similar y ejecutar desde tu crontab un script como este:
#!/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)
tar cf - dir1 | ssh remote_host "( cd /path/to/dir2; tar xf - )"
Obtener el último carácter de una cadena:
mi_cadena=abcdefg lastchr=${mi_cadena#${mi_cadena%?}} echo $lastchr # Muestra "g"

















0 Respuestas a «Un listado de comandos útiles para Linux»