Emezeta.com

10 comandos interesantes para Linux


Los administradores de sistemas y usuarios avanzados siempre echan mano de su querida línea de comandos o terminal para realizar tareas de una forma más rápida y eficiente. Sin embargo, aún muchos son reacios a utilizarla porque creen que es algo demasiado complejo.

Comandos para GNU/Linux

A continuación, vamos a dar un repaso a una serie de comandos destinados a ejecutarse desde una terminal (incluso remotamente, sin necesidad de disponer de una interfaz gráfica), realizando ciertas tareas en muy poco tiempo y apenas algo de esfuerzo. La mayoría de estos comandos son programas que se pueden instalar facilmente mediante apt-get install (o el gestor de paquetes de tu distribución).

1. Controlar el ancho de banda del sistema

Es posible que queramos monitorizar el consumo de la conexión a Internet por parte del equipo en el que estamos, conociendo así el ancho de banda consumido. Esto se puede realizar de forma muy sencilla mediante el comando bmon (Bandwidth Monitor).

Este comando nos mostrará un sencillo panel con las diferentes tarjetas de red del sistema y el consumo de Internet que están realizando (RX = recibido = descarga, TX = transmitido = subida):

Comandos para GNU/Linux: Bmon (Bandwidth Monitor)

Pulsando g también podemos ver una pequeña «pseudo-gráfica» que representa la evolución del ancho de banda utilizado conforme pasa el tiempo, o pulsando d una tabla de estadísticas más detalladas.

Si esto nos parece poco aproximado, podemos utilizar nethogs, un comando que nos informará del consumo de ancho de banda por proceso o aplicación, muy útil para saber que programa está enviando o recibiendo información:

Comandos para GNU/Linux: Nethogs

Por último, si en lugar de monitorizar, lo que queremos es restringir el ancho de banda para limitar el uso de Internet por parte de un equipo en la red, podemos hacer uso de wondershaper, que nos permitirá limitar el ancho de banda:

sudo wondershaper eth0 1024 512

El ejemplo anterior limita la conexión a 1024kbps de bajada y 512kbps de subida.

Bonus: Si te interesa conocer algunos trucos para conseguir exprimir tu conexión a Internet al máximo, echa un vistazo al artículo Internet más rápido.

3. «Refuerzo negativo» para disléxicos

Con un simple apt-get install sl (o nuestro gestor de paquetes correspondiente) tendremos instalado este «refuerzo para disléxicos».

Steam Locomotive (sl) es un comando ideado para ser ejecutado cuando el usuario escribe mal el comando ls (listar ficheros), y mostrarnos un lento tren a modo de castigo para que no se vuelva a repetir otra vez.

Comandos para GNU/Linux: sl (steam locomotive)

Bonus: Si te interesan más curiosidades como esta (algunas completamente inútiles), puedes echar un ojo al artículo 20 curiosidades geeks para terminales Linux. ¡También cuento como ponerle sonido al tren para hacerlo más irritante!

4. Buscar archivos duplicados

Cuando tenemos gran cantidad de archivos almacenados en nuestros discos, otro problema clásico es el de tener archivos duplicados (imágenes, videos, mp3...). Este sencillo comando permite buscar y mostrarnos los archivos duplicados detectados en la ruta especificada:

Comandos para GNU/Linux: Fdupes

También existe findimagedupes, que realiza una búsqueda de imágenes duplicadas de forma visual.

Bonus: Para Windows, la mejor alternativa a fdupes es DoubleKiller, mientras que para búsquedas visuales de imágenes duplicadas, la mejor opción es VisiPics. Puedes encontrar ambos en 12 programas gratuitos para eliminar ficheros duplicados.

5. Navegar desde una terminal de texto

Si estamos conectados desde una terminal de texto (sin interfaz gráfico) o de forma remota vía SSH (por ejemplo) nos puede interesar consultar alguna página o buscar determinado sitio web. Para ello podemos utilizar los navegadores de modo texto:

Lynx

Lynx es quizás mi preferido debido a su potencia y gran cantidad de parámetros personalizables. No sólo es un excelente navegador de modo texto, sino que además permite la utilización del parámetro --dump o --source para obtener texto o código HTML para su posterior procesamiento, por ejemplo:

eog lynx --dump xkcd.com | egrep imgs.xkcd

La línea anterior, obtiene el texto de la web de XKCD y extrae con egrep la imagen de su última tira, la cuál la muestra con el visor de imágenes eog.

Comandos para GNU/Linux: Lynx

w3m

Por otro lado, también tenemos a nuestra disposición w3m, un navegador más sencillo, pero igualmente interesante que nos puede servir de alternativa a Lynx:

Comandos para GNU/Linux: W3m

Elinks

Si ninguno de estos dos navegadores nos agrada, también podemos utilizar elinks, un navegador de texto un poco más sencillo, con menús desplegables que nos permiten seleccionar diferentes opciones de una forma más cómoda, sin recordar los atajos o teclas necesarias para realizar ciertas tareas:

Comandos para GNU/Linux: Elinks

6. Conversión de formatos de archivos multimedia

Una de las soluciones más completas para la conversión de formatos de audio o video es ffmpeg. Mediante este comando podemos realizar multitud de tareas como conversión de MP4 a XViD, MP3 a OGG, extraer sonido de un video a MP3, convertir un video en un GIF animado, o incluso capturar nuestra actividad en pantalla en video (screencast).

Eso sí, la sintaxis del programa da para 2 ó 3 artículos más (o varios tomos), por lo que comentaré sólo uno de sus posibles usos: convertir de .flv a .avi (XViD)

ffmpeg -i video.flv -c:v mpeg4 -vtag xvid video.avi

Existen algunas interfaces gráficas para ffmpeg como WinFF o Avanti, si no quieres complicarte con parámetros y opciones.

7. Montar una cuenta SSH remota como carpeta local

Es posible montar la carpeta remota de una cuenta SSH como una carpeta local de nuestro sistema, permitiéndonos un acceso más rápido, fácil y cómodo. Para ello, basta con escribir:

sshfs user@www.dominio.com:/home/user /mnt/carpeta

Donde user es el nombre del usuario de la cuenta SSH, www.dominio.com es la IP o dominio a conectar, /home/user la carpeta remota y /mnt/carpeta la carpeta local donde será montada.

Comandos para GNU/Linux: Sshfs

Además, existe SSHFS Manager, un entorno gráfico para sshfs que nos permitirá hacer esto mismo desde un entorno Windows.

También puedes utilizar el comando scp (cp vía ssh) para realizar copias de archivos a través de SSH como te indico en el siguiente manual básico: 10 comandos para trabajar en GNU/Linux.

8. Realizar modificaciones en varios archivos

Imagina el siguiente escenario: 300 archivos con textos a modificar. ¿Cómo lo hacemos? ¿Abrimos y modificamos cada archivo uno por uno? ¿Creamos un script que recorra todos los archivos y vaya modificando los textos? No. Más fácil y rápido:

sed -i ‘s/paco/Francisco/g’ *.txt

Este pequeño ejemplo, reemplaza el texto «paco» por «Francisco» en todos los archivos con extensión txt. ¿Fácil y rápido, no?

Comandos para GNU/Linux: Sed

En editores de texto basados en terminal hablo de sed, vim, mcedit y otros editores que pueden resultarte útiles y que permiten reemplazar texto utilizando expresiones regulares. Awk es otro magnífico lenguaje muy potente para manipulación de texto.

9. Desproteger archivos PDF

Es posible que más de una vez te hayas encontrado con archivos PDF que se encuentran protegidos y no permiten imprimir, editar o incluso copiar su contenido. Podemos utilizar qpdf para desproteger estos archivos y generar un nuevo archivo PDF sin protección:

qpdf —decrypt protected.pdf unprotected.pdf

Obviamente, si el archivo PDF está protegido con un password, habrá que especificarlo con el parámetro --password, o utilizar algún comando como pdfcrack para intentar reventarlo.

Bonus: ¿Interesado en más operaciones similares? Echa un vistazo a 10 operaciones útiles con archivos PDF: Separar páginas, añadir marca de agua, rotar páginas, etc...

10. Descargar archivos directamente (con resume)

¿Que necesidad hay de abrir un navegador si sabemos exactamente la URL del archivo a descargar? Ninguna. Por eso lo mejor es utilizar el comando wget y descargarlo directamente.

Además, si utilizas el parámetro -c puedes activar el soporte para continuar descargas interrumpidas, y en el caso de haber descargado una parcialmente, no se elimina el archivo descargado, permitiendo continuar por donde iba, como se puede ver en la siguiente imagen:

Comandos para GNU/Linux: Wget

Bonus: En Windows, existe una versión con interfaz llamada wackget, que hace las veces de gestor de descarga minimalista, y que puedes encontrar en el artículo 20 programas para hacer Windows más cómodo.

¿Utilizas comandos que te son realmente útiles en tu día a día y no han sido mencionados aquí? ¡Por favor, compártelos con nosotros en los comentarios!