教老婆學Linux運維(二)Linux經常使用命令指南【下】

tips:緊接上一篇,Linux經常使用命令指南【上】html

[TOC]node

2.4 文件解壓縮

2.4.1 官宣的linux壓縮工具:tar

tar的基本命令格式爲mysql

tar [參數選項] [文件或目錄]複製代碼

咱們前面學的命令凡是參數選項都要加-,tar命令有點特殊,加不加均可以,如 tar -z 能夠寫成 tar z。linux

tar經常使用命令:ios

tar -zcvf [壓縮包名] [待打包文件或目錄]
    # [壓縮包名] 通常爲 tar.gz 後綴
    # z :經過gzip壓縮或解壓
    # c :建立新的tar包
    # v :顯示命令執行過程
    # f :指定壓縮文件的名字
    # t : 不解壓查看tar包內容複製代碼
tar tvf [壓縮包]
    # 不解壓查看壓縮包內容複製代碼
tar zxvf [壓縮包] -C [解壓路徑]
    # 將壓縮參數的c換成x,即是解壓
    # -C:指定解壓路徑,不加-C解壓到當前目錄複製代碼

經常使用命令示例:nginx

# 先來準備點數據複製代碼
cd ~
    # 返回用戶根目錄複製代碼
mkdir -p /var/www/yaojiaxiaoyuan/html
    # 建立多級目錄複製代碼
touch /var/www/yaojiaxiaoyuan/html/yaomaomao{01..10}.html
    # 在上面的目錄中批量建立多個文件複製代碼
tar zcvf www.tar.gz /var/www/yaojiaxiaoyuan/html
    # 將目錄/var/www/yaojiaxiaoyuan/html打包爲www的tar包複製代碼

markmark

mkdir /var/www/yaojiaxiaoyuan/html/test複製代碼
find /var/www/yaojiaxiaoyuan/html ! -type d| xargs tar zcvf www2.tar.gz
    # 查找/var/www/yaojiaxiaoyuan/html下不是目錄的文件,將其打包爲www2.tar.gz
    # 根據以前find學到的命令,組合打包
    # tar命令的--exclude參數也有排除打包的功能,自行研究,再也不贅述。複製代碼
tar -tvf www2.tar.gz
    # 不解壓查看壓縮包www2.tar.gz中文件複製代碼

mark

mkdir ./yao/ yao2複製代碼
tar zxvf www.tar.gz -C ./yao/
    # 解壓www.tar.gz 到yao目錄下
    # 能夠看到連var這個目錄打打包進來了複製代碼

mark

若是不想打包那麼多層級怎麼辦,直接cd到須要打包的目錄進行打包。redis

2.4.2 gzip

gzip只能打包文件,不能打包目錄。sql

gzip打包文件後會將源文件刪除。shell

gzip參數:數據庫

gzip 【參數選項】 【待壓縮文件或壓縮包】複製代碼
# -d :解壓
    # -v :顯示解壓過程
    # -l : 列出壓縮文件內容信息
    # -c : 不改變原始文件
    # -r :遞歸壓縮目錄下全部文件
    # -t :檢查壓縮文件完整性
    # -數字<1-9> :指定壓縮率,值越大壓縮率越高,默認爲6複製代碼

gzip經常使用命令示例:

cd /var/www/yaojiaxiaoyuan/html 複製代碼
gzip *.html
    # 打包全部html文件,能夠看到html壓縮成gz文件後不見了。複製代碼

mark

gzip -l *.gz
    # 不解壓展現壓縮包內信息複製代碼
gzip -dv *.gz
    # 解壓gz文件複製代碼

mark

能夠發現,解壓後gz包也不見了。那怎麼保留源文件?

echo  '試試' >> yaomaomao01.html 
    # 先在yaomaomao01.html文件中添加點內容,echo在這裏的做用與sed相似複製代碼
gzip -c yaomaomao01.html > 01.gz
    # 使用-c + 重定向符號,將yaomaomao01.html壓縮爲01.gz,而且不刪除源文件,解壓也是同樣的操做複製代碼

mark

gzip -dc 01.gz > 01.html
    # 將01.gz解壓爲01.html,能夠看到源文件01.gz還存在
