1. 系統
版本資訊
核心版本
使用
指令:
uname
- -a : 檢視所有系統資訊
- -r : 檢視核心版本資訊
- -s : 檢視核心名稱
代碼如下:
[niesh@niesh ~]$ uname -a
Linux niesh 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[niesh@niesh ~]$ uname -r
3.10.0-327.el7.x86_64
[niesh@niesh ~]$ uname -s
Linux
- 發行版本
指令 (貌似在Ubuntu上無此指令)
lsb_release
[niesh@niesh ~]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Core
位數
注意,Linux下暫沒有指令可以檢視系統位數,但是我們可以通過檢視系統可執行程式(即elf)的位數進行判定:(可以看到我的Linux為64-bit)
[root@niesh ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=03fda19cacc76ee7464947e29ed25552138ae50e, stripped
主機名稱
[root@niesh ~]# hostname
niesh
檔案系統
可采用
df -Th
進行檢視:(主要看根目錄的檔案系統,此處為 xfs)
[root@niesh ~]# df -Th
檔案系統 類型 容量 已用 可用 已用% 挂載點
/dev/mapper/centos_niesh-root xfs 18G 9.1G 8.5G 52% /
devtmpfs devtmpfs 726M 0 726M 0% /dev
tmpfs tmpfs 741M 100K 741M 1% /dev/shm
tmpfs tmpfs 741M 9.1M 732M 2% /run
/dev/sda1 xfs 497M 158M 339M 32% /boot
2. 使用者登入
登入的使用者名
[root@niesh ~]# whoami
root
活動使用者
- w:
檢視已經登入的使用者(詳細資訊)
- who:
檢視登陸的使用者(使用者名,終端,登入時間)
[root@niesh ~]# w
17:54:50 up 8:15, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
niesh :0 :0 09:40 ?xdm? 3:35 0.32s gdm-session-wor
niesh pts/0 192.168.139.1 09:41 3:33m 0.10s 0.10s -bash
niesh pts/1 192.168.139.1 09:41 58.00s 0.24s 0.17s sshd: niesh [pr
第一行:系統的基本資訊:第二行,8個字段,顯示使用者的詳細資訊:
- 系統的目前時間:17:54:50
- 從上次啟動到現在的時間:8:15 (8小時15分鐘)
- 有多少使用者登入到本機: 3 (3個),注意,同一個使用者可重複登入
- 系統平均負載:過去1min(0.00), 5min(0.01), 10min(0.05)
- User: 使用者名(相同使用者名代表我登入了多次)
- TTY:使用者登入的終端代号,TTY1-TTY6分别代表本機上的1到6号的虛拟主要台。PTS表示使用者是通過遠端登陸的。如果數字為:0則表示使用者從XWindow登入系統
- From: 從何處登入,"0"表示本機登入,IP位址為登入的位址
- Login@:登入的時間點
- IDLE:使用者登入後的閑置時間
- JCPU:使用者所采用的終端所有相關的程式執行時,所消耗的CPU時間
- PCUP:執行後面
所耗費的時間
WHAT
- WHAT:表示目前使用者正在做的事情:若使用者正在執行某個程式,則這裡會顯示使用者執行程式的名字。如果使用者正在操作的是執行一般文字模式的指令,則這裡顯示的是使用者的環境名稱
[niesh@niesh ~]$ w
09:52:00 up 8:33, 6 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
niesh :0 :0 四09 ?xdm? 3:52 0.33s gdm-session-worker [pam/gdm-password]
niesh pts/0 192.168.139.1 四09 19:30m 0.10s 0.10s -bash
niesh pts/1 192.168.139.1 四09 15:52m 0.24s 0.17s sshd: niesh [priv]
niesh pts/2 :0 四10 15:56m 0.09s 1.93s /usr/libexec/gnome-terminal-server
登入的曆史資訊
- last:
顯示使用者登入的曆史資訊
原理即為讀取了
/var/log/wtmp
- lastlog:
讀取, 同last
/var/log/lastlog
[niesh@niesh log]$ last
niesh pts/4 192.168.139.1 Fri Aug 25 09:40 still logged in
niesh pts/3 192.168.139.1 Fri Aug 25 09:40 still logged in
niesh pts/2 :0 Thu Aug 24 10:23 still logged in
niesh pts/1 192.168.139.1 Thu Aug 24 09:41 - 11:50 (1+02:08)
niesh pts/0 192.168.139.1 Thu Aug 24 09:41 - 11:32 (1+01:50)
niesh :0 :0 Thu Aug 24 09:40 still logged in
(unknown :0 :0 Thu Aug 24 09:39 - 09:40 (00:00)
reboot system boot 3.10.0-327.el7.x Thu Aug 24 09:39 - 14:05 (1+04:26)
niesh pts/0 192.168.139.1 Wed Aug 23 16:01 - crash (17:37)
niesh pts/2 192.168.139.1 Wed Aug 23 15:31 - crash (18:07)
niesh pts/1 :0 Wed Aug 23 15:30 - crash (18:09)
niesh :0 :0 Wed Aug 23 15:29 - crash (18:09)
niesh pts/0 192.168.139.1 Wed Aug 23 15:29 - 15:46 (00:17)
niesh pts/0 192.168.139.1 Tue Aug 22 18:05 - 18:21 (00:16)
niesh pts/3 192.168.139.1 Tue Aug 22 17:11 - 18:21 (01:09)
niesh pts/2 192.168.139.1 Tue Aug 22 17:06 - 18:21 (01:15)
niesh pts/1 192.168.139.1 Tue Aug 22 13:21 - 18:21 (05:00)
niesh pts/0 192.168.139.1 Tue Aug 22 13:21 - 17:24 (04:02)
(unknown :0 :0 Tue Aug 22 10:11 - 15:29 (1+05:18)
reboot system boot 3.10.0-327.el7.x Tue Aug 22 10:10 - 14:05 (3+03:54)
[niesh@niesh log]$ lastlog
使用者名 端口 來自 最後登陸時間
root pts/2 四 8月 24 10:24:09 +0800 2017
bin **從未登入過**
daemon **從未登入過**
...
oprofile **從未登入過**
tcpdump **從未登入過**
niesh pts/4 192.168.139.1 五 8月 25 09:40:14 +0800 2017
3. 監控系統資源資訊
top:
類似windows的任務管理器,檢視系統程序、記憶體資源占用、運作時間等等資訊
定時重新整理,占用了大量的系統資源
參數:
- -d:指定更新的間隔(s)
- -q:沒有任何延遲的更新
- -c:顯示程序完整的路徑與名稱。
- -s:安全模式
- -i:不顯示任何Idle & Zombie程序
- -n:顯示更新的次數,完成後将會退出to
iostat:
監控系統裝置的IO負載情況
- -c: 隻顯示CPU行
- -d: 顯示磁盤行
- -k: 以千位元組為機關顯示磁盤輸出
- -t: 在輸出中包括時間戳
- -x: 在輸出中包括擴充的磁盤名額
vmstat [delay][count]:
顯示程序、記憶體、IO等一些列資訊
- delay: 延時多少秒重新整理一次
- count: 顯示多少次
[niesh@niesh log]$ top -d 10 #為了便于複制,将舒心時間改為10s
top - 14:46:54 up 13:28, 4 users, load average: 0.00, 0.01, 0.05
Tasks: 436 total, 1 running, 435 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.3 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1517428 total, 401340 free, 645368 used, 470720 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 649748 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
63456 niesh 20 0 146420 2396 1444 R 0.3 0.2 0:00.05 top
1315 root 20 0 317868 6524 4980 S 0.2 0.4 1:13.06 vmtoolsd
3978 niesh 20 0 377436 18192 14384 S 0.2 1.2 1:14.92 vmtoolsd
43779 root 20 0 0 0 0 S 0.2 0.0 0:01.98 kworker/0:0
1373 root 20 0 203352 1244 788 S 0.1 0.1 0:00.13 gssproxy
1 root 20 0 191616 6796 3900 S 0.0 0.4 0:08.94 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.07 kthreadd
...
- 第一部分:
- 第一行: 系統時間 + 系統運作時間 + 幾個使用者 + 1/5/15分鐘系統平均負載
- 第二行:程序總數(total) + 正在運作程序數(running) + 睡眠程序數(sleeping) + 停止的程序數(stopped)+ 僵屍程序數(zombie)
- 第三行:使用者空間CPU占比(us) + 核心空間CPU占比(sy)+ CPU空置率(id)
- 第二部分:
- PID(Process IDentificator):程序辨別
- USER:程序所有者的使用者名
- PR:程序的優先級别
- NI:程序的優先級别數值
- VIRT:程序占用的虛拟記憶體值
- RES:程序占用的實體記憶體值
- SHR:程序使用的共享記憶體值
- S:程序的狀态,其中S表示休眠,R表示正在運作,Z表示僵死狀态,N表示該程序優先值是負數
- %CPU:該程序占用的CPU使用率
- %MEM:該程序占用的實體記憶體和總記憶體的百分比
- TIME+:該程序啟動後占用的總的CPU時間
- Command:程序啟動的啟動指令名稱,如果這一行顯示不下,程序會有一個完整的指令行
指令的互動:
top
- <空格>:立刻重新整理
- P:根據CPU使用大小進行排序
- T:根據時間、累計時間排序
- M:根據使用記憶體大小進行排序
- q:退出top指令
- m:切換顯示記憶體資訊
- t:切換顯示程序和CPU狀态資訊
- c:切換顯示指令名稱和完整指令行
- W:将目前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法
[niesh@niesh log]$ iostat -t
Linux 3.10.0-327.el7.x86_64 (niesh) 2017年08月25日 _x86_64_ (1 CPU)
2017年08月25日 15時05分15秒
avg-cpu: %user %nice %system %iowait %steal %idle
0.38 0.01 0.52 0.05 0.00 99.05
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.41 7.26 1.14 358126 56039
dm-0 0.42 7.11 1.09 350846 53990
dm-1 0.00 0.03 0.00 1268 0
- Device: 裝置名稱
- tps:每秒鐘的傳輸數
- kB_read/s:每秒鐘讀取資料塊(通常為512kB)的個數
- kB_write/s:每秒鐘寫入資料塊(通常為512kB)的個數
- kB_read:512位元組塊讀取總數量
- kB_wrtn:512位元組塊寫入總數量
[niesh@niesh log]$ vmstat 3 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 401192 1260 469512 0 0 7 1 52 123 0 1 99 0 0
0 0 0 401192 1260 469512 0 0 0 0 57 104 0 0 100 0 0
0 0 0 401068 1260 469512 0 0 0 0 89 175 0 2 98 0 0
0 0 0 401068 1260 469512 0 0 0 0 56 93 0 0 100 0 0
以上各列解釋如下:
- r: Running, 正在運作和等待運作的程序數
- b: Sleeping,處于Sleeeping狀态的程序數
- swpd: 虛拟記憶體使用量,一般為0,否則可能是實體記憶體不夠用了
- free: 實體記憶體空閑大小
- buf: 緩沖區大小
- cache: 緩存大小
- si: 每秒從虛拟記憶體寫入硬碟的大小
- so: 每秒從硬碟讀入到虛拟記憶體的大小
- bi: 塊裝置每秒接受的塊數量
- bo: 塊裝置每秒發送的塊數量
- in: interrupt, 每秒中斷CPU的次數
- cs: context switch,每秒切換上下文的次數
- us: 使用者CPU時間,%
- sy: 系統CPU時間
- id: 空閑CPU時間
- wa: 等待IO的CPU時間
4. 檢視系統負載
uptime:
檢視系統負載狀況
- -p: pretty format
- -s: since yyyy-mm-dd HH:MM:SS format
[niesh@niesh log]$ uptime
15:42:50 up 14:24, 4 users, load average: 0.00, 0.01, 0.05
Linux中有一個通俗的說法:當load avarage ❤️ 系統良好,大于5 可能有嚴重的性能問題
5. 程序
rpm -qa:
檢視系統中所有安裝的軟體
ps:
列出系統中運作的程序
由于 ps 能夠支援的系統類型相當的多,是以他的參數多的離譜!
而且有沒有加上 - 差很多!詳細的用法應該要參考 man ps!
- -A: 所有的程序均顯示出來,與 -e 具有同樣的效用
- -a: 顯示現行終端機下的所有程序,包括其他使用者的程序
- -u: 以使用者為主的程序狀态
- -l: 較長、較詳細的将該 PID 的的資訊列出
- -j: 工作的格式 (jobs format)
- -e: 同
-A
- -f: 做一個更為完整的輸出
- kill [option][arugument]:
option-u:指定使用者
-a:當處理目前程序時,不限制指令名和程序号的對應關系
-p:指定kill 指令隻列印相關程序的程序号,而不發送任何信号
[0-n]: 0表重新開機,9表強制關閉,15正常關閉(預設值)
argument: 程序的PID
- job
請參考:http://blog.csdn.net/qpwyj/article/details/45530867
[niesh@niesh ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 191616 6796 ? Ss 01:18 0:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 01:18 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 01:18 0:00 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 01:18 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 01:18 0:00 [rcu_bh]
- USER:該程序屬于那個使用者賬号
- PID :該程序的程序ID号
- %CPU:該程序使用掉的 CPU 資源百分比
- %MEM:該程序所占用的實體記憶體百分比
- VSZ :該程序使用掉的虛拟記憶體量 (Kbytes)
- RSS :該程序占用的固定的記憶體量 (Kbytes)
- TTY :該程序是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,pts/n表示為由網絡連接配接進主機的程式
- STAT:該程式目前的狀态,主要的狀态有:
R :該程式目前正在運作,或者是可被運作
S :該程式目前正在睡眠當中但可被某些訊号(signal) 喚醒
T :該程式目前正在偵測或者是停止了
Z :該程式應該已經終止,但是其父程式卻無法正常的終止他,造成 zombie (疆屍) 程式的狀态
- START:該程序被觸發啟動的時間;
- TIME :該程序實際使用 CPU 運作的時間。
- COMMAND:該程式的實際指令為什麼?