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

目錄html

tips:緊接上一篇,Linux經常使用命令指南【上】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包

mark
mark

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

擴展:可使用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目錄的詳解能夠參考這篇文章http://www.javashuo.com/article/p-vtuklykr-m.html

關於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等等,還有系統管理、網絡管理等等命令都放在下篇了。

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

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

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

歡迎加入個人知識星球,目前免費哦。
知識星球:姚毛毛的私密花園
--------------------------------------------------------
公衆號註冊的比較晚,沒有評論功能,因此通常用來發長文。
知識星球至關於技術朋友圈,有問題你們能夠提問,討論。

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

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

相關文章
相關標籤/搜索