comandos

En esta época de interfaces gráficas altamente desarrolladas en la que todo funciona a golpe de ratón, enfrentarse a la aridez (¿?) de una pantalla negra y exprimirla haciéndola mostrar datos y más datos exige cierta dosis de humor, voluntad y sacrificio, cualidades de las que, afortunadamente los de LAPIPAPLENA, andamos sobrados. El secreto de tanta dicha tiene fácil receta: Para gozar eternamente de una excelente salud mental, la mejor terapia y que recomendamos fuertemente, es la auto imposición de no terminar ninguna sesión sin antes presionar CTROL+ALT+F1 y pasar, al menos, los últimos 5 minutos manoseando comandos. Es enormemente gratificante y no tiene contraindicaciones ni efectos secundarios y, además, permite apreciar nuestra insignificante pequeñez ante la inmensidad del universo.

El presente listado de comandos (con algunas opciones y ejemplos orientativos) solo pretende ser el punto de partida para que cada cual explore sus propios limites en este basto territorio ya que solo es una simple y limitadísima chuleta en la que hemos incluido aquellos más comunes y que usamos más a menudo, por tanto ni es exhaustivo ni mucho menos completo. Sobre este tutorial (como en la mayoría de los que constan en estas páginas), nuestra modesta opinión, es que cada cual debe confeccionarse el suyo con su propio estilo y sintaxis. Y recuerda: Cada maestrillo tiene su librillo.

Nota.- Algunos no son propiamente comandos sinó aplicaciones que deben ser instaladas

apropos     Busca utilidades relacionadas con lo especificado.
$ apropos jpeg

arp             Supervisa la tabla ip y MAC.
$ arp -n

blkid          Muestra uuid de cada partición y el tipo de formato

cal              Muestra el calendario del mes
$ cal -y    (muestra todos los meses del año)

cat          Verter en consola información sobre lo solicitado:
$ cat /proc/cpuinfo                 informacion del procesador
$ cat /proc/version                 version del nucleo y compilador empleado
$ cat /var/log/debug | less         inf del sistema
$ cat /var/log/user.log | less         inf del usuario
$ cat /var/log/messages | less     mensajes del sistema
$ cat /var/log/syslog | less          registro de actividad
$ cat /var/log/auth.log | less       accesos al sistema
$ cat /proc/meminfo                 inf sobre la memoria
$ cat /proc/devices                 inf sobre los dispositivos en uso
$ cat /proc/mounts                 inf de las particiones y recursos montados
$ cat /proc/filesystems             los filesystems habilitados en el kernel

cd           Moverse a un directorio
$ cd     entra al directorio /home estes donde estes.
$ cd /   entra al direcotorio raiz estes donde estes.
$ cd ..  baja un directorio.

ccd2iso
Convertir imagenes IMG a ISO
$ ccd2iso archivo.img archivo.iso

cdda2wav
Extraer pistas de audio de un cd
$ cdda2wav -B -H -D /dev/sdxx -s -x (extrae disco completo en archivos wav separados.)
$ cdda2wav -H -D /dev/sdxx -s -x -t 5 (extrae el track no 5)

cdrecord
Grabación de cds
$ cdrecord -scanbus (Escaneo de grabadoras)
$ cdrecord -v dev=0,1,0 speed=4 -isosize /dev/scd0 (copiar directamente de un
dispositivo a otro)
$ cdrecord -v -eject speed=8 dev=0,0,0 test.iso (iniciar la grabación)
opciones
-v .- muestra más información de salida
-eject .- expulsa el disco al finalizar la grabación
-speed .- especifica la velocidad de grabación
-dev .- número de dispositivo (0,1,0) obtenido con cdrecord -scanbus
-dummy .- simula la grabación

convert (paquete imagemagick)
redimensionar, cambiar formatos, extraer fotogramas, convertir blanco y negro imagenes
$ convert *.jpg las_imagenes.pdf        (Crear un pdf con todas las imágenes)
$ convert color.jpg -monochrome blanconegro.jpg (Convertir a blanco y negro)
$ convert original.png nueva.jpg        (Cambiar el formato de una imagen)
$ convert original.jpg -resize 800×600 nueva.jpg (Cambiar las dimensiones de una imagen)
$ convert imagen.jpg -resize 150×150 imagen%02d.png
$ convert -delay 60 1.jpg 2.jpg 3.jpg 123.gif (Crear un gif animado con varios jpg)
$ convert 123.gif -adjoin 1-2-3.jpg     (extraer los fotogramas de un gif)
Notas.-”delay 60″ son 60 milisegundos por fotograma
“resize 150×150″ Respetará la proporción de la imagen.
“imagen%02d”  Renombrará todas la imagenes con nombre “imagen” y dos dígitos.
“imagen%03d”   Igual pero con tres dígitos.

