將Linux top命令輸入到指定文件時的亂碼問題

   根據需求,項目需要讀取linux系統環境參數,所以需要將top命令的輸出結果輸入到文件中。用重定向命令如下:top > result.txt 。用vi打開文件: vi result.txt 。顯示的結果卻是這樣的,看圖更方便:

wKiom1MxPWzzR4XUAAktiSag7_8295.jpg

於是分析出一下幾個原因:

   1.其他命令是否出現相同問題?

   2.是否是文件編碼格式問題導致?

   3.是否是系統平臺問題導致?

下面一個一個測試:

1.測試命令:ls > testls.txt

結果如圖:

wKiom1MxPkKjX8GnAAFHspDa1II564.jpg

測試命令:ps -ef > testps.txt

結果如圖:

wKioL1MxPinAg8exAAYCwgdnvik018.jpg

可以得出結論,其他命令沒有出現這樣的情況,排除原因1.

2.看看result.txt文件的編碼格式

vi result.txt進入文件輸入: ":set fileencoding" 後按回車顯示utf-8,如下圖:

wKioL1MxPnjR04i1AAupnZaZA7I567.jpg

於是也可以排除不是文件編碼的問題;排除原因2;

3.將 result.txt 文件拿到windows系統中打開,顯示如下圖:

wKiom1MxPuCj3cfNAAqq5-SlOj4138.jpg

也出現了亂碼情況,所以也不是系統平臺的原因。。。這下原因3也排除了。

這下該怎麼辦呢???

最後能想到的只有命令本身了,因爲其他命令沒有出現這種情況,所以會想到在top命令的參數中會有蹊蹺。

下面是linux top命令的詳解:http://rockhooray.blog.51cto.com/938613/832621

可以發現,在想要輸出內容到文件中則需要使用批處理模式。詳細介紹如下:


-b 批處理模式操作

開啓top工作在批處理模式,這樣在需要將top的輸出信息輸出 到其他程序或文件時非常有用。在這種模式下,top不接受任何輸入操作,直到通過-n 設置的重複次數後,或者退出top才終止。

在終端中輸入top -b top將不斷重複地顯示任務信息,知道按Ctrl+C終止爲止,在終端中輸入top -b -n 10 ,top將顯示10次後終止,也就是分10個批次顯示完後就退出。


所以只需要在命令中指定爲批處理模式問題就解決啦: top -b > result.txt 結果就不在展示了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章