如何在 Linux 上查找最常用的命令

前几天,我和一位 Linux 用户正在讨论 Linux 命令。 他问我最常使用哪个 Linux 命令。 我告诉他我最常用的命令之一是 sudo. 我每天都用它在我的 Linux 机器上安装、更新、删除包和其他管理任务。 我猜 "sudo" 是很多 Linux 用户最常用的命令。 如果您想知道在 Linux 上最常用的命令是什么,这里是如何找到它们的。

查找 Linux 上最常用的命令

如您所知,历史文件(~/.bash_history) 记录您在终端中运行的所有命令。 通过参考此文件,您可以轻松找到最常用的命令。

让我向您展示我的 Linux 机器上最常用的 5 个命令:

$ history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5

样本输出:

153 sudo 118 pngquant 33 cd 30 ssh 29 exit

让我们分解上面的命令,看看每个选项的作用。

  • "awk '{print $2}'" command 打印历史文件中的第一个字符串,而不显示命令选项和参数。
  • "sort" 命令按字母顺序排列所有行。
  • "uniq -c" 命令删除重复的行(键入的命令)并计算它们。
  • 而且,最后 "sort -nr" 命令按返回的计数以相反的顺序显示命令 "uniq" 命令。

当心: 您可以使用 解释壳牌 查找命令的每个部分的作用。

如你看到的, "sudo" 是最常用的命令,我已经使用了 153 次。 和 "exit” 是最少使用的命令。

我已按降序(反向)对结果进行排序,即从大到小。 要按升序(从小到大)显示最常用的命令,请改用以下命令:

$ history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5

样本输出:

29 exit 30 ssh 33 cd 118 pngquant 153 sudo
查找 Linux 上最常用的命令

这是同一命令的另一个版本,它显示了一些额外的细节:

$ 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	177  17.7177%   pngquant      2	173  17.3173%   vagrant      3	101  10.1101%   cd      4	71   7.10711%   sudo      5	47   4.7047%    ffmpeg

如果您不想限制结果数量,只需删除最后一个 (head 或者 tail) 上述命令的一部分:

$ history | awk '{print $2}' | sort | uniq -c | sort -nr

上述命令是特定于 Bash 的。 如果你在 外壳,运行:

$ history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -5

现在,是你的时候了。 去找出你在你的 Linux 机器上最常用的命令。

BASHBash 历史CLILinuxLinux 基础Linux 命令Linux 技巧最常用的Linux 命令