tips:緊接上一篇,Linux經常使用命令指南【上】html
[TOC]node
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包複製代碼
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中文件複製代碼
mkdir ./yao/ yao2複製代碼
tar zxvf www.tar.gz -C ./yao/
# 解壓www.tar.gz 到yao目錄下
# 能夠看到連var這個目錄打打包進來了複製代碼
若是不想打包那麼多層級怎麼辦,直接cd到須要打包的目錄進行打包。redis
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文件後不見了。複製代碼
gzip -l *.gz
# 不解壓展現壓縮包內信息複製代碼
gzip -dv *.gz
# 解壓gz文件複製代碼
能夠發現,解壓後gz包也不見了。那怎麼保留源文件?
echo '試試' >> yaomaomao01.html
# 先在yaomaomao01.html文件中添加點內容,echo在這裏的做用與sed相似複製代碼
gzip -c yaomaomao01.html > 01.gz
# 使用-c + 重定向符號,將yaomaomao01.html壓縮爲01.gz,而且不刪除源文件,解壓也是同樣的操做複製代碼
gzip -dc 01.gz > 01.html
# 將01.gz解壓爲01.html,能夠看到源文件01.gz還存在

複製代碼
擴展:可使用zcat、zgrep、zless、zdiff等擴展組件查看壓縮文件,與cat、grep、less和diff等命令同樣,如圖:
zcat 01.gz複製代碼
gz不能壓縮目錄,這個開頭說了,報錯以下:
gzip test複製代碼
# ==>> gzip: test is a directory -- ignored複製代碼
zip壓縮格式,windows、linux、mac上都是通用的壓縮格式,而且跟tar同樣,能夠壓縮目錄。
zip yao.zip *
# 壓縮當前目錄下全部文件複製代碼
可是這樣打包並不能壓縮子目錄下文件,只能壓縮子目錄自己,如圖:
cd test複製代碼
touch test01.txt複製代碼
cd ../複製代碼
zip yao2.zip *複製代碼
如同其餘命令樣,zip也有個-r參數,能夠遞歸壓縮
zip -r yao2.zip *
# ==>> adding: test/test01.txt (stored 0%)複製代碼
當前目錄下已經有壓縮包,想打包本目錄的時候不將上個壓縮包打進去,排除掉,怎麼打包?使用-x參數:
zip -r yao3.zip * -x yao2.zip複製代碼
小結,zip幾種打包方式,並有三個參數:
zip yao2.zip *
# 普通打包複製代碼
zip -r yao3.zip *
# 遞歸打包複製代碼
zip -r yao3.zip * -x yao2.zip
# 遞歸打包,排除某文件複製代碼
zip -rq yao4.zip *
# 遞歸打包,不顯示壓縮信息複製代碼
# 無參數,普通壓縮
# -r :遞歸壓縮
# -x :排除某個文件壓縮
# -q :不顯示壓縮信息複製代碼
unzip能夠解壓zip命令打包的或其餘例如windows上的rar、360壓縮等軟件打包的zip格式文件。
不解壓查看壓縮文件:
unzip -l yao.zip複製代碼
指定目錄解壓:
unzip -d yao01 yao.zip
# 解壓到test文件夾下
# -d : 指定目錄,無此目錄則建立一個,解壓的部分信息===>> creating: yao01/test/
# 沒有-d參數則默認解壓到當前文件夾
# -o : 解壓時不提示是否覆蓋文件;若是咱們如今解壓到當前目錄就會提示是否覆蓋,由於已經有此文件了,使用-o能夠直接覆蓋
# -v :展現解壓時的詳細信息複製代碼
7z也是一種高效率的壓縮文件格式,7z經常使用命令以下。
壓縮:
7za a -r yao.7z *.html
# 壓縮全部html到yao.7z包中
# a :添加文件、目錄
# -r :遞歸複製代碼
不解壓查看文件內部信息:
7za l yao.7z
# l :不解壓查看複製代碼
解壓:
7za x yao.7z -r -oyao7z
# x : 解壓,x換成e也能夠解壓;可是通常用x,x解壓全路徑,用e會將全部文件解壓到一個目錄中
# -r :遞歸解壓子目錄
# -o :指定解壓目錄,注意的是,-o參數與目錄間沒有空格,這是比較奇特的一點複製代碼
提到用戶與權限,則首先得說說一個不能避過的命令:su與sudo。
su與sudo的共同點是,均可以用另外一個用戶權限執行命令。
不一樣點是:su要切換成另外一個用戶,sudo不須要。
切換用戶,su的經常使用命令:
whoami
# 查看本身是哪一個用戶,咱們這裏能夠看到是root登陸的複製代碼
su yao
# root用戶切換爲普通用戶不須要輸入密碼複製代碼
su root
# 普通用戶切換回root用戶須要輸入密碼
# 小知識: su root == su,su切換root不須要輸入root用戶名
# 注意:這種切換雖然能夠成功,可是環境變量仍是原用戶的,因此要用下面的命令切換複製代碼
su - yao
# su - [用戶名],這種切換方式能夠切換到相應用戶,還能將登錄後的環境變量一併切換複製代碼
其實su也能夠不用切換過去就能執行命令,只須要加一個參數-c就行:
su - yao -c 'pwd'
# 使用yao執行pwd命令複製代碼
能夠看到,實際上是執行成功了,正確返回了yao的home路徑。
可是這種方式畢竟沒有sudo來的方便,接下來看看不用切換用戶的sudo:
su - yao
# 切換爲普通用戶登陸複製代碼
whoami
# 查看切換成功了沒複製代碼
ls /root
# 訪問root文件夾複製代碼
能夠看到,沒權限。怎麼辦?sudo呀。
sudo ls /root
# 訪問root目錄,輸入yao用戶的登陸密碼就好了複製代碼
全部用戶均可以使用sudo嗎?固然不是了,咱們能夠查看下賦予sudo權限的用戶:
sudo -l
# 查看當前用戶被受權的sudo權限複製代碼
怎麼賦予sudo權限?
在/etc/sudoers文件中添加用戶就好了
sudo cat /etc/sudoers複製代碼
用vi仍是sed均可以,可是最好使用visudo。
sudo visudo
# root用戶不用sudo複製代碼
visudo是專門來編輯/etc/sudoers文件的,它還有語法檢查做用,趕快添加你的sudo用戶吧。
最經常使用,不帶任何參數的添加用戶:
useradd wfy
# 新增用戶wfy複製代碼
passwd wfy
# 設置密碼,密碼通常爲大小寫加數字和一個特殊字符複製代碼
passwd 小技巧,一條命令設置用戶密碼:
echo "123456" | passwd --stdin wfy
# --stdin :可從標準輸入獲取密碼
# 批量修改密碼時,此命令比較有用
# 此外,還有個chpasswd命令也能夠批量修改密碼複製代碼
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天禁止登陸複製代碼
useradd不帶任何參數時,系統會先讀取/etc/login.defs(用戶定義)、/etc/deault/useradd(用戶默認配置)文件,而後根據其中所設置的規則添加用戶同時向/etc/passwd(密碼文件)、/etc/group(用戶組)文件添加新用戶和新用戶組記錄。
建好了以後,能夠到/home目錄下看下,已經建立了屬於此用戶的家目錄。
cd /home/wfy複製代碼
chage -l wfy
# 查看用戶的有效期複製代碼
查看用戶所屬信息:
id wfy
# 這個信息其實就在/etc/passwd中,能夠用grep wfy /etc/passwd 查看比對下
# uid : 用戶id
# gid :用戶組id複製代碼
後續說道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複製代碼
拓展:使用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}複製代碼
能夠看到先後對比的效果複製代碼
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複製代碼
userdel -r test_wfy
# -r : 刪除用戶及家目錄
# -f : 強制刪除用戶,即便用戶登陸了
# 不加-r參數刪除不會刪除家目錄複製代碼
注意:實際工做中,通常不使用userdel,而是去/etc/passwd中將用戶信息註釋。
id,查看用戶id信息:
id wfy
# 顯示wfy的uid及gid信息複製代碼
w,最經常使用,查看已登陸用戶信息:
w
# 展現全部已登陸用戶信息
# 展現字段含義以下
# USER : 用戶
# TTY : 用戶tty名稱
# FROM : 從哪登陸的
# LOGIN : 登陸時間
# IDLE :終端空閒時間
# JCPU : 終端上全部進程及子進程使用系統的總時間
# PCPU :活動進程使用的系統時間
# WHAT :當前用戶執行的進程複製代碼
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
複製代碼
chown經常使用命令以下:
cd ~
# 返回root家目錄複製代碼
chown wfy wfy.txt
# 更改wfy.txt的所屬用戶爲wfy複製代碼
chown wfy:wfy wfy2.txt
# 將wfy2.txt的所屬用戶更改成wfy,用戶組從root更改成wfy複製代碼
chown -R wfy:wfy yao
# 將yao這個目錄及其子目錄全都賦權給wfy
# 能夠看到yao下的var目錄頁賦權給了wfy這個用戶及用戶組複製代碼
chmod能夠改變文件及目錄的權限範圍,它有兩種賦權模式:1)使用權限字母 + 操做符;2)使用數字。
經常使用命令示例:
chmod 777 wfy.txt
# 更改wfy.txt權限爲全部人可訪問複製代碼
修改前:
修改後:
7表明rwx,777所表明的9位字符權限爲rwxrwxrwx。
賦予目錄只讀權限:
chmod -R 555 yao
# 5 = 4 + 0 +1,即r-x,可讀與可執行權限,可是不能被修改。執行下看看效果,是否與預期同樣。複製代碼
能夠看到第一位字符是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複製代碼
能夠看到咱們的wfy.txt文件並非一個shell文件,沒有找到響應的命令去執行,後續的shell入門會說下.sh的腳本文件是怎樣編寫的。
注意:普通用戶還需有r權限才能執行,root則不須要。
說到資源管理這塊,/proc文件夾是linux上不得不說的一個目錄。
ls /proc複製代碼
能夠看到紅框/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、內存的一些基本命令。
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複製代碼
一臺電腦、服務器,內存、存儲(磁盤)、處理器(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
複製代碼
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,能夠遠程探測端口。
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等等,還有系統管理、網絡管理等等命令都放在下篇了。
最後,感謝老婆給了我這麼大動力。感謝。
公衆號註冊的比較晚,沒有評論功能,因此通常用來發長文。知識星球至關於技術朋友圈,有問題你們能夠提問,討論。
歡迎關注個人公衆號:姚毛毛的博客
歡迎加入個人知識星球,目前免費哦。知識星球:姚毛毛的私密花園