六吊圾、常用基本命令
7.1幫助命令
7.1.1 man獲得幫助信息
1.基本語法
man [命令或配置文件] (功能描述:獲得幫助信息)
2.顯示說明
表1-6
信息功能
NAME命令的名稱和單行描述
SYNOPSIS怎樣使用命令
DESCRIPTION命令功能的深入討論
EXAMPLES ?怎樣使用命令的例子
SEE ALSO相關(guān)主題(通常是手冊頁)
3.案例實(shí)操
(1)查看ls命令的幫助信息
[root@wwy ~]# man ls
7.1.2 help獲得shell內(nèi)置命令的幫助信息
1.基本語法
help命令 (功能描述:獲得shell內(nèi)置命令的幫助信息)
2.案例實(shí)操
(1)查看cd命令的幫助信息
[root@wwy ~]# help cd
7.1.3常用快捷鍵
表1-7常用快捷鍵
常用快捷鍵功能
ctrl + c停止進(jìn)程
ctrl+l清屏硼讽;徹底清屏是:reset
ctrl + q退出
善于用tab鍵提示(更重要的是可以防止敲錯)
上下鍵查找執(zhí)行過的命令
ctrl +altlinux和Windows之間切換
7.2文件目錄類
7.2.1 pwd顯示當(dāng)前工作目錄的絕對路徑
pwd: print working directory打印工作目錄
1.基本語法
pwd (功能描述:顯示當(dāng)前工作目錄的絕對路徑)
2.案例實(shí)操
(1)顯示當(dāng)前工作目錄的絕對路徑
[root@wwy ~]# pwd
/root
7.2.2 ls列出目錄的內(nèi)容
ls:list列出目錄內(nèi)容
[if !supportLists]1.?[endif]基本語法
ls?[選項]?[目錄或是文件]
2.選項說明
表1-8選項說明
選項功能
-a全部的文件,連同隱藏檔( 開頭為 . 的文件) 一起列出來(常用)
-l長數(shù)據(jù)串列出撩轰,包含文件的屬性與權(quán)限等等數(shù)據(jù);(常用)
-h人性化顯示
3.顯示說明
每行列出的信息依次是:文件類型與權(quán)限 鏈接數(shù) 文件屬主 文件屬組 文件大小用byte來表示 建立或最近修改的時間 名字?
4.案例實(shí)操
(1)查看當(dāng)前目錄的所有內(nèi)容信息
[root@wwy Desktop]# ls -al
total 8
drwxr-xr-x. ?2 root root 4096 Nov 24 13:02 .
dr-xr-x---. 23 root root 4096 Nov 24 08:37 ..
-rw-r--r--. ?1 root root ???0 Nov 24 13:02 01.py
7.2.3 cd切換目錄
cd:Change Directory切換路徑
1.基本語法
cd ?[參數(shù)]
2.參數(shù)說明
表1-9參數(shù)說明
參數(shù)功能
cd絕對路徑切換路徑
cd相對路徑切換路徑
cd ~或者cd回到自己的家目錄
cd -回到上一次所在目錄
cd ..回到當(dāng)前目錄的上一級目錄
cd -P跳轉(zhuǎn)到實(shí)際物理路徑,而非快捷方式路徑
3.案例實(shí)操
(1)使用絕對路徑切換到root目錄
[root@wwy Desktop]# cd /root/
(2)使用相對路徑切換到“公共的”目錄
[root@wwy ~]# cd Public/
(3)表示回到自己的家目錄,亦即是 /root 這個目錄
[root@wwy Public]# cd ~
(4)cd- 回到上一次所在目錄
[root@wwy ~]# cd -
(5)表示回到當(dāng)前目錄的上一級目錄冗澈,亦即是 “/root/公共的”的上一級目錄的意思;
[root@wwy Public]# cd ..
7.2.4 mkdir創(chuàng)建一個新的目錄
mkdir:Make directory建立目錄
1.基本語法
mkdir [選項]要創(chuàng)建的目錄
2.選項說明
表1-10選項說明
選項功能
-p創(chuàng)建多層目錄
3.案例實(shí)操
(1)創(chuàng)建一個目錄
[root@wwy ~]# mkdir xiyou
[root@wwy ~]# mkdir xiyou/mingjie
(2)創(chuàng)建一個多級目錄
[root@wwy ~]# mkdir -p xiyou/dssz/meihouwang
7.2.5 rmdir刪除一個空的目錄
rmdir:Remove directory移動目錄
1.基本語法:
rmdir要刪除的空目錄
2.案例實(shí)操
(1)刪除一個空的文件夾
[root@wwy ~]# rmdir xiyou/dssz/meihouwang/
7.2.6 touch創(chuàng)建空文件
1.基本語法
touch文件名稱
2.案例實(shí)操
[root@wwy ~]# touch xiyou/dssz/sunwukong.txt
7.2.7cp復(fù)制文件或目錄
1.基本語法
cp [選項] source dest?(功能描述:復(fù)制source文件到dest)
2.選項說明
表1-11選項說明
選項功能
-r遞歸復(fù)制整個文件夾
3.參數(shù)說明
表1-12參數(shù)說明
參數(shù)功能
source源文件
dest目標(biāo)文件
4.經(jīng)驗技巧
強(qiáng)制覆蓋不提示的方法:\cp
5.案例實(shí)操
(1)復(fù)制文件
[root@wwy ~]# cp xiyou/dssz/sunwukong.txt xiyou/mingjie/
(2)遞歸復(fù)制整個文件夾
[root@wwy ~]# cp -r xiyou/dssz/ ./
7.2.8rm移除文件或目錄
1.基本語法
rm [選項] deleteFile (功能描述:遞歸刪除目錄中所有內(nèi)容)
2.選項說明
表1-13選項說明
選項功能
-r遞歸刪除目錄中所有內(nèi)容
-f強(qiáng)制執(zhí)行刪除操作陋葡,而不提示用于進(jìn)行確認(rèn)亚亲。
-v顯示指令的詳細(xì)執(zhí)行過程
3.案例實(shí)操
(1)刪除目錄中的內(nèi)容
[root@wwy ~]# rm -f xiyou/mingjie/sunwukong.txt
(2)遞歸刪除目錄中所有內(nèi)容
[root@wwy ~]# rm -rf dssz/
7.2.9 mv移動文件與目錄或重命名
1.基本語法
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移動文件)
2.案例實(shí)操
[root@wwy ~]# mv xiyou/dssz/sunwukong.txt xiyou/dssz/houge.txt
(2)移動文件
[root@wwy ~]# mv xiyou/dssz/houge.txt ./
7.2.10 cat查看文件內(nèi)容
查看文件內(nèi)容,從第一行開始顯示腐缤。
1.基本語法
cat ?[選項] 要查看的文件
2.選項說明
表1-14
選項功能描述
-n顯示所有行的行號朵栖,包括空行。
3.經(jīng)驗技巧
一般查看比較小的文件柴梆,一屏幕能顯示全的陨溅。
4.案例實(shí)操
(1)查看文件內(nèi)容并顯示行號
[root@wwy ~]# cat -n houge.txt
7.2.11 more文件內(nèi)容分屏查看器
more指令是一個基于VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容绍在。more指令中內(nèi)置了若干快捷鍵门扇,詳見操作說明雹有。
1.基本語法
more要查看的文件
2.操作說明
表1-15操作說明
操作功能說明
空白鍵(space)代表向下翻一頁;
Enter代表向下翻『一行』臼寄;
q代表立刻離開more 霸奕,不再顯示該文件內(nèi)容。
Ctrl+F向下滾動一屏
Ctrl+B返回上一屏
=輸出當(dāng)前行的行號
:f輸出文件名和當(dāng)前行的行號
3.案例實(shí)操
(1)采用more查看文件
[root@wwy?~]# more smartd.conf
7.2.12 less分屏顯示文件內(nèi)容
less指令用來分屏查看文件內(nèi)容吉拳,它的功能與more指令類似质帅,但是比more指令更加強(qiáng)大,支持各種顯示終端留攒。less指令在顯示文件內(nèi)容時煤惩,并不是一次將整個文件加載之后才顯示,而是根據(jù)顯示需要加載內(nèi)容炼邀,對于顯示大型文件具有較高的效率魄揉。
1.基本語法
less要查看的文件
2.操作說明
表1-16操作說明
操作功能說明
空白鍵向下翻動一頁;
[pagedown]向下翻動一頁
[pageup]向上翻動一頁拭宁;
/字串向下搜尋『字串』的功能洛退;n:向下查找;N:向上查找杰标;
?字串向上搜尋『字串』的功能兵怯;n:向上查找;N:向下查找腔剂;
q ?離開less 這個程序媒区;
4.案例實(shí)操
(1)采用less查看文件
[root@wwy~]# less smartd.conf
7.2.13?echo
echo輸出內(nèi)容到控制臺
[if !supportLists]1.?[endif]基本語法
echo [選項] [輸出內(nèi)容]
選項:
-e: ?支持反斜線控制的字符轉(zhuǎn)換
控制字符 ?作用
\\ ?輸出\本身
\n ?換行符
\t ?制表符,也就是Tab鍵
[if !supportLists]2.?[endif]案例實(shí)操
[root@wwy ~]# echo "hello\tworld"
hello\tworld
[root@wwy ~]# echo -e "hello\tworld"
hello ??world
7.2.14head顯示文件頭部內(nèi)容
head用于顯示文件的開頭部分內(nèi)容桶蝎,默認(rèn)情況下head指令顯示文件的前10行內(nèi)容驻仅。
[if !supportLists]1.?[endif]基本語法
head 文件 ??????(功能描述:查看文件頭10行內(nèi)容)
head -n 5文件(功能描述:查看文件頭5行內(nèi)容,5可以是任意行數(shù))
2.選項說明
表1-18
選項功能
-n?<行數(shù)>指定顯示頭部內(nèi)容的行數(shù)
3.案例實(shí)操
(1)查看文件的頭2行
[root@wwy ~]# head -n 2 smartd.conf
7.2.15tail輸出文件尾部內(nèi)容
tail用于輸出文件中尾部的內(nèi)容登渣,默認(rèn)情況下tail指令顯示文件的后10行內(nèi)容噪服。
1. 基本語法
(1)tail ?文件 (功能描述:查看文件后10行內(nèi)容)
(2)tail ?-n5文件 (功能描述:查看文件后5行內(nèi)容,5可以是任意行數(shù))
(3)tail ?-f文件 (功能描述:實(shí)時追蹤該文檔的所有更新)
2. 選項說明
表1-19
選項功能
-n<行數(shù)>輸出文件尾部n行內(nèi)容
-f顯示文件最新追加的內(nèi)容胜茧,監(jiān)視文件變化
3.案例實(shí)操
(1)查看文件頭1行內(nèi)容
[root@wwy ~]# tail -n 1 smartd.conf
(2)實(shí)時追蹤該檔的所有更新
[root@wwy ~]# tail -f houge.txt
7.2.16 >?覆蓋和>>追加(重定向)
1.基本語法
(1)ll>文件(功能描述:列表的內(nèi)容寫入文件a.txt中(覆蓋寫))
(2)ll >>文件(功能描述:列表的內(nèi)容追加到文件aa.txt的末尾)
(3)cat文件1 > 文件2 (功能描述:將文件1的內(nèi)容覆蓋到文件2)
(4)echo “內(nèi)容”>>文件
2.案例實(shí)操
(1)將ls查看信息寫入到文件中
[root@wwy ~]# ls -l>houge.txt
(2)將ls查看信息追加到文件中
[root@wwy ~]# ls -l>>houge.txt
(3)采用echo將hello單詞追加到文件中
[root@wwy ~]# echo hello>>houge.txt
7.2.17 ln軟鏈接
軟鏈接也成為符號鏈接粘优,類似于windows里的快捷方式,有自己的數(shù)據(jù)塊呻顽,主要存放了鏈接其他文件的路徑休涤。
1.基本語法
ln -s [原文件或目錄] [軟鏈接名] (功能描述:給原文件創(chuàng)建一個軟鏈接)
2.經(jīng)驗技巧
刪除軟鏈接:rm -rf軟鏈接名吞杭,而不是rm -rf軟鏈接名/
查詢:通過ll就可以查看疾牲,列表屬性第1位是l乍丈,尾部會有位置指向。
3.案例實(shí)操
(1)創(chuàng)建軟連接
[root@wwy ~]# mv houge.txt xiyou/dssz/
[root@wwy ~]# ln -s xiyou/dssz/houge.txt ./houzi
[root@wwy ~]# ll
lrwxrwxrwx. 1 root ???root ?????20 6月 ?17 12:56?houzi -> xiyou/dssz/houge.txt
(2)刪除軟連接
[root@wwy ~]# rm -rf houzi
(3)進(jìn)入軟連接實(shí)際物理路徑
[root@wwy ~]# ln -s xiyou/dssz/ ./dssz
[root@wwy ~]# cd -P dssz/
7.2.18 history查看已經(jīng)執(zhí)行過歷史命令
1.基本語法
history (功能描述:查看已經(jīng)執(zhí)行過歷史命令)
2.案例實(shí)操
(1)查看已經(jīng)執(zhí)行過的歷史命令
[root@wwy ~]# history
7.3時間日期類
1.基本語法
date [OPTION]... [+FORMAT]
2.選項說明
表1-20
選項功能
-d<時間字符串>顯示指定的“時間字符串”表示的時間喉前,而非當(dāng)前時間
-s<日期時間>設(shè)置系統(tǒng)日期時間
3.參數(shù)說明
表1-21
參數(shù)功能
<+日期時間格式>指定顯示時使用的日期時間格式
7.3.1 date顯示當(dāng)前時間
1.基本語法
(1)date (功能描述:顯示當(dāng)前時間)
(2)date +%Y (功能描述:顯示當(dāng)前年份)
(3)date +%m (功能描述:顯示當(dāng)前月份)
(4)date +%d (功能描述:顯示當(dāng)前是哪一天)
(5)date "+%Y-%m-%d %H:%M:%S" (功能描述:顯示年月日時分秒)
2.案例實(shí)操
(1)顯示當(dāng)前時間信息
[root@wwy ~]# date
Sun Nov 24 14:06:21 PST 2019
(2)顯示當(dāng)前時間年月日
[root@wwy ~]# date +%Y%m%d
20191124
(3)顯示當(dāng)前時間年月日時分秒
[root@wwy ~]# date "+%Y-%m-%d %H:%M:%S"
2019-11-24 14:07:13
7.3.2 date顯示非當(dāng)前時間
1.基本語法
(1)date -d '1 days ago' (功能描述:顯示前一天時間)
(2)date -d '-1 days ago' (功能描述:顯示明天時間)
2.案例實(shí)操
[root@wwy ~]# date -d '1 days ago'
Sat Nov 23 14:08:21 PST 2019
(2)顯示明天時間
[root@wwy ~]# date -d '-1 days ago'
Mon Nov 25 14:08:45 PST 2019
7.3.3 date設(shè)置系統(tǒng)時間
1.基本語法
date -s字符串時間
2.案例實(shí)操
(1)設(shè)置系統(tǒng)當(dāng)前時間
[root@wwy ~]# date -s "2017-06-19 20:52:18"
Mon Jun 19 20:52:18 PDT 2017
7.3.4 cal查看日歷
1.基本語法
cal [選項] (功能描述:不加選項没酣,顯示本月日歷)
2.選項說明
表1-22
選項功能
具體某一年顯示這一年的日歷
3.案例實(shí)操
(1)查看當(dāng)前月的日歷
[root@wwy ~]# cal
??????June 2017 ????
Su Mo Tu We Th Fr Sa
?????????????1 ?2 ?3
?4 ?5 ?6 ?7 ?8 ?9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
(2)查看2017年的日歷
[root@wwy ~]# cal 2017
7.4用戶管理命令
7.4.1 useradd添加新用戶
1.基本語法
useradd用戶名 (功能描述:添加新用戶)
useradd -g組名 用戶名 (功能描述:添加新用戶到某個組)
2.案例實(shí)操
(1)添加一個用戶
[root@wwy ~]# useradd tangseng
[root@wwy ~]# ll /home/
total 8
drwx------. ?4 tangseng tangseng 4096 Jun 19 20:56 tangseng
drwx------. 24 wwy ?????wwy ?????4096 Nov 22 ?2019 wwy
7.4.2 passwd設(shè)置用戶密碼
1.基本語法
passwd用戶名 (功能描述:設(shè)置用戶密碼)
2.案例實(shí)操
(1)設(shè)置用戶的密碼
[root@wwy ~]# passwd tangseng
7.4.3 id?查看用戶是否存在
1.基本語法
id用戶名
2.案例實(shí)操
(1)查看用戶是否存在
[root@wwy ~]# id tangseng
uid=501(tangseng) gid=501(tangseng) groups=501(tangseng)
7.4.4cat ?/etc/passwd查看創(chuàng)建了哪些用戶
1)基本語法
[root@wwy ~]# cat /etc/passwd
7.4.5su切換用戶
su: swith user切換用戶
1.基本語法
su用戶名稱 ??(功能描述:切換用戶王财,只能獲得用戶的執(zhí)行權(quán)限,不能獲得環(huán)境變量)
su -用戶名稱 (功能描述:切換到用戶并獲得該用戶的環(huán)境變量及執(zhí)行權(quán)限)
2.案例實(shí)操
(1)切換用戶
[root@wwy?~]#su tangseng
[root@wwy?~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@wwy?~]#exit
[root@wwy?~]#su - tangseng
[root@wwy?~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin
7.4.6 userdel刪除用戶
1.基本語法
(1)userdel ?用戶名 (功能描述:刪除用戶但保存用戶主目錄)
(2)userdel -r 用戶名 (功能描述:用戶和用戶主目錄裕便,都刪除)
2.選項說明
表1-23
選項功能
-r刪除用戶的同時绒净,刪除與用戶相關(guān)的所有文件。
3.案例實(shí)操
(1)刪除用戶但保存用戶主目錄
[root@wwy ~]#userdel tangseng
[root@wwy ~]#ll /home/
(2)刪除用戶和用戶主目錄偿衰,都刪除
[root@wwy ~]#useradd zhubajie
[root@wwy ~]#ll /home/
[root@wwy ~]#userdel -r zhubajie
[root@wwy ~]#ll /home/
7.4.7 who查看登錄用戶信息
1.基本語法
(1)whoami (功能描述:顯示自身用戶名稱)
(2)who am i(功能描述:顯示登錄時用戶的用戶名)
2.案例實(shí)操
(1)顯示自身用戶名稱
[root@wwy opt]# whoami
(2)顯示登錄用戶的用戶名
[root@wwy opt]# who am i
7.4.8?sudo?設(shè)置普通用戶具有root權(quán)限
1.添加wengwenyu用戶挂疆,并對其設(shè)置密碼。
[root@wwy ~]#useradd wengwenyu
[root@wwy ~]#passwd wengwenyu
2.修改配置文件
[root@wwy ~]#vi /etc/sudoers
修改/etc/sudoers文件下翎,找到下面一行(91行)缤言,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ???ALL=(ALL) ????ALL
wengwenyu ??ALL=(ALL) ????ALL
或者配置成采用sudo命令時漏设,不需要輸入密碼
## Allow root to run any commands anywhere
root ?????ALL=(ALL) ????ALL
wengwenyu ??ALL=(ALL) ????NOPASSWD:ALL
修改完畢墨闲,現(xiàn)在可以用wengwenyu帳號登錄今妄,然后用命令 sudo郑口,即可獲得root權(quán)限進(jìn)行操作。
3.案例實(shí)操
(1)用普通用戶在/opt目錄下創(chuàng)建一個文件夾
[wengwenyu@wwy opt]$ sudo mkdir module
[root@wwy opt]# chown wengwenyu:wengwenyu module/
7.4.9 usermod修改用戶
1.基本語法
usermod -g用戶組 用戶名
2.選項說明
表1-24
選項功能
-g修改用戶的初始登錄組盾鳞,給定的組必須存在
3.案例實(shí)操
(1)將用戶加入到用戶組
[root@wwy opt]#usermod -g root zhubajie
7.5用戶組管理命令
每個用戶都有一個用戶組犬性,系統(tǒng)可以對一個用戶組中的所有用戶進(jìn)行集中管理。不同Linux系統(tǒng)對用戶組的規(guī)定有所不同腾仅,
如Linux下的用戶屬于與它同名的用戶組乒裆,這個用戶組在創(chuàng)建用戶時同時創(chuàng)建。
用戶組的管理涉及用戶組的添加推励、刪除和修改鹤耍。組的增加、刪除和修改實(shí)際上就是對/etc/group文件的更新验辞。
7.5.1 groupadd新增組
1.基本語法
groupadd組名
2.案例實(shí)操
(1)添加一個xitianqujing組
[root@wwy opt]#groupadd xitianqujing
7.5.2 groupdel刪除組
1.基本語法
groupdel組名
2.案例實(shí)操
(1)刪除xitianqujing組
[root@wwy opt]# groupdel xitianqujing
7.5.3 groupmod修改組
1.基本語法
groupmod -n新組名 老組名
2.選項說明
表1-25
選項功能描述
-n<新組名>指定工作組的新組名
3.案例實(shí)操
(1)修改wengwenyu組名稱為wengwenyu1
[root@wwy ~]#groupadd xitianqujing
[root@wwy ~]# groupmod -n xitian xitianqujing
7.5.4 cat ?/etc/group查看創(chuàng)建了哪些組
1.基本操作
[root@wwy wengwenyu]# cat ?/etc/group
7.6文件權(quán)限類
7.6.1文件屬性
Linux系統(tǒng)是一種典型的多用戶系統(tǒng)稿黄,不同的用戶處于不同的地位,擁有不同的權(quán)限跌造。為了保護(hù)系統(tǒng)的安全性杆怕,Linux系統(tǒng)對不同的用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同的規(guī)定。在Linux中我們可以使用ll或者ls -l命令來顯示一個文件的屬性以及文件所屬的用戶和組壳贪。
1.從左到右的10個字符表示陵珍,如圖1-154所示:
圖1-154?文件屬性
如果沒有權(quán)限,就會出現(xiàn)減號[ - ]而已违施。從左至右用0-9這些數(shù)字來表示:
(1)0首位表示類型
在Linux中第一個字符代表這個文件是目錄互纯、文件或鏈接文件等等
-代表文件
d代表目錄
l鏈接文檔(link file);
(2)第1-3位確定屬主(該文件的所有者)擁有該文件的權(quán)限磕蒲。---User
(3)第4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限留潦,---Group
(4)第7-9位確定其他用戶擁有該文件的權(quán)限 ---Other
2.rxw作用文件和目錄的不同解釋
(1)作用到文件:
[ r ]代表可讀(read): 可以讀取收苏,查看
[ w ]代表可寫(write): 可以修改,但是不代表可以刪除該文件愤兵,刪除一個文件的前提條件是對該文件所在的目錄有寫權(quán)限鹿霸,才能刪除該文件.
[ x ]代表可執(zhí)行(execute):可以被系統(tǒng)執(zhí)行
(2)作用到目錄:
[ r ]代表可讀(read): 可以讀取,ls查看目錄內(nèi)容
[ w ]代表可寫(write): 可以修改秆乳,目錄內(nèi)創(chuàng)建+刪除+重命名目錄
[ x ]代表可執(zhí)行(execute):可以進(jìn)入該目錄
3.案例實(shí)操
[root@wwy ~]# ll
總用量104
-rw-------. 1 root root ?1248 1月 ??8 17:36 anaconda-ks.cfg
drwxr-xr-x. 2 root root ?4096 1月 ?12 14:02 dssz
lrwxrwxrwx. 1 root root ???20 1月 ?12 14:32 houzi -> xiyou/dssz/houge.tx
文件基本屬性介紹懦鼠,如圖1-155所示:
圖1-155?文件基本屬性介紹
(1)如果查看到是文件:鏈接數(shù)指的是硬鏈接個數(shù)。創(chuàng)建硬鏈接方法
ln [原文件] [目標(biāo)文件] ?
[root@wwy ~]# ln xiyou/dssz/houge.txt ./hg.txt
(2)如果查看的是文件夾:鏈接數(shù)指的是子文件夾個數(shù)屹堰。
[root@wwy ~]# ls -al xiyou/
總用量16
drwxr-xr-x. ?4 root root 4096 1月 ?12 14:00 .
dr-xr-x---. 29 root root 4096 1月 ?12 14:32 ..
drwxr-xr-x. ?2 root root 4096 1月 ?12 14:30 dssz
drwxr-xr-x. ?2 root root 4096 1月 ?12 14:04 mingjie
7.6.2 chmod改變權(quán)限
1.基本語法
如圖1-156所示
圖1-156?基本語法
第一種方式變更權(quán)限
chmod ?[{ugoa}{+-=}{rwx}]文件或目錄
第二種方式變更權(quán)限
chmod ?[mode=421 ] ?[文件或目錄]
2.經(jīng)驗技巧
u:所有者 ?g:所有組 ?o:其他人 ?a:所有人(u肛冶、g、o的總和)
r=4 w=2 x=1 ???????rwx=4+2+1=7
3.案例實(shí)操
(1)修改文件使其所屬主用戶具有執(zhí)行權(quán)限
[root@wwy ~]# cp xiyou/dssz/houge.txt ./
[root@wwy ~]# chmod u+x houge.txt
(2)修改文件使其所屬組用戶具有執(zhí)行權(quán)限
[root@wwy ~]# chmod g+x houge.txt
(3)修改文件所屬主用戶執(zhí)行權(quán)限,并使其他用戶具有執(zhí)行權(quán)限
[root@wwy ~]# chmod u-x,o+x houge.txt
(4)采用數(shù)字的方式扯键,設(shè)置文件所有者睦袖、所屬組、其他用戶都具有可讀可寫可執(zhí)行權(quán)限荣刑。
[root@wwy ~]# chmod 777 houge.txt
(5)修改整個文件夾里面的所有文件的所有者馅笙、所屬組、其他用戶都具有可讀可寫可執(zhí)行權(quán)限厉亏。
[root@wwy ~]# chmod -R 777 xiyou/
7.6.3 chown改變所有者
1.基本語法
chown [選項] [最終用戶] [文件或目錄] (功能描述:改變文件或者目錄的所有者)
2.選項說明
表1-26
選項功能
-R遞歸操作
3.案例實(shí)操
(1)修改文件所有者
[root@wwy ~]# chown wengwenyu houge.txt
[root@wwy ~]# ls -al
-rwxrwxrwx. 1 wengwenyu root 551 5月 ?23 13:02 houge.txt
(2)遞歸改變文件所有者和所有組
[root@wwy xiyou]# ll
drwxrwxrwx. 2 root root 4096 9月 ??3 21:20 xiyou
[root@wwy xiyou]# chown -R wengwenyu:wengwenyu xiyou/
[root@wwy xiyou]# ll
drwxrwxrwx. 2 wengwenyu wengwenyu 4096 9月 ??3 21:20 xiyou
7.6.4 chgrp改變所屬組
1.基本語法
chgrp [最終用戶組] [文件或目錄] (功能描述:改變文件或者目錄的所屬組)
2.案例實(shí)操
(1)修改文件的所屬組
[root@wwy ~]# chgrp root houge.txt
[root@wwy ~]# ls -al
-rwxrwxrwx. 1 wengwenyu root 551 5月 ?23 13:02 houge.txt
7.7搜索查找類
7.7.1 find查找文件或者目錄
find指令將從指定目錄向下遞歸地遍歷其各個子目錄董习,將滿足條件的文件顯示在終端。
1.基本語法
find [搜索范圍] [選項]
2.選項說明
表1-27
選項功能
-name<查詢方式>按照指定的文件名查找模式查找文件
-user<用戶名>查找屬于指定用戶名所有文件
-size<文件大小>按照指定的文件大小查找文件爱只。
3.案例實(shí)操
(1)按文件名:根據(jù)名稱查找/目錄下的filename.txt文件皿淋。
[root@wwy ~]# find xiyou/ -name “*.txt”
(2)按擁有者:查找/opt目錄下,用戶名稱為-user的文件
[root@wwy ~]# find xiyou/ -user wengwenyu
(3)按文件大刑袷浴:在/home目錄下查找大于200m的文件(+n 大于 ?-n小于 ??n等于)
[root@wwy ~]find /home -size +204800
7.7.2 grep過濾查找及“|”管道符
管道符窝趣,“|”,表示將前一個命令的處理結(jié)果輸出傳遞給后面的命令處理
1.基本語法
grep選項 查找內(nèi)容 源文件
2.選項說明
表1-28
選項功能
-n顯示匹配行及行號训柴。
3.案例實(shí)操
(1)查找某文件在第幾行
[root@wwy ~]# ls | grep -n test
7.7.3?which?查找命令
查找命令在那個目錄下
1.基本語法
which 命令
2.案例實(shí)操
which?ll
7.8壓縮和解壓類
7.8.1 gzip/gunzip壓縮
1.基本語法
gzip文件 (功能描述:壓縮文件哑舒,只能將文件壓縮為*.gz文件)
gunzip文件.gz (功能描述:解壓縮文件命令)
2.經(jīng)驗技巧
(1)只能壓縮文件不能壓縮目錄
(2)不保留原來的文件
3.案例實(shí)操
(1)gzip壓縮
[root@wwy ~]# ls
test.java
[root@wwy ~]# gzip houge.txt
[root@wwy ~]# ls
houge.txt.gz
(2)gunzip解壓縮文件
[root@wwy ~]# gunzip houge.txt.gz
[root@wwy ~]# ls
houge.txt
7.8.2 zip/unzip壓縮
1.基本語法
zip ?[選項] XXX.zip ?將要壓縮的內(nèi)容 (功能描述:壓縮文件和目錄的命令)
unzip [選項] XXX.zip (功能描述:解壓縮文件)
2.選項說明
表1-29
zip選項功能
-r壓縮目錄
表1-30
unzip選項功能
-d<目錄>指定解壓后文件的存放目錄
3.經(jīng)驗技巧
zip壓縮命令在window/linux都通用,可以壓縮目錄且保留源文件畦粮。
4.案例實(shí)操
(1)壓縮 1.txt 和2.txt散址,壓縮后的名稱為mypackage.zip
[root@wwy opt]# touch bailongma.txt
[root@wwy ~]# zip houma.zip houge.txt bailongma.txt
??adding: houge.txt (stored 0%)
??adding: bailongma.txt (stored 0%)
[root@wwy opt]# ls
houge.txt bailongma.txt houma.zip
(2)解壓 mypackage.zip
[root@wwy ~]# unzip houma.zip
Archive: ?houma.zip
?extracting: houge.txt ??????????????
?extracting: bailongma.txt ??????
[root@wwy ~]# ls
houge.txt bailongma.txt houma.zip
(3)解壓mypackage.zip到指定目錄-d
[root@wwy ~]# unzip houma.zip -d /opt
[root@wwy ~]# ls /opt/
7.8.3 tar打包
1.基本語法
tar ?[選項] ?XXX.tar.gz ?將要打包進(jìn)去的內(nèi)容 (功能描述:打包目錄,壓縮后的文件格式.tar.gz)
2.選項說明
表1-31
選項功能
-z打包同時壓縮
-c產(chǎn)生.tar打包文件
-v顯示詳細(xì)信息
-f指定壓縮后的文件名
-x解包.tar文件
3.案例實(shí)操
(1)壓縮多個文件
[root@wwy opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt
houge.txt
bailongma.txt
[root@wwy opt]# ls
houma.tar.gz houge.txt bailongma.txt
(2)壓縮目錄
[root@wwy ~]# tar -zcvf xiyou.tar.gz xiyou/
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt
(3)解壓到當(dāng)前目錄
[root@wwy ~]# tar?-zxvfhouma.tar.gz
(4)解壓到指定目錄
[root@wwy ~]# tar -zxvf xiyou.tar.gz?-C/opt
[root@wwy ~]# ll /opt/
7.9磁盤分區(qū)類
7.9.1 df查看磁盤空間使用情況
df: disk free空余硬盤
1.基本語法
df選項 (功能描述:列出文件系統(tǒng)的整體磁盤使用量宣赔,檢查文件系統(tǒng)的磁盤空間占用情況)
2.選項說明
表1-32
選項功能
-h以人們較易閱讀的GBytes, MBytes, KBytes 等格式自行顯示预麸;
3.案例實(shí)操
(1)查看磁盤使用情況
[root@wwy ~]# df -h
Filesystem ?????Size ?Used Avail Use% Mounted on
/dev/sda2 ???????15G ?3.5G ??11G ?26% /
tmpfs ??????????939M ?224K ?939M ??1% /dev/shm
/dev/sda1 ??????190M ??39M ?142M ?22% /boot
7.9.2 fdisk查看分區(qū)
1.基本語法
fdisk -l (功能描述:查看磁盤分區(qū)詳情)
2.選項說明
表1-33
選項功能
-l顯示所有硬盤的分區(qū)列表
3.經(jīng)驗技巧
該命令必須在root用戶下才能使用
4.功能說明
(1)Linux分區(qū)
Device:分區(qū)序列
Boot:引導(dǎo)
Start:從X磁柱開始
End:到Y(jié)磁柱結(jié)束
Blocks:容量
Id:分區(qū)類型ID
System:分區(qū)類型
(2)Win7分區(qū),如圖1-157所示
圖1-157??Win7分區(qū)
5.案例實(shí)操
(1)查看系統(tǒng)分區(qū)情況
[root@wwy /]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e654
???Device Boot ?????Start ????????End ?????Blocks ??Id ?System
/dev/sda1 ??* ??????????1 ?????????26 ?????204800 ??83 ?Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 ?????????????26 ???????1332 ???10485760 ??83 ?Linux
/dev/sda3 ???????????1332 ???????1593 ????2097152 ??82 ?Linux swap / Solaris
7.10進(jìn)程線程類
進(jìn)程是正在執(zhí)行的一個程序或命令儒将,每一個進(jìn)程都是一個運(yùn)行的實(shí)體吏祸,都有自己的地址空間,并占用一定的系統(tǒng)資源钩蚊。
定義與區(qū)別
進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行活動贡翘,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位(可以理解為進(jìn)程是可以獨(dú)立運(yùn)行的)
線程是進(jìn)程的一個實(shí)體蹈矮,是cpu調(diào)度和分派的基本單位,他是比進(jìn)程更小的能夠獨(dú)立運(yùn)行的基本單位鸣驱,線程自己基本上不擁有系統(tǒng)資源泛鸟,只擁有一點(diǎn)在運(yùn)行中必不可少的資源。一個線程可以創(chuàng)建撤銷另外一個線程踊东。(在1個進(jìn)程中可以有多個線程北滥,多個線程之間可以互相操作)
區(qū)別:?一個線程只能屬于一個進(jìn)程,而一個進(jìn)程可以擁有多個線程闸翅。線程是進(jìn)程工作中的最小單位再芋。一個進(jìn)程會分配一個地址空間,進(jìn)程與進(jìn)程之間不共享地址空間坚冀。即不共享內(nèi)存济赎。同一個進(jìn)程下的不同的多個線程,共享父進(jìn)程的地址空間记某。線程在執(zhí)行過程中司训,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步(中間件辙纬、消息隊列)豁遭。線程作為調(diào)度和分配的基本單位叭喜,進(jìn)程作為擁有資源的基本單位贺拣。
進(jìn)程與線程的優(yōu)缺點(diǎn)
進(jìn)程優(yōu)點(diǎn)
[if !supportLists]1.?[endif]每個進(jìn)程互相獨(dú)立、不影響主程序的穩(wěn)定性捂蕴,子進(jìn)程崩潰不影響其他進(jìn)程譬涡。
[if !supportLists]2.?[endif]通過增加CPU,就可以擴(kuò)充性能啥辨。
[if !supportLists]3.?[endif]可以盡量減少線程加鎖與解鎖的影響,極大的提高了性能涡匀。
進(jìn)程缺點(diǎn)
[if !supportLists]a)?[endif]邏輯控制復(fù)雜,需要和主程序交互溉知。
[if !supportLists]b)?[endif]多進(jìn)程調(diào)度開銷大陨瘩。
線程優(yōu)點(diǎn)
[if !supportLists]a)?[endif]程序邏輯和控制方式簡單
[if !supportLists]b)?[endif]所有線程可以直接共享內(nèi)存和變量等
[if !supportLists]c)?[endif]線程方式消耗的總資源比進(jìn)程方式少
線程缺點(diǎn)
[if !supportLists]1.?[endif]每個線程與主程序共用地址空間,最大內(nèi)存地址受限级乍。
[if !supportLists]2.?[endif]線程之間的同步和加鎖不易控制舌劳。
[if !supportLists]3.?[endif]一個線程的崩潰可能影響到整個程序的穩(wěn)定性。
?
7.10.1 ps?查看當(dāng)前系統(tǒng)進(jìn)程狀態(tài)
ps:process status進(jìn)程狀態(tài)
1.基本語法
ps aux | grep xxx (功能描述:查看系統(tǒng)中所有進(jìn)程)
ps -ef?| grep xxx(功能描述:可以查看子父進(jìn)程之間的關(guān)系)
2.選項說明
表1-35
選項功能
-a選擇所有進(jìn)程
-u顯示所有用戶的所有進(jìn)程
-x顯示沒有終端的進(jìn)程
3.功能說明
(1)ps aux顯示信息說明
USER:該進(jìn)程是由哪個用戶產(chǎn)生的
PID:進(jìn)程的ID號
%CPU:該進(jìn)程占用CPU資源的百分比玫荣,占用越高甚淡,進(jìn)程越耗費(fèi)資源;
%MEM:該進(jìn)程占用物理內(nèi)存的百分比捅厂,占用越高贯卦,進(jìn)程越耗費(fèi)資源资柔;
VSZ:該進(jìn)程占用虛擬內(nèi)存的大小,單位KB撵割;
RSS:該進(jìn)程占用實(shí)際物理內(nèi)存的大小贿堰,單位KB;
TTY:該進(jìn)程是在哪個終端中運(yùn)行的啡彬。其中tty1-tty7代表本地控制臺終端官边,tty1-tty6是本地的字符界面終端,tty7是圖形終端外遇。pts/0-255代表虛擬終端注簿。
STAT:進(jìn)程狀態(tài)。常見的狀態(tài)有:R:運(yùn)行跳仿、S:睡眠诡渴、T:停止?fàn)顟B(tài)、s:包含子進(jìn)程菲语、+:位于后臺
START:該進(jìn)程的啟動時間
TIME:該進(jìn)程占用CPU的運(yùn)算時間妄辩,注意不是系統(tǒng)時間
COMMAND:產(chǎn)生此進(jìn)程的命令名
(2)ps?-ef顯示信息說明
UID:用戶ID
PID:進(jìn)程ID
PPID:父進(jìn)程ID
C:CPU用于計算執(zhí)行優(yōu)先級的因子。數(shù)值越大山上,表明進(jìn)程是CPU密集型運(yùn)算眼耀,執(zhí)行優(yōu)先級會降低;數(shù)值越小佩憾,表明進(jìn)程是I/O密集型運(yùn)算哮伟,執(zhí)行優(yōu)先級會提高
STIME:進(jìn)程啟動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:啟動進(jìn)程所用的命令和參數(shù)
4.經(jīng)驗技巧
如果想查看進(jìn)程的CPU占用率和內(nèi)存占用率,可以使用aux;
如果想查看進(jìn)程的父進(jìn)程ID可以使用ef;
5.案例實(shí)操
[root@wwy datas]# ps aux
如圖1-161所示
圖1-161?查看進(jìn)程的CPU占用率和內(nèi)存占用率
[root@wwy datas]# ps -ef
如圖1-162所示
圖1-162??查看進(jìn)程的父進(jìn)程ID
7.10.2 kill終止進(jìn)程
1.基本語法
kill ?[選項]進(jìn)程號 (功能描述:通過進(jìn)程號殺死進(jìn)程)
killall進(jìn)程名稱 (功能描述:通過進(jìn)程名稱殺死進(jìn)程妄帘,也支持通配符楞黄,這在系統(tǒng)因負(fù)載過大而變得很慢時很有用)
2.選項說明
表1-36
選項功能
-9表示強(qiáng)迫進(jìn)程立即停止
3.案例實(shí)操
(1)殺死瀏覽器進(jìn)程
[root@wwy桌面]# kill -9 5102
(2)通過進(jìn)程名稱殺死進(jìn)程
[root@wwy桌面]# killall firefox
7.10.3 pstree查看進(jìn)程樹
1.基本語法
pstree [選項]
2.選項說明
表1-37
選項功能
-p顯示進(jìn)程的PID
-u顯示進(jìn)程的所屬用戶
3.案例實(shí)操
(1)顯示進(jìn)程pid
[root@wwy datas]# pstree -p
(2)顯示進(jìn)程所屬用戶
[root@wwy datas]# pstree -u
7.10.4 top查看系統(tǒng)健康狀態(tài)
能夠?qū)崟r監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),并且可以按照cup及內(nèi)存進(jìn)行排序
1.基本命令
top [選項]
2.選項說明
表1-38
選項功能
-d秒數(shù)指定top命令每隔幾秒更新。默認(rèn)是3秒在top命令的交互模式當(dāng)中可以執(zhí)行的命令:
-i使top不顯示任何閑置或者僵死進(jìn)程抡驼。
-p監(jiān)控指定的進(jìn)程鬼廓。當(dāng)監(jiān)控多個進(jìn)程時,進(jìn)程ID以逗號分隔。這個選項只能在命令行下使用
-h幫助
3.top任務(wù)區(qū)命令(操作說明)
表1-39
操作功能
P以CPU使用率排序致盟,默認(rèn)就是此項
M以內(nèi)存的使用率排序
N以PID排序
q退出top
z彩色/黑白顯示
4.查詢結(jié)果字段解釋
第一行信息為任務(wù)隊列信息
表1-40
內(nèi)容說明
12:26:46系統(tǒng)當(dāng)前時間
up 1 day, 13:32系統(tǒng)的運(yùn)行時間碎税,本機(jī)已經(jīng)運(yùn)行1天
13小時32分鐘
2 users當(dāng)前登錄了兩個用戶
load ?average: ?0.00, 0.00, 0.00系統(tǒng)在之前1分鐘,5分鐘馏锡,15分鐘的平均負(fù)載值雷蹂。一般認(rèn)為小于1時,負(fù)載較小眷篇。如果大于1萎河,系統(tǒng)已經(jīng)超出負(fù)荷。【特別說明:在單核CUP中l(wèi)oad ?average的值為1時表示滿負(fù)荷狀態(tài)虐杯。同理在多核CPU中滿負(fù)載的load ?average的值為1*CPU核數(shù)】假設(shè)我們有一個8核cup玛歌,load?average的值超過8時,說明是滿負(fù)荷了
第二行為進(jìn)程信息
表1-41
Tasks: ?95 total系統(tǒng)中的進(jìn)程總數(shù)
1 running正在運(yùn)行的進(jìn)程數(shù)
94 sleeping睡眠的進(jìn)程
0 stopped正在停止的進(jìn)程
0 zombie僵尸進(jìn)程擎椰。如果不是0支子,需要手工檢查僵尸進(jìn)程
第三行為CPU信息
表1-42
Cpu(s): ?0.1%us用戶模式占用的CPU百分比
0.1%sy系統(tǒng)模式占用的CPU百分比
0.0%ni改變過優(yōu)先級的用戶進(jìn)程占用的CPU百分比
99.7%id空閑CPU的CPU百分比
0.1%wa等待輸入/輸出的進(jìn)程的占用CPU百分比
0.0%hi硬中斷請求服務(wù)占用的CPU百分比
0.1%si軟中斷請求服務(wù)占用的CPU百分比
0.0%stst(Steal ?time)虛擬時間百分比。就是當(dāng)有虛擬機(jī)時达舒,虛擬CPU等待實(shí)際CPU的時間百分比值朋。
第四行為物理內(nèi)存信息
表1-43
Mem: ???625344k total物理內(nèi)存的總量,單位KB
571504k used已經(jīng)使用的物理內(nèi)存數(shù)量
53840k free空閑的物理內(nèi)存數(shù)量巩搏,我們使用的是虛擬機(jī)昨登,總共只分配了628MB內(nèi)存,所以只有53MB的空閑內(nèi)存了
65800k buffers作為緩沖的內(nèi)存數(shù)量
第五行為交換分區(qū)(swap)信息
表1-44
Swap: ??524280k total交換分區(qū)(虛擬內(nèi)存)的總大小
0k used已經(jīng)使用的交互分區(qū)的大小
524280k free空閑交換分區(qū)的大小
409280k cached作為緩存的交互分區(qū)的大小
5.案例實(shí)操
top -d 1
top -i
top -p 2575
執(zhí)行上述命令后贯底,可以按P丰辣、M、N對查詢出的進(jìn)程結(jié)果進(jìn)行排序禽捆。
7.10.5?vmstat
可以監(jiān)控操作系統(tǒng)的進(jìn)程狀態(tài)笙什、內(nèi)存、虛擬內(nèi)存胚想、磁盤IO琐凭、CPU的信息
?
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計)的縮寫,可對操作系統(tǒng)的虛擬內(nèi)存浊服、進(jìn)程统屈、CPU活動進(jìn)行監(jiān)控。他是對系統(tǒng)的整體情況進(jìn)行統(tǒng)計臼闻,不足之處是無法對某個進(jìn)程進(jìn)行深入分析鸿吆。vmstat 工具提供了一種低開銷的系統(tǒng)性能觀察方式。因為 vmstat 本身就是低開銷工具述呐,在非常高負(fù)荷的服務(wù)器上,需要查看并監(jiān)控系統(tǒng)的健康情況,在控制窗口還是能夠使用vmstat 輸出結(jié)果蕉毯。
1.?[endif]命令格式
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f] vmstat [-V]?
2.?[endif]命令參數(shù)說明
命令參數(shù)說明
-a顯示活躍和非活躍內(nèi)存
-f顯示從系統(tǒng)啟動至今的fork數(shù)量
-m顯示slabinfo
-n只在開始時顯示一次各字段名稱
-s顯示內(nèi)存相關(guān)統(tǒng)計信息以及多種系統(tǒng)活動數(shù)量
delay刷新時間間隔乓搬。如果不指定,只顯示一條結(jié)果
count刷新次數(shù)。如果不指定刷新次數(shù)代虾,但指定了刷新時間間隔进肯,這時刷新次數(shù)為無窮。
-d顯示磁盤相關(guān)統(tǒng)計信息棉磨。
-p顯示指定磁盤分區(qū)統(tǒng)計信息
-S使用指定單位顯示江掩。參數(shù)有k 、K 、m 环形、M 策泣,分別代表1000、1024抬吟、1000000萨咕、1048576字節(jié)(byte)。默認(rèn)單位為K(1024 bytes)
-V顯示vmstat版本信息火本。
3. 使用實(shí)例1:顯示虛擬內(nèi)存使用情況
字段說明
Procs(進(jìn)程)r運(yùn)行隊列中進(jìn)程數(shù)量
b等待IO的進(jìn)程數(shù)量
Memory(內(nèi)存)swpd使用虛擬內(nèi)存大小
free可用內(nèi)存大小
buff用作緩沖的內(nèi)存大小
cache用作緩存的內(nèi)存大小
Swapsi每秒從交換區(qū)寫到內(nèi)存的大小
so每秒寫入交換區(qū)的內(nèi)存大小
IO(現(xiàn)在的Linux版本塊的大小為1024bytes)
bi每秒讀取的塊數(shù)
bo每秒寫入的塊數(shù)
systemin每秒中斷數(shù)危队,包括時鐘中斷。
cs每秒上下文切換數(shù)
CPU以百分比表示
us用戶進(jìn)程執(zhí)行時間(user time)
sy系統(tǒng)進(jìn)程執(zhí)行時間(system time)
id空閑時間(包括IO等待時間),中央處理器的空閑時間钙畔。以百分比表示
wa等待IO時間
4. 使用實(shí)例2(常用):實(shí)現(xiàn)內(nèi)存茫陆、cpu的動態(tài)監(jiān)控 第一個參數(shù)是時間間隔 第二個參數(shù)是顯示多少次
物理內(nèi)存和虛擬內(nèi)存區(qū)別:【科普】
我們知道,直接從物理內(nèi)存讀寫數(shù)據(jù)要比從硬盤讀寫數(shù)據(jù)要快的多擎析,因此盅弛,我們希望所有數(shù)據(jù)的讀取和寫入都在內(nèi)存完成,而內(nèi)存是有限的叔锐,這樣就引出了物理內(nèi)存與虛擬內(nèi)存的概念挪鹏。物理內(nèi)存就是系統(tǒng)硬件提供的內(nèi)存大小,是真正的內(nèi)存愉烙,相對于物理內(nèi)存讨盒,在Linux下還有一個虛擬內(nèi)存的概念,虛擬內(nèi)存就是為了滿足物理內(nèi)存的不足而提出的策略步责,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存返顺,用作虛擬內(nèi)存的磁盤空間被稱為交換空間(Swap Space)。作為物理內(nèi)存的擴(kuò)展蔓肯,Linux會在物理內(nèi)存不足時遂鹊,使用交換分區(qū)的虛擬內(nèi)存,更詳細(xì)的說蔗包,就是內(nèi)核會將暫時不用的內(nèi)存塊信息寫到交換空間秉扑,這樣以來,物理內(nèi)存得到了釋放调限,這塊內(nèi)存就可以用于其它目的舟陆,當(dāng)需要用到原始的內(nèi)容時,這些信息會被重新從交換空間讀入物理內(nèi)存耻矮。linux的內(nèi)存管理采取的是分頁存取機(jī)制秦躯,為了保證物理內(nèi)存能得到充分的利用,內(nèi)核會在適當(dāng)?shù)臅r候?qū)⑽锢韮?nèi)存中不經(jīng)常使用的數(shù)據(jù)塊自動交換到虛擬內(nèi)存中裆装,而將經(jīng)常使用的信息保留到物理內(nèi)存踱承。
要深入了解linux內(nèi)存運(yùn)行機(jī)制倡缠,需要知道下面提到的幾個方面:首先,Linux系統(tǒng)會不時的進(jìn)行頁面交換操作茎活,以保持盡可能多的空閑物理內(nèi)存昙沦,即使并沒有什么事情需要內(nèi)存,Linux也會交換出暫時不用的內(nèi)存頁面妙色。這可以避免等待交換所需的時間桅滋。其次,linux進(jìn)行頁面交換是有條件的身辨,不是所有頁面在不用時都交換到虛擬內(nèi)存丐谋,linux內(nèi)核根據(jù)”最近最經(jīng)常使用“算法,僅僅將一些不經(jīng)常使用的頁面文件交換到虛擬內(nèi)存煌珊,有時我們會看到這么一個現(xiàn)象:linux物理內(nèi)存還有很多号俐,但是交換空間也使用了很多。其實(shí)定庵,這并不奇怪吏饿,例如,一個占用很大內(nèi)存的進(jìn)程運(yùn)行時蔬浙,需要耗費(fèi)很多內(nèi)存資源猪落,此時就會有一些不常用頁面文件被交換到虛擬內(nèi)存中,但后來這個占用很多內(nèi)存資源的進(jìn)程結(jié)束并釋放了很多內(nèi)存時畴博,剛才被交換出去的頁面文件并不會自動的交換進(jìn)物理內(nèi)存笨忌,除非有這個必要,那么此刻系統(tǒng)物理內(nèi)存就會空閑很多俱病,同時交換空間也在被使用官疲,就出現(xiàn)了剛才所說的現(xiàn)象了。關(guān)于這點(diǎn)亮隙,不用擔(dān)心什么途凫,只要知道是怎么一回事就可以了。
最后溢吻,交換空間的頁面在使用時會首先被交換到物理內(nèi)存维费,如果此時沒有足夠的物理內(nèi)存來容納這些頁面,它們又會被馬上交換出去煤裙,如此以來掩完,虛擬內(nèi)存中可能沒有足夠空間來存儲這些交換頁面,最終會導(dǎo)致linux出現(xiàn)假死機(jī)硼砰、服務(wù)異常等問題,linux雖然可以在一段時間內(nèi)自行恢復(fù)欣硼,但是恢復(fù)后的系統(tǒng)已經(jīng)基本不可用了题翰。因此,合理規(guī)劃和設(shè)計linux內(nèi)存的使用,是非常重要的豹障。
虛擬內(nèi)存原理:【科普】
在系統(tǒng)中運(yùn)行的每個進(jìn)程都需要使用到內(nèi)存冯事,但不是每個進(jìn)程都需要每時每刻使用系統(tǒng)分配的內(nèi)存空間源织。當(dāng)系統(tǒng)運(yùn)行所需內(nèi)存超過實(shí)際的物理內(nèi)存禁灼,內(nèi)核會釋放某些進(jìn)程所占用但未使用的部分或所有物理內(nèi)存,將這部分資料存儲在磁盤上直到進(jìn)程下一次調(diào)用梢卸,并將釋放出的內(nèi)存提供給有需要的進(jìn)程使用累魔。
在Linux內(nèi)存管理中摔笤,主要是通過“調(diào)頁P(yáng)aging”和“交換Swapping”來完成上述的內(nèi)存調(diào)度。調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上垦写,把活動頁面保留在內(nèi)存中供進(jìn)程使用吕世。交換技術(shù)是將整個進(jìn)程,而不是部分頁面梯投,全部交換到磁盤上命辖。
分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到內(nèi)存的過程被稱作Page-In分蓖。當(dāng)內(nèi)核需要一個分頁時尔艇,但發(fā)現(xiàn)此分頁不在物理內(nèi)存中(因為已經(jīng)被Page-Out了),此時就發(fā)生了分頁錯誤(Page Fault)么鹤。
當(dāng)系統(tǒng)內(nèi)核發(fā)現(xiàn)可運(yùn)行內(nèi)存變少時终娃,就會通過Page-Out來釋放一部分物理內(nèi)存。經(jīng)管Page-Out不是經(jīng)常發(fā)生午磁,但是如果Page-out頻繁不斷的發(fā)生尝抖,直到當(dāng)內(nèi)核管理分頁的時間超過運(yùn)行程式的時間時,系統(tǒng)效能會急劇下降迅皇。這時的系統(tǒng)已經(jīng)運(yùn)行非常慢或進(jìn)入暫停狀態(tài)昧辽,這種狀態(tài)亦被稱作thrashing。
7.10.5 free
能夠監(jiān)控系統(tǒng)的內(nèi)存使用狀態(tài)登颓。其中total:總計物理內(nèi)存的大小;Used:已使用多大;Free:可用有多少;shard:多個進(jìn)程共享的內(nèi)存總額搅荞;buffers/cached:磁盤緩存大小。
1. 命令格式
free [參數(shù)]
[if !supportLists]1.?[endif]命令功能
free命令顯示系統(tǒng)使用和空閑的內(nèi)存情況框咙,包括物理內(nèi)存咕痛、交互區(qū)內(nèi)存(swap)和內(nèi)核緩沖區(qū)內(nèi)存。共享內(nèi)存將被忽略
2. 常用
7.10.5 netstat顯示網(wǎng)絡(luò)統(tǒng)計信息和端口占用情況
netstat命令用于顯示本機(jī)網(wǎng)絡(luò)鏈接喇嘱、運(yùn)行端口茉贡、路由表等信息
1.基本語法
netstat -anp | grep 進(jìn)程號 (功能描述:查看該進(jìn)程網(wǎng)絡(luò)信息)
netstat -nlp | grep 端口號 (功能描述:查看網(wǎng)絡(luò)端口號占用情況)
2.選項說明
表1-45
選項功能
-n拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化成數(shù)字
-l僅列出有在listen(監(jiān)聽)的服務(wù)狀態(tài)
-p表示顯示哪個進(jìn)程在調(diào)用
-t(tcp)顯示tcp相關(guān)選項
-u(udp)僅顯示udp相關(guān)選項
-i顯示自動匹配接口的信息
-c每隔一個固定時間,執(zhí)行該netstat命令
3.案例實(shí)操
(1)通過進(jìn)程號查看該進(jìn)程的網(wǎng)絡(luò)信息
[root@wwy hadoop-2.7.2]# netstat -anp | grep火狐瀏覽器進(jìn)程號
unix ?2 ?????[ ACC ] ????STREAM ????LISTENING206703115/firefox ???????/tmp/orbit-root/linc-c2b-0-5734667cbe29
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????20673 ?3115/firefox ???????/tmp/orbit-root/linc-c2b-0-5734667cbe29
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????20668 ?3115/firefox ???????
unix ?3 ?????[ ] ????????STREAM ????CONNECTED ????20666 ?3115/firefox ????
(2)查看某端口號是否被占用
[root@wwy桌面]# netstat -nlp | grep?20670
unix ?2 ?????[ ACC ] ????STREAM ????LISTENING ????20670 ?3115/firefox ???????/tmp/orbit-root/linc-c2b-0-5734667cbe29
7.11 crond系統(tǒng)定時任務(wù)
7.11.1 crond服務(wù)管理
1.重新啟動crond服務(wù)
[root@wwy ~]# service crond restart
7.11.2 crontab定時任務(wù)設(shè)置
1.基本語法
crontab [選項]
2.選項說明
表1-46
選項功能
-e編輯crontab定時任務(wù)
-l查詢crontab任務(wù)
-r刪除當(dāng)前用戶所有的crontab任務(wù)
3.參數(shù)說明
[root@wwy ~]# crontab -e
(1)進(jìn)入crontab編輯界面者铜。會打開vim編輯你的工作腔丧。
* * * * *執(zhí)行的任務(wù)
表1-47
項目 ?含義 ?范圍
第一個“*”一小時當(dāng)中的第幾分鐘0-59
第二個“*”一天當(dāng)中的第幾小時0-23
第三個“*”一個月當(dāng)中的第幾天1-31
第四個“*”一年當(dāng)中的第幾月1-12
第五個“*”一周當(dāng)中的星期幾0-7(0和7都代表星期日)
(2)特殊符號
表1-48
特殊符號含義
*代表任何時間放椰。比如第一個“*”就代表一小時中每分鐘都執(zhí)行一次的意思。
愉粤,代表不連續(xù)的時間砾医。比如“0 8,12,16 * * * 命令”,就代表在每天的8點(diǎn)0分衣厘,12點(diǎn)0分如蚜,16點(diǎn)0分都執(zhí)行一次命令
-代表連續(xù)的時間范圍。比如“0 5 ?* ?* ?1-6命令”影暴,代表在周一到周六的凌晨5點(diǎn)0分執(zhí)行命令
*/n代表每隔多久執(zhí)行一次错邦。比如“*/10 ?* ?* ?* ?* ?命令”,代表每隔10分鐘就執(zhí)行一遍命令
(3)特定時間執(zhí)行命令
表1-49
時間 ?含義
45 22 * * *命令在22點(diǎn)45分執(zhí)行命令
0 17 * * 1命令每周1 的17點(diǎn)0分執(zhí)行命令
0 5 1,15 * *命令每月1號和15號的凌晨5點(diǎn)0分執(zhí)行命令
40 4 * * 1-5命令每周一到周五的凌晨4點(diǎn)40分執(zhí)行命令
*/10 4 * * *命令每天的凌晨4點(diǎn)坤检,每隔10分鐘執(zhí)行一次命令
0 0 1,15 * 1命令每月1號和15號兴猩,每周1的0點(diǎn)0分都會執(zhí)行命令。注意:星期幾和幾號最好不要同時出現(xiàn)早歇,因為他們定義的都是天倾芝。非常容易讓管理員混亂。
4.案例實(shí)操
(1)每隔1分鐘箭跳,向/root/bailongma.txt文件中添加一個11的數(shù)字
*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt
八晨另、軟件包管理
8.1 RPM
8.1.1 RPM概述
RPM(RedHat Package Manager),RedHat軟件包管理工具谱姓,類似windows里面的setup.exe
是Linux這系列操作系統(tǒng)里面的打包安裝工具借尿,它雖然是RedHat的標(biāo)志,但理念是通用的屉来。
RPM包的名稱格式
Apache-1.3.23-11.i386.rpm
[if !supportLists]-?[endif]“apache”軟件名稱
[if !supportLists]-?[endif]“1.3.23-11”軟件的版本號路翻,主版本和此版本
[if !supportLists]-?[endif]“i386”是軟件所運(yùn)行的硬件平臺,Intel?32位微處理器的統(tǒng)稱
[if !supportLists]-?[endif]“rpm”文件擴(kuò)展名茄靠,代表RPM包
8.1.2 RPM查詢命令(rpm -qa)
1.基本語法
rpm -qa (功能描述:查詢所安裝的所有rpm軟件包)
2.經(jīng)驗技巧
由于軟件包比較多茂契,一般都會采取過濾。rpm -qa | grep rpm軟件包
3.案例實(shí)操
(1)查詢firefox軟件安裝情況
[root@wwy Packages]# rpm -qa |grep firefox
firefox-45.0.1-1.el6.centos.x86_64
8.1.3 RPM卸載命令(rpm -e)
1.基本語法
(1)rpm -e RPM軟件包 ??
(2)?rpm -e --nodeps軟件包?
2.選項說明
表1-50
選項功能
-e卸載軟件包
--nodeps卸載軟件時慨绳,不檢查依賴掉冶。這樣的話,那些使用該軟件包的軟件在此之后可能就不能正常工作了脐雪。
3.案例實(shí)操
(1)卸載firefox軟件
[root@wwy Packages]# rpm -e firefox
8.1.4 RPM安裝命令(rpm -ivh)
1.基本語法
rpm -ivh RPM包全名
2.選項說明
表1-51
選項功能
-i-i=install厌小,安裝
-v-v=verbose,顯示詳細(xì)信息
-h-h=hash战秋,進(jìn)度條
--nodeps--nodeps璧亚,不檢測依賴進(jìn)度
3.案例實(shí)操
(1)安裝firefox軟件
[root@wwy Packages]# pwd
/media/CentOS_6.8_Final/Packages
[root@wwy Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
warning: firefox-45.0.1-1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ???????????????########################################### [100%]
???1:firefox ???????????????########################################### [100%]
8.2 YUM倉庫配置
8.2.1 YUM概述
YUM(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器≈牛基于RPM包管理涨岁,能夠從指定的服務(wù)器自動下載RPM包并且安裝拐袜,可以自動處理依賴性關(guān)系吉嚣,并且一次安裝所有依賴的軟件包梢薪,無須繁瑣地一次次下載、安裝尝哆,如圖1-163所示
圖1-163??YUM概述
8.2.2 YUM的常用命令
1.基本語法
yum [選項] [參數(shù)]
2.選項說明
表1-52
選項功能
-y對所有提問都回答“yes”
3.參數(shù)說明
表1-53
參數(shù)功能
install安裝rpm軟件包
update更新rpm軟件包
check-update檢查是否有可用的更新rpm軟件包
remove刪除指定的rpm軟件包
list顯示軟件包信息
clean清理yum過期的緩存
deplist顯示yum軟件包的所有依賴關(guān)系
4.案例實(shí)操實(shí)操
(1)采用yum方式安裝firefox
[root@wwy ~]#yum -y install firefox.x86_64
8.2.3?修改網(wǎng)絡(luò)YUM源
默認(rèn)的系統(tǒng)YUM源秉撇,需要連接國外apache網(wǎng)站,網(wǎng)速比較慢秋泄,可以修改關(guān)聯(lián)的網(wǎng)絡(luò)YUM源為國內(nèi)鏡像的網(wǎng)站琐馆,比如網(wǎng)易163。
1.前期文件準(zhǔn)備
(1)前提條件linux系統(tǒng)必須可以聯(lián)網(wǎng)
(2)在Linux環(huán)境中訪問該網(wǎng)絡(luò)地址:http://mirrors.163.com/.help/centos.html恒序,在使用說明中點(diǎn)擊CentOS6->再點(diǎn)擊保存瘦麸,如圖1-164所示
圖1-164?下載CentOS6
(3)查看文件保存的位置,如圖1-165歧胁,1-166所示
圖1-165圖1-166
在打開的終端中輸入如下命令滋饲,就可以找到文件的保存位置。
[wengwenyu@wwy下載]$ pwd
/home/wengwenyu/下載
2.替換本地yum文件
(1)把下載的文件移動到/etc/yum.repos.d/目錄
[root@wwy下載]# mv CentOS6-Base-163.repo /etc/yum.repos.d/
(2)進(jìn)入到/etc/yum.repos.d/目錄
[root@wwy yum.repos.d]# pwd
/etc/yum.repos.d
(3)用CentOS6-Base-163.repo替換CentOS-Base.repo
[root@wwy yum.repos.d]# mv CentOS6-Base-163.repo ?CentOS-Base.repo
3.安裝命令
(1)[root@wwy yum.repos.d]#yum clean all
(2)[root@wwy yum.repos.d]#yum makecache
yum makecache就是把服務(wù)器的包信息下載到本地電腦緩存起來
4.測試
[root@wwy yum.repos.d]#yum list | grep firefox
[root@wwy ~]#yum -y install firefox.x86_64
九喊巍、常見錯誤及解決方案
1. 虛擬化支持異常情況如下幾種情況
圖1-168
圖1-169
圖1-170
圖1-171
問題原因:宿主機(jī)BIOS設(shè)置中的硬件虛擬化被禁用了
解決辦法:需要打開筆記本BIOS中的IVT對虛擬化的支持
圖1-172
十屠缭、Linux服務(wù)器監(jiān)控性能測試
重要性:學(xué)會了整個Linux服務(wù)器監(jiān)控,可以說你的性能測試就搞定了一半了崭参,他可以充當(dāng)你的眼睛呵曹,去發(fā)現(xiàn)那些更多的性能問題,包含你的應(yīng)用程序?qū)用娴膯栴}何暮,因為很多應(yīng)用程序的問題能到直觀的體現(xiàn)在服務(wù)器上的一些資源
性能測試目的
發(fā)現(xiàn)服務(wù)器的性能瓶頸奄喂。配置的不同能夠承受的最大任務(wù)數(shù)不同,能夠承載的壓力也不同。
測試范圍以及性能指標(biāo)
[if !supportLists]1.?[endif]CPU
[if !supportLists]2.?[endif]內(nèi)存
[if !supportLists]3.?[endif]磁盤
[if !supportLists]4.?[endif]網(wǎng)絡(luò)
[if !supportLists]5.?[endif]版本
測試環(huán)境和生產(chǎn)環(huán)境配置不同?
[if !supportLists]l?[endif]解決:通過多次壓測來計算性能損耗(比如集群,假設(shè)1臺機(jī)器的性能是1,10臺計算器集群的性能未必如設(shè)想的一樣是10)
性能損耗的計算方式
?
橫線是服務(wù)器數(shù)目
豎線是服務(wù)器指標(biāo)(cpu海洼、內(nèi)存跨新、磁盤、網(wǎng)絡(luò)等的性能指數(shù))
多次壓測后的性能預(yù)估(最少要做3~5次的性能測試觀察性能損耗到底有多少贰军,比如說你的性能測試環(huán)境是8核CPU玻蝌、16G內(nèi)存這樣的環(huán)境、假設(shè)說你一開始是3臺服務(wù)器词疼,他的性能表現(xiàn)是怎么樣的俯树,5臺服務(wù)器,他的性能表現(xiàn)又是怎么樣的贰盗,8臺又是怎么樣的许饿?我們期望的結(jié)果是像藍(lán)線那樣正常曲線,但是實(shí)際結(jié)果一定會像紅線那樣有性能損耗舵盈,當(dāng)你的服務(wù)器越多陋率,性能損耗可能就越多球化、如果說加服務(wù)器這種野蠻的方法就一定能無休止的增長我們的性能,一些土豪公司完全不用做性能測試瓦糟,那還要做性能測試干什么筒愚?)也就說當(dāng)我們真正把項目上到我們的生產(chǎn)環(huán)境的時候,你的測試報告里面要有一個性能預(yù)估的體現(xiàn)菩浙,體現(xiàn)的依據(jù)有一個非常重要的一點(diǎn)巢掺,就是預(yù)估性能損耗指標(biāo)(計算方式:相同腳本+相同場景+相同的并發(fā)用戶數(shù) 然后增加你的服務(wù)器大概計算一下性能損耗,不一定說特別準(zhǔn)確劲蜻,所以只能叫預(yù)估)
服務(wù)器實(shí)時內(nèi)存監(jiān)控
top陆淀、vmstat、free?當(dāng)然top?vmstat 也可以進(jìn)行一些磁盤IO先嬉、CPU的一些監(jiān)控轧苫,任何監(jiān)控工具實(shí)際上底層都有可能是集成這些命令,當(dāng)這些命令你會使用就疫蔓,當(dāng)用其他的工具的時候就對他們的基本運(yùn)行原理基本也就是了然了含懊。
服務(wù)器實(shí)時CPU監(jiān)控
mpstat?(Multiprocessor Statistics)
mpstat最大的特點(diǎn)是:可以查看多核心cup中每個計算核心的統(tǒng)計數(shù)據(jù),而類似工具vmstat只能查看系統(tǒng)整體cpu情況鳄袍。
語法
mpstat [-P {|ALL}] [internal | [count]]
安裝
yum install -y sysstat
參數(shù)
-P {|ALL}表示監(jiān)控哪個CPU,cpu在[0,cpu個數(shù)-1]中取值
internal相鄰的兩次采樣的間隔時間
count采樣的次數(shù),count只能和delay一起使用
注意:當(dāng)沒有參數(shù)時候绢要,mpstat則顯示系統(tǒng)啟動以后所有信息的平均值。當(dāng)有interval時,第一行的信息自系統(tǒng)啟動以來的平均信息拗小。從第2行開始,輸出為前一個interval時間段的平均信息重罪。(也就是說我們看第2行信息就行)
字段含義
%user在internal時間段里,用戶態(tài)的CPU時間(%)哀九,不包含nice值為負(fù)進(jìn)程 ?(usr/total)*100
%nice在internal時間段里剿配,nice值為負(fù)進(jìn)程的CPU時間(%) ??(nice/total)*100
%sys在internal時間段里,內(nèi)核時間(%) ??????(system/total)*100
%iowait在internal時間段里阅束,硬盤IO等待時間(%) (iowait/total)*100
%irq在internal時間段里呼胚,硬中斷時間(%) ????(irq/total)*100
%soft在internal時間段里,軟中斷時間(%) ????(softirq/total)*100
%idle在internal時間段里息裸,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%) (idle/total)*100
CPU總的工作時間
total_cur = user + system + nice + idle + iowait + irq + softirq
total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq
user = user_cur – user_pre
total = total_cur - total_pre
其中_cur表示當(dāng)前值蝇更,_pre 表示 interval 時間前的值。上表中的所有值可取到兩位小數(shù)點(diǎn)呼盆。
注意點(diǎn):
vmstat和 mpstat 命令的差別:mpstat 可以顯示每個處理器的統(tǒng)計年扩,而 vmstat 顯示所有處理器的統(tǒng)計。因此访圃,編寫糟糕的應(yīng)用程序(不使用多線程體系結(jié)構(gòu))可能會運(yùn)行在一個多處理器機(jī)器上厨幻,而不使用所有處理器。從而導(dǎo)致一個 CPU 過載,而其他 CPU 卻很空閑况脆。通過 mpstat 可以輕松診斷這些類型的問題饭宾。
vmstat中所有關(guān)于 CPU 的總結(jié)都適合 mpstat。當(dāng)您看到較低的% idle數(shù)字時格了,您知道出現(xiàn)了 CPU 不足的問題看铆。當(dāng)您看到較高的% iowait數(shù)字時,您知道在當(dāng)前負(fù)載下 I/O 子系統(tǒng)出現(xiàn)了某些問題笆搓。
服務(wù)器實(shí)時網(wǎng)絡(luò)監(jiān)控
netstat
服務(wù)器實(shí)時磁盤監(jiān)控
iostat是對系統(tǒng)磁盤IO操作進(jìn)行監(jiān)控,它的輸出主要顯示磁盤的讀寫操作的統(tǒng)計信息性湿。同時給出cpu的使用情況
[if !supportLists]1.?[endif]命令格式
iostat[參數(shù)][時間][次數(shù)]
[if !supportLists]2.?[endif]命令功能
通過iostat方便查看CPU、網(wǎng)卡满败、tty設(shè)備、磁盤叹括、CD-ROM 等等設(shè)備的活動情況, 負(fù)載信息算墨。
[if !supportLists]3.?[endif]命令參數(shù)
-C顯示CPU使用情況
-d顯示磁盤使用情況
-k以 KB 為單位顯示
-m以 M 為單位顯示
-N顯示磁盤陣列(LVM) 信息
-n顯示NFS 使用情況
-p[磁盤] 顯示磁盤和分區(qū)的情況
-t顯示終端和CPU的信息
-x [device]顯示詳細(xì)信息?輸出指定要統(tǒng)計的磁盤設(shè)備名稱,默認(rèn)為所有磁盤設(shè)備
-V顯示版本信息
[if !supportLists]4.?[endif]工具實(shí)例
實(shí)例1:顯示所有設(shè)備負(fù)載情況
cpu屬性值說明:
%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比汁雷。
%system:CPU處在系統(tǒng)模式下的時間百分比净嘀。
%iowait:CPU等待輸入輸出完成時間的百分比侠讯。
%steal:管理程序維護(hù)另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比厢漩。
%idle:CPU空閑時間百分比。
注:如果%iowait的值過高宵膨,表示硬盤存在I/O瓶頸炸宵,%idle值高,表示CPU較空閑土全,如果%idle值高但系統(tǒng)響應(yīng)慢時,有可能是CPU等待分配內(nèi)存裹匙,此時應(yīng)加大內(nèi)存容量瑞凑。%idle值如果持續(xù)低于10,那么系統(tǒng)的CPU處理能力相對較低幻件,表明系統(tǒng)中最需要解決的資源是CPU拨黔。
disk屬性值說明:
rrqm/s:每秒進(jìn)行 merge 的讀操作數(shù)目。即 rmerge/s
wrqm/s:每秒進(jìn)行 merge 的寫操作數(shù)目。即 wmerge/s
r/s:每秒完成的讀 I/O 設(shè)備次數(shù)篱蝇。即 rio/s
w/s:每秒完成的寫 I/O 設(shè)備次數(shù)贺待。即 wio/s
rsec/s:每秒讀扇區(qū)數(shù)。即 rsect/s
wsec/s:每秒寫扇區(qū)數(shù)零截。即 wsect/s
rkB/s:每秒讀K字節(jié)數(shù)麸塞。是 rsect/s 的一半,因為每扇區(qū)大小為512字節(jié)涧衙。
wkB/s:每秒寫K字節(jié)數(shù)哪工。是 wsect/s 的一半。
avgrq-sz:平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))弧哎。
avgqu-sz:平均I/O隊列長度。
await:平均每次設(shè)備I/O操作的等待時間 (毫秒)撤嫩。
svctm:平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。
%util:一秒中有百分之多少的時間用于 I/O 操作茴她,即被io消耗的cpu百分比(繁忙程度)
備注:如果%util接近 100%程奠,說明產(chǎn)生的I/O請求太多瞄沙,I/O系統(tǒng)已經(jīng)滿負(fù)荷,該磁盤可能存在瓶頸泛粹。如果svctm比較接近 await晶姊,說明 I/O 幾乎沒有等待時間伪货;如果 await 遠(yuǎn)大于 svctm,說明I/O 隊列太長蒙挑,io響應(yīng)太慢忆蚀,則需要進(jìn)行必要優(yōu)化。如果avgqu-sz比較大男旗,也表示有當(dāng)量io在等待察皇。
實(shí)例2:定時顯示所有信息
說明:每隔2秒刷新顯示泽台,且顯示3次
[root@XXX ~]# iostat 2 3
萬能的sar命令
?
簡介:?sar(System Activity Reporter, 系統(tǒng)活動情況報告): 是用于監(jiān)控Linux系統(tǒng)各個性能的最優(yōu)秀怀酷、最全面的工具之一,可以從多方面對系統(tǒng)的活動進(jìn)行報告因篇。
監(jiān)控范圍:?文件的讀寫情況、系統(tǒng)調(diào)用的使用情況咐吼、磁盤I/O、CPU效率厢塘、內(nèi)存使用狀況肌幽、進(jìn)程活動及IPC有關(guān)的活動等喂急。
常用格式
sar [ options ] [ <interval> [ <count> ] ]
interval:采樣周期,單位是秒糕簿;
count:采樣次數(shù)狡孔,默認(rèn)值是連續(xù)采樣;
options:命令行選項殃恒。
sar命令的選項很多离唐,下面只列出常用選項
-A:所有報告的總和
-u:輸出整體CPU使用情況的統(tǒng)計信息
-v:輸出inode、文件和其他內(nèi)核表的統(tǒng)計信息
-d:輸出每一個塊設(shè)備的活動信息
-r:輸出內(nèi)存和交換空間的統(tǒng)計信息
-b:顯示I/O和傳送速率的統(tǒng)計信息
-a:文件讀寫情況
-c:輸出進(jìn)程統(tǒng)計信息胖喳,每秒創(chuàng)建的進(jìn)程數(shù)
-R:輸出內(nèi)存頁面的統(tǒng)計信息
-y:終端設(shè)備活動情況
-w:輸出系統(tǒng)交換活動信息
如何使用sar獲取以下性能分析數(shù)據(jù):
[if !supportLists]l?[endif]整體CPU使用統(tǒng)計
[if !supportLists]l?[endif]各個CPU使用統(tǒng)計
[if !supportLists]l?[endif]內(nèi)存使用情況統(tǒng)計
[if !supportLists]l?[endif]整體I/O情況
[if !supportLists]l?[endif]各個I/O設(shè)備情況
[if !supportLists]l?[endif]網(wǎng)絡(luò)統(tǒng)計
整體CPU使用統(tǒng)計(-u)
使用-u選項丽焊,sar輸出整體CPU的使用情況咕别,不加選項時,默認(rèn)使用的就是-u選項雌贱。以下命令顯示采樣時間為3s偿短,采樣次數(shù)為2次,整體CPU的使用情況:
[root@wwy ~]# sar 3 2 ????(或者 sar -u 3 2)
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
06:52:34 AM ????CPU ????%user ????%nice ??%system ??%iowait ???%steal ????%idle
06:52:37 AM ????all ?????0.34 ?????0.00 ?????2.18 ?????0.00 ?????0.00 ????97.49
06:52:40 AM ????all ?????0.33 ?????0.00 ?????1.34 ?????0.00 ?????0.00 ????98.33
Average: ???????all ?????0.33 ?????0.00 ?????1.76 ?????0.00 ?????0.00 ????97.91
輸出項說明:
CPU:all表示統(tǒng)計信息為所有CPU的平均值降传。
%usr:CPU在用戶態(tài)執(zhí)行進(jìn)程的時間百分比婆排。
%nice:CPU在用戶態(tài)模式下笔链,用于nice操作鉴扫,所占用CPU總時間的百分比。
%system:CPU處在內(nèi)核態(tài)執(zhí)行進(jìn)程的時間百分比鹦赎。
%iowait:CPU用于等待I/O操作占用CPU總時間的百分比古话。
%steal:管理程序(hypervisor)為另一個虛擬進(jìn)程提供服務(wù)而等待虛擬CPU的百分比锁施。
%idle:CPU空閑時間百分比杖们。
1.若 %iowait 的值過高摘完,表示硬盤存在I/O瓶頸
2.若 %idle 的值高但系統(tǒng)響應(yīng)慢時孝治,有可能是 CPU 等待分配內(nèi)存审磁,此時應(yīng)加大內(nèi)存容量
3.若 %idle 的值持續(xù)低于1态蒂,則系統(tǒng)的 CPU 處理能力相對較低,表明系統(tǒng)中最需要解決的資源是 CPU
各個CPU使用統(tǒng)計(-P)
“-P ALL”選項指示對每個內(nèi)核輸出統(tǒng)計信息
[root@wwy ~]# sar -P ALL 1 1
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
06:59:15 AM ????CPU ????%user ????%nice ??%system ??%iowait ???%steal ????%idle
06:59:16 AM ????all ?????0.00 ?????0.00 ?????2.00 ?????0.00 ?????0.00 ????98.00
06:59:16 AM ??????0 ?????0.00 ?????0.00 ?????2.02 ?????0.00 ?????0.00 ????97.98
06:59:16 AM ??????1 ?????0.00 ?????0.00 ?????1.00 ?????0.00 ?????0.00 ????99.00
Average: ???????CPU ????%user ????%nice ??%system ??%iowait ???%steal ????%idle
Average: ???????all ?????0.00 ?????0.00 ?????2.00 ?????0.00 ?????0.00 ????98.00
Average: ?????????0 ?????0.00 ?????0.00 ?????2.02 ?????0.00 ?????0.00 ????97.98
Average: ?????????1 ?????0.00 ?????0.00 ?????1.00 ?????0.00 ?????0.00 ????99.00
其中”CPU”列輸出0,1,2,3,4,5指示對應(yīng)的cpu核手素。也可針對單獨(dú)一個內(nèi)核顯示泉懦,“-P 1”指示顯示第二個內(nèi)核的統(tǒng)計信息疹瘦。
內(nèi)存使用情況統(tǒng)計(-r)
使用-r選項可顯示內(nèi)存統(tǒng)計信息,以下命令顯示以1秒為采樣時間,顯示2次內(nèi)存信息:
[root@wwy ~]# sar -r 1 2
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
07:02:49 AM kbmemfree kbmemused ?%memused kbbuffers ?kbcached ?kbcommit ??%commit
07:02:50 AM ??1011644 ???893520 ????46.90 ????78048 ???475228 ???654776 ????16.36
07:02:51 AM ??1010984 ???894180 ????46.93 ????78056 ???475224 ???654776 ????16.36
Average: ?????1011314 ???893850 ????46.92 ????78052 ???475226 ???654776 ????16.36
[if !supportLists]l?[endif]kbmemfree空閑的物理內(nèi)存大小
[if !supportLists]l?[endif]kbmemused使用中的物理內(nèi)存大小
[if !supportLists]l?[endif]%memused物理內(nèi)存使用率
[if !supportLists]l?[endif]kbbuffers內(nèi)核中作為緩沖區(qū)使用的物理內(nèi)存大小呢灶,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.
[if !supportLists]l?[endif]kbcached緩存的文件大小
[if !supportLists]l?[endif]kbcommit保證當(dāng)前系統(tǒng)正常運(yùn)行所需要的最小內(nèi)存钉嘹,即為了確保內(nèi)存不溢出而需要的最少內(nèi)存(物理內(nèi)存+Swap分區(qū))
[if !supportLists]l?[endif]commit這個值是kbcommit與內(nèi)存總量(物理內(nèi)存+swap分區(qū))的一個百分比的值
整體I/O情況(-b)
使用-b選項跋涣,可以顯示磁盤I/O的使用情況:Report I/O and transfer rate statistics.
[root@wwy ~]# sar -b 3 2
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
07:07:00 AM ??????tps ?????rtps ?????wtps ??bread/s ??bwrtn/s
07:07:03 AM ?????1.00 ?????0.00 ?????1.00 ?????0.00 ????10.70
07:07:06 AM ?????1.33 ?????0.00 ?????1.33 ?????0.00 ????21.33
Average: ????????1.17 ?????0.00 ?????1.17 ?????0.00 ????16.03
輸出項說明:
tps:每秒向磁盤設(shè)備請求數(shù)據(jù)的次數(shù),包括讀奖年、寫請求沛贪,為rtps與wtps的和震贵。出于效率考慮猩系,每一次IO下發(fā)后并不是立即處理請求寇甸,而是將請求合并(merge)疗涉,這里tps指請求合并后的請求計數(shù)博敬。
rtps:每秒向磁盤設(shè)備的讀請求次數(shù)
wtps:每秒向磁盤設(shè)備的寫請求次數(shù)
bread/s:每秒鐘從物理設(shè)備讀入的數(shù)據(jù)量,單位為 塊/s
bwrtn/s:每秒鐘向物理設(shè)備寫入的數(shù)據(jù)量收恢,單位為 塊/s
各個I/O設(shè)備情況(-d)
使用-d選項可以顯示各個磁盤的統(tǒng)計信息伦意,再增加-p選項可以以sdX的形式顯示設(shè)備名稱
[root@wwy ~]# sar -d -p 3 2
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
07:10:30 AM ??????DEV ??????tps ?rd_sec/s ?wr_sec/s ?avgrq-sz ?avgqu-sz ????await ????svctm ????%util
07:10:33 AM ??????sda ?????2.34 ?????0.00 ????32.11 ????13.71 ?????0.00 ?????0.43 ?????0.29 ?????0.07
07:10:33 AM ??????DEV ??????tps ?rd_sec/s ?wr_sec/s ?avgrq-sz ?avgqu-sz ????await ????svctm ????%util
07:10:36 AM ??????sda ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00
Average: ?????????DEV ??????tps ?rd_sec/s ?wr_sec/s ?avgrq-sz ?avgqu-sz ????await ????svctm ????%util
Average: ?????????sda ?????1.17 ?????0.00 ????16.08 ????13.71 ?????0.00 ?????0.43 ?????0.29 ?????0.03
輸出項說明:
rd_sec/s:每秒從設(shè)備讀取的扇區(qū)數(shù)
wr_sec/s:每秒往設(shè)備寫入的扇區(qū)數(shù)
avgrq-sz:發(fā)送給設(shè)備的請求的平均大信鸩埂(以扇區(qū)為單位)
avgqu-sz:發(fā)送給設(shè)備的請求隊列的平均長度
await:服務(wù)等待I/O請求的平均時間已骇,包括請求隊列等待時間 (單位毫秒)
svctm:設(shè)備處理I/O請求的平均時間,不包括請求隊列等待時間 (單位毫秒)
%util:一秒中有百分之多少的時間用于 I/O 操作褪储,即被io消耗的cpu百分比。
備注:
-如果 %util 接近 100%浪读,說明產(chǎn)生的I/O請求太多碘橘,I/O系統(tǒng)已經(jīng)滿負(fù)荷吱肌,該磁盤可能存在瓶頸岩榆。
-如果 svctm 比較接近 await坟瓢,說明 I/O 幾乎沒有等待時間犹撒;如果 await 遠(yuǎn)大于 svctm识颊,說明I/O 隊列太長祥款,io響應(yīng)太慢,則需要進(jìn)行必要優(yōu)化抠艾。
-如果avgqu-sz比較大检号,也表示有當(dāng)量io在等待蛙酪。
網(wǎng)絡(luò)統(tǒng)計
使用-n選項可以對網(wǎng)絡(luò)使用情況進(jìn)行顯示,-n后接關(guān)鍵詞”DEV”可顯示eth0凹蜂、eth1等網(wǎng)卡的信息:
[root@wwy ~]# sar -n DEV 1 1
Linux 2.6.32-754.el6.x86_64 (wwy) ??????11/24/2019 ?????_x86_64_ ???????(2 CPU)
07:14:20 AM ????IFACE ??rxpck/s ??txpck/s ???rxkB/s ???txkB/s ??rxcmp/s ??txcmp/s ?rxmcst/s
07:14:21 AM ???????lo ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00
07:14:21 AM ?????eth0 ????28.00 ????38.00 ?????2.21 ?????5.33 ?????0.00 ?????0.00 ?????0.00
07:14:21 AM ?????pan0 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00
Average: ???????IFACE ??rxpck/s ??txpck/s ???rxkB/s ???txkB/s ??rxcmp/s ??txcmp/s ?rxmcst/s
Average: ??????????lo ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00
Average: ????????eth0 ????28.00 ????38.00 ?????2.21 ?????5.33 ?????0.00 ?????0.00 ?????0.00
Average: ????????pan0 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00 ?????0.00
輸出 說明
IFACE 網(wǎng)絡(luò)設(shè)備名
rxerr/s 每秒接收的壞包總數(shù)
txerr/s 傳輸包時每秒發(fā)生錯誤的總數(shù)
coll/s 傳輸包時每秒發(fā)生沖突(collision)的總數(shù)
rxdrop/s 接收包時玛痊,由于缺乏緩存卿啡,每秒丟棄(drop)包的數(shù)量
txdrop/s 傳輸包時,由于缺乏緩存剑逃,每秒丟棄(drop)包的數(shù)量
txcarr/s 傳輸包時,每秒發(fā)生的傳輸錯誤(carrier-error)的數(shù)量
rxfram/s 接收包時粟瞬,每秒發(fā)生幀校驗錯誤(frame alignment error)的數(shù)量
rxfifo/s 接收包時萤捆,每秒發(fā)生隊列(FIFO)一出錯誤的數(shù)量
txfifo/s 傳輸包時,每秒發(fā)生隊列(FIFO)一出錯誤的數(shù)量
總結(jié):
要判斷系統(tǒng)瓶頸問題市怎,有時需幾個sar命令選項結(jié)合起來
懷疑CPU存在瓶頸区匠,可用 sar -u和 sar -q 等來查看
懷疑內(nèi)存存在瓶頸驰弄,可用sar -B、sar -r和 sar -W 等來查看
懷疑I/O存在瓶頸五鲫,可用 sar -b位喂、sar -u 和 sar -d等來查看
?
Linux監(jiān)控工具nmon
nmon是一種在Linux?操作系統(tǒng)上廣泛使用的監(jiān)控與分析工具,nmon所記錄的信息是比較全面的,它能在系統(tǒng)運(yùn)行過程中實(shí)時地捕捉系統(tǒng)資源的使用情況,并且能輸出結(jié)果到文件中,然后通過nmon_analyzer工具產(chǎn)生數(shù)據(jù)文件與圖形化結(jié)果(可以輔助出測試報告之類)忆某。
nmon下載與安裝
[root@wwy ~]# wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
[root@wwy ~]# tar xvf nmon_linux_14i.tar.gz
[root@wwy ~]# mv nmon_x86_64_centos6 nmon
[root@wwy ~]# cp nmon /usr/bin/
參數(shù)介紹
-f ?這個nmon必選參數(shù),并且必須放到第一個,就是輸出文件的意思;用該參數(shù)的話,nmon輸出的文件名就是默認(rèn)名稱:hostname_date_time.nmon;
-F ??這個參數(shù)和-f相同,只不過用戶可以自己定義文件名稱;
-s ?采集數(shù)據(jù)頻率,也就是保存數(shù)據(jù)的頻率
-c ?采集數(shù)據(jù)次數(shù)
-t ??輸出最小號資源的進(jìn)程數(shù)據(jù)
-h??查看幫助
基本使用
[root@wwy ~]# mkdir nmonData
[root@wwy ~]# cd nmonData/
[root@wwy nmonData]# nmon
[root@wwy nmonData]#?nmon -f -F demo.nmon -s 1 ?-c 10 -t?
[root@wwy nmonData]# ll
total 28
-rw-r--r--. 1 root root 27655 Nov 24 08:39 demo.nmon
[root@wwy nmonData]# ll
total 36
-rw-r--r--. 1 root root 34739 Nov 24 08:39 demo.nmon
[root@wwy nmonData]# ll
total 36
-rw-r--r--. 1 root root 34739 Nov 24 08:39 demo.nmon
[root@wwy nmonData]# ll
total 36
-rw-r--r--. 1 root root 34739 Nov 24 08:39 demo.nmon
[root@wwy nmonData]# cat demo.nmon
nmon結(jié)果的分析
[if !supportLists]l?[endif]nmon_analyzer的作用就是分析nmon數(shù)據(jù)采集后的結(jié)果,nmon_analyser需要借助Excel的宏,wps默認(rèn)沒有安裝宏,需要下載插件
nmon analyser可以在IBM的官網(wǎng)下載
[if !supportLists]l?[endif]nmon_analyzer重點(diǎn)sheet頁
SYS_SUMM系統(tǒng)匯總頁,包含cpu占有率變化情況,磁盤IO的變化情況等信息
AAA關(guān)于操作系統(tǒng)以及nmon本身的一些信息
CPUnn顯示執(zhí)行時間內(nèi)CPU占用情況
CPU_ALL所有CPU概述,顯示所有CPU平均占用情況
CPU_SUMM每一個CPU在執(zhí)行時間內(nèi)的占用情況
DGBUSY磁盤組每個hdisk設(shè)備平均占用情況
DGREAD?每個磁盤組的平均讀情況
DGSIZE每個磁盤組的平均讀寫情況
DGWRITE每個磁盤組的平均讀寫情況
DGXFER每個磁盤組的I/O每秒操作
MEM?內(nèi)存相關(guān)主要信息弃舒,使用聋呢、空閑內(nèi)存大小等
NET顯示系統(tǒng)中每個網(wǎng)絡(luò)適配器的數(shù)據(jù)傳輸速率(千字節(jié)/秒)
PAGE本sheet統(tǒng)計相關(guān)頁信息的記錄
除配合性能測試的短期監(jiān)控削锰,我們也可以實(shí)現(xiàn)對系統(tǒng)的定期監(jiān)控器贩,作為運(yùn)營維護(hù)階段的參考朋截。定期監(jiān)控實(shí)現(xiàn)如下:
1)執(zhí)行命令:#crontab ?–e
2)在最后一行添加如下命令:
0 8 * * 1,2,3,4,5 ?/nmon/nmon_x86_rhel5 ?-f -N -m /nmon/log ?-s 30 -c 1200
表示:
周一到周五,從早上08點(diǎn)開始唆姐,監(jiān)控10個小時(到18:00整為止)奉芦,輸出到/nmon/log
自動按天采集數(shù)據(jù):
在crontab中增加一條記錄:
0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
300*288=86400秒,正好是一天的數(shù)據(jù)烦却。