習慣了linux的系統管理員,對linux的命令行工具總是印象極深,幾乎所有的管理都可以在命令行下完成。命令行工具是linux系統管理的主流。
而使用windows是,因為圖形化的界面,大家習慣了圖形化的管理,但很多時間會發現,在圖形界面下缺少很多管理功能,一些在linux下很簡單的管理功能,在windows下很難實現。很多人為了解決這個問題,上網尋找各種不同的工具軟件,有不少可能根本就找不到,於是報怨windows管理弱。其實windows下也有許多很有用的命令行工具,能夠實現很多如同linux下的管理和監控功能,只不過因為windows有一個傻瓜化的圖形化管理界面,大家不再花力氣去學習和了解這些命令行工具而已。其實對windows(尤其是windows server)系統管理員而言,學會使用windows命令行工具應該是必須的事情,不然還真是很難做好系統管理,就算你有很強的開發能力,能夠自己編程開發各種圖形化管理軟件,即使這樣,如果微軟不開放某些接口,你想開發也沒轍。
某天一個朋友想要掌握他的應用軟件客戶的連接數情況,軟件本身沒有提供相應監控,這個活在linux只要使用netstat很簡單就可以解決,可在windows下,想了很久,也沒找到辦法。網上也沒搜到相應軟件。遇到我順便問起,我記得windows下也有相應的netstat軟件,加上-an選項后能夠列出所有連接,然后只要過濾和統計一下就可以。
在linux下使用grep統計表,命令如下 netstat -an|grep xxx.xxx.xxx.xxx:端口 -c
可以直接輸出統計結果。在windows命令行下沒有grep命令,但有相似的find命令
語法為
參數 | 說明 |
---|---|
/v |
顯示不包含指定的 的所有行。 |
/c |
對包含指定的 的行進行計數,並顯示總計。 |
/n |
在前面的每個行與該文件的行號。 |
/i |
指定搜索不區分大小寫。 |
[/ 關閉 [行]] |
不跳過具有脫機屬性設置的文件。 |
"" |
必需。指定要搜索的字符 (括在引號) 的組。 |
[:][] |
指定要在其中搜索指定字符串的文件的名稱和位置。 |
/? |
在命令提示符下顯示幫助。 |
windows下實現統計全部連接數命令為:
netstat -an|find "ESTABLISHED" /c
查看進程建立的連接:
netstat -ano|findstr "PID"
windows下實現統計進程全部連接數命令為:
netstat -ano|findstr "PID"|find "ESTABLISHED" /c
windows下實現統計某個端口的連接數命令為:
netstat -an|find "xxx.xxx.xxx.xxx:端口" |find "ESTABLISHED" /c
注意1、find命令搜索的字符串要用雙引號括起,這點與grep 不同。
2、ESTABLISHED 是已經建立起的連接,過濾了關閉的,等待的等狀態。
由此可見,windows命令行功能也很強大,只要會用,一樣可以在系統管理中起到大的作用。
與find命令相似的還有findstr,搜索的字符串不需要用雙引號括起。但這個命令沒有計數的功能。這里使用不合適。