用wordcloud分析一年來終端的命令列記錄
阿新 • • 發佈:2019-01-28
最近看到一個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)