Elenco definitivo di comandi insoliti ma davvero utili della shell di Linux

L'elenco definitivo dei comandi Linux Titolo immagine

Questa è una compilation di comandi di shell Linux meno conosciuti - ma davvero utili. Utile nel senso di: risparmio di tempo, dandovi strumenti aggiuntivi per fare cose che non potevate fare prima, ma anche divertente. Godetevi la lettura, e fateci sapere nei commenti se ci sono altri strumenti che dovremmo aggiungere!

Le istruzioni di installazione saranno per sistemi basati su Debian, sono state testate su Raspberry Pi OS, su un Raspberry Pi 4 / 1 GB. YMMV su altri sistemi, ma basta fare un giro e provare questi comandi 🙂

sudo !!!

Questo eseguirà il comando precedente con sudo aggiunto. Davvero utile se avete dimenticato di aggiungere un comando con sudo:

apt-get update
sudo !!

Non c'è bisogno di installarlo, se sudo è sul vostro sistema, questo dovrebbe funzionare. Notate lo spazio tra sudo e i punti esclamativi.

Il comando sudo-preparato sarà anche aggiunto alla vostra cronologia di bash, in modo da potervi accedere comodamente digitando il tasto freccia "su" per ripeterlo. (L'ho dimostrato nell'animazione qui sopra. sudo !!! stesso NON sarà aggiunto alla tua cronologia)

tac (gatto al contrario)

Questa comoda istruzione è incorporata insieme al suo fratello più noto, cat. Passategli un file per fargli invertire l'ordine delle linee nel file, stampando prima l'ultima linea:

tac /etc/magic

Questo comando dovrebbe essere molto utile se state guardando i file di log, per esempio.

tldr - manpages, semplificato!

Le pagine man sono utili, ma a volte piuttosto lunghe. Vi siete trovati a cercare su Google invece di guardare la manpage? Semplicemente perché volete esempi di vita reale per l'uso quotidiano, invece di tutte le campane e i fischietti che un comando ha da offrire? tldr offre "cheatsheets collaborativi per comandi da console".

TL;DR: tldr è lo strumento da ottenere per un rapido riassunto dei comandi di Linux

C'è anche un Versione PDF (tldr.sh) che include tutte le pagine tldr attualmente disponibili

installazione di tldr

nota: Questo richiede che npm / node.js sia installato sul tuo sistema Linux.

npm install -g tldr

usando tldr

semplicemente digitare tldr seguito dal comando che ti interessa. Alla prima esecuzione, tldr aggiornerà la sua cache e creerà un indice, il che richiederà un po' di tempo. Per esempio, per vedere la pagina di tldr su gzip, esegui:

tldr gzip

contributo e alternative tldr

Se vuoi contribuire a tldr, dai un'occhiata al GitHub - tldr-pages/tldr: 📚 Cheatsheets collaborativi per comandi da console, e le loro linee guida per il contributo.

Ci sono alcune alternative:

  • Imbrogliare
  • Pagine Bro ("basta arrivare al punto")
  • navi - permette di sfogliare i cheatsheets in modo interattivo e costruire il comando che si desidera eseguire
  • cheat.sh - può essere usato senza installare nulla, usando curl

how2 - stackoverflow dal terminale

tldr e cugini sono davvero utili se si conosce già il comando che si sta cercando. Ma cosa si può fare se si sa solo quello che si deve fare, ma non ancora come? Sappiamo tutti quanto i browser possano distrarre. Lo strumento come2 vi aiuta a ottenere una risposta rapida senza mai lasciare la linea di comando.

installazione how2

Richiede che node.js e il gestore di pacchetti npm siano installati sul tuo sistema.

sudo npm install -g how-2

uso di how2

how2 mount an NTFS drive in Raspbian

Se sei soddisfatto della risposta, premi il tasto Enter per uscire da how2 - altrimenti premi lo spazio per avere altre scelte. Usa i tasti freccia della tua tastiera per navigare, ed Esc per uscire.

howdoi - ottenere risposte a domande di codifica dalla riga di comando

In una vena simile, se stai cercando risposte a domande di codifica sulla linea di comando, senza dover passare a un browser, controlla come faccio a:

come si installa

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

usando howdoi

howdoi howdoi
howdoi use tensorflow in python
howdoi -c shut down the system with Python

