標籤:style color 使用 os 檔案 資料
總結一下Linux下常用的命令
nc
nc命令,這是Linux一般都帶有的,被譽為“瑞士軍刀”。windows和Linux都有,可以下載安裝對應的平台工具。使用UDP和TCP協議的網路連接去讀寫資料,是一個穩定的後門工具。同時它也是一個功能強大的網路調試和嗅探工具。
使用格式:
nc [-options] hostname port[s] [ports] ... 串連到某個地方
nc -l -p port [options] [hostname] [port] 綁定連接埠等待串連
參數有下:
-e prog 程式重新導向,一旦串連就執行。同時這樣也有安全隱患
-i secs 延時間隔
-l 監聽模式,用於入站串連
-n 制定數位IP地址,不能用主機名稱
-p port 連接埠
-o file 記錄16進位的傳輸
-r 任意指定本地及遠程段口
-s addr 本地源地址
-u UDP模式
-v 詳細輸出 用兩個 -v可得到更詳細的內容
-w secs 逾時
-z 將輸入輸出關掉,用於掃描
連接埠號碼可以指定單個,後者一個範圍
當然nc 可以和watch命令配置動態即時監測
netstat
netstat命令用於顯示各種網路相關資訊,如:網路連接,路由表,介面狀態多播成員等等
netstat輸出結果可分為兩個部分:有源TCP串連和有源Unix域套介面
有源TCP主要是用於監測網路傳輸相關
有源Unix用於本機通訊,效能可以提高一倍
常見參數:
-a all的意思 顯示所用選項,預設不顯示LISTEN相關
-t tcp意思,僅顯示tcp相關選項
-u udp的意思,僅顯示udp相關
-n 拒絕顯示的別名,能顯示數位全部轉化成數字
-l 僅 列出有在listen的服務狀態
-p 顯示簡曆相關連結的程式名
-r 顯示路由資訊,路由表
-e 顯示擴充資訊
-s 按各個協議進行統計
-c 執行netstat的時間間隔
另外LISTEN和LISTENING狀態只用-a 或 -l才能看到
netstat -a 列出所有連接埠,包括監聽和未監聽的
netstat -at 列出tcp連接埠
netstat -pt 先死PID和進程名字 (-p)
netstat -i 顯示網路介面列表
可以利用watch 和 awk提取相關需要欄位,用於監聽
lsof
全稱list open files,列出當前系統開啟檔案
應用程式開啟檔案的描述符提供了大量應用程式本身的資訊,因此通過lsof工具能夠查看這個列表對系統檢測以及排錯有很大協助
lsof常見參數:
lsof filename 顯示開啟指定檔案的所有進程
lsof -a 表示兩個參數都必須滿足時才顯示結果
lsof -c string 顯示COMMAND列中包含指定字串的進程開啟的描述符
lsof -u username 顯示所屬user進程開啟的檔案
lsof -g gid 顯示所屬gid進程情況
lsof +d /DIR/ 顯示目錄下被進程開啟的檔案
lsof +D /DIR/ 同上,但是會遞迴
lsof -n 不將IP轉化為hostname
lsof -i 用於顯示合格進程情況
ls -i[46] [protocol] [@hostname|hostaddr][:service|port]
ipv4|ipv6 TCP|UDP
lsof -i:22 查看22連接埠運行情況
uptime
顯示結果包括伺服器已經啟動並執行時間,有多少使用者登入,和對伺服器效能的總體評估
load average記錄了上個1,5,15分鐘間隔的負載情況,表示在隊列中等待執行的進程的數量,如果CPU阻塞,該值就變大
load average最佳值為1,說明每個進程都可以立刻被CU處理,多個CPU的系統中,這個值應 除以 物理CPU的個數
top
top命令顯示了實際CPU的使用方式,預設5s重新整理一次
PID: 進程標識
USER: 進程所有者的使用者名稱
PRI:進程的優先順序
NI: nice層級
SIZE:進程佔用的記憶體數量,包括代碼,資料,和堆棧
RSS:進程使用的實體記憶體數量
SHARE:該進程和其他進程共用記憶體的數量
STAT:進程的狀態
S 休眠狀態
R 運行狀態
T 停止狀態
D 中斷休眠狀態
Z 殭屍狀態
%CPU:共用的CPU使用
%MEM 共用的實體記憶體
TIME:進程佔用的CPU時間
COMMAND:啟動任務的命令列,參數
iostat
iostat是sysstat包的一部分,顯示系統啟動後平均CPU時間與uptime類似
可以顯示磁碟子系統的使用方式,iostat可以用來檢測CPU利用率和磁碟利用率
%user: user level(應用)的CPU佔用率情況
%nice: 加入nice優先順序的user level的CPU佔用率情況
%sys:system level(核心) 的CPU佔用情況
%idle:閒置CPU資源情況
Device :塊裝置名稱
Tps:裝置每秒進行傳輸的數量(每秒的I/O請求)。多個單獨的I/O請求可以被組成一個傳輸操作,因為一個傳輸操作可以是不同的容量
Blk_read/s,Blk——wrtn/s:該裝置每秒讀寫的塊數量,塊可能為不同容量
Blk_read,Blk_wrtn:自系統啟動以來讀寫的塊裝置總量
vmstat
vmstat命令提供了對進程、記憶體、頁面I/O塊和CPU等資訊的監控,vmstat可以顯示檢測結果的平均值或者取樣值
.process(procs)
r:等待已耗用時間的進程數量
b:處在不可中斷睡眠狀態的進程
w:被交換出去但是仍然可以啟動並執行進程,這個值是計算出來的
.memoryswpd:虛擬記憶體數量
free: 空閑記憶體數量
buff: 用作緩衝區的記憶體數量
.swap
si:從硬碟交換來的數量
so:交換到硬碟去得數量
.IO
bi:向一個塊裝置輸出的快數量
bo:從一個塊裝置接受的塊數量
.system
in:每秒發生的中斷數量,包括時鐘
cs:每秒發生的context switches的數量
.cpu 整個CPU已耗用時間百分比
us:非核心代碼已耗用時間(使用者時間,nice時間)
sy:核心代碼已耗用時間(系統時間)
id:空閑時間
wa:等待I/O操作時間
vmstat附加參數:
.m: 顯示核心的記憶體利用率
.a: 顯示記憶體頁面資訊,包括活躍和不活躍的記憶體頁面
.n: 顯示前序行,這個參數在使用取樣模式並命令結果輸出到一個檔案時用
-p 分區,vmstat提供對I/O結果的統計
ps/pstree
系統分析最常用的命令,ps提供正在運行進程列表
pstree命令可以以樹狀結構顯示所有進程資訊,並且可以整合子進程資訊
sar
sar程式也是sysstat安裝包一部分,用於手機、報告和儲存系統的資訊。
sar命令三個應用組成
sar: 用於顯示資料
sa1/sa2:用於搜集和儲存資料
sar命令產生的資料預設儲存在/var/log/sa/目錄下
也可以使用sar在命令列下得到一個即時的執行結果,搜集的資料可以包括CPU利用率、記憶體頁面、網路I/O等等呢過
sar 3 5 每個3s執行一次,執行5次sar
free
free命令顯示系統的所用記憶體使用量情況,包括空閑、被使用的和被交換的空間。
free命令顯示也包括一些核心使用的緩衝和緩衝區資訊
參數:
-b,-k,-m,-g分別是以bytes,kilobytes,megabytes,gigabytes顯示結果
-l 區別顯示low和high記憶體
-c {count} 顯示free輸出的次數
pmap
pmap命令顯示一個或者多個進程使用記憶體數量,可以使用這個工具來確定伺服器上哪個進程佔用了過多的記憶體而導致記憶體瓶頸
strace
strace截取和記錄進程的系統調用資訊,還包括進程接受的命令訊號。這是一個很好的診斷和調試工具,但是需要系統管理員許可權
strace -p <pid>
ulimit
可以通過ulimit來控制系統資源的使用
mpstat
mpstat命令也是sysstat的一部分。主要用於監測一個多CPU系統中每個可用CPU的情況。mpstat命令可以顯示每個CPU或者所有CPU的運行情況,同時也可以像vmstat命令那樣使用參數進行一定頻率的採樣結果監測
valgrind
記憶體和效能偵查工具,主要用於記憶體泄露檢測,效能檢測