Chuleta de comandos linux

By 10 de octubre de 2007 Linux 6 Comments

bash_screenshot.pngEsta es una lista de referencia de linea de comandos de operaciones simples en Linux.
Los ejemplos que empiezan con • son válidos/se pueden copiar sin modificar en un terminal.
Así, que podemos tener abierta una ventana de terminal mientras leemos esto para cortar & pegar.

Comando Descripción
apropos palabra Ver comandos relacionados con palabra. Ver también threadsafe
  which comando Ver la ruta completa de comando
  time comando Medir cuanto tarda comando
time cat Iniciar cronómetro. Ctrl-d para detenerlo. Ver también sw
nice info Lanzar comando con prioridad baja (info en este ejemplo)
renice 19 -p $$ Darle prioridad baja al shell (guión). Usar para tareas no interactivas
look referencia Búsqueda rápida (ordenada) de prefijo en diccionario
grep --color referencia /usr/share/dict/palabras Resaltar ocurrencias de expresión regular en diccionario
  gpg -c file Encriptar archivo
  gpg file.gpg Desencriptar archivo
alias hd='od -Ax -tx1z -v' Práctico vuelco hexa. (uso x.ej.: • hd /proc/self/cmdline | less)
alias realpath='readlink -f' Canonicalizar ruta. (uso x.ej.: • realpath ~/../$USER)
set | grep $USER Buscar en el entorno actual
ls /usr/bin | pr -T9 -W$COLUMNS Imprimir 9 columnas en ancho de la terminal
  touch -c -t 0304050607 archivo Asignarle a archivo la fecha (AAMMDDhhmm)
cd - Volver al directorio anterior
cd Ir al directorio personal (home)
  (cd dir && comando) Ir a dir, ejecutar comando y volver al directorio inicial
pushd . Guardar el directorio actual en la pila para luego, poder hacer popd y volver al mismo
  gzip < /dev/cdrom > cdrom.iso.gz Guardar una copia de los datos de cdrom
  mkisofs -V NOMBRE -r dir | gzip > cdrom.iso.gz Crear imagen de cdrom con el contenido de dir
  mount -o loop cdrom.iso /mnt/dir Montar la imagen cdrom en /mnt/dir (solo lectura)
  cdrecord -v dev=/dev/cdrom blank=fast Limpiar un CDRW
  gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - Grabar un cdrom con imagen (usar dev=ATAPI -scanbus para confirmar ruta dev)
  cdparanoia -B Extraer pistas de audio desde un CD a archivos wav en directorio actual
  cdrecord -v dev=/dev/cdrom -audio *.wav Armar un CD de audio con todos los wavs en directorio actual (ver también cdrdao)
  oggenc --tracknum='pista' pista.cdda.wav -o 'pista.ogg' Crear un archivo ogg con un archivo wav
  tar c dir/ | bzip2 > dir.tar.bz2 Crear archivo compacto de dir/
  bzip2 -dc dir.tar.bz2 | tar x Extraer archivo compacto (usar gzip en vez de bzip2 para archivos tar.gz )
  tar c dir/ | gzip | gpg -c | ssh [email protected] 'dd of=dir.tar.gz.gpg' Crear compactado encriptado de dir/ en equipo remoto
  find dir/ -name '*.txt' | tar c --files-from=- | bzip2 > dir_txt.tar.bz2 Crear compactado de subconjunto de dir/ y subdirectorios
  find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents Copiar subconjunto de dir/ y subdirectorios
  ( tar c /dire/de/copiame ) | ( cd /este/dir/ && tar x -p ) Copiar (con permisos) directorio copiame/ a directorio /este/dir/
  ( cd /dire/de/copiame && tar c . ) | ( cd /este/dir/ && tar x -p ) Copiar (con permisos) contenido del directorio copiame/ a directorio /este/dir/
  ( tar c /dire/de/copiame ) | ssh -C [email protected] 'cd /este/dir/ && tar x -p' Copiar (con permisos) directorio copiame/ a directorio remoto /este/dir/
  dd bs=1M if=/dev/hda | gzip | ssh [email protected] 'dd of=hda.gz' Respaldo de disco duro en equipo remoto
  rsync -P rsync://rsync.servidor.com/ruta/a/archivo archivo Obtenerr solo diffs. Repetir muchas veces para descargas conflictivas
  rsync --bwlimit=1000 desdearchivo alarchivo Copia local con taza límite. Parecido a nice para E/S (I/O)
  rsync -az -e ssh --delete ~/public_html/ remoto.com:'~/public_html' Espejo de sede web (usando compresión y encriptado)
  rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ Sincronizando directorio actual con uno remoto
alias l='ls -l --color=auto' listado de directorio rápido
ls -lrt Listar archivos por fecha. Ver también newest
  find -name '*.[ch]' | xargs grep -E 'expre' Buscar 'expre' en este directorio y subdirectorios. Ver también findrepo
  find -type f -print0 | xargs -r0 grep -F 'ejemplo' Buscar 'ejemplo' en todos los archivos regulares en este directorio y subdirectorios
  find -maxdepth 1 -type f | xargs grep -F 'ejemplo' Buscar 'ejemplo' en todos los archivos regulares de este directorio
  find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done Procesar cada elemento con muchos comandos (con un bucle while)
