L'altro giorno io e un altro utente Linux stavamo discutendo dei comandi Linux. Mi ha chiesto quale comando Linux uso di più. Gli ho detto che uno dei miei comandi più usati è sudo
. Lo uso ogni giorno per installare, aggiornare, rimuovere pacchetti e altre attività amministrative sulla mia macchina Linux. Immagino "sudo"
è il comando più utilizzato da molti utenti Linux. Se ti sei mai chiesto quali sono i tuoi comandi più utilizzati su Linux, ecco come trovarli.
Trova i comandi più utilizzati su Linux
Come sai, il file della cronologia (~/.bash_history
) tiene un registro di tutti i comandi eseguiti nel Terminale. Puoi facilmente trovare quali comandi usi di più facendo riferimento a questo file.
Lascia che ti mostri i primi 5 comandi più usati sul mio box Linux:
$ history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
Risultato di esempio:
153 sudo 118 pngquant 33 cd 30 ssh 29 exit
Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.
- Il
"awk '{print $2}'"
comando stampa la prima stringa dal file di cronologia senza mostrare le opzioni e gli argomenti del comando. - Il
"sort"
il comando ordina tutte le righe in ordine alfabetico. - Il
"uniq -c"
comando rimuove le righe duplicate (comandi digitati) e le conta. - E l'ultimo
"sort -nr"
command visualizza i comandi in ordine inverso in base al numero di conteggio restituito da"uniq"
comando.
Avviso: Puoi utilizzare ExplainShell per scoprire cosa fa ogni parte di un comando.
Come puoi vedere, "sudo"
è il comando più utilizzato e l'ho usato 153 volte. E "exit
" è il comando meno utilizzato.
Ho ordinato il risultato in ordine decrescente (inverso), ovvero dal più grande al più piccolo. Per visualizzare il primo comando più utilizzato in ordine crescente (dal più piccolo al più grande), usa invece questo comando:
$ history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5
Risultato di esempio:
29 exit 30 ssh 33 cd 118 pngquant 153 sudo
Ecco l'altra versione dello stesso comando che mostra piccoli dettagli extra:
$ history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | \grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n5 1 177 17.7177% pngquant 2 173 17.3173% vagrant 3 101 10.1101% cd 4 71 7.10711% sudo 5 47 4.7047% ffmpeg
Se non vuoi limitare il numero di risultati, rimuovi semplicemente l'ultimo (head
o tail
) parte dei comandi precedenti:
$ history | awk '{print $2}' | sort | uniq -c | sort -nr
I suddetti comandi sono specifici di Bash. Se sei su Pesce shell, esegui:
$ history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -5
Ora, è il tuo momento. Vai e scopri i tuoi comandi più utilizzati più di frequente sulla tua macchina Linux.