Lista definitiva de comandos del shell de Linux poco habituales pero realmente útiles

Esta es una recopilación de comandos de shell de Linux menos conocidos, pero realmente útiles. Útiles en el sentido de: ahorrar tiempo, dar herramientas adicionales para hacer cosas que antes no podías, pero también entretenidos. Disfruta de la lectura, y haznos saber en los comentarios si hay herramientas adicionales que deberíamos añadir.

Las instrucciones de instalación serán para sistemas basados en Debian, han sido probadas en Raspberry Pi OS, en un Raspberry Pi 4 / 1 GB. YMMV en otros sistemas, pero simplemente tener un ir y probar estos comandos 🙂 .

¡Sudo!

Esto ejecutará el comando anterior con sudo prepuesto. Es muy útil si olvidaste añadir un comando con sudo:

apt-get update
¡¡¡sudo !!!

No es necesario instalarlo, si sudo está en su sistema, esto debería funcionar. Tenga en cuenta el espacio entre sudo y los signos de exclamación.

El comando sudo-preparado también se añadirá a su historial de bash, por lo que puede acceder convenientemente escribiendo la tecla de flecha "arriba" para repetirlo. (He demostrado esto en la animación de arriba. ¡Sudo! NO se añadirá a su historial)

tac (gato al revés)

Esta práctica instrucción está incorporada junto con su hermano más conocido, cat. Pásele un archivo para que invierta el orden de las líneas del mismo, imprimiendo primero la última línea:

tac /etc/magic

Este comando debería ser muy útil si estás mirando los archivos de registro, por ejemplo.

tldr - ¡manpages, simplificado!

para desarmar la bomba simplemente introduzca un comando válido de alquitrán en su primer intento. Tienes 10 segundos
xcdk 1168

Las páginas man son útiles, pero a veces son muy largas. ¿Te has encontrado buscando en Google en lugar de mirar la página de manual? ¿Simplemente porque quieres ejemplos de la vida real para el uso diario, en lugar de todas las campanas y silbatos que ofrece un comando? tldr ofrece "hojas de trucos colaborativos para comandos de consola"

TL;DR: tldr es la herramienta para obtener resúmenes rápidos de los comandos de Linux

También hay un Versión en PDF (tldr.sh) que incluye todas las páginas tldr disponibles actualmente

instalación de tldr

nota: Esto requerirá npm / node.js para ser instalado en su sistema Linux.

npm install -g tldr

usando tldr

simplemente escriba tldr seguido del comando que le interesa. En la primera ejecución, tldr actualizará su caché y creará un índice, que tardará un poco. Por ejemplo, para ver la página de tldr sobre gzip, ejecute

tldr gzip

contribuir y alternativas tldr

Si quieres contribuir a tldr, echa un vistazo a la página GitHub - tldr-pages/tldr: 📚 Hojas de trucos colaborativos para comandos de consolay sus directrices de contribución.

Hay algunas alternativas:

  • Trampa
  • Páginas para hermanos ("sólo ve al grano")
  • navi - le permite navegar a través de las hojas de trucos de forma interactiva y construir el comando que le gustaría ejecutar
  • cheat.sh - se puede utilizar sin instalar nada, utilizando curl

how2 - stackoverflow desde el terminal

tldr y los primos son realmente útiles si ya sabes el comando que vas a buscar. Pero, ¿qué puedes hacer si sólo sabes lo que tienes que hacer, pero aún no el cómo? Todos sabemos lo que pueden distraer los navegadores. La herramienta cómo2 le ayuda a obtener una respuesta rápida sin tener que abandonar la línea de comandos.

cómo2 instalación

Requiere que node.js y el gestor de paquetes npm estén instalados en tu sistema.

sudo npm install -g cómo-2

uso de how2

cómo2 montar una unidad NTFS en Raspbian

Si estás satisfecho con la respuesta, pulsa la tecla Enter para salir de how2; si no, pulsa la barra espaciadora para obtener más opciones. Utiliza las flechas del teclado para navegar y Esc para salir.

howdoi - obtener respuestas a preguntas de codificación desde la línea de comandos

En una línea similar, si está buscando respuestas a preguntas de codificación en la línea de comandos, sin tener que cambiar a un navegador, eche un vistazo a cómo lo hago:

cómo se instala

sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev python3-lxml python-lxml python-dev
sudo pip3 install howdoi

utilizando howdoi

howdoi howdoi
howdoi usar tensorflow en python
howdoi -c apagar el sistema con Python

El -c activará la salida coloreada. Por defecto howdoi buscará usando Google, pero también puedes elegir usar bing o duckduckgo.

autojump - una forma más rápida de navegar por el sistema de archivos

salto automático mantiene una base de datos de los directorios que más visita desde la línea de comandos, y le permite saltar al directorio dando sólo una parte de su nombre. No es necesario repetir cd ¡en su directorio de destino!

instalación de autojump

sudo apt-get update
sudo apt-get install autojump

Por razones de política, tendrás que añadir autojump manualmente a tu ~/.bashrc para los shells interactivos que no son de acceso, y a tu ~/.bash_profile para los shells de acceso:

nano ~/.bashrc

y añade la siguiente línea al final:

. /usr/share/autojump/autojump.sh

Nota: tendrá que volver a abrir la Terminal / reconectarse vía SSH para que esto se aplique.

utilizando el salto automático

autojump viene con un conveniente atajo, "j", que le ayuda a escribir menos. Para empezar a utilizar el autojump, tendrá que preconfigurar las rutas de los directorios. Navegue normalmente, por ejemplo

cd /etc/python

Después de construir esta caché de directorios que visitas (¡autojump llevará la cuenta de la frecuencia!), podrás saltar a ellos escribiendo parte del nombre, por ejemplo

j pyt

Herramientas similares a autojump

Hay un par de aplicaciones similares al autojump:

mtr - una combinación de ping y traceroute

mtr le mostrará el camino que toman sus paquetes de red a un host desde su Raspberry Pi. Esto es útil para el diagnóstico de la red, para analizar la latencia, por ejemplo. Pero también es simplemente interesante ver cómo funciona Internet, pasando sus paquetes de un host a otro 🙂 .

instalación de mtr

sudo apt-get update
sudo apt-get install mtr

Uso de mtr

mtr

mtr enviará paquetes con TTLs (tiempo de vida) bajos a propósito, continuando con su aumento, para analizar las rutas de la red. Un aumento repentino de la pérdida de paquetes o del tiempo de respuesta suele ser una indicación de un enlace malo (o simplemente sobrecargado).

bat: archivos de código cat con resaltado de sintaxis

Hay muchos clones de gatos: el murciélago es un clon de gato con alas. Tiene un par de características adicionales bajo sus alas, para convertirlo en un potente sustituto del gato:

  • resaltado de sintaxis para muchos lenguajes de programación y de marcado
  • integración con git para mostrar las modificaciones
  • mostrar opcionalmente los caracteres no imprimibles (utilizando el -A bandera)

Por defecto, bat también canalizará su propia salida a un localizador (por ejemplo menos) si la salida es demasiado grande para una pantalla.

instalación de murciélagos

El página de GitHub del murciélago da instrucciones de instalación para diferentes sistemas Linux (¡e incluso Windows!)

bat sólo está disponible actualmente en la versión "sid" (inestable) de Debian. Para instalarlo en Raspberry Pi OS, diríjase a https://github.com/sharkdp/bat/releasesy descargue el paquete apropiado. (si está ejecutando un sistema operativo Raspberry Pi de 32 bits, utilice el bat_*.armhf.deb, para 64 bits utilice bat_*_arm64.deb; si está configurando esto en un sistema x86 / AMD64, estos paquetes también están disponibles).

cd /tmp
wget https://github.com/sharkdp/bat/releases/download/v0.17.1/bat_0.17.1_armhf.deb
sudo apt-get install ./bat_0.17.1_armhf.deb

uso de los murciélagos

Simplemente utilice murciélago como si se usara gato:

bat ejemplo.py