![mark](https://user-gold-cdn.xitu.io/2019/10/8/16da93d246e4a1a5?w=398&h=107&f=png&s=2915)    
複製代碼

擴展:可使用zcat、zgrep、zless、zdiff等擴展組件查看壓縮文件,與cat、grep、less和diff等命令同樣,如圖:

zcat 01.gz複製代碼

mark

gz不能壓縮目錄,這個開頭說了,報錯以下:

gzip test複製代碼
# ==>> gzip: test is a directory -- ignored複製代碼

mark

2.4.3 zip/unzip

2.4.3.1 zip

zip壓縮格式,windows、linux、mac上都是通用的壓縮格式,而且跟tar同樣,能夠壓縮目錄。

zip yao.zip *
    # 壓縮當前目錄下全部文件複製代碼

mark

可是這樣打包並不能壓縮子目錄下文件,只能壓縮子目錄自己,如圖:

cd test複製代碼
touch test01.txt複製代碼
cd ../複製代碼
zip yao2.zip *複製代碼

mark

如同其餘命令樣,zip也有個-r參數,能夠遞歸壓縮

zip -r yao2.zip *
     # ==>>  adding: test/test01.txt (stored 0%)複製代碼

mark

當前目錄下已經有壓縮包,想打包本目錄的時候不將上個壓縮包打進去,排除掉,怎麼打包?使用-x參數:

zip -r  yao3.zip * -x yao2.zip複製代碼

mark

小結,zip幾種打包方式,並有三個參數:

zip yao2.zip *
    # 普通打包複製代碼
zip -r  yao3.zip *
    # 遞歸打包複製代碼
zip -r  yao3.zip * -x yao2.zip
    # 遞歸打包,排除某文件複製代碼
zip -rq  yao4.zip * 
    # 遞歸打包,不顯示壓縮信息複製代碼
# 無參數,普通壓縮
    # -r :遞歸壓縮
    # -x :排除某個文件壓縮
    # -q :不顯示壓縮信息複製代碼
2.4.3.2 unzip

unzip能夠解壓zip命令打包的或其餘例如windows上的rar、360壓縮等軟件打包的zip格式文件。

不解壓查看壓縮文件:

unzip -l yao.zip複製代碼

mark

指定目錄解壓:

unzip -d yao01 yao.zip
    # 解壓到test文件夾下
    # -d : 指定目錄,無此目錄則建立一個,解壓的部分信息===>> creating: yao01/test/
    # 沒有-d參數則默認解壓到當前文件夾
    # -o : 解壓時不提示是否覆蓋文件;若是咱們如今解壓到當前目錄就會提示是否覆蓋,由於已經有此文件了,使用-o能夠直接覆蓋
    # -v :展現解壓時的詳細信息複製代碼

mark

2.4.4 7za

7z也是一種高效率的壓縮文件格式,7z經常使用命令以下。

壓縮:

7za a -r yao.7z *.html
    # 壓縮全部html到yao.7z包中
    # a :添加文件、目錄
    # -r :遞歸複製代碼

mark

不解壓查看文件內部信息:

7za l yao.7z
    # l :不解壓查看複製代碼

mark

解壓:

7za x yao.7z -r -oyao7z
    # x : 解壓,x換成e也能夠解壓;可是通常用x,x解壓全路徑,用e會將全部文件解壓到一個目錄中
    # -r :遞歸解壓子目錄
    # -o :指定解壓目錄,注意的是,-o參數與目錄間沒有空格,這是比較奇特的一點複製代碼

mark

2.5 用戶、文件與權限

2.5.1 權限升級:su與sudo

提到用戶與權限,則首先得說說一個不能避過的命令:su與sudo。

su與sudo的共同點是,均可以用另外一個用戶權限執行命令。

不一樣點是:su要切換成另外一個用戶,sudo不須要。

切換用戶,su的經常使用命令:

whoami
    # 查看本身是哪一個用戶,咱們這裏能夠看到是root登陸的複製代碼
su yao
    # root用戶切換爲普通用戶不須要輸入密碼複製代碼
su root
    # 普通用戶切換回root用戶須要輸入密碼
    # 小知識: su root == su,su切換root不須要輸入root用戶名
    # 注意:這種切換雖然能夠成功,可是環境變量仍是原用戶的,因此要用下面的命令切換複製代碼
su - yao
    # su - [用戶名],這種切換方式能夠切換到相應用戶,還能將登錄後的環境變量一併切換複製代碼

mark

其實su也能夠不用切換過去就能執行命令,只須要加一個參數-c就行:

su - yao -c 'pwd'
    # 使用yao執行pwd命令複製代碼

mark

能夠看到,實際上是執行成功了,正確返回了yao的home路徑。

可是這種方式畢竟沒有sudo來的方便,接下來看看不用切換用戶的sudo:

su - yao
    # 切換爲普通用戶登陸複製代碼
whoami
    # 查看切換成功了沒複製代碼
ls /root
    # 訪問root文件夾複製代碼

mark

能夠看到,沒權限。怎麼辦?sudo呀。

sudo ls /root
    # 訪問root目錄,輸入yao用戶的登陸密碼就好了複製代碼

mark

全部用戶均可以使用sudo嗎?固然不是了,咱們能夠查看下賦予sudo權限的用戶:

sudo -l
    # 查看當前用戶被受權的sudo權限複製代碼

怎麼賦予sudo權限?

在/etc/sudoers文件中添加用戶就好了

sudo cat /etc/sudoers複製代碼

mark

用vi仍是sed均可以,可是最好使用visudo。

sudo visudo
    # root用戶不用sudo複製代碼

visudo是專門來編輯/etc/sudoers文件的,它還有語法檢查做用,趕快添加你的sudo用戶吧。

2.5.2 用戶增刪改:useradd、usermod、userdel

2.5.2.1 用戶新增:useradd、passwd

最經常使用,不帶任何參數的添加用戶:

useradd wfy
    # 新增用戶wfy複製代碼
passwd wfy
    # 設置密碼,密碼通常爲大小寫加數字和一個特殊字符複製代碼

passwd 小技巧,一條命令設置用戶密碼:

echo "123456" | passwd --stdin wfy
    # --stdin :可從標準輸入獲取密碼
    # 批量修改密碼時,此命令比較有用
    # 此外,還有個chpasswd命令也能夠批量修改密碼複製代碼

mark

passwd 密碼到期提醒策略:

passwd -n 7 -x 60 -w 10 -i 30 wfy
    # 7天內不能修改密碼,60天之後必須修改密碼,過時前10天通知用戶,過時後30天禁止用戶登陸
    # -n : 7 表示不能修改密碼天數
    # -x :60 表示必須修改密碼天數
    # -w :10 表示過時前10天通知
    # -i : 30 表示過時後30天禁止登陸複製代碼

mark

useradd不帶任何參數時,系統會先讀取/etc/login.defs(用戶定義)、/etc/deault/useradd(用戶默認配置)文件,而後根據其中所設置的規則添加用戶同時向/etc/passwd(密碼文件)、/etc/group(用戶組)文件添加新用戶和新用戶組記錄。

建好了以後,能夠到/home目錄下看下,已經建立了屬於此用戶的家目錄。

cd /home/wfy複製代碼

mark

chage -l wfy
    # 查看用戶的有效期複製代碼

mark

查看用戶所屬信息:

id wfy
    # 這個信息其實就在/etc/passwd中,能夠用grep wfy /etc/passwd 查看比對下
    # uid : 用戶id
    # gid :用戶組id複製代碼

mark

後續說道group的時候再來看看gid的做用。

禁止登錄用戶建立:

useradd -s /sbin/nologin ftp_ymm
    # -s :指定用戶登陸的shell,/sbin/nologin表示禁止登錄,部署ftp等中間件會常常用到複製代碼
useradd -M -s /sbin/nologin nginx_wfy
    # 部署nginx、mysql等中間件會常常用到
    # -M : 不建立家目錄複製代碼

其餘參數:

useradd -u 806 -s /bin/sh -c "這是測試用戶" -G root -e "2019/12/21" -f 2 -d /tmp/wfy test_wfy
    # -u :指定uid
    # -c :用戶說明
    # -G :設置用戶組
    # -e : 設置過時時間
    # -f :2表示過時兩天停權
    # -d :用戶每次登陸時的家目錄複製代碼
tail -1 /etc/passwd
    # 查看passwd文件最後一行,能夠看到剛纔添加的用戶信息複製代碼
tail -1 /etc/shadow
    # 查看/etc/shadow文件最後一行,能夠看到剛纔-f添加的參數2複製代碼

mark

拓展:使用useradd -D 參數就是修改用戶的初始配置文件:/etc/deault/useradd,來看下這個文件有什麼。

[root@VM_0_3_centos wfy]# cat /etc/default/useradd複製代碼
# useradd defaults file
    GROUP=100 
    # 依賴於/etc/login.defs的USERGROUPS_ENAB參數,若是爲no,則此處控制
    HOME=/home
    # 把用戶的家目錄建在/home中
    INACTIVE=-1
    # 是否啓用用戶國企停權,-1表示不啓用
    EXPIRE=
    # 用戶終止日期,不設置表示不啓用
    SHELL=/bin/bash
    # 新用戶默認所用的shell類型
    SKEL=/etc/skel
    # 家目錄默認文件存放路徑,新增用戶時,從這個配置目錄拷貝過去
    CREATE_MAIL_SPOOL=yes
    # 建立mail文件複製代碼

用useradd -D來修改下看看,固然,先作好備份:

cp /etc/default/useradd{,.bak} 
    # 作個備份複製代碼
cd /etc/default
    # 能夠看到建立useradd.bak文件複製代碼
useradd -D -s /bin/sh
    # -D :改變/etc/default/useradd文件
    # -s :改變默認shell
    # -b : 定義家目錄
    # -e :設置用戶過時日期
    # -f :過時後幾日停權
    # -g :設置用戶組複製代碼
diff /etc/default/useradd{,.bak}複製代碼

mark

能夠看到先後對比的效果複製代碼
2.5.2.2 用戶修改:usermod

usermod的參數大部分與useradd相同,無非一個新增一個修改而已。不一樣的參數以下:

usermod -l  wfy2 wfy
    # 將wfy這個用戶的登陸名改成wfy2
    # -l :修改用戶名稱
    # -L :lock,鎖定用戶密碼
    # -U :unlock,解除密碼鎖定
    # -a :追加用戶組,與-G參數連用複製代碼

將useradd替換爲usermod,其餘參數不變,來修改下用戶信息

usermod -u 806 -s /bin/sh -c "修改了測試用戶" -G root -e "2019/12/21" -f 2 -d /tmp/wfy test_wfy複製代碼
grep test_wfy /etc/passwd複製代碼
grep test_wfy /etc/shadow複製代碼

mark

2.5.2.3 用戶刪除:userdel

userdel -r test_wfy
    # -r : 刪除用戶及家目錄
    # -f : 強制刪除用戶,即便用戶登陸了
    # 不加-r參數刪除不會刪除家目錄複製代碼

注意:實際工做中,通常不使用userdel,而是去/etc/passwd中將用戶信息註釋。

2.5.3 用戶查看:id、w、who、whoami、last

id,查看用戶id信息:

id wfy
    # 顯示wfy的uid及gid信息複製代碼

mark

w,最經常使用,查看已登陸用戶信息:

w
    # 展現全部已登陸用戶信息
    # 展現字段含義以下
    # USER : 用戶
    # TTY : 用戶tty名稱
    # FROM : 從哪登陸的
    # LOGIN : 登陸時間
    # IDLE :終端空閒時間
    # JCPU : 終端上全部進程及子進程使用系統的總時間
    # PCPU :活動進程使用的系統時間
    # WHAT :當前用戶執行的進程複製代碼

mark

who 查看全部已登陸用戶信息:

who
    # 顯示已登陸用戶信息,與w略有不一樣複製代碼

users 查看全部已登陸用戶名:

users
    # 只顯示用戶複製代碼

whoami 查看當前登陸用戶信息:

whoami
    # 查看當前登陸的用戶名複製代碼

last:

last
    # 顯示用戶登陸列表,讀取/var/log/wtmp複製代碼
last -10
    # 顯示最近10次的登陸信息複製代碼
last root -10
    # 顯示root用戶的最近10次登陸信息複製代碼
lastb
    # 展現用戶登陸失敗信息,讀取/var/log/btmp複製代碼
lastb -10
    # 展現最近10條用戶登陸失敗信息複製代碼
lastb root -10
    # 展現root用戶登陸失敗信息,最近10條複製代碼
lastlog
    # 展現全部用戶最近一次登陸記錄,讀取/var/log/lastlog
複製代碼
2.5.4 文件權限:chown 、chmod

2.5.4.1 改變文件用戶組:chown

chown經常使用命令以下:

cd ~
    # 返回root家目錄複製代碼
chown wfy wfy.txt
    # 更改wfy.txt的所屬用戶爲wfy複製代碼

mark

chown wfy:wfy wfy2.txt
    # 將wfy2.txt的所屬用戶更改成wfy,用戶組從root更改成wfy複製代碼

mark

chown -R wfy:wfy yao
    # 將yao這個目錄及其子目錄全都賦權給wfy
    # 能夠看到yao下的var目錄頁賦權給了wfy這個用戶及用戶組複製代碼

mark

2.5.4.2 改變文件權限範圍:chmod

chmod能夠改變文件及目錄的權限範圍,它有兩種賦權模式:1)使用權限字母 + 操做符;2)使用數字。