Il -c abiliterà l'output colorato. Per impostazione predefinita howdoi cercherà con Google, ma si può anche scegliere di usare bing o duckduckgo.

autojump - un modo più veloce per navigare nel vostro filesystem

autojump mantiene un database delle directory che visitate di più dalla riga di comando, e vi permette di saltare alla directory dando solo una parte del suo nome. Non c'è bisogno di ripetere cd nella tua directory di destinazione!

installazione autojump

sudo apt-get update
sudo apt-get install autojump

Per ragioni di policy, avrete bisogno di aggiungere manualmente autojump al vostro ~/.bashrc per le shell interattive non di login, e al vostro ~/.bash_profile per le shell di login:

nano ~/.bashrc

e aggiungere la seguente linea in fondo:

. /usr/share/autojump/autojump.sh

Nota: dovrai riaprire il Terminale / riconnetterti via SSH perché questo venga applicato.

usando autojump

autojump è dotato di una comoda scorciatoia, "j", che aiuta a digitare meno. Per iniziare con autojump, è necessario preimpostare i percorsi delle directory. Naviga normalmente, ad esempio

cd /etc/python

Dopo aver costruito questa cache delle directory che visitate (autojump terrà traccia della frequenza!), sarete in grado di saltare ad esse digitando parte del nome, ad esempio:

j pyt

Strumenti simili a autojump

Ci sono un paio di applicazioni simili ad autojump:

mtr - una combinazione di ping e traceroute

mtr vi mostrerà il percorso dei vostri pacchetti di rete verso un host dal vostro Raspberry Pi. Questo è utile per la diagnostica di rete, per analizzare la latenza per esempio. Ma è anche semplicemente interessante vedere come funziona Internet, passando i tuoi pacchetti da un host all'altro 🙂

installazione di mtr

sudo apt-get update
sudo apt-get install mtr

Uso di mtr

mtr

mtr invierà pacchetti con TTL (time to live) volutamente bassi, continuando ad aumentarli, per analizzare i percorsi di rete. Un aumento improvviso della perdita di pacchetti o del tempo di risposta è spesso un'indicazione di un cattivo (o semplicemente sovraccarico) collegamento.

bat: cattura i file di codice con evidenziazione della sintassi

