Sous UNIX, comment trouver les commandes les plus utilisées dans l'histoire?
utilities
command-history
command
swetha
la source
la source
Réponses:
Cela dépend plutôt de ce que vous entendez par «commande». D'un point de vue, une commande est simplement un exécutable appelé à partir de la ligne de commande,
ls
etls -alh /tmp/foo/bar/*tar.bz
sont donc toutes les deux la commandels
. Une autre perspective est qu'une commande est la somme de ses parties, ce qui signifie que l'exemple ci-dessus est composé de 2 commandes distinctes.Si votre intention est de compter des commandes entièrement uniques dans l'historique, vous pouvez exécuter:
history | cut -d' ' -f4- | uniq -c | sort -n
Veuillez noter que ceci a été testé sur un système Debian, la syntaxe de sortie de votre commande d'historique peut varier légèrement. Ajustez le nombre «4» dans la commande pour sélectionner d'autres colonnes.
Si vous souhaitez considérer uniquement la première commande sans arguments, vous pouvez exécuter:
history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n
Pour inclure les arguments mais pas les commandes chaînées ou redirigées qui suivent, vous pouvez exécuter:
history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n
Veuillez noter que chacun de ces types trie le nombre de commandes numériquement avec la fréquence la plus élevée apparaissant en dernier.
la source
sort
avantuniq
pour obtenir un décompte précis car il ne vérifie que les lignes adjacentes:history | cut -d' ' -f4- | cut -d' ' -f1 | sort | uniq -c | sort -n
J'ai vu à la fois des réponses vucar et tok , elles sont très utiles mais vous pouvez également utiliser l'outil incroyable
awk
:si vous souhaitez lister les commandes que vous utilisez le plus souvent:
pour trouver la commande la plus utilisée:
pour moi c'était
vi
:la source
Une autre approche consisterait à utiliser la comptabilité des processus BSD , qui est également disponible sur Linux (même si je ne sais pas si elle est activée par défaut). Il conserve essentiellement un onglet de tous les programmes qui sont exécutés (et d'autres mesures, comme le temps CPU consommé, etc.) aussi longtemps que la comptabilité est active. À partir de là, quelques statistiques agrégées sont disponibles, entre autres: une sorte de liste de tous les programmes jamais exécutés sur le système, triés par etc. le nombre maximal d'utilisations.
Les commandes à rechercher concernent
lastcomm
le journal en cours d'exécution etsa
les statistiques agrégées. Revenant à la question d'origine, en supposant que le système en question aurait eu la comptabilité activée depuis son installation, ilsa -n
donnerait alors une liste de toutes les commandes jamais exécutées sur le système (pour tous les utilisateurs), triées par fréquence. Pour les pipelines, chaque partie du pipeline serait bien entendu comptée séparément, car chaque partie comprend un nouveau processus à bifurquer.Pour plus de détails, le journal Linux a un article expliquant le fonctionnement. J'ai moi-même eu l'idée du guide NetBSD ; de nombreux conseils d'administration plus génériques ne sont pas spécifiques à NetBSD mais s'appliquent également à d'autres systèmes Unix.
la source
Les 20 commandes CLI les plus utilisées:
la source
Vous pouvez utiliser une seule commande de coupe:
la source
Si c'est juste pour la session en cours, alors
hash
sans arguments.la source