寫(xiě)在前面
? 想必,通過(guò)《【小白幾分鐘】幾分鐘了解Linux常用基本命令》這一篇文章,大家應(yīng)該對(duì)Linux系統(tǒng)的操作有了一個(gè)大致的了解,如果還沒(méi)有看過(guò)基礎(chǔ)命令篇的胖友們,可以點(diǎn)進(jìn)去閱覽一下,并且對(duì)應(yīng)著命令敲一遍
接下來(lái),打算跟大家介紹一下Linux中的一些進(jìn)階命令,該篇能讓你對(duì)Linux系統(tǒng)環(huán)境有個(gè)更好的認(rèn)知,話(huà)不多說(shuō),進(jìn)入正題
?
Linux常用進(jìn)階命令
?
-
df
功能描述:查看磁盤(pán)空間
語(yǔ)法:df[選項(xiàng)]
常用選項(xiàng):
?????-h?以高可讀性顯示
示例:
[root@vultr ~]# df -h
Filesystem Size Used Avail Use% Mounted on
//文件系統(tǒng) 容量 已使用 可用 已用% 掛載點(diǎn)
devtmpfs 463M 0 463M 0% /dev
tmpfs 494M 20K 494M 1% /dev/shm
tmpfs 494M 50M 444M 11% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/vda1 25G 4.0G 20G 17% /
tmpfs 99M 0 99M 0% /run/user/0
?
-
free
功能描述:查看內(nèi)存使用情況
語(yǔ)法:free[選項(xiàng)]
常用選項(xiàng):
?????-m?以MB為單位顯示內(nèi)存使用情況
示例:
[root@vultr ~]# free -m
total used free shared buffers cached
#內(nèi)存總數(shù) 已使用數(shù)量 空閑數(shù)量 當(dāng)前廢棄不用 輸入緩存數(shù)量 輸出緩存數(shù)量
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703#真實(shí)剩余內(nèi)存可為1703MB
Swap: 4094 0 4094
#swap交換內(nèi)存,當(dāng)系統(tǒng)真實(shí)內(nèi)存不夠用的時(shí)候可以臨時(shí)用磁盤(pán)空間來(lái)充當(dāng)內(nèi)存,一般大小為真實(shí)內(nèi)存的2-4倍
?
-
lsblk
功能描述:用于列出所有可用塊設(shè)備的信息,而且還能顯示他們之間的依賴(lài)關(guān)系,但是它不會(huì)列出RAM盤(pán)的信息。塊設(shè)備有硬盤(pán),閃存盤(pán),cd-ROM等等。
語(yǔ)法:lsblk
示例:
[root@Jobs ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 25G 0 disk
└─vda1 253:1 0 25G 0 part /
//字段含義
NAME:這是塊設(shè)備名
MAJ:MIN:本欄顯示主要和次要設(shè)備號(hào)
RM:本欄顯示設(shè)備是否可移動(dòng)設(shè)備。RM值等于1,這說(shuō)明他們是可移動(dòng)設(shè)備
SIZE:本欄列出設(shè)備的容量大小信息
RO:該項(xiàng)表明設(shè)備是否為只讀。RO值為0,不是只讀的
TYPE:本欄顯示塊設(shè)備是否是磁盤(pán)或磁盤(pán)上的一個(gè)分區(qū)
MOUNTPOINT:設(shè)備掛載的掛載點(diǎn)
?
-
mount
功能描述:用于加載文件系統(tǒng)到指定的掛載點(diǎn)
語(yǔ)法:mount設(shè)備原始地址(設(shè)備原始地址都統(tǒng)一在/dev下) 需掛載的位置路徑
示例:
[root@Jobs ~]# mkdir -p /mnt/cdrom //創(chuàng)建一個(gè)掛載點(diǎn),最好在“/mnt/”下創(chuàng)建
[root@Jobs ~]# ls /mnt
cdrom
[root@Jobs ~]#mount /dev/sr0 /mnt/cdrom //掛載到cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only //掛載成功后便可正常使用
[root@Jobs ~]#umount /mnt/cdrom //卸載已掛載的文件
?
-
|
功能描述:|為管道符,一般可用于將兩個(gè)命令隔開(kāi),管道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入
語(yǔ)法:管道符不能單獨(dú)使用,必須要其他指令一同使用,主要起輔助作用
示例:
[root@vultr /]# ls / | wc -l //統(tǒng)計(jì)根目錄下,有多少個(gè)文件
22
[root@vultr /]# ls / | grep o //“grep”起到了過(guò)濾作用,過(guò)濾出含有“o”的文件
boot
home
lost+found
opt
proc
root
?
-
id
功能描述:顯示真實(shí)有效的UID(用戶(hù)id)和GID(組id)
語(yǔ)法:id[用戶(hù)名]
示例:
[root@vultr ~]# id //后面不跟任何參數(shù)視為查看當(dāng)前用戶(hù)id信息
uid=0(root) gid=0(root) groups=0(root)
[root@vultr ~]# id testdog //查看“testdog”這個(gè)用戶(hù)的id信息
uid=501(testdog) gid=1002(testdog) groups=1002(testdog)
[root@vultr ~]# id -un //功能和“whoami”相同, 查看當(dāng)前登錄用戶(hù)名,一般用戶(hù)shell腳本中
root
?
-
ps
功能描述:顯示當(dāng)前系統(tǒng)的進(jìn)程狀態(tài),
語(yǔ)法:ps[選項(xiàng)] (結(jié)合管道符使用)
常用選項(xiàng):
?????-e?列出全部進(jìn)程
?????-f?顯示全部字段(列)
示例:
[root@vultr ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jul02 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system --des
root 2 0 0 Jul02 ? 00:00:00 [kthreadd]
root 3 2 0 Jul02 ? 00:00:00 [rcu_gp]
root 5 2 0 Jul02 ? 00:00:00 [kworker/0:0H]
root 7 2 0 Jul02 ? 00:00:00 [mm_percpu_wq]
...
字段含義:
UID:執(zhí)行該進(jìn)程的用戶(hù)id
PID:進(jìn)程id
PPID:進(jìn)程的父級(jí)進(jìn)程id,如果一個(gè)程序找不到父級(jí)id,該程序則視作僵尸進(jìn)程
C:cpu的占用率,以%顯示
STIME:進(jìn)程的啟動(dòng)時(shí)間
TTY:發(fā)起該進(jìn)程的設(shè)備識(shí)別符號(hào),如果顯示“?”則表示進(jìn)程不是有終端設(shè)備發(fā)起的
TIME:進(jìn)程的執(zhí)行時(shí)間
CMD:該進(jìn)程的名稱(chēng)或?qū)?yīng)的路勁
[root@vultr ~]# ps -ef | grep python
//結(jié)合管道符使用,過(guò)濾出名稱(chēng)為“python”的進(jìn)程,注意這條命令行本身也是一個(gè)進(jìn)程,所有會(huì)顯示在最后
root 484 1 0 Jul02 ? 00:00:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
root 891 1 0 Jul02 ? 00:00:18 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 999 1 0 Jul02 ? 00:00:19 python main.pyc 8888
root 1218 1 0 Jul02 ? 00:00:19 python task.pyc
root 1806 1 0 Jul02 ? 00:00:47 /bin/python /usr/bin/ssserver -c /etc/shadowsocks.json -d start
root 24854 24380 0 14:18 pts/0 00:00:00 grep --color=auto python
?
-
top
功能描述:可以實(shí)時(shí)動(dòng)態(tài)地查看系統(tǒng)的整體運(yùn)行情況
語(yǔ)法:top[選項(xiàng)]
常用交互命令:
?????-M?根據(jù)駐留內(nèi)存大小進(jìn)行排序
?????-P?根據(jù)CPU使用百分比大小進(jìn)行排序
?????-1?當(dāng)服務(wù)器擁有多個(gè)cpou時(shí),可以使用“1”來(lái)切換顯示各個(gè)cpu的詳細(xì)信息
?????-q?退出程序
示例:
[root@vultr ~]# top
top - 14:29:08 up 1 day, 23:13, 2 users, load average: 0.00, 0.01, 0.00
//系統(tǒng)之間 運(yùn)行1天 啟動(dòng)了23:13分鐘 2個(gè)用戶(hù)當(dāng)前登錄 分別表示在1分鐘內(nèi)、5分鐘內(nèi)、15分鐘內(nèi)的負(fù)載情況
Tasks: 95 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
//總進(jìn)程數(shù)量 運(yùn)行進(jìn)程數(shù) 睡眠進(jìn)程數(shù) 停止進(jìn)程數(shù) 僵尸進(jìn)程數(shù)
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
//CPU使用情況
KiB Mem : 1009800 total, 477188 free, 227052 used, 305560 buff/cache
//物理內(nèi)存使用情況
KiB Swap: 1049596 total, 1049596 free, 0 used. 576220 avail Mem
//交換內(nèi)存使用情況
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAD
1 root 20 0 43328 4976 3860 S 0.0 0.5 0:04.26 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
...
字段含義:
PID:進(jìn)程id
USER:該進(jìn)程對(duì)應(yīng)的用戶(hù)
PR:優(yōu)先級(jí),數(shù)值越大優(yōu)先級(jí)越高
VIRT:虛擬內(nèi)存
RES:常駐內(nèi)存
SHR:共享內(nèi)存
進(jìn)程實(shí)際使用內(nèi)存 = 常駐內(nèi)存(RES)- 共享內(nèi)存 (SHR)
*S:表示進(jìn)程的狀態(tài)“S”表示sleeping,“R”表示running
*%CPU:Cpu占用百分比
*%MEN:內(nèi)存占用百分比
TIME+:執(zhí)行時(shí)間
*COMMAD:進(jìn)程的名稱(chēng)或路徑
?
-
du
功能描述:查看目錄的真實(shí)大小
語(yǔ)法:du[選項(xiàng)] [文件]
常用選項(xiàng):
?????-s?只顯示匯總大小
?????-h?以高可讀性顯示
[root@vultr ~]# du -h /etc //列出“etc”文件夾下每個(gè)文件大小
4.0K /etc/ppp/peers
36K /etc/ppp
8.0K /etc/cron.hourly
8.0K /etc/python
4.0K /etc/gcrypt
40K /etc/iproute2
...
[root@vultr ~]# du -sh /etc/ //統(tǒng)計(jì)“etc”文件夾的總大小
13M /etc/
?
-
find
功能描述:文件搜索
語(yǔ)法:find[搜索范圍] [匹配條件]
常用匹配條件:
?????-name?按照文件名來(lái)查找(-iname不區(qū)分大小寫(xiě))
?????-type?按照類(lèi)型查找(-iname不區(qū)分大小寫(xiě))
?????-user?按照文件所有者查找
?????-exec find?命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的其他linux命令。相應(yīng)命令的形式為'命令' {} ;,注意{ }和\;之間的空格。
示例:
[root@vultr ~]# find /etc -name te* //在etc文件夾下找出所有以te開(kāi)頭的文件
/etc/terminfo
[root@vultr /]# find /tmp -user root | grep test* //按所有者root來(lái)查詢(xún)以“test”開(kāi)頭的文件
/tmp/testwjj
/tmp/testwjj/test
/tmp/testwjj/test.pl
/tmp/test.pl
[root@vultr ~]# find /tmp/ -type d //查找tmp目錄下,類(lèi)型為文件
/tmp/
/tmp/.X11-unix
/tmp/testt
/tmp/testt/test2
/tmp/testt/test2/test3
/tmp/.XIM-unix
/tmp/.font-unix
/tmp/test1
/tmp/test1/test2
/tmp/test1/test2/test3
/tmp/.Test-unix
/tmp/.ICE-unix
[root@vultr ~]# find /tmp/ -type d | wc -l //統(tǒng)計(jì)tmp目錄下,類(lèi)型為文件的總數(shù)
12
[root@vultr /]# find /tmp -name test* -exec ls -l {} \; //將tmp文件夾下,以test開(kāi)頭的文件詳細(xì)列出
total 4
-rw-r--r-- 1 root root 0 Jun 22 14:04 test
-rw-r--r-- 1 root root 40 Jun 22 15:30 test.pl
-rw-r--r-- 1 root root 0 Jun 22 14:04 /tmp/testwjj/test
-rw-r--r-- 1 root root 40 Jun 22 15:30 /tmp/testwjj/test.pl
-rw-r--r-- 1 root root 40 Jun 26 10:40 /tmp/test.pl
?
-
service
功能描述:控制系統(tǒng)服務(wù)的工具,啟動(dòng)、停止、重啟和關(guān)閉服務(wù)
語(yǔ)法:service[服務(wù)名稱(chēng)] start/stop/restart
示例:
[root@vultr ~]# service mysql restart //以重啟“mysql”服務(wù)為例,大家也可以去嘗試停止和關(guān)閉等命令
Redirecting to /bin/systemctl restart mysql.service
?
-
kill
功能描述:殺死進(jìn)程
語(yǔ)法1:killPID (先要通過(guò)ps -ef進(jìn)行進(jìn)程的查詢(xún),然后再通過(guò)PID殺死進(jìn)程)
語(yǔ)法2:killall進(jìn)程名稱(chēng)
示例:
[root@vultr ~]# ps -ef | grep vim //通過(guò)“ps”命令找到“vim”的PID
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
[root@vultr ~]#kill 3268 //通過(guò)PID殺死進(jìn)程
[root@vultr ~]#kill 3268 //再次輸入命令則會(huì)提示沒(méi)有這個(gè)進(jìn)程,表示該進(jìn)程已被殺死
-bash: kill: (3268) - 沒(méi)有那個(gè)進(jìn)程
?
-
reboot
功能描述:重啟服務(wù)器
語(yǔ)法:reboot[選項(xiàng)]
常用選項(xiàng):
?????-w?僅做測(cè)試,并不是真的關(guān)機(jī),只會(huì)把重開(kāi)機(jī)器的數(shù)據(jù)寫(xiě)入/var/log目錄下的wtmp記錄文件
示例:
[root@vultr ~]# reboot //重開(kāi)機(jī)。
[root@vultr ~]# reboot -w //做個(gè)重開(kāi)機(jī)的模擬(只有紀(jì)錄并不會(huì)真的重開(kāi)機(jī))。
?
-
shutdown
功能描述:關(guān)機(jī)(慎用!)
語(yǔ)法:shutdown[選項(xiàng)] (參數(shù))
常用選項(xiàng):
?????-h?將系統(tǒng)關(guān)機(jī)
示例:
[root@vultr ~]# shutdown -h now //立即關(guān)機(jī)
[root@vultr ~]# init 0 //立即關(guān)機(jī)
[root@vultr ~]# poweroff //立即關(guān)機(jī)
?
-
netstat
功能描述:顯示Linux中網(wǎng)絡(luò)系統(tǒng)的狀態(tài)信息
語(yǔ)法:netstat[選項(xiàng)]
常用選項(xiàng):
?????-t?表示只列出tpc協(xié)議的連接
?????-n?直接使用ip地址
?????-l?“state”列中被監(jiān)聽(tīng)的連接
?????-p?顯示發(fā)起連接的進(jìn)程的PID和進(jìn)程名稱(chēng)
示例:
[root@vultr ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 943/nginx: master p
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 922/pure-ftpd (SERV
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 916/sshd
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 995/python
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 943/nginx: master p
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1616/master
...
?
寫(xiě)在最后
至此的話(huà),關(guān)于Linux的一些進(jìn)常用階操作也都說(shuō)完了,有不太明白的胖友們,可以去“Linux命令手冊(cè)”進(jìn)行查詢(xún),感覺(jué)這東西真的是神器啊,所以向各位胖友安利了兩次
自從有了這個(gè)手冊(cè),腰不酸、腿不疼,就連man命令都用的少了(還不是因?yàn)橛⑽牟睿@邊還是希望有條件的胖友還是可以使用man命令對(duì)Linux的命令進(jìn)行幫助查詢(xún),畢竟不是每個(gè)人都像我英文這么差的,以后呢,也要好好學(xué)習(xí)英語(yǔ)了。。。
那最后就來(lái)句英文的雞湯作為結(jié)尾吧~
?

別向這個(gè)操蛋的世界投降!