cp            Copiar archivos
$ cp -R                 Copia archivos y directorios
$ cp -i                  Pide confirmacion antes de sobreescribir
$ cp -f                  Borra el archivo de destinos sin preguntar

curl    Herramienta para la transferencia de archivos con sintaxis de URL,
$ curl lapipaplena.com   (Para conocer la ip publica)

chattr    cambia los atributos de ficheros para que no puedan ser modificados por  procesos o por root (bloquea el fichero)
# chattr +i /etc/resolv.conf
# chattr -i /etc/resolv.conf    (lo desbloquea)
# chattr -R +i /home/usuario/directorio (bloqueo recursivo)

chmod         Cambiar permisos
$ chmod ugo+rwx -R /home/usuario/directorio  (todos los permisos a todos los usuarios sobre el directorio y subdirectorios)

chroot          Situarte virtualmente donde le indicas
# chroot /media/sda3       (Como si estuvieras en la particion sda3)

deborphan      Visualizar paquetes huerfanos
$ deborphan –guess-all   (Los muestra todos)
# apt-get remove $(deborphan –guess-all)     (borra todos los mostrados)

df                Mostrar espacio libre y usado de las particiones
$ df -h               (los resultados en M y G, por defecto son en bytes)
$ df -a               (de todas las particiones incluso las de 0 bloques)
$ df -t vfat         (de las particiones especificadas, en el caso las vfat
$ df  -T               (de todas las particiones y el tipo)

diff             Mostrar diferencias entre dos directorios o ficheros
$ diff -r archivo1 archivo2
$ diff -w fichero1 fichero2  (Descarta espacios en blanco)
$ diff -q fichero1 fichero2   (Informa si los ficheros difieren sin detalles)
$ diff -y fichero1 fichero2   (Muestra la salida a dos columnas)

dmesg        Imprimir en pantalla los últimos mensajes del kernel
$ dmesg | grep -i ‘error’              ( lista los errores del kernel)
$ dmesg | grep hd                       ( inf sobre dispositivos IDE.)

dmidecode
Muestra parametros del pc
# dmidecode | grep Maximum  (memoria máxima que soporta la máquina)

dontzap     Activa CRTL+ALT+Retroceso para reiniciar las X
dontzap -d      Lo activa
dontzap -e      Lo desactiva

du              Mostrar el espacio usado por los directorios
$ du -a              (Para todos los ficheros, no solo los directorios)
$ du -h              (Da los resultados en M y G, por defecto son en bytes)
$ du -s              (Muestra los totales del directorio o archivo especificados)

echo           Muestra o incluye algo en un fichero.
# echo deb ftp://ftp.debian.org/debian etch main >> /etc/apt/source.list  (añade el repositorio mencionado al archivo sources.list)
Nota.- con un solo “>” pondria la linea especificada borrando todo lo demas.)

fc                Mostrar y abrir nuevamente el último archivo abierto
$ fc -l  (Mostrar los últimos comandos usados por el usuario)

fdisk          Listar las tablas de las particiones
$ fdisk -l                 (Lista las particiones de todos los discos)
$ fdisk -l /dev/hda  (lista las del disco especificado)

find             Buscar archivos o directorios
$ find / -iname archivo     Busca en / archivo sin distinguir minusculas y mayusculas.
$ find /home -name *.png -print      Buscará en /home todos los archivos “.png” y mostrará la ruta

free            Listar la memoria RAM y swap utilizada y disponible.

ftff              Busca archivos o directorios (paquete whichman)
$ ftff -t2 logfile.txt    (busca  logfile con dos errores en el nombre. permite *)

fsck            Reparar/chequear/formatear una partición no montada
# fsck -fy /dev/hda1
# fsck.ext2 -vpf /dev/hda1       (Repara una partición ext2)
# fsck.ext3 -vpf /dev/hda1       (Repara una partición ext3)
# fsck.vfat /dev/hda1               (formatear a fat 32)
# fsck.msdos /dev/hda1           (formatear a fat 16)

