各個大廠對於 linux 的考察中, 命令是常見考點. 命令中關於程序/網路資訊的檢視又是重中之重.
同時這些命令也是實際工作中的常用命令. 需要重點掌握.
使用 netstat 命令檢視網路連線情況
netstat -anp
執行結果如下
引數解釋:
關鍵列解釋:-a 顯示所有選項
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-p 顯示建立相關鏈結的程式名
由於proto 表示協議型別
localaddress 表示本地位址
foreignaddress 表示對端位址
state 表示狀態(對於 tcp 有效, udp 沒有狀態概念)
pid/program name 表示對應的程序id和程序名.
netstat
命令列印的結果較多, 通常需要搭配grep
命令來使用.
例如:檢視 8080 埠被哪個程序占用
執行結果:netstat -anp |
grep 8080
檢視程序名為 python 的程序都有哪些連線
執行結果netstat -anp |
grep python
使用 top 命令可以檢視程序資訊.
top
執行結果
結果解釋:
前 5 行是統計資訊區.
第一行是任務佇列資訊,同 uptime 命令的執行結果. 其中 load 表示系統負載(任務佇列的平均長度). 值越大表示當前系統就越繁忙.接下來是程序列表. 預設按照 cpu 占用情況降序排序(第一行就是當前占用 cpu 最多的程序).第二、三行為程序和cpu的資訊。當有多個cpu時,這些內容可能會超過兩行
第四, 五行尾記憶體資訊.
第四行 mem: total 物理記憶體總量, used 使用的物理記憶體總量, free 空閒記憶體總量, buffers 用作核心快取的記憶體量.
第五行 表示 swap 分割槽的使用情況.
常用列解釋:
pid 表示程序 idtop 的一些常見用法:user 表示程序擁有者的使用者id.
pr 表示程序優先順序
ni 表示 nice 值, 和 pr 搭配使用.
virt 表示虛擬記憶體使用情況
res 表示物理記憶體使用情況(如果程序使用的物理記憶體的和接近機器的物理記憶體總量, 就會出現記憶體不夠用的情況).
%cpu 表示該程序占用 cpu 的百分比(多核機器這個值可以超過 100%).
command 對應到這個程序啟動的命令.
檢視占用記憶體最多的前 n 個程序
先執行 top 命令, 再使用快捷鍵 m 即可按記憶體占用降序排序
檢視 cpu 占用最多的前 n 個程序
先執行 top 命令, 再使用快捷鍵 p 即可按照 cpu 占用降序排序
檢視某個程序中的執行緒情況
ifconfig 命令即可top -p [pid]
然後再使用快捷鍵 h 即可檢視執行緒相關資訊.
ifconfig
執行結果
由於一台主機可能同時具備多個網路介面, 檢視到的 ip 位址也就可能有多個.
網路介面對應到主機的網絡卡或者虛擬網絡卡裝置. 一台主機可以具有多個網絡卡, 也就可以有多個 ip 位址.通過以上三個命令, 我們了解了一些檢視網路/程序資訊的基本操作. 上面只是羅列了一些最常用的部分. 還有很多進一步延伸的內容等待我們在實際工作中積累和發掘.
審稿:王海斌
面試官都在問 選擇排序
選擇排序的思想不難理解。選擇排序把資料分成兩組來看待,一組已經有序的資料和一組無序的資料,排序開始之前,有序資料的個數為0。每次從未排序的資料中選取最小值,並與未排序的最左資料進行交換,直到未排序的資料為0,則結束排序。演算法過程如下圖所示 3.1 時間複雜度選擇排序每次需要遍歷未排序的資料,尋找最...
面試官都在問 Linux命令 grep
grep是乙個文字過濾器,作用是在檔案中查詢符合我們要求的內容。第一種形式,從指定的檔案中找出匹配pattern的行 grep option pattern file1,file2,第二種形式,從管道中找出匹配pattern的行 cmd grep option pattern 說明 pattern是...
面試官都在問 快速排序C 實現
快排是c.a.r.hoare在1960提出的一種排序演算法,這是一種採用分治思想的排序演算法,大致分為三個步驟。定基準 首先選擇乙個元素作為基準值 劃分區 所有比基準小的元素置於基準左側,比基準大的元素置於右側,構成左右兩個子串行 遞迴呼叫 遞迴地呼叫此切分過程,切分其子序列,直到子串行只含有乙個值...