經常使用命令示例:

chmod 777 wfy.txt
    # 更改wfy.txt權限爲全部人可訪問複製代碼

修改前:mark

修改後:mark

7表明rwx,777所表明的9位字符權限爲rwxrwxrwx。

  1. "r" = 4, 可讀權限;目錄、子目錄及其文件均可被訪問。
  2. "w" = 2,可寫權限;可修改文件內容、目錄名稱。
  3. "x" = 1,可執行權限;目錄沒有x權限沒法進入,sh腳本文件沒有x沒法執行。
  4. "-" = 0,無權限。

賦予目錄只讀權限:

chmod -R 555 yao
    # 5 = 4 + 0 +1,即r-x,可讀與可執行權限,可是不能被修改。執行下看看效果,是否與預期同樣。複製代碼

mark

能夠看到第一位字符是d,d表明目錄,後續9位字符爲r-x(屬主權限位)、r-x(屬組權限位)、r-x(其餘用戶權限位)。

此外還有一種經常使用的賦權模式,爲+x,賦予文件可執行權限,通常用來執行shell腳本:

chmod +x [腳本名].sh複製代碼

shell腳本通常有四種執行方式,最經常使用的爲+x賦權後使用下面命令執行:

./腳本名.sh複製代碼

其餘三種方式:

. /腳本名.sh
    # .後有空格複製代碼
source 腳本名.sh複製代碼
sh 腳本名.sh複製代碼

固然,也能夠用來執行txt文件,示例以下:

. wfy.txt複製代碼
source複製代碼
sh wfy.txt複製代碼

mark

能夠看到咱們的wfy.txt文件並非一個shell文件,沒有找到響應的命令去執行,後續的shell入門會說下.sh的腳本文件是怎樣編寫的。

注意:普通用戶還需有r權限才能執行,root則不須要。

2.6 資源監控與管理

2.6.1 虛擬文件管理系統:proc

說到資源管理這塊,/proc文件夾是linux上不得不說的一個目錄。

mark

ls /proc複製代碼

mark

能夠看到紅框/proc目錄下紅框圈的那一片數字文件夾,這其實就是咱們linux系統中全部進程文件存放的地方。每生成一個進程,就會在這裏有個對應的文件夾,也就是咱們之後會常常打交道的pid。

有不少的inux命令都是調用此目錄中的文件來顯示系統相關信息。例如內存、cpu等信息。

爲何proc下面的文件能存放內存、進程、cpu這些跟磁盤文件沒任何關係的東西呢?

由於proc實際是一個僞文件系統,或者說虛擬文件系統。咱們在文章開頭就說了,linux中的一切都是以文件形式存在的,就是proc作到的。