fuser          Cerrar particiones rebeldes, aplicaciones que corren en un puerto…
$ fuser -km /media/sda6     (luego desmontarla normal con umount)
$ fuser -n tcp 3389  (indica PID que corre en el puerto 3389)

hddtemp     Indica la temperatura del disco especificado
$ hddtemp /dev/sda

history       Lista los 500 últimos comandos utilizados por el usuario
$ history 20       (Lista los últimos 20)
$ history -c        (Elimina el historial)

host           Determina la ip de un nombre o el nombre de una ip
$ host -v -a telefonica.com

hostname       Mostrar el nombre de …
$ hostname -a                (el alias de la maquina)
$ hostname -i                 (la IP del ordenador)
$ hostname -s                 (el nombre de la maquina)

ifdown        Deshabilita la interfase especificada:
$ ifdown eth0

ifup             Habilita la interfase especificada:
$ ifup eth0.

init            Para o reinicia el sistema
$ init 0    (para)
$ init 1    (reinicia en modo uniusuario)
$ init 6    (reinicia)

kill             Para matar procesos
$ kill -0             (mata todos los procesos de la shell)
$ kill -9  pid      (mata el proceso indicado con el número PID)
$ kill -KILL pid  (más agresivo)
$ kill -HUP pid  (reinicia el servicio indicado en PID)
$ kill -TERM pid (muy agresivo)
$ xkill               (el puntero se convierte en calavera y mata el proceso sobre el que se clique)

killall           Mata el proceso la plicación especificada
$ killall scribus

last            muestra información sobre las conexiones y desconexiones al sistema.
$ last -n 10      (Muestra los últimos 10 eventos. )
$ last reboot    (la útima vez que se reinició)

lastlog       Ver el momento exacto que los usuarios han entrado por última vez
$ lastlog -u usuario  (solo ver a “usuario”)

ldd             Para conocer las librerias que usa una aplicación.
$ ldd /usr/bin/amarok

less            Pagina la visualización de un fichero especificado permitiendo subir con el cursor
$ cat /etc/apt/sources.list | less

ln               Enlazar achivos
$ ln -s /home/ct/videos /home/Desktop/videos (Crea un enlace a videos en Desktop)
$ ln -f       (Borra los ficheros de destino si ya existen)
$ ln -i       (Pregunta antes de borrar ficheros de destino existentes)

locale    Idiomas instalados
$ locale
$ echo $LANG   (el por defecto)

locate        Buscar archivos (como find pero mas rapido)
$ locate parida.txt

lp               Información sobre trabajos de impresión
$ lpq           (muestra los trabajos pendientes y les asigna un número)
$ lprm 5      (borra el trabajo pendiente de impresión con el “núm” especificado)
$ lpr -P HP-1110 /etc/fstab    (imprime el fstab)

lpstat          Informacion sobre impresoras.
$ lpstat -a           (muestra las impresoras)
$ lpstat -v           (indicando ubicación)

ls                Listar archivos de un directorio.
$ ls -i             (Muestra todos los archivos no ocultos)
$ ls -a            (Muestra todos los archivos, incluso los ocultos)
$ ls -l             (Muestra permisos i propietarios)
$ ls -L            (En los enlaces, se muestra el archivo al que apuntan)
$ ls -l PID       (Muestra qué está corriendo con el PID especificado)
$ ls -alL /home/usuario/Desktop/videos
$ ls -l /dev/disk/by-uuid/  (Visualizar el uuid de las particiones)

lsb_release -a   Muestra nombre y código del sistema operativo

lshw           Muestra información de toda la máquina
$ lshw -C display (información relativa a la tarjeta gráfica)

lsmod         Listar todos los módulos cargados del kernel, y alguna información adicional de ellos

lsof         lista los ficheros abiertos en la máquina
$ lsof -i tcp:80  (programa que usa determinado protocolo y puerto)
$ lsof -i :22     (lo mismo especificando solo el puerto)
$ lsof -p 43745   (programas que usan determinado pid)
$ lsof -c akregator  (ficheros abiertos por determinada aplicación)
$ lsof -u usuario  (los ficheros abiertos por un usuario)
$ ldof /dev/sda5  (los abiertos en una partición)

