Chi lavora frequentemente con bash, o più in generale con le shell Unix-like, potrebbe domandarsi quali sono i comandi che usa maggiormente per svolgere la propria attività. Utilizzano i tool standard che troviamo dentro bash è possibile farci elencare i comandi digitati maggiormente sul nostro sistema. Questa operazione può essere utile per conoscere meglio le nostre esigenze o per migliorare il nostro lavoro.
Per farci comunicare da bash i 10 comandi più usati ricorreremo a diverse utility ovvero: history, che elenca la cronologia di tutti i comandi che vengono digitati nel terminale, awk che si occupa della vera e propria estrazione dei dati, sort che ordina i dati all'interno di un documento cosi da poterli visualizzare in modo semplice per l'utente, head che si occupa di leggere solo le prime righe di un documento, e uniq che mette in relazione/filtra le righe di testo ricorrenti.
Adesso vediamo la sintassi corretta per visualizzare i 10 comandi che utilizziamo maggiormente sul nostro sistema:
history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10
Come è possibile notare, per prima cosa invochiamo history che raccoglie la cronologia dei comandi, poi tramite awk estraiamo il contenuto e lo stampiamo a video, successivamente tramite sort viene ordinato in una lista tramite l'opzione "-rn", ovvero ordina numericamente e inverti il senso di ordinamento sistemando i risultati a partire dal valore maggiore. Infine con head indichiamo a bash di elencarci unicamente le prime 10 righe del documento.
Ecco un risultato d'esempio:
296 sudo
46 ssh
38 cd
17 wget
14 htop
10 ffmpeg
8 adb
7 ping
7 blkid
6 history
Via OMG!Ubuntu!