首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建bash会话中使用的最常用命令的直方图或频率列表。

创建bash会话中使用的最常用命令的直方图或频率列表。
EN

Stack Overflow用户
提问于 2013-08-18 17:38:33
回答 3查看 701关注 0票数 0

是否有一种主动的方法来收集bash会话中使用最频繁的命令?

如果没有,我可以以什么方式开始编写脚本或运行后台进程来实现这一点?

例如,我将有一个可以在会话中生成的报告,该报告看起来像

代码语言:javascript
运行
复制
cd  25%
ls  40%
cat 35%
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-18 19:37:58

这一项将显示接近预定格式的输出:

代码语言:javascript
运行
复制
history | awk '($2 ~ /^[[:alnum:]]+$/) { ++a[$2]; t = length($2); if (t > l) l = t; } END { for (i in a) printf("%s%" (l - length(i) + 1) "s%5.2f%%\n", i, " ", (a[i] * 100 / NR)); }'

示例输出:

代码语言:javascript
运行
复制
...
cd           6.00%
ls          12.00%
cat          1.60%
...

您还可以使用... | sort -n -k2... | sort -n -k2 -r对其进行排序。

票数 2
EN

Stack Overflow用户

发布于 2013-08-18 17:45:44

您可以解析history命令的输出,并计数命令字段的出现情况。

代码语言:javascript
运行
复制
history | awk '{print $4}' | sort | uniq -c | sort -n

将打印已执行命令的列表和执行命令的次数。然后,您可以获取使用history | wc -l执行的命令总数,然后执行计算。

票数 1
EN

Stack Overflow用户

发布于 2013-08-18 17:47:10

您可以尝试下面这样的方法

代码语言:javascript
运行
复制
history | cut -f1 -d' ' | sort | uniq -c | sort -n

如果您经常使用像上面这样的管道,您可能需要编写bash解析器才能获得其他命令,而不仅仅是history

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18301908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档