lspci          Para averiguar todos los dispositivos pci
$ lspci |grep VGA  (informa del hardware gráfico)

lsusb         Ver los puertos USB y los dispositivos conectados

md5sum   (como tuberia) para encriptar una palabra o frase.
$ echo “palabra_a_encriptar” | md5sum

mkdir       Crear directorios
$ mkdir -p                (Crea el directorio y todos los subdirectorios especificados.)
$ mkdir -m=rwx      (Especifica los permisos del directorio que se crea)
$ mkdir -p -m=x /home/ct/videos/res/tot  (creará los nuevos directorios “videos”, “res” i “tot” y dará permisos de ejecución (x)  al usuario ct)

mkfs         Formatear particiones
$ mkfs -t ext3 /dev/sda4  (Formatea a ext3 la particion indicada)
$ mkfs.ext3 /dev/sda7      (otro modo de indicar el comando)

more        Pagina el fichero que se especifique,.
$ cat /etc/apt/sources.list | more

mount      Montaje de particiones
# mount -t ext3      (Lista los sistemas ext3 de ficheros montados)
# mount -a       (Monta todo lo que contengan la expresion  “auto” en el /etc/fstab)
# mount -s       (Tolera opciones de montaje medio malas en vez de fallar)
# mount -o loop imagen.iso /directorio     (Montar una iso en un dir)
# mount -t vfat /dev/sdf /media/disk -o force   (Forzar montage)

netstat     Puertos y conexiones.
# netstat -napt (Saber los puertos abiertos de nuestro sistema y los servicios que corren)

passwd     Cambiar contraseñas
# passwd -f usuario        (Cambia por completo los datos del usuario)
# passwd -l root              (Desactiva la contraseña root)
# passwd usuario            (Solicita la contraseña de usuario y la restablece)

pidof        muestra el Pid del programa si este corre (necesario para lanzar kill)
$ pidof firefox

ping         Para saber si existe conexión con un host
$ ping ip
$ ping www.google.com
$ ping -p 192.168.1.255  (a toda una red)

printenv   Para saber todas las variables de entorno

ps             Informa sobre el estado de los procesos
$ ps u          (Muestra el usuario y la hora de inicio de los ultimos procesos ejecutados)
$ ps r           (Muestra solo los procesos que se estan ejecutando)
$ ps x          (Muestra incluso los procesos que no estan controlados por ninguna terminal)
$ ps S          (Muestra  tiempo de CPU y fallos de los procesos hijos)

pstree      Para ver el árbol de procesos
$ pstree -al      (verlo con cada uno de sus hilos de ejecución)

python -m SimpleHTTPServer      Abre un servidor web en la carpeta actual. Para visualizarla desde un ordenador de la red local en el navegador con  http://ip_local:8000)

pwd          Mostrar el directorio actual.

pwgen         Genera claves aleatoriamente
$ pwgen -B     (ambiguas)
$ pwgen -c     (incluir mayusculas)
$ pwgen -n      (incluir números)

rcconf      Parar/arrancar procesos durante el inicio
$ rcconf -now

rm            Borrar archivos
$ rm -R          (Borra directorios y los subdirectorios)
$ rm -i           (Pide confirmación antes de borrar)
$ rm -f           (Fuerza eliminación incluso si existen ficheros que no existen)

route       Para saber la IP del router
$ route -n

runlevel    conocer el nivel de ejecución del sistema (gráfico, monousuario…)

script      Copia en un fichero toda la actividad tecleada en consola hasta cesar con “exit”
$ script -a fichero.txt

Secure-Delete    Aplicación para eliminar de forma segura datos de disco

setxkbmap    Configurar teclado
$ setxkbmap -layout es     (configurarlo en español)

srm (Elimina de forma segura archivos o directorios en el disco)
$ srm archivo.txt
$ srm -r dir_a_eliminar
smem (Borrado de los rastros de datos de la memoria del ordenador)
$ smem
sfill (Borrado de todos los rastros de datos del espacio libre del disco)
$ sfill
sswap (Borrado de swap. previamente desactivar con swapoff /dev/sda7)
$ sswap /dev/sda7  (activar nuevamente la swap con swapon /dev/sda7)

