1. 程式人生 > >用wordcloud分析一年來終端的命令列記錄

用wordcloud分析一年來終端的命令列記錄

最近看到一個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)