find -type f ! -perm -444 Hallar archivos sin permiso general de lectura (util para sedes web)
find -type d ! -perm -111 Hallar directorios sin permiso general de acceso (util para sedes web)
locate -r 'file[^/]*\.txt' Buscar nombres en indice en cache. Este re es igual a glob *file*.txt
ip link show Listar interfases
  ethtool interface Listar estado de interfase
  ip link set dev eth0 name wan Renombrar eth0 a wan
  ip addr add 1.2.3.4/24 brd + dev eth0 Agregar ip y máscara (255.255.255.0)
  ip link set dev interface up Subir (o bajar) la interfase
  ip route add default via 1.2.3.254 Establecer 1.2.3.254 como valor por omisión para la puerta de enlace.
tc qdisc add dev lo root handle 1:0 netem delay 20msec Agregarle 20ms de espera al dispositivo de retorno (para hacer pruebas)
tc qdisc del dev lo root Quitar la espera agregada antes.
host pixelbeat.org Obtener la dirección ip para el dominio o al revés
hostname -i Obtener la dirección ip local (equivale al anfitrión `hostname`)
netstat -tupl Listar los servicios de internet de un sistema
netstat -tup Listar las conexiones activas de/hacia un sistema
(cd cmdline && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) Guardar en directorio actual una versión navegable de una página web
  wget -c http://www.ejemplo.com/largo.archivo Retomar descarga de un archivo parcialmente descargado
  wget -r -nd -np -l1 -A '*.jpg' http://www.ejemplo.com/ Descargar una serie de archivos en el directorio actual
  wget ftp://remoto/archivo[1-9].iso/ FTP permite globalizaciones directas
wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head Procesando directamente la salida
  echo 'wget url' | at 01:00 Descargar la url a 1AM al directorio en que esté
  wget --limit-rate=20k url Hacer descargas de baja prioridad (en este caso, no exceder los 20KB/s)
  wget -nv --spider --force-html -i bookmarks.html Revisando los enlaces de una página
  wget --mirror http://www.ejemplo.com/ Actualizar eficientemente una copia local de una página web (útil si usamos cron)
smbtree Hallar equipos windows. Ver también findsmb
  nmblookup -A 1.2.3.4 Hallar el nombre (netbios) de windows asociado con la dirección ip
  smbclient -L windows_box Listar archivos compartidos en equipos windows o servidor samba
  mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share Montar un directorio compartido
  echo 'mensaje' | smbclient -M windows_box Enviar mensaje emergente al equipo windows (desactivado por omisión en XP sp2)
echo '(1 + sqrt(5))/2' | bc -l Cuentas rápidas (Calcular φ). Ver también bc
echo 'obase=16; ibase=10; 64206' | bc Conversiones de base (decimal a hexadecimal)
echo $((0x2dec)) Conversiones de base (hex a dec) ((expansión aritmética del shell))
echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc Mas complejo (int) x.ej. Ejemplo: tasa máxima de paquetes FastE
echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python Python maneja notación científica
echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist Graficar tasa de paquetes FastE vs. tamaño de paquetes
seq 100 | (tr '\n' +; echo 0) | bc Agregar una columna de números. Ver también add y funcpy
  sed 's/cadena1/cadena2/g' Remplaza cadena1 por cadena2
  sed 's/\(.*\)1/\12/g' Modificar cualquiercadena1 con cualquiercadena2
  sed '/ *#/d; /^ *$/d' Quitar comentarios y lineas en blanco
  sed ':a; /\\$/N; s/\\\n//; ta' Concatenar lineas con \ al final
  sed 's/[ \t]*$//' Quitar blancos finales de las lineas
  sed 's/\([\\`\\"$\\\]\)/\\\1/g' Escapar metacaracteres activos del shell dentro de comillas dobles
  sed -n '1000p;1000q' Listar la línea 1000°
  sed -n '10,20p;20q' Listar de la linea 10 a la 20
  sed -n 's/.*<title>\(.*\)<\/title>.*/\1/ip;T;q' Extraer titulo de página web en HTML
  sort -t. -k1,1n -k2,2n -k3,3n -k4,4n Sort de direcciones ip de tipo IPV4
echo 'Test' | tr '[:lower:]' '[:upper:]' Conversión de cajas
tr -dc '[:print:]' < /dev/urandom Filtrando caracteres no imprimibles
grep 'processor' /proc/cpuinfo | wc -l Contar lineas
  LANG=C sort archivo1 archivo2 | uniq Union de archivos sin ordenar
  LANG=C sort archivo1 archivo2 | uniq -d Intersección de archivos sin ordenar
  LANG=C sort archivo1 archivo1 archivo2 | uniq -u Diferencia de archivos sin ordenar
  LANG=C sort archivo1 archivo2 | uniq -u Diferencia Simétrica de archivos sin ordenar
  LANG=C comm archivo1 archivo2 | sed 's/^\t*//' Unión de archivos ordenados
  LANG=C comm -12 archivo1 archivo2 Intersección de archivos ordenados
  LANG=C comm -13 archivo1 archivo2 Diferencia de archivos ordenados
  LANG=C comm -3 archivo1 archivo2 | sed 's/^\t*//' Diferencia Simétrica de archivos ordenados