shred      Borrar de forma segura espacios de disco
$ shred -fuv  archivo    (Borra archivo y sobreescribe su espacio  25 veces)
$ shred -fuv -n 50 archivo     (Lo mismo pero 50 veces)
Tambien puede usarse dd:
$ dd if=/dev/zero of=/dev/hda  (escribe ceros en todo el disco)
$ dd if=/dev/urandom of=/dev/hda  (llena el disco de números aleatorios)

shutdown       Apagar/reiniciar la máquina
$ shutdown -h now    (apagar)
$ shutdown -r now     (reiniciar)
# shutdown -h +20 (apagado dentro de 20 minutos)
# shutdown -c   (anula la cuenta regresiva anterior)

sl    Un tren en consola

stat   Estadísticas de archivo, directorios y sistemas
# stat /etc/passwd
# stat /usr
# stat -f /

strings    Analizar la memoria o una particion
$ strings /dev/mem
$ strings /dev/sda5

source    Recarga el archivo de configuración indicado para aplicar cambios.
$ source .bashrc

su   Cambiar de usuario
$ su -m           (Cambia de root -#- a usuario normal -$-)
Nota    Tambien puede hacerse tecleando “exit”

sudo     Utilidad que permite a un usuario ejecutar programas con privilegios de root
$ sudo -k   (limpia la clave sudo introducida)

tail          Mostrar las ultimas lineas de un fichero
$ tail  -f /var/log/apache2/access.log

top          información sobre el estatus del sistema, procesos, uso del procesador, memoria etc… en ejecucion

type        Buscar la ubicación del ejecutable e informar si el comando es un alias.
$  type mplayer

uname    Informa de la …
$ uname -a       (… versión instalada del kernel)
$ uname -m      (… arquitectura de la máquina)

umount   Desmontar particiones
$ umount -a                    (Desmonta todas las especificadas en /etc/mtab)
$ umount -r                     (Si falla el desmontaje, intenta remontar como “solo lectura”)
$ umount -t vfat,ext3      (Solo desmonta los tipos especificados)
$ umount -fl                     (fuerza el desmonte de la particion)

userdel    Borrar usuarios
# userdel usuario

useradd   Añadir usuarios
# useradd -m usuario

vol_id       Mostrar tipo de fichero y uuid de una partición
# vol_id –export /dev/sda2
# vol_id –uuid /dev/sda2  (solo muestra el uuid)

vrms        Para saber los paquetes non-free instalados

whereis   Para encontrar donde se ha instalado un programa, su manual, …
$ whereis firefox

which       Para encontrar el ejecutable si está en el path
$ which firefox

whois      Conocer los datos del registro de un dominio
$ whois todo-linux.com  (nombre del dominio sin las www)

ANEXO

Comodines:

*              cualquier caracter o cadena de caracteres
$ find /home/usuario -iname text*

?              un solo caracter
$ find /home/usuario -iname text?.txt

[ ]            Cualquier caracter que este dentro de los corchetes [a-g] ,  [12-32]
$ find /home/usuario iname text[m-t].txt

Tuberias:

comando1 | comando2 – el resultado de comando1 se utiliza para comando2
$ dmesg                            (montón de datos)
$ dmesg | grep ‘error’       (solo los que den “error”)

comando1 & comando2 – los comando se ejecutan simultáneamente, pero  comando1 se ejecuta en segundo plano (background)
$ sudo firestarter & ifconfig
[1] 16572                   (pid de firestarter en baskground)
eth0      Link encap:Ethernet  Hwa….  (ejecución de ifconfig)

Matar el proceso de forma clásica (# kill -9 16572)

comando1 && comando2 – si comando1 funciona  se ejecuta comando2
Probar la diferencia con los ejemplos anterior y posterior
substituyendo los caracteres.

comando1 || comando2 – comando2 se ejecuta solamente si comando1 falla
$ sudo filestarmer || ifconfig
filestarmer: command not found    (error por tanto …)
eth0      Link encap:Ethe ….           (… se ejecuta ifconfig)
$ ls || ifconfig                                  (solo ejecutará ls)

comando1; comando2 – comando2 se ejecuta despues de comando1
$ ls; ifconfig; filestarmer; who

2 comentarios para “comandos”

  1. haroldo Dice:

    muy buenos los comandos, me parece que esta completo, por supuesto en lo basico. yo no se mucho de esto y me sido de gran ayuda gracias.

  2. jaimeco Dice:

    Que buena mierda todo esto.
    Seguro pego todo esto en mi blog, me servirá mucho.

Escribe un comentario