最近看到一个python函数库,wordcloud(词云),觉得十分有意思,于是想要用来分析一些自己收集的数据。
从去年8月份开始使用archlinux, shell用的是zsh,这个shell好处很多(详情请见https://wiki.archlinux.org/index.php/Zsh), 其中之一是为每一个目录建立一个zhistory文件,用于存储每个目录下的命令行历史,所有的文件在~/.zsh_history目录下。
于是乎,我想用wordcloud来分析这一年多以来我都使用了哪些命令,
代码如下:
#!/usr/bin/env python
import os
from wordcloud import WordCloud
import sys
if len(sys.argv) == 1:
print("Please input a filename")
else:
# Read the whole text.
text = open(sys.argv[1]).read()
# Generate a word cloud image
wordcloud = WordCloud(background_color='black',width=1200,height=800,margin=2).generate(text)
wordcloud.to_file(sys.argv[1]+".png")
得到的结果如下:
效果还不错,但就是不知道为什么好多重复的关键词,ls,cd重复了好多遍,有人知道的话希望在留言中告知我一下,感激不尽。
图中很明显地看出, ls, cd这两个命令使用最为频繁,在所有的命令当中,前几个命令总频次占比如下(共116554个):
命令排名 | 总占比 |
---|---|
前1 | 34.8% |
前2 | 55.9% |
前5 | 69.5% |
前10 | 78.0% |
前20 | 85.9% |
因此,掌握20个命令就能基本掌握Linux是有道理的。。。
附录
排名前十的命令是:
ls cd vim m eog c mv ev rm du
(m,c,ev分别是自定义的make, vim *c *h以及evince)