54 votes

Comment voir quelles sont les commandes linux les plus utilisées ?

J'aimerais savoir quelle est la commande que j'utilise le plus sur la ligne de commande. J'aimerais le savoir afin d'améliorer mon utilisation de la ligne de commande. Si je sais quelle commande j'utilise le plus, je peux alors lire davantage à son sujet et essayer de trouver de meilleures façons de l'utiliser.

Je sais que l'historique conserve une liste de toutes les commandes précédentes que j'ai tapées. Comment faire pour obtenir une liste des 10 ou 20 commandes les plus utilisées ?

72voto

nelaaro Points 11661

Je viens de voir ce post sur http://linux.byexamples.com/

En fait, vous utilisez une simple ligne awk script.

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 -n10

Une explication complète est disponible sur le lien ci-dessus.

Voici un exemple de sortie sur ma machine :

 1  211  21.1%  ls
 2  189  18.9%  sudo
 3  58   5.8%   man
 4  52   5.2%   cd
 5  43   4.3%   ping
 6  40   4%     apropos
 7  34   3.4%   less
 8  22   2.2%   cat
 9  18   1.8%   which
10  18   1.8%   aspell

20voto

verveguy Points 931
awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n

La commande awk affichera la première chaîne de ~/.bash_history (sans montrer les options ou les arguments de la commande), puis sort ordonnera toutes les lignes par ordre alphabétique, puis "uniq -c" supprimera les lignes dupliquées (les commandes que vous avez tapées) et les comptera, et enfin sort ordonnera vos commandes en fonction du nombre de comptages retournés par uniq.

11voto

Prashere Points 211

Vous pouvez utiliser le hash dans votre terminal, qui conserve une entrée de hachage de chaque commande que vous utilisez avec le nombre d'occurrences et, sur la base des occurrences, vous pouvez les trier et les traiter.

Vérifier 本論文 pour plus d'informations.

8voto

mpez0 Points 2721

Pour une réponse plus générale, activer " comptabilité des processus "sur votre système. Vous pouvez obtenir non seulement la fréquence d'utilisation, mais aussi des statistiques globales sur le processeur, la mémoire et les entrées/sorties.

6voto

Grant BlahaErath Points 1763

Les scripts des autres réponses ne comptent que la première commande exécutée dans chaque ligne de commande ; ils n'incluent pas les commandes exécutées après des pipes (c'est-à-dire ' | '). Par exemple, si cette ligne se trouvait dans votre historique bash :

awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n

alors dans le résumé des commandes les plus exécutées, 'sort' et 'uniq' et le second 'sort' ne seraient pas inclus, car ils n'étaient pas le premier élément de la ligne.

En se basant sur la réponse de nelaar, il suffit d'abord de diviser les lignes de votre historique bash sur chaque pipe :

sed 's/|/\n/g' ~/.bash_history | awk '{CMD[$1]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl |  head -n10

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X