對於用戶、應用程序,它們是從proc中獲得系統的一些信息,甚至能夠改變內核的某些參數。

而proc中的文件內容並非全然不變的,它們會隨着系統進程的變化而變化,當用戶讀取它們時,proc文件系統就動態地從系統內核中讀出所須要的信息並提交。

一些咱們經常使用的命令會用到下面的一些文件,如磁盤、cpu、內存相關的。

--------------- -------------
/proc/cmdline
內核命令行,核心啓動參數
/proc/cpuinfo
cpu的相關信息
/proc/devices
掛載設備
/proc/Loadavg
負載均衡
/proc/meminfo
內存信息
/proc/mounts
加載文件系統
/proc/stat
全面統計狀態表
/proc/swaps
交換空間表
/proc/version
內核版本
/proc/uptime
系統正常運行時間

關於/proc目錄的詳解能夠參考這篇文章www.cnblogs.com/aofo/p/6151…

關於proc也不用深究,知道這麼個東西就好了。

接下來看看關於磁盤、網絡、cpu、內存的一些基本命令。

2.6.2 磁盤空間監視器:df

df命令能夠說linux上最經常使用的命令之一,由於一旦磁盤空間不夠就會出現各類故障,數據庫、應用均可能會處於癱瘓狀態。

經常使用命令示例:

[root@VM_0_3_centos ~]# df -h
    # 以適合人類閱讀的方式展現磁盤空間大小複製代碼
文件系統        容量  已用  可用 已用% 掛載點
    /dev/vda1        50G   43G  4.3G   91% /
    devtmpfs        1.9G     0  1.9G    0% /dev
    tmpfs            10G  666M  9.4G    7% /dev/shm
    tmpfs           1.9G  324K  1.9G    1% /run
    tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
    tmpfs           380M     0  380M    0% /run/user/1005
    tmpfs           380M     0  380M    0% /run/user/0複製代碼
[root@VM_0_3_centos ~]# df -i
    # -i : 顯示inode的使用狀況
    # linux文件有個inode的文件數量限制,一旦無可用inode,則沒法再產生新的文件,會在磁盤空間未滿的狀況下報「No space left on device」,解決方案是刪除無用(多天前)的小文件或者log文件複製代碼
文件系統         Inode 已用(I) 可用(I) 已用(I)% 掛載點
    /dev/vda1      3276800  215486 3061314       7% /
    devtmpfs        482932     308  482624       1% /dev
    tmpfs           485254     258  484996       1% /dev/shm
    tmpfs           485254     354  484900       1% /run
    tmpfs           485254      16  485238       1% /sys/fs/cgroup
    tmpfs           485254       1  485253       1% /run/user/1005
    tmpfs           485254       1  485253       1% /run/user/0複製代碼
[root@VM_0_3_centos ~]# df -Th
    # -T:查看文件系統類型
    # 本機展現的掛載盤/dev/vda1文件系統類型爲ext3複製代碼
文件系統       類型      容量  已用  可用 已用% 掛載點
    /dev/vda1      ext3       50G   43G  4.3G   91% /
    devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
    tmpfs          tmpfs      10G  666M  9.4G    7% /dev/shm
    tmpfs          tmpfs     1.9G  324K  1.9G    1% /run
    tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
    tmpfs          tmpfs     380M     0  380M    0% /run/user/1005
    tmpfs          tmpfs     380M     0  380M    0% /run/user/0複製代碼
2.6.2 內存空間監視器:free

一臺電腦、服務器,內存、存儲(磁盤)、處理器(cpu)、操做系統是最基本的組成。

free就是用來監視linux系統使用內存的命令。

經常使用命令示例:

[root@VM_0_3_centos ~]# free -h
    # 以人類可讀方式展現內存使用狀況,根據實際大小自動轉換爲KB、MB、GB複製代碼
total        used        free      shared  buff/cache   available
    Mem:           3.7G        275M        144M         48M        3.3G        3.1G
    Swap:          2.0G        658M        1.4G複製代碼

Mem爲物理內存使用狀況,Swap爲虛擬內存使用狀況(通常是劃分一部分磁盤空間做爲虛擬內存)。

total :總內存;3.7G通常爲4G內存機器。

used :已使用內存。

free :自由內存。

shared : 共享內存。

buff/cache : 緩存,3.3G。

available : 可用內存。

在之前沒有available這個展現字段的時候,咱們一般是將 free + buff/cache 的總量做爲可用內存。