cal -3 Mostrar calendario
cal 9 1752 Mostrar calendario para mes y año determinado
date -d fri Que día cae este viernes. Ver también day
date --date='25 Dec' +%A ¿En que día cae la Navidad, este año?
date --date '1970-01-01 UTC 1234567890 seconds' Convertir total de segundos desde la época a una fecha
TZ=':America/Los_Angeles' date ¿Que hora es en la Costa Oeste de EEUU (usar tzselect para hallar TZ)
  echo "mail -s 'tomar el tren' [email protected] < /dev/null" | at 17:45 Recordatorio por email
echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes" Recordatorio emergente
printf "%'d\n" 1234 Imprimir numero agrupado por miles de acuerdo a su locale
BLOCK_SIZE=\'1 ls -l pedir que ls agrupe por miles de acuerdo a su locale
echo "Yo vivo en `locale territory`" Extraer información de la base de datos del locale
locale | cut -d= -f1 | xargs locale -kc | less Listar campos en base de datos del locale
LANG=en_IE.utf8 locale int_prefix Buscar información de locale para determinado país. Ver también ccodes
ls -lSr Mostrar archivos, de menor a mayor
du -s * | sort -k1,1rn | head Mostrar usuarios de disco principales en el directorio actual. Ver también dutop
df -h Mostrar espacio libre de disco
df -i Mostrar inodos libres
fdisk -l Mostrar tamaños y tipos de particiones de disco (pedir como root)
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n Listar todos los paquetes por tamaño instalado (Bytes) de distribuciones RPMs
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n istar todos los paquetes por tamaño instalado (Kbytes) de distribuciones deb
dd bs=1 seek=2TB if=/dev/null of=ext3.test Crear un gran archivo de prueba (sin ocupar espacio). Ver también truncate
strace -c ls >/dev/null Resumir/perfil de llamadas al sistema hechas con comando
strace -f -e open ls >/dev/null Listar llamadas al sistema hechas con comando
ltrace -f -e getenv ls >/dev/null Listar llamadas a librerías hechas con comando
lsof -p $$ Listar las rutas que abrió el id de proceso
lsof ~ Listar procesos que solicitaron apertura de rutas
tcpdump not port 22 Ver tráfico de redes excepto ssh. Ver también tcpdump_not_me
ps -e -o pid,args --forest Listar procesos de una jerarquía
ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d' Listar procesos por % de uso de cpu
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS Listar procesos por uso de memoria. Ver también ps_mem.py
ps -C firefox-bin -L -o pid,tid,pcpu,state Listar todos los hilos de un proceso determinado
ps -p 1,2 Listar información de un ID determinado
last reboot Ver historia de reencendido del sistema
free -m Ver cantidad de RAM (que queda) (-m muestra en MB)
watch -n1 'cat /proc/interrupts' Observar continuamente los datos que van cambiando
  hdparm -i /dev/hda Ver informe sobre partición hda
  hdparm -tT /dev/hda Hacer una prueba de velocidad de lectura en partición hda
  badblocks -s /dev/hda Hallar bloques ilegibles en partición hda
mount | column -t Ver particiones montadas en el sistema (y alinear la salida)
cat /proc/partitions Ver todas las particiones registradas en el sistema
grep MemTotal /proc/meminfo Ver el total de RAM que registra el sistema
grep "model name" /proc/cpuinfo Ver informe de CPU(s)
lspci -tv Ver informe de PCI
lsusb -tv Ver informe de USB
recode -l | less Ver conversiones disponibles (aliases en cada línea)
  recode windows-1252.. archivo_a_cambiar.txt "ansi" de Windows a tabla de caracteres locales (auto hace conversión CRLF)
  recode utf-8/CRLF.. archivo_a_cambiar.txt utf8 de Windows a tabla de caracteres locales
  recode iso-8859-15..utf8 archivo_a_cambiar.txt Latin9 (Europa oriental) a utf8
  recode ../b64 < archivo.txt > archivo.b64 Codificado Base64
  recode /qp.. < archivo.txt > archivo.qp Decodificado de citas imprimibles (qp)
  recode ..HTML < archivo.txt > archivo.html Texto a HTML
recode -lf windows-1252 | grep euro Buscar tabla de caracteres
echo -n 0x80 | recode latin-9/x1..dump Mostrar representación de un código en tabla de caracteres latin-9
echo -n 0x20AC | recode ucs-2/x2..latin-9/x Ver codificado latin-9
echo -n 0x20AC | recode ucs-2/x2..utf-8/x Ver codificado utf-8
mc Poderoso administrador de archivos que permite navegar por rpm, tar, ftp, ssh, ...
screen Terminales virtuales con capacidad de reacomodamiento, ...
links Navegador web
gnuplot Graficos interactivos/ programables
octave Entorno parecido a Matlab

6 Comments

Leave a Reply

Your email address will not be published.