在UNIX中,如何查找unix历史上最常用的命令?

在UNIX中,如何查找unix历史上最常用的命令?

在UNIX中,如何查找历史上最常用的命令?

答案1

这更取决于你的“命令”意图。从一个角度来看,命令只是从命令行调用的可执行文件,因此lsls -alh /tmp/foo/bar/*tar.bz都是命令ls。另一种观点是,命令是其各部分的总和,这意味着上面的示例是 2 个不同的命令。

如果您的目的是计算历史记录中完全唯一的命令,您可以执行:history | cut -d' ' -f4- | uniq -c | sort -n

请注意,这是在 Debian 系统上测试的,您的历史命令的输出语法可能略有不同。调整命令中的数字“4”以选择备用列。

如果您只想考虑不带参数的第一个命令,那么您可以执行:history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n

要包含参数但不包含后面的任何链接或管道命令,您可以执行:history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n

请注意,这些命令中的每一个都按数字顺序对命令数量进行排序,出现频率最高的命令最后出现。

答案2

我都看过武卡尔托克答案,它们非常有用,但您awk也可以使用这个神奇的工具:

如果您想列出最常用的命令:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

查找最常用的命令:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head -1 

对我来说是vi

94 vi

答案3

最常用的 20 个 CLI 命令:

history |  cut -c7- | sort  | uniq -c | sort -nr | head -n 20

答案4

您可以使用单个剪切命令:

history | cut -c 7-100  | sort  | uniq -c | sort -nr

相关内容