linux系統的特性就是將不用的物理內存緩存起來,由於千萬覺得free的144M內存就是真實的系統剩餘內存了。因此當前可用內存爲available:3.1G。

經常使用命令之二:定時查詢內存

free -hs 5
    # 每5秒顯示內存使用狀況,ctrl + c 終端
    # -s:根據指定間隔顯示內存使用狀況,單位爲秒複製代碼
[root@localhost ca_ga]# free -hs 5
                  total        used        free      shared  buff/cache   available
    Mem:            62G         27G        359M         65M         34G         34G
    Swap:           31G        6.7G         25G複製代碼
total        used        free      shared  buff/cache   available
    Mem:            62G         27G        348M         65M         34G         34G
    Swap:           31G        6.7G         25G複製代碼
total        used        free      shared  buff/cache   available
    Mem:            62G         27G        354M         65M         34G         34G
    Swap:           31G        6.7G         25G複製代碼
^C
複製代碼
2.6.3 網絡探測器:ping

ping命令與windows下用cmd打出的ping命令類似,都是用來探測主機之間網絡是否通暢。

經常使用命令示例:

ping www.baidu.com
    # ping域名或ip,會一直顯示ping結果,ctrl + c 中斷
    # 不一樣於windows的是,windos上ping -t纔會一直顯示ping結果複製代碼
[root@VM_0_3_centos ~]# ping www.baidu.com
    PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=54 time=3.97 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=54 time=4.01 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=54 time=3.97 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=54 time=4.03 ms
    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=5 ttl=54 time=3.97 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4004ms
    rtt min/avg/max/mdev = 3.971/3.993/4.031/0.024 ms複製代碼

從結果行第一行能夠看到,baidu的域名被轉換成了www.a.shifen.com,發送了56字節的數據。

而從第二行開始,是目標返回信息。目標受到的字節是64,icmp_seq就是受到包的序列號,ttl是數據包的生存週期,time是延時,3.97毫秒。

最後三行是統計結果信息,發送了5個包,接收了5個包,一個包沒有丟失,總共用時4004毫秒。min/avg/max/mdev 爲最小/平均/最大/平均誤差(Mean Deviation) 延時。

ttl爲time to life,即icmp包在網絡上的存活時間。

經常使用ping命令示例:

ping -c 3 -i 3 -s 1024 -t 255 www.csdn.com
    # -c :固定ping次數,本次爲3次
    # -i :發送間隔,本次爲3秒
    # -s :數據包大小,單位字節,本次1024爲1KB
    # -t :255,ttl值複製代碼
[root@VM_0_3_centos ~]# ping -c 3 -i 3 -s 1024 -t 255 www.csdn.com
    PING www.csdn.com (47.95.164.112) 1024(1052) bytes of data.
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=1 ttl=250 time=38.4 ms
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=2 ttl=250 time=38.3 ms
    1032 bytes from 47.95.164.112 (47.95.164.112): icmp_seq=3 ttl=250 time=38.4 ms複製代碼
--- www.csdn.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 6006ms
    rtt min/avg/max/mdev = 38.334/38.402/38.447/0.167 ms複製代碼

ping失敗案例:

ping -c 3 -i 3 -s 1024 -t 255 www.yaojiaxiaoyuan.com
    PING www.yaojiaxiaoyuan.com.qiniudns.com (1.1.1.1) 1024(1052) bytes of data.複製代碼
--- www.yaojiaxiaoyuan.com.qiniudns.com ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 5999ms複製代碼

能夠看到,由於個人網站www.yaojiaxiaoyuan.com備案過時了,因此探測的時候發送3個包都丟失了,丟失率100%。

ping只能探測ip及域名,可是無法探測端口,下期的進階命令會說道telnet,能夠遠程探測端口。

2.6.4 cpu、進程及內存監視器:top

top命令能夠用於實時監控cpu的狀態,顯示系統中各個進程的資源佔用狀況。

經常使用命令示例:

top
    # 對,無參數的top命令是最長用的資源監控命令。
    # 再往下會說些經常使用的交互命令。複製代碼