El resaltado de sintaxis se determinará a partir de la primera línea de un archivo (idealmente un shebang como #!/bin/sh)

asciinema & svg-term-cli: crear películas SVG a partir de interacciones en el shell

Nota: esto es asciinema, no asciicinema 🙂 .

Puede utilizar Estudio OBS para capturar su pantalla y crear una película para YouTube, mostrando la cáscara. Pero - es un video, que tiene algunas desventajas:

  • tamaño
  • la resolución es fija

asciinema le permite capturarlas como flujos de texto, y publicarlas como un llamado asciicast. Puedes incrustarlos en tus páginas incluyendo un pequeño fragmento de JavaScript que ellos proporcionan. Consulte un ejemplo del asciicast que hemos grabado para esta entrada del blog.

Cuando se utiliza con svg-term-cli, le permite crear animaciones SVG. Estas películas son animaciones vectoriales, perfectamente adecuadas para las interacciones en el shell. Son más pequeñas que los archivos de vídeo y pueden ampliarse sin perder calidad. Además, no se requiere JavaScript. Sin embargo, cuando se incluyan muchas de estas ascidiciones, recomiendo utilizar las opciones de JavaScript - de lo contrario, el rendimiento de la página se verá afectado.

Instalación de asciinema

Aquí hay una enlace a las instrucciones de instalación de asciinemaEn este caso, vamos a echar un vistazo a los de Raspberry Pi OS (Debian):

sudo apt-get update
sudo apt-get install asciinema

Además, debe crear una cuenta en asciinema.org - sólo necesitas tu dirección de correo electrónico, y vincular tu cuenta con la instalación de asciinema en tu Raspberry Pi, ejecutando:

asciinema auth

Esto generará una URL para ti - visitando la URL, mientras estás conectado, vincularás la instalación local de asciinema a tu cuenta de asciinema.org. Esto te permitirá gestionar las grabaciones (establecer títulos, editar descripciones, establecerlas como públicas), y evitar que las grabaciones se archiven automáticamente después de 7 días.

Instalación de svg-term-cli

Nota: esto requiere node.js y el gestor de paquetes npm para que funcione. Esto sólo es necesario si quieres crear archivos .SVG animados a partir de tus ascicistas.

sudo npm install -g svg-term-cli

Uso del asciinema

Para empezar a grabar, escribe:

asciinema rec

Esto generará una nueva instancia de shell, y comenzará a grabar las interacciones de la terminal. Para finalizar la grabación, pulse Ctrl + D o escriba salir

asciinema le preguntará ahora si quiere subir su grabación a asciinema.org (pulsando Entre en), o para guardarlo localmente (pulsando Ctrl + C). En este último caso, un .cast se creará en el directorio temporal:

asciinema: grabación terminada
asciinema: pulse para subir a asciinema.org, para guardar localmente
asciinema: asciicast guardado en /tmp/tmp21kux252-ascii.cast

También puede especificar el archivo de salida a utilizar:

asciinema rec /tmp/ejemplo.cast

Sugerencia: ajuste la escala de su ventana de terminal a la resolución de columnas y filas que desee tener en la animación antes de iniciar la grabación; las opciones -width y -height de svg-term-cli simplemente recortarán la salida

Para subir el archivo a asciinema, ahora puedes ejecutar

asciinema upload /tmp/ejemplo.cast

Ver esta página para obtener instrucciones más detalladas sobre el uso de asciinema.

Convertir un archivo asciinema .cast en un archivo .svg con svg-term-cli

Una opción (y la recomendada por razones de rendimiento) es alojar sus archivos .cast en asciinema.org - que es bien documentado en su página. Aquí exploraremos la opción de convertir la grabación en un archivo .svg animado.

svg-term --in /tmp/tmp21kux252-ascii.cast --out /tmp/example.svg

Nota: WordPress desactiva la carga de SVG por defecto por razones de seguridad. Hay plugins para permitir la carga de SVG de forma segura.

exa: un sustituto moderno de ls

Mientras que ls se puede hacer para mostrar los colores, exa utiliza los colores de una manera realmente optimizada, y le apoya con información adicional.

Por ejemplo, se ha incorporado una vista de árbol que muestra la información de los archivos junto con la jerarquía. exa también conoce los diferentes tipos de archivos y los muestra en diferentes colores. Además, cuenta con soporte Git integrado para ver el estado de preparación/no preparación en la vista estándar.

instalación de exa

sudo apt-get update
sudo apt-get install exa

utilizando exa

exa

exa funciona de forma similar a ls. utilice las banderas -l para mostrar una lista con detalles sobre sus archivos y directorios, -T para mostrar una vista de árbol que incluya los subdirectorios, y -Tl para mostrar una vista combinada de árbol y detalle. Consulte el documentación exa para más información.

shuf: aleatorizar las líneas de un archivo

Digamos que quieres crear una lista aleatoria (de usuarios, actividades, ¡elige lo que quieras!) barajando las entradas de un archivo. Pues estás de suerte con esta herramienta (que ya debería estar preinstalada):

shuf ejemplo.txt

aparejo: crear identidades falsas

A veces una página te obliga a registrarte con tu identidad. Estas páginas son astutas: comprueban que tu ciudad coincide con tu código postal, por ejemplo. rig te permite gestionar este reto proporcionándote un número ilimitado de identidades falsas bajo demanda (US), que deberían ser algo correctas geográficamente. rig en sí mismo se basa en la aplicación MSDOS, apropiadamente llamada "falsa".

Instalación de la plataforma

sudo apt-get update
sudo apt-get install rig

Uso de la plataforma

rig

browsh - un moderno navegador basado en texto

Todos conocemos linceque permite abrir cualquier página web (por ejemplo, Wikipedia) desde la línea de comandos. lynx, a partir de 2020 es el navegador web más antiguo que aún se mantiene, habiendo comenzado en 1992.

Sin embargo, ¿qué pasa con esos momentos en los que lynx no es suficiente? ¿Cuando quieres reproducir vídeos de YouTube, acceder a páginas web que utilizan JavaScript para representar el contenido, etc.?

Estás de suerte. browsh, un elemento destacado de esta colección de herramientas de línea de comandos inusuales, es un navegador basado en texto totalmente moderno. Utiliza Firefox en el backend para renderizar su página en modo headless.

Nota: se recomienda una Pi 4 para ejecutar esta aplicación en particular, y aún así parecerá bastante lenta - ¡le estás pidiendo a la Pi que realice un serio trabajo pesado con esto! Pero es divertido y será útil para los usuarios con sistemas más potentes, estoy seguro.

instalación de navegadores

Diríjase al descargas de navegadores y obtenga el paquete apropiado. Por ejemplo, para Debian ARMv7:

cd /tmp
wget https://github.com/browsh-org/browsh/releases/download/v1.6.4/browsh_1.6.4_linux_armv7.deb
sudo apt-get install ./browsh_1.6.4_linux_armv7.deb

Esto también hará que se abra automáticamente Firefox, si aún no lo tienes.

utilizando el navegador

https://google.com

y prepárate para espere bastante.

browsh ha buena documentación. aquí hay un par de pistas:

  • Utilice Ctrl+q para salir de la navegación
  • teclas de flecha para desplazarse
  • retroceder para ir hacia atrás en la historia
  • ctrl + l enfoca la barra de URLs

browsh incluso admite la navegación por pestañas. También soporta una interesante tecnología llamada mosh lo que permite una mayor rapidez en la predicción de las cáscaras a través de enlaces con retardo.

nohup: mantener una aplicación en funcionamiento después de salir de la sesión SSH

Recuerdo esto como "no hangup". Normalmente, cuando se abandona una sesión SSH, la aplicación que se ha estado ejecutando en la sesión recibe un SIGHUP señal. Lo que suele llevar a que la aplicación termine.

En algunos casos preferirías no tenerlo - por ejemplo, si estás convirtiendo un vídeo, o ejecutando un servidor de algún tipo, o cualquier otro proceso por lotes.

anteponiendo a la orden nohup permitirá que continúe ejecutándose, incluso cuando el shell se cierre, o SSH se desconecte. Yo suelo combinar esto con un ampersand (&), para iniciar el comando en segundo plano:

nohup ./myscript.sh &

lolcat: colorea tu salida del shell. Es decir, ¡coloréala de verdad!

¿Sientes a veces que al mundo, y en particular a la concha, le falta color? No te preocupes más: lolcat al rescate.

instalación de lolcat

sudo apt-get update
sudo apt-get install lolcat

usando lolcat

lolcat se puede utilizar como cat, para dar salida a los archivos en su shell:

lolcat /etc/magic

También - como cat - puede leer de stdin, y tener entrada en él, para traer un poco más de color a su vida:

man lolcat | lolcat
sudo apt-get update | lolcat

cal: calendario integrado

Linux viene con pequeñas sorpresas, como un calendario incorporado.

cal

Si quiere ver también el mes anterior y el siguiente al actual, escriba

cal -3

Deja un comentario