Ci sono molti cloni di gatti: il pipistrello è un clone di gatto con le ali. Ha un paio di caratteristiche aggiuntive sotto le sue ali, per renderlo un potente sostituto del gatto:

  • evidenziazione della sintassi per molti linguaggi di programmazione e markup
  • integrazione con git per mostrare le modifiche
  • mostra opzionalmente i caratteri non stampabili (usando l'opzione -A bandiera)

Per impostazione predefinita, bat esegue anche il pipe del proprio output su un pager (ad esempio meno) se l'output è troppo grande per uno schermo.

installazione del pipistrello

Il bat pagina GitHub fornisce istruzioni di installazione per diversi sistemi Linux (e anche Windows!)

bat è attualmente disponibile solo nella versione "sid" (instabile) di Debian. Per installarlo su Raspberry Pi OS, andate su https://github.com/sharkdp/bat/releasese scaricare il pacchetto appropriato. (se stai usando un sistema operativo Raspberry Pi a 32 bit, usa bat_*.armhf.deb, per 64 bit usa bat_*_arm64.deb; se lo stai impostando su un sistema x86 / AMD64, sono disponibili anche questi pacchetti).

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 del pipistrello

Basta usare bat come si userebbe cat:

bat example.py

L'evidenziazione della sintassi sarà determinata dalla prima linea di un file (idealmente uno shebang come #!/bin/sh)

asciinema & svg-term-cli: creare filmati SVG dalle interazioni della shell

Nota: questo è asciinema, non asciicinema 🙂

Si potrebbe usare Studio OBS per catturare lo schermo e creare un filmato per YouTube, mostrando il guscio. Ma - è un video, che ha alcuni svantaggi:

  • dimensione
  • la risoluzione è fissa

asciinema permette di catturare questi flussi di testo e pubblicarli come un cosiddetto asciicast. Potete incorporarli nelle vostre pagine includendo un piccolo snippet JavaScript che forniscono. Guardate un esempio di asciicast che abbiamo registrato per questo post sul blog.

Se usato con svg-term-clipermette di creare animazioni SVG! Questi filmati sono animazioni vettoriali, perfettamente adatti alle interazioni nella shell. Sono più piccoli dei file video e possono essere ingranditi senza perdita di qualità. Inoltre, non è richiesto alcun JavaScript. Quando si includono molti di questi asciicast, tuttavia, raccomando di andare con le opzioni JavaScript - altrimenti le prestazioni della pagina ne soffriranno.

Installazione di asciinema

Qui c'è un link alle istruzioni di installazione per asciinema, daremo un'occhiata a quelli per Raspberry Pi OS (Debian):

sudo apt-get update
sudo apt-get install asciinema

Inoltre, si dovrebbe crea un account su asciinema.org - hai solo bisogno del tuo indirizzo e-mail, e collegare il tuo account con l'installazione di asciinema sul tuo Raspberry Pi, eseguendo:

asciinema auth

Questo genererà un URL per te - visitando l'URL, mentre sei connesso, collegherai l'installazione asciinema locale al tuo account asciinema.org. Questo ti permetterà di gestire le registrazioni (impostare i titoli, modificare le descrizioni, renderle pubbliche), ed evitare che le registrazioni vengano automaticamente archiviate dopo 7 giorni.

Installazione di svg-term-cli

Nota: questo richiede node.js e il gestore di pacchetti npm per funzionare. Questo è necessario solo se vuoi creare file .SVG animati dai tuoi asciicast.

sudo npm install -g svg-term-cli

Uso di asciinema

Per avviare la registrazione, digitate:

asciinema rec

Questo genererà una nuova istanza di shell e inizierà a registrare le interazioni del terminale. Per finire la registrazione, premete Ctrl + D o tipo uscire

asciinema ti chiederà ora se vuoi caricare la tua registrazione su asciinema.org (premendo Inserire), o per salvarlo localmente (premendo Ctrl + C). In quest'ultimo caso, un .cast sarà creato nella directory temporanea:

asciinema: registrazione finita
asciinema: premere per caricare su asciinema.org, per salvare localmente
asciinema: asciicast salvato in /tmp/tmp21kux252-ascii.cast

Potete anche specificare il file di output da utilizzare:

asciinema rec /tmp/example.cast

Suggerimento: ridimensiona la tua finestra di terminale alla risoluzione di colonna e riga che vorresti avere nell'animazione prima di iniziare la registrazione; le opzioni -width e -height di svg-term-cli semplicemente ritaglieranno l'output

Per caricare il file su asciinema, puoi ora eseguire:

asciinema upload /tmp/example.cast

Vedere questa pagina per istruzioni più elaborate sull'uso di asciinema.

Convertire file .cast di asciinema in file .svg usando svg-term-cli

Un'opzione (e quella raccomandata per ragioni di performance) è quella di ospitare i tuoi file .cast su asciinema.org - che è ben documentato sulla loro pagina. Qui esploreremo l'opzione per convertire la registrazione in un file .svg animato.

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

Nota: WordPress disabilita il caricamento di SVG di default per motivi di sicurezza. Ci sono plugin per permettere l'upload di SVG in modo sicuro.

exa: un sostituto moderno di ls

Mentre ls può essere fatto per visualizzare i colori, exa usa i colori in un modo davvero ottimizzato, e vi supporta con informazioni aggiuntive.

Per esempio, una vista ad albero è integrata - mostrandovi le informazioni dei vostri file accanto alla gerarchia. exa conosce anche i diversi tipi di file, e li mostrerà con colori diversi. Inoltre, ha un supporto Git incorporato per visualizzare lo stato staged / unstaged nella vista standard.

installazione di exa

sudo apt-get update
sudo apt-get install exa

usando exa

exa

exa funziona in modo simile a ls. usa i flag -l per visualizzare una lista con i dettagli dei tuoi file e delle tue directory, -T per visualizzare una vista ad albero che include le sottodirectory, e -Tl per visualizzare una vista combinata albero/dettagli. Fare riferimento al documentazione exa per ulteriori informazioni.

shuf: randomizza le linee in un file

Diciamo che volete creare una lista casuale (di utenti, attività, scegliete voi!) mescolando le voci in un file. Bene, siete fortunati con questo strumento (che dovrebbe essere già preinstallato):

shuf example.txt

rig: creare identità false

A volte una pagina ti costringe ad iscriverti con la tua identità. Queste pagine sono intelligenti: controllano che la vostra città corrisponda al vostro codice postale, per esempio. rig vi permette di gestire questa sfida fornendovi illimitate identità false su richiesta (USA), che dovrebbero essere in qualche modo corrette geograficamente. rig in sé è basato sull'applicazione MSDOS opportunamente chiamata "fake".

Installazione dell'impianto

sudo apt-get update
sudo apt-get install rig

Uso della piattaforma

rig

browsh - un moderno browser basato sul testo

Tutti conosciamo linceche permette di aprire qualsiasi pagina web (per esempio Wikipedia) dalla riga di comando. lynx, dal 2020 è il più vecchio browser web ancora mantenuto, essendo iniziato nel 1992.

Ma che dire di quelle volte in cui lynx non è sufficiente? Quando vuoi riprodurre video di YouTube, accedere a pagine web usando JavaScript per rendere il contenuto, ecc?

Siete fortunati. browsh, un punto di forza particolare di questa collezione di insoliti strumenti a riga di comando, è un browser completamente moderno basato sul testo. Utilizza Firefox nel backend per rendere la vostra pagina in modalità senza testa.

Nota: un Pi 4 è raccomandato per eseguire questa particolare applicazione, e sembrerà ancora piuttosto lenta - state chiedendo al Pi di eseguire un lavoro pesante con questo! Ma è divertente e sarà utile agli utenti con sistemi più potenti, ne sono sicuro.

installare browsh

Andate sul sito download di browsh e ottenere il pacchetto appropriato. Per esempio per 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

Questo tirerà anche automaticamente in Firefox, se non lo avete ancora.

usando browsh

browsh https://google.com

e prepararsi a attendere un bel po'.

browsh ha buona documentazione. ecco un paio di suggerimenti:

  • Usa Ctrl+q per uscire da browsh
  • tasti freccia per scorrere
  • backspace per tornare indietro nella storia
  • ctrl + l mette a fuoco la barra dell'URL

browsh supporta anche la navigazione a schede! Inoltre supporta una tecnologia interessante chiamata mosh che permette di avere gusci più veloci e predittivi su collegamenti laggosi.

nohup: mantenere un'applicazione in esecuzione dopo aver lasciato la sessione SSH

Ricordo questo come "nessun riaggancio". Di solito, quando si lascia una sessione SSH, l'applicazione che era in esecuzione nella sessione riceve un SIGHUP segnale. Il che di solito porta alla terminazione dell'applicazione.

In alcuni casi preferiresti non averlo - per esempio, se stai convertendo un video, o eseguendo un server di qualche tipo, o qualsiasi altro processo batch.

anteponendo il comando a nohup gli permetterà di continuare a funzionare anche quando la shell è chiusa o SSH è disconnesso. Di solito combino questo con un'ampolla (&), per avviare il comando in background:

nohup ./myscript.sh &

lolcat: colorate l'output della vostra shell. Voglio dire, coloratelo davvero!

A volte avete la sensazione che il mondo, e in particolare il guscio, manchi di colore? Non preoccupatevi più - lolcat in soccorso.

installare lolcat

sudo apt-get update
sudo apt-get install lolcat

usando lolcat

lolcat può essere usato come cat, per emettere file sulla vostra shell:

lolcat /etc/magic

Inoltre - come cat - può leggere da stdin, e avere input convogliati in esso, per portare un po' più di colore nella vostra vita:

man lolcat | lolcat
sudo apt-get update | lolcat

cal: calendario integrato

Linux è dotato di piccole sorprese, come un calendario integrato.

cal

Se volete vedere anche il mese precedente e successivo al mese corrente, digitate

cal -3

Conclusione

Ecco a voi, gente! L'elenco definitivo di tutti i comandi Linux di cui non sapevate di aver bisogno!

Cercate altri suggerimenti per la programmazione? Date un'occhiata al nostro articolo "9 Trucchi con la REPL di Python“!

1 commento

  1. [...] se non avete ancora imparato a usare i comandi del terminale Linux, allora costruire un cyberdeck come questo vi ispirerà sicuramente [...]

Lascia un commento