[root@VM_0_3_centos ~]# top
    top - 23:03:23 up 127 days, 13:56,  2 users,  load average: 0.00, 0.01, 0.05
    Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.2 us,  0.0 sy,  0.0 ni, 99.7 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3882032 total,   145996 free,   283752 used,  3452284 buff/cache
    KiB Swap:  2097148 total,  1422392 free,   674756 used.  3218052 avail Mem 複製代碼
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                    
    964 redis     20   0  142960   7244    988 S   0.3  0.2 168:01.87 redis-server                                                                                                               
    15515 root      20   0  260068 123108   3988 S   0.3  3.2  20:12.97 YDService                                                                                                                  
    30378 root      20   0  155536   2132   1540 R   0.3  0.1   0:00.06 top     複製代碼
…………
    # 後面還有不少,省略了複製代碼

由於域名已經被註銷了,目前無法截圖,因此只能複製文字出來了。

結果第一行,爲uptime命令的執行結果。後面進階命令會說道,你們感興趣能夠自行執行下。

23:03:23  # 當前系統時間    
    up 127 days, 13:56 # 系統已運行127天13小時56分
   2 users # 兩個用戶在登陸
   load average: 0.00, 0.01, 0.05 # 最近1分鐘、5分鐘、15分鐘的負載狀況複製代碼

第二行,進程信息。共79個進程,1個運行,78個睡眠,中止的0個,僵死的0個。

第三行,cpu狀態信息。

0.2 us # 用戶空間佔比
    0.0 sy # 內核空間佔比
    0.0 ni # 改變過優先級的進程佔用比
    99.7 id # 空閒CPU百分比
    0.2 wa # I/O等待佔用cpu百分比
    0.0 hi # 硬中斷佔用cpu百分比
    0.0 si # 軟中斷佔用cpu百分比
    0.0 st # 虛擬機佔用比複製代碼

第四行、第五行,分別是物理內存狀態及虛擬內存狀態。

total # 內存總量
    free  # 空閒內存
    used  # 已用內存
    buff/cache # 緩存複製代碼

第六行爲空行,第七行之後就是系統中各進程的監控狀態。

PID  # 進程id
    USER # 用戶,進程全部者
    PR   # 優先級
    NI   # nice值,負值高優先
    VIRT # 進程使用的虛擬內存總量,KB
    RES  # 所用物理內存大小,KB
    SHR  # 共享內存大小
    S    # 進程狀態。S=睡眠sleep,R=運行running,D=不可終端的休眠狀態,T=stopped,Z=zombie殭屍進程
    %CPU # 佔用CPU百分比
    %MEM # 佔用物理內存百分比
    TIME+ # 進程使用CPU時間統計
    COMMAND # 進程名複製代碼

其餘經常使用命令示例:

top -c
    # 第七行後進程信息顯示進程全路徑複製代碼
top -n 2
    # -n : 指定更新次數兩次再也不刷新,無參數會一直刷新複製代碼

top的交互模式:

按1能夠顯示多核CPU的信息。

按b能夠高亮選中某列,再使用符號"<"或「>」來向左或向右降序排序。

關於資源監控還有許多很實用的工具:如iostat、mpstat、iftop、vmstat、iotop、sar等工具,有興趣能夠自行研究,或者等下一篇linux進階命令出來再看一看。

3、結束語

這篇文斷斷續續寫了一個多月,終於在今天完結了,下一篇是linux核心命令進階及shell入門。

原本在大綱裏已經把shell入門放進這篇來了,可是想一想,仍是放到下篇吧。就這樣吧,linux的命令實在太多了,可是經常使用的其實本篇大部分都囊括了。

可能還有些一些涉及文件上傳、下載、安裝的經常使用命令如curl、wget、yum、rpm、ssh、scp等等,還有系統管理、網絡管理等等命令都放在下篇了。

最後,感謝老婆給了我這麼大動力。感謝。

撒花,結束,退場。

公衆號註冊的比較晚,沒有評論功能,因此通常用來發長文。知識星球至關於技術朋友圈,有問題你們能夠提問,討論。

歡迎關注個人公衆號:姚毛毛的博客公衆號

歡迎加入個人知識星球,目前免費哦。知識星球:姚毛毛的私密花園知識星球

相關文章
相關標籤/搜索