Laatst waren een mede Linux gebruiker en ik aan het discussiëren over Linux opdrachten.
Hij vroeg me welke Linux opdracht ik het meest gebruik.
Ik vertelde hem dat één van mijn meest gebruikte opdrachten sudo
is.
Ik gebruik het elke dag om pakketten te installeren, op te waarderen, te verwijderen en andere administratieve taken op mijn Linux systemen.
Ik denk dat sudo
de meest gebruikte opdracht is van veel Linux gebruikers.
Als je je ooit afgevraagd hebt wat je meest gebruikte opdrachten in Linux zijn, hier is hoe je ze kan vinden.
Zoals je weet, houdt het history bestand (~/.bash_history) een lijst bij van alle opdrachten die je in de Terminal uitvoert. Je kunt gemakkelijk achterhalen welke opdrachten je het meest gebruikt door dit bestand te raadplegen.
Je kunt de top 5 meest gebruikte opdrachten op jouw Linux systeem weergeven met:
dany@pindabook:~> history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
29 sudo
18 echo
11 exit
10 cat
9 ls
Laten we de bovenstaande opdracht opsplitsen en kijken wat elke optie doet.
awk '{print $2}'
opdracht drukt de eerste kolom uit het geschiedenisbestand af zonder de opdracht-opties en argumenten te tonen.sort
opdracht ordent alle regels alfabetisch.uniq -c
opdracht verwijdert de dubbele regels (getypte opdrachten) en telt ze.sort -nr
geeft de opdrachten in omgekeerde volgorde weer, volgens het aantal dat de opdracht uniq
oplevert.Zoals je kan zien, is sudo
de meest gebruikte opdracht en ik heb het 29 keer gebruikt.
En ls
is de minst gebruikte opdracht.
We hebben het resultaat in aflopende volgorde (omgekeerd) gesorteerd, d.w.z. van grootste naar kleinste. Om de meest gebruikte opdrachten in oplopende volgorde weer te geven (van klein naar groot), gebruik je:
dany@pindabook:~> history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5
9 ls
10 cat
11 exit
18 echo
29 sudo
Nog een andere versie van dezelfde opdracht laat extra details zien:
dany@pindabook:~> 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 29 17.3653% sudo
2 18 10.7784% echo
3 11 6.58683% exit
4 10 5.98802% cat
5 9 5.38922% ls
Als je het aantal resultaten niet wilt beperken, verwijder je gewoon het laatste (head of tail) deel van de bovenstaande opdrachten:
dany@pindabook:~> history | awk '{print $2}' | sort | uniq -c | sort -nr
29 sudo
18 echo
11 exit
10 cat
9 ls
8 rm
7 find
6 scrot
6 ln
5 wget
5 vidir
5 killall
5 history
5 EDITOR=nano
4 java
4 ifdata
3 ps
3 ping
3 GDK_SCALE=2
2 /usr/lib64/jvm/java-17-openjdk-17/bin/java
2 sort
2 combine
1 zypper
1 touch
1 su
1 shortwave
1 sh
1 man
1 kill
1 ip
1 GDK_SCALE=1.5
1 GDK_DPI_SCALE=1
1 GDK_DPI_SCALE=0.5
1 du
1 df
1 chronic
1 cd
1 blanket
Opgelet: deze opdrachten werken enkel correct in een Bash shell (terminal).