目錄html
tips:緊接上一篇,Linux經常使用命令指南【上】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目錄的詳解能夠參考這篇文章http://www.javashuo.com/article/p-vtuklykr-m.html
關於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等等,還有系統管理、網絡管理等等命令都放在下篇了。
最後,感謝老婆給了我這麼大動力。感謝。
撒花,結束,退場。
公衆號註冊的比較晚,沒有評論功能,因此通常用來發長文。
知識星球至關於技術朋友圈,有問題你們能夠提問,討論。
歡迎關注個人公衆號:姚毛毛的博客
歡迎加入個人知識星球,目前免費哦。
知識星球:姚毛毛的私密花園
--------------------------------------------------------
公衆號註冊的比較晚,沒有評論功能,因此通常用來發長文。
知識星球至關於技術朋友圈,有問題你們能夠提問,討論。
歡迎關注個人公衆號:姚毛毛的博客
歡迎加入個人知識星球,目前免費哦。
知識星球:姚毛毛的私密花園
[知識星球]