Elenco definitivo di comandi insoliti ma davvero utili della shell di Linux
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“!
[...] se non avete ancora imparato a usare i comandi del terminale Linux, allora costruire un cyberdeck come questo vi ispirerà sicuramente [...]