Emezeta.com

10 comandos de terminal que quizás no conocías


En el día a día del administrador de sistemas o del cada vez más popular DevOps, utilizar la terminal es algo que consume gran parte de nuestro tiempo, ya sea realizando tareas normales, tareas de automatización o durante procesos de configuración de sistemas.

Comandos de terminal útiles e interesantes

Pasamos gran parte de nuestro tiempo delante de una terminal y debemos aprender los comandos más interesantes que nos ayuden a realizar las tareas más rápida y cómodamente, detectando en que gastamos más tiempo (o en que tareas tardamos más), para buscar formas de simplificar y aprovechar nuestro tiempo.

  • 10 comandos de terminal que quizás no conocías (I)
  • 10 comandos de terminal que quizás no conocías (II)
  • 10 comandos de terminal que quizás no conocías (III)

En este artículo (que pretende ser una serie de ellos), comentaremos comandos interesantes para simplificar nuestra vida en terminales de sistemas GNU/Linux, también aplicables a WSL (Subsistema Linux de Windows), donde podemos tener una terminal nativa de Linux en sistemas Windows 10.

1. Autojump: Salta por carpetas más eficientemente

Con autojump podemos mejorar la clásica forma de acceder a directorios con cd. Habitualmente, acostumbramos a escribir las carpetas o directorios en forma de ruta relativas por las que vamos accediendo, o incluso las rutas absolutas cuando queremos “saltar” a una carpeta específica.

Esto se vuelve algo tedioso cuando tenemos que estar moviéndonos por varias carpetas de forma intermitente. Con los comandos pushd y popd, podemos utilizar una pila donde almacenar o recuperar las carpetas más usadas, pero autojump gestiona esto de una forma aún más inteligente, ya que sólo tenemos que escribir parte del nombre de la carpeta a la que queremos acceder y se basará en las carpetas en las que más hemos estado, ya que mantiene una base de datos interna con esta información.

Autojump, cd mejorado

Para instalarlo, solo tenemos que hacer un sudo apt-get install autojump y ejecutar la siguiente orden . /usr/share/autojump/autojump.sh, que activará un alias j para utilizar autojump.

2. tmux: Multiplexador de terminales

Tmux es un multiplexador de terminales, o lo que es lo mismo, una herramienta que permite dividir una terminal de modo texto, en varias terminales diferentes. Tmux ofrece dos ventajas principales por las que ya merece la pena trabajar con él: aprovechar mejor el espacio y recuperar sesiones perdidas.

La primera es la más obvia, ya que al poder dividir en varias terminales, se puede aprovechar mejor el espacio y trabajar a la vez que ves información de otro comando. La segunda, es muy interesante. Muchas veces las conexiones remotas por SSH se interrumpen por problemas de conexión, microcortes, cierres repentinos o errores similares. Si tenemos una conexión abierta con tmux y se interrumpe, sólo tenemos que volver a conectar y escribir tmux attach para recuperar la sesión tal y como estaba.

tmux en Linux

Una vez abierta una sesión con tmux, pulsamos CTRL+B y luego % para dividir horizontalmente la terminal o CTRL+B y luego para dividir verticalmente la terminal. De la misma forma, se puede seguir dividiendo las terminales divididas.

Más detalles interesantes:

  • CTRL+B y ?: Se mueve a la terminal de la izquierda. Idem con el resto de cursores para otras direcciones: arriba, derecha o abajo.
  • CTRL+B y ALT+?: Amplia o reduce la terminal actual hacia la dirección indicada.
  • CTRL+B y CTRL+O: Rota las terminales de sitio.
  • CTRL+D: Cierra la terminal actual.

Si tmux no te agrada, puedes probar Oh My Tmux!, una configuración especial para hacerlo más bonito y cómodo, u otros gestores alternativos similares como byobu o dvtm.

3. micro: Editor de texto intuitivo

Uno de los puntos más traumáticos al comenzar a utilizar las terminales de Linux, son los editores de texto que más se utilizan. VIM es uno de los más versátiles y potentes, pero también uno de los más temidos.

Muchas veces, se comienza a utilizar nano, un editor mucho más sencillo que vim, pero también mucho más simple. Una alternativa a estos dos es micro, un editor de texto muy intuitivo que incluso conserva de serie las combinaciones de teclas habituales que usamos como CTRL+S para guardar, CTRL+Q para salir, CTRL+U deshacer, CTRL+C para copiar y CTRL+V para pegar.

Editor de texto Micro

Además, también lo podemos utilizar mediante pipes para enviar la salida de un comando directamente al editor, cambiar esquemas de colores, y muchos otros detalles interesantes.

Para instalarlo, solo tenemos que escribir lo siguiente:

curl https://getmic.ro | bash
sudo mv micro /usr/local/bin

Si quieres buscar algunas alternativas más, tienes el artículo editores de texto basados en terminal, donde encontrarás otros editores interesantes como mcedit, jed, setedit, fte u otros.

4. vnstat: Estadísticas de consumo de red

En muchos casos nos interesa saber cuanto ancho de banda hemos consumido en nuestro equipo (o el equipo que usamos como servidor) durante un periodo de tiempo específico. Vnstat es una excelente herramienta que nos muestra eso mismo: cuanto ancho de banda hemos consumido durante un tiempo determinado.

Vnstat: Estadísticas de ancho de banda

Podemos ver la transferencia de ancho de banda por horas, días, semanas, meses o incluso en vivo, entre otras opciones.

5. dtrx: Extractor automático de archivos comprimidos

Otro de los problemas habituales a la hora de tratar con archivos comprimidos es que, dependiendo del formato hay que utilizar una herramienta diferentes o unos parámetros específicos. Especial mención en el caso de tar, como bien nos cuenta el grandioso XKCD en 1168: Tar, aunque en las últimas versiones se ha intentado solventar en cierta forma.

Dtrx: Extractor de archivos comprimidos

La herramienta dtrx pretende solventar este problema, dándonos un sistema unificado para extraer cualquier tipo de archivo: tar, zip, cpio, deb, rpm, gem, 7z, cab, lzh, rar, gz, bz2, lzma, xz e incluso algunos archivos exe autoextraíbles.

Con el parámetro -l podemos listar y ver el contenido del archivo comprimido antes de extraerlo.

6. Exa: ls mejorado

Exa se define como un reemplazo moderno de ls. Se trata de un comando creado con Rust que hace un poco más sencilla la lectura de los listados de archivos en linux, visualizando con colores y añadiendo algunas funcionalidades extra como el estado git de una carpeta o ver carpetas en formato de árbol.

Exa: Reemplazo moderno de ls

Para la instalación automática, se requiere tener instalado Rust y su instalador cargo. En caso de no tenerlo, siempre se puede descargar el binario e instalarlo en nuestro sistema:

wget https://github.com/ogham/exa/releases/download/v0.8.0/exa-linux-x86_64-0.8.0.zip
unzip exa-linux-x86_64-0.8.0.zip
sudo mv exa-linux-x86_64 /usr/local/bin/exa

7. Googler / ddgr: Buscando desde terminal

Googler y ddgr son dos herramientas para realizar búsquedas en buscadores como Google o DuckDuckGo desde una terminal. Utilizando el parámetro -n X puedes especificar el número de resultados, si sólo quieres buscar algo concreto, o con -j abre el primer resultado en un navegador. También se puede navegar por los resultados de forma interactiva con las teclas n y p o devolver información en formato JSON con el parámetro --json.

Googler / ddgr: Google y DuckDuckGo

Googler viene en el repositorio de apt de Debian 9 Stretch, pero ddgr no lo está, por lo que si quieres instalarlo, sigue estos sencillos pasos:

wget https://github.com/jarun/ddgr/releases/download/v1.4/ddgr_1.4-1_debian9.amd64.deb
sudo dpkg -i ddgr_1.4-1_debian9.amd64.deb

8. htop: top mejorado

Un comando muy famoso y conocido es top en GNU/Linux. Se trata de un gestor de procesos de linux, que muestra el top de procesos que más recursos consumen (memoria, CPU, etc…). Htop es una conocida herramienta que mejora sustancialmente el clásico top de Linux, añadiendo una sintaxis de colores muy bien conseguida, y una serie de opciones y parámetros de personalización muy extensa.

Htop: Mejora del top de GNU/Linux

Entre sus opciones, se encuentra la posibilidad de realizar búsquedas o filtrar, mostrar un esquema de colores avanzado que da más información del consumo actual del sistema, ordenar por columnas específicas o colapsar los nombres de procesos repetidos, entre múltiples opciones más.

9. TIV: Terminal Image Viewer

En múltiples ocasiones, estamos conectados a través de una conexión SSH donde no tenemos un entorno gráfico o sólo tenemos acceso a una terminal de texto. Utilizando tiv (Terminal Image Viewer) podemos «ver» imágenes o gráficos desde la terminal sin necesidad de tener que descargarlos a otro equipo o arrancar un entorno gráfico. TIV interpreta la imagen especificada en una versión de baja resolución en modo texto, donde podemos hacernos una idea de que como es la imagen.

Terminal Image Viewer

También se puede establecer un *.jpg para que muestre una galería de las imágenes a visualizar. TIV incorpora algunas opciones o parámetros interesantes, como por ejemplo:

  • -256: Reduce el número de colores a 256. Útil en casos en los que los colores se muestran incorrectamente.
  • -w: Establece el ancho máximo de carácteres de la imagen.
  • -h: Establece el alto máximo de líneas de la imagen.

Si TerminalImageViewer (TIV) no nos convence, podemos intentarlo con timg o terminal-image, este último disponible en NodeJS.

10. Fuck: «Mierda, me he equivocado»

Por último, un gran comando con el que te será muy difícil seguir viviendo a partir de ahora: fuck. Este comando (un alias de thefuck), nos permite que cuando escribamos un comando en la terminal y tengamos una errata, simplemente, escribiendo fuck, intentará corregir el comando anterior a su versión sin errores.

The fuck: El comando de Linux para corregir tus equivocaciones

Al escribir fuck nos aparecerá una linea donde nos van dando las coincidencias más probables y podemos movernos arriba y abajo, o pulsar ENTER para enviar la sugerencia o CTRL+C para cancelarla.

De forma alternativa, tener en cuenta que si escribimos !! en una terminal, se vuelve a enviar el comando anterior. Muchas veces, al olvidarnos el sudo en un comando, es suficiente con escribir sudo !!.

Si conoces comandos interesantes, puedes dejarlos en los comentarios. Si por otra parte, te has quedado con ganas de más, puedes echar un vistazo a este artículo titulado La gran guía de supervivencia de la terminal de GNU/Linux donde encontrarás máscomandos similares.