Tok*_*Tok 12

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

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

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

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

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

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

  • 我需要在 `uniq` 之前添加一个额外的 `sort` 以获得准确的计数,因为它只检查相邻的行:cut -d' ' -f4- | 剪切 -d' ' -f1 | 排序 | uniq -c | 排序-n` (2认同)