如何查看 Debian 10 中最常使用的终端命令
在终端上工作时,您经常需要重用以前执行过的命令,或者您甚至可能想查找最常用命令的统计信息。大多数用户都知道如何使用箭头键滚动回以前的命令来浏览 bash 历史记录。但很少有用户知道他们可以使用 bash 历史记录做更多事情,而不仅仅是使用向上和向下箭头键。
在本文中,我们将看到两种不同的方法,您可以通过它们查看终端中最常使用的命令。我们将使用 Debian 10 来描述本文中提到的过程。
方法一:使用history命令查看命令统计信息
在此方法中,我们将使用历史命令来查看最常用的终端命令。在Linux中,有一个历史文件通常位于~/.bash_history中,它存储用户在先前会话中执行的所有命令的历史记录。每次会话关闭时都会更新历史文件。
它方便用户不仅可以获取他们以前执行过的命令,还可以搜索到最常用的命令。使用历史命令,您甚至可以列出最常用的命令。
要查看其工作原理,只需在终端中输入历史:
history
输出将类似于以下内容。您可以看到它按顺序列出了当前用户会话之前执行的所有命令,最近的命令位于底部。
要查看您之前执行过的最后 x 个命令的列表,请键入 history ,后跟 x:
history x
例如,要列出最后 6 条命令,请将上述命令中的 x 替换为 6。
要在历史列表中搜索特定命令,请使用以下语法:
history | grep command
例如,要在历史列表中搜索网络命令,请在终端中执行以下命令:
history | grep network
1.查看最常用命令列表
我们已经看到了history命令的用法。现在我们将使用历史命令来查看终端中最常用的命令。为此,请在终端中执行以下命令:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
从上面的输出中,您可以看到历史列表,其中顶部是自操作系统安装以来最近使用的命令,底部是最少使用的命令。根据以上结果,history 命令是最常用的命令,使用了 13 次,第二个命令是 ip,第三个命令是 ping >。同样,最少使用的命令是systemctl,它只使用过一次。
2.查看最常用命令的具体数量
我们还可以仅查看最常用命令的具体数量。为此,请在终端中运行以下命令。
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head -n x
例如,要仅查看最常用的4命令,请将x替换为4。
3.以倒序查看最常用命令列表
还可以按相反的顺序查看历史列表,即最近的列表位于底部,较早的列表位于顶部。为此,请使用与上述相同的命令,但不使用 r 选项进行第二次排序,如以下命令所示。
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | head -n x
现在您将以相反的顺序看到历史记录。
4. 按出现次数查看最常用命令的列表
要仅查看发生一次、两次或任意特定次数的命令的历史列表,请使用以下语法:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | grep ' x '
将 x 替换为任何所需的数字。
例如,要查看仅出现两次的命令列表,请将上述语法中的 x 替换为 2:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | grep ' 2 '
以下是您可以与历史命令一起使用的更多选项:
5. 从历史记录中删除特定条目
要从 shell 历史记录中删除特定行,请执行以下命令。
history -d <line number>
例如,要从列表中删除行号 19,请将 <行号> 替换为 19。
上述命令将删除行号19对应的条目。
6. 退出而不保存历史记录
如果您想退出终端而不保存任何历史记录,请使用以下命令:
kill -9 $$
7.清除全部历史记录
您甚至可以清除当前用户会话的整个历史记录。使用以下命令来执行此操作:
history -c
方法2 # 创建一个函数来查看命令统计信息
您可以使用另一种方法来查看终端中最常执行的命令的列表。要使用它,首先在终端中执行以下命令来创建函数:
function zsh-stats() { fc -l 1 | 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 -n25; }
然后执行以下命令来调用该函数:
zsh-stats
您将看到与此类似的输出。
在上面的输出中,您可以看到四列显示为上述命令的输出。第一列显示索引号,第二列和第三列相应显示最常用命令的出现频率和百分比,最后一列显示命令名称。
这就是我们如何在 Debian 10 操作系统中查看最常用的终端命令。上面我们讨论了两种方法,即history命令和zsh-stats函数,您可以根据自己的方便使用任何方法。然而,需要注意的是,上述两种方法仅显示当前用户会话的命令历史记录。