Comandos de Linux:

Comando

Descripción

apropos palabra

Ver comandos relacionados con palabra.

 

which comando

Ver la ruta completa de comando

 

time comando

Medir cuanto tarda comando

time cat

Iniciar cronómetro. Ctrl-d para detenerlo.

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

dir navegación

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

búsquedas de archivo

alias l='ls -l --color=auto'

listado de directorio rápido

ls -lrt

Listar archivos por fecha.

ls /usr/bin | pr -T9 -W$COLUMNS

Imprimir 9 columnas en ancho de la terminal

 

find -name '*.[ch]' | xargs grep -E 'expre'

Buscar 'expre' en este directorio y subdirectorios.

 

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

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

archivos

 

gpg -c file

Encriptar archivo

 

gpg file.gpg

Desencriptar archivo

 

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 user@remoto '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 user@remoto 'cd /este/dir/ && tar -x -p'

Copiar (con permisos) directorio copiame/ a directorio remoto /este/dir/

 

dd bs=1M if=/dev/hda | gzip | ssh user@remoto 'dd of=hda.gz'

Respaldo de disco duro en equipo remoto

rsync (Usar la opción --dry-run para probarlo)

 

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

wget (herramienta de descargas multiuso)

(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)

redes (Nota los comandos ifconfig, route, mii-tool, nslookup son obsoletos)

 

ethtool interface

Listar estado de interfase

ip link show

Listar interfases

 

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

windows (nota samba es el paquete que permite todos estos comandos de redes de windows )

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)

math

echo '(1 + sqrt(5))/2' | bc -l

Cuentas rápidas (Calcular φ).

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.

manejo de textos (nota: como sed usa stdin y stdout, para editar archivos, agregar... <viejoarchivo >nuevoarchivo)

 

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

definir operaciones (Nota export LANG=C es para acelerar, aquí también se supone que no hay líneas duplicadas en los archivos)

 

sort archivo1 archivo2 | uniq

Union de archivos sin ordenar

 

sort archivo1 archivo2 | uniq -d

Intersección de archivos sin ordenar

 

sort archivo1 archivo1 archivo2 | uniq -u

Diferencia de archivos sin ordenar

 

sort archivo1 archivo2 | uniq -u

Diferencia Simétrica de archivos sin ordenar

 

comm archivo1 archivo2 | sed 's/^\t*//'

Unión de archivos ordenados

 

comm -12 archivo1 archivo2

Intersección de archivos ordenados

 

comm -13 archivo1 archivo2

Diferencia de archivos ordenados

 

comm -3 archivo1 archivo2 | sed 's/^\t*//'

Diferencia Simétrica de archivos ordenados

calendario

cal -3

Mostrar calendario

cal 9 1752

Mostrar calendario para mes y año determinado

date -d fri

Que día cae este viernes.

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

locales

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

LANG=en_IE.utf8 locale int_prefix

Buscar información de locale para determinado país.

locale | cut -d= -f1 | xargs locale -kc | less

Listar campos en base de datos del locale

recode (obsoletos: iconv, dos2unix, unix2dos)

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

CDs

 

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

espacio de disco

ls -lSr

Mostrar archivos, de menor a mayor

du -s * | sort -k1,1rn | head

Mostrar usuarios de disco principales en el directorio actual.

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).

monitoreo/rastreo

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.

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.

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

información del sistema

 

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

interactivo

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

Miscellaneous

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

 

touch -c -t 0304050607 archivo

Asignarle a archivo la fecha (AAMMDDhhmm)

 

Hosted by www.Geocities.ws

1