W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
您現(xiàn)在閱讀的這本書(shū)是劉遄老師在經(jīng)歷了十多年的運(yùn)維學(xué)習(xí)以及數(shù)十期的培訓(xùn)授課后總結(jié)而成的,您可能無(wú)法在本節(jié)中找到某些之前見(jiàn)過(guò)的命令。但不用擔(dān)心,之所以這樣安排,原因是劉遄老師努力地將Linux命令與實(shí)戰(zhàn)相結(jié)合,真正讓讀者在實(shí)操中理解技術(shù),而不是單純地把命令堆砌到書(shū)中讓讀者去硬背。
劉遄老師用了近一年的時(shí)間把最常用的Linux命令進(jìn)行匯總、歸納、整理、分類(lèi)后,把這些常用的命令合理安排到了后續(xù)章節(jié)中,然后采用以練代學(xué)的方式來(lái)加深讀者的理解和掌握。從數(shù)年的培訓(xùn)成果反饋來(lái)看,這種方式相當(dāng)有效,因此也相信這種方式肯定適合您的學(xué)習(xí)。
1.echo命令
echo命令用于在終端輸出字符串或變量提取后的值,格式為“echo [字符串 | $變量]”。
例如,把指定字符串“Linuxprobe.com”輸出到終端屏幕的命令為:
[root@linuxprobe ~]# echo Linuxprobe.Com
該命令會(huì)在終端屏幕上顯示如下信息:
Linuxprobe.Com
下面,我們使用$變量的方式提取變量SHELL的值,并將其輸出到屏幕上:
[root@linuxprobe ~]# echo $SHELL
/bin/bash
2.date命令
date命令用于顯示及設(shè)置系統(tǒng)的時(shí)間或日期,格式為“date [選項(xiàng)] [+指定的格式]”。
只需在強(qiáng)大的date命令中輸入以“+”號(hào)開(kāi)頭的參數(shù),即可按照指定格式來(lái)輸出系統(tǒng)的時(shí)間或日期,這樣在日常工作時(shí)便可以把備份數(shù)據(jù)的命令與指定格式輸出的時(shí)間信息結(jié)合到一起。例如,把打包后的文件自動(dòng)按照“年-月-日”的格式打包成“backup-2017-9-1.tar.gz”,用戶(hù)只需要看一眼文件名稱(chēng)就能大概了解到每個(gè)文件的備份時(shí)間了。date命令中常見(jiàn)的參數(shù)格式及作用如表2-4所示。
表2-4 ate命令中的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
%S | 秒(00~59) |
%M | 分鐘(00~59) |
%H | 小時(shí)(00~23) |
%I | 小時(shí)(00~12) |
%m | 月份(1~12) |
%p | 顯示出AM或PM |
%a | 縮寫(xiě)的工作日名稱(chēng)(例如:Sun) |
%A | 完整的工作日名稱(chēng)(例如:Sunday) |
%b | 縮寫(xiě)的月份名稱(chēng)(例如:Jan) |
%B | 完整的月份名稱(chēng)(例如:January) |
%q | 季度(1~4) |
%y | 簡(jiǎn)寫(xiě)年份(例如:20) |
%Y | 完整年份(例如:2020) |
%d | 本月中的第幾天 |
%j | 今年中的第幾天 |
%n | 換行符(相當(dāng)于按下回車(chē)鍵) |
%t | 跳格(相當(dāng)于按下Tab鍵) |
按照默認(rèn)格式查看當(dāng)前系統(tǒng)時(shí)間的date命令如下所示:
[root@linuxprobe ~]# date
Mon Aug 24 16:11:23 CST 2017
按照“年-月-日 小時(shí):分鐘:秒”的格式查看當(dāng)前系統(tǒng)時(shí)間的date命令如下所示:
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2017-08-24 16:29:12
將系統(tǒng)的當(dāng)前時(shí)間設(shè)置為2017年9月1日8點(diǎn)30分的date命令如下所示:
[root@linuxprobe ~]# date -s "20170901 8:30:00"
Fri Sep 1 08:30:00 CST 2017
再次使用date命令并按照默認(rèn)的格式查看當(dāng)前的系統(tǒng)時(shí)間,如下所示:
[root@linuxprobe ~]# date
Fri Sep 1 08:30:01 CST 2017
date命令中的參數(shù)%j可用來(lái)查看今天是當(dāng)年中的第幾天。這個(gè)參數(shù)能夠很好地區(qū)分備份時(shí)間的新舊,即數(shù)字越大,越靠近當(dāng)前時(shí)間。該參數(shù)的使用方式以及顯示結(jié)果如下所示。
[root@linuxprobe ~]# date "+%j"
244
3.reboot命令
reboot命令用于重啟系統(tǒng),其格式為reboot。
由于重啟計(jì)算機(jī)這種操作會(huì)涉及硬件資源的管理權(quán)限,因此默認(rèn)只能使用root管理員來(lái)重啟,其命令如下:
[root@linuxprobe ~]# reboot
4.poweroff命令
poweroff命令用于關(guān)閉系統(tǒng),其格式為poweroff。
該命令與reboot命令相同,都會(huì)涉及硬件資源的管理權(quán)限,因此默認(rèn)只有root管理員才可以關(guān)閉電腦,其命令如下:
[root@linuxprobe ~]# poweroff
5.wget命令
wget命令用于在終端中下載網(wǎng)絡(luò)文件,格式為“wget [參數(shù)] 下載地址”。
如果您沒(méi)有Linux系統(tǒng)的管理經(jīng)驗(yàn),當(dāng)前只需了解一下wget命令的參數(shù)以及作用,然后看一下下面的演示實(shí)驗(yàn)即可,切記不要急于求成。后面章節(jié)將逐步講解Linux系統(tǒng)的配置管理方法,可以等您掌握了網(wǎng)卡的配置方法后再來(lái)進(jìn)行這個(gè)實(shí)驗(yàn)操作。表2-5所示為wget命令的參數(shù)以及參數(shù)的作用。
表2-5 wget命令的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-b | 后臺(tái)下載模式 |
-P | 下載到指定目錄 |
-t | 最大嘗試次數(shù) |
-c | 斷點(diǎn)續(xù)傳 |
-p | 下載頁(yè)面內(nèi)所有資源,包括圖片、視頻等 |
-r | 遞歸下載 |
嘗試使用wget命令從本書(shū)的配套站點(diǎn)中下載本書(shū)的最新pdf格式電子文檔,這個(gè)文件的完整路徑為https://www.linuxprobe.com/docs/LinuxProbe.pdf,執(zhí)行該命令后的下載效果如下:
[root@linuxprobe ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
--2017-08-24 19:30:12 -- https://www.linuxprobe.com/docs/LinuxProbe.pdf
Resolving www.linuxprobe.com (www.linuxprobe.com)... 220.181.105.185
Connecting to www.linuxprobe.com (www.linuxprobe.com)|220.181.105.185|:80...connected.
HTTP request sent, awaiting response... 200 OK
Length: 45948568 (44M) [application/pdf]
Saving to: ‘LinuxProbe.pdf’
100%[===========================================>] 45,948,568 32.9MB/s in 1.3s
2017-08-24 19:30:14 (32.9 MB/s) - ‘LinuxProbe.pdf’ saved [45948568/45948568]
接下來(lái),我們使用wget命令遞歸下載www.linuxprobe.com網(wǎng)站內(nèi)的所有頁(yè)面數(shù)據(jù)以及文件,下載完后會(huì)自動(dòng)保存到當(dāng)前路徑下一個(gè)名為www.linuxprobe.com的目錄中。執(zhí)行該操作的命令為wget -r -p https://www.linuxprobe.com ,該命令的執(zhí)行結(jié)果如下。
[root@linuxprobe ~]# wget -r -p https://www.linuxprobe.com
--2017-08-24 19:31:41-- https://www.linuxprobe.com/
Resolving www.linuxprobe.com... 106.185.25.197
Connecting to www.linuxprobe.com|106.185.25.197|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'www.linuxprobe.com/index.html'
………………省略下載過(guò)程………………
6.ps命令
ps命令用于查看系統(tǒng)中的進(jìn)程狀態(tài),格式為“ps [參數(shù)]”。
估計(jì)讀者在第一次執(zhí)行這個(gè)命令時(shí)都要驚呆一下—怎么會(huì)有這么多輸出值,這可怎么看得過(guò)來(lái)?其實(shí),劉遄老師通常會(huì)將ps命令與第3章的管道符技術(shù)搭配使用,用來(lái)抓取與某個(gè)指定服務(wù)進(jìn)程相對(duì)應(yīng)的PID號(hào)碼。ps命令的常見(jiàn)參數(shù)以及作用如表2-6所示。
表2-6 ps命令的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-a | 顯示所有進(jìn)程(包括其他用戶(hù)的進(jìn)程) |
-u | 用戶(hù)以及其他詳細(xì)信息 |
-x | 顯示沒(méi)有控制終端的進(jìn)程 |
Linux系統(tǒng)中時(shí)刻運(yùn)行著許多進(jìn)程,如果能夠合理地管理它們,則可以?xún)?yōu)化系統(tǒng)的性能。在Linux系統(tǒng)中,有5種常見(jiàn)的進(jìn)程狀態(tài),分別為運(yùn)行、中斷、不可中斷、僵死與停止,其各自含義如下所示。
R(運(yùn)行):進(jìn)程正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
S(中斷):進(jìn)程處于休眠中,當(dāng)某個(gè)條件形成后或者接收到信號(hào)時(shí),則脫離該 狀態(tài)。
D(不可中斷):進(jìn)程不響應(yīng)系統(tǒng)異步信號(hào),即便用kill命令也不能將其中斷。
Z(僵死):進(jìn)程已經(jīng)終止,但進(jìn)程描述符依然存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)函數(shù)后將進(jìn)程釋放。
T(停止):進(jìn)程收到停止信號(hào)后停止運(yùn)行。
當(dāng)執(zhí)行ps aux命令后通常會(huì)看到如表2-7所示的進(jìn)程狀態(tài),表2-7中只是列舉了部分輸出值,而且正常的輸出值中不包括中文注釋。
表2-7 進(jìn)程狀態(tài)
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
進(jìn)程的所有者 | 進(jìn)程ID號(hào) | 運(yùn)算器占用率 | 內(nèi)存占用率 | 虛擬內(nèi)存使用量(單位是KB) | 占用的固定內(nèi)存量(單位是KB) | 所在終端 | 進(jìn)程狀態(tài) | 被啟動(dòng)的時(shí)間 | 實(shí)際使用CPU的時(shí)間 | 命令名稱(chēng)與參數(shù) |
root | 1 | 0.0 | 0.5 | 244740 | 10636 | ? | Ss | 07:54 | 0:02 | /usr/lib/systemd/ systemd --switched-root --system --deserialize 18 |
root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [kthreadd] |
root | 3 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [rcu_gp] |
root | 4 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [rcu_par_gp] |
root | 5 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [kworker/0:0H-kbl |
root | 6 | 0.0 | 0.0 | 0 | 0 | ? | I< | 07:54 | 0:00 | [mm_percpu_wq] |
root | 7 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [ksoftirqd/0] |
root | 8 | 0.0 | 0.0 | 0 | 0 | ? | I | 07:54 | 0:00 | [rcu_sched] |
root | 9 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:54 | 0:00 | [migration/0] |
……………… 省略部分輸出信息 ………………
如前面所提到的,在Linux系統(tǒng)中的命令參數(shù)有長(zhǎng)短格式之分,長(zhǎng)格式和長(zhǎng)格式之間不能合并,長(zhǎng)格式和短格式之間也不能合并,但短格式和短格式之間是可以合并的,合并后僅保留一個(gè)-(減號(hào))即可。另外ps命令可允許參數(shù)不加減號(hào)(-),因此可直接寫(xiě)成ps aux的樣子。
7.top命令
top命令用于動(dòng)態(tài)地監(jiān)視進(jìn)程活動(dòng)與系統(tǒng)負(fù)載等信息,其格式為top。
top命令相當(dāng)強(qiáng)大,能夠動(dòng)態(tài)地查看系統(tǒng)運(yùn)維狀態(tài),完全將它看作Linux中的“強(qiáng)化版的Windows任務(wù)管理器”。top命令的運(yùn)行界面如圖2-6所示。
圖2-6 top命令的運(yùn)行界面
在圖2-6中,top命令執(zhí)行結(jié)果的前5行為系統(tǒng)整體的統(tǒng)計(jì)信息,其所代表的含義如下。
第1行:系統(tǒng)時(shí)間、運(yùn)行時(shí)間、登錄終端數(shù)、系統(tǒng)負(fù)載(三個(gè)數(shù)值分別為1分鐘、5分鐘、15分鐘內(nèi)的平均值,數(shù)值越小意味著負(fù)載越低)。
第2行:進(jìn)程總數(shù)、運(yùn)行中的進(jìn)程數(shù)、睡眠中的進(jìn)程數(shù)、停止的進(jìn)程數(shù)、僵死的進(jìn)程數(shù)。
第3行:用戶(hù)占用資源百分比、系統(tǒng)內(nèi)核占用資源百分比、改變過(guò)優(yōu)先級(jí)的進(jìn)程資源百分比、空閑的資源百分比等。其中數(shù)據(jù)均為CPU數(shù)據(jù)并以百分比格式顯示,例如“97.1 id”意味著有97.1%的CPU處理器資源處于空閑。
第4行:物理內(nèi)存總量、內(nèi)存使用量、內(nèi)存空閑量、作為內(nèi)核緩存的內(nèi)存量。
第5行:虛擬內(nèi)存總量、虛擬內(nèi)存使用量、虛擬內(nèi)存空閑量、已被提前加載的內(nèi)存量。
8.pidof命令
pidof命令用于查詢(xún)某個(gè)指定服務(wù)進(jìn)程的PID值,格式為“pidof [參數(shù)] [服務(wù)名稱(chēng)]”。
每個(gè)進(jìn)程的進(jìn)程號(hào)碼值(PID)是唯一的,因此可以通過(guò)PID來(lái)區(qū)分不同的進(jìn)程。例如,可以使用如下命令來(lái)查詢(xún)本機(jī)上sshd服務(wù)程序的PID:
[root@linuxprobe ~]# pidof sshd
2156
9.kill命令
kill命令用于終止某個(gè)指定PID的服務(wù)進(jìn)程,格式為“kill [參數(shù)] [進(jìn)程PID]”。
接下來(lái),我們使用kill命令把上面用pidof命令查詢(xún)到的PID所代表的進(jìn)程終止掉,其命令如下所示。這種操作的效果等同于強(qiáng)制停止sshd服務(wù)。
[root@linuxprobe ~]# kill 2156
10.killall命令
killall命令用于終止某個(gè)指定名稱(chēng)的服務(wù)所對(duì)應(yīng)的全部進(jìn)程,格式為:“killall [參數(shù)] [服務(wù)名稱(chēng)]”。
通常來(lái)講,復(fù)雜軟件的服務(wù)程序會(huì)有多個(gè)進(jìn)程協(xié)同為用戶(hù)提供服務(wù),如果逐個(gè)去結(jié)束這些進(jìn)程會(huì)比較麻煩,此時(shí)可以使用killall命令來(lái)批量結(jié)束某個(gè)服務(wù)程序帶有的全部進(jìn)程。下面以httpd服務(wù)程序?yàn)槔?,?lái)結(jié)束其全部進(jìn)程。由于RHEL7系統(tǒng)默認(rèn)沒(méi)有安裝httpd服務(wù)程序,因此大家此時(shí)只需看操作過(guò)程和輸出結(jié)果即可,等學(xué)習(xí)了相關(guān)內(nèi)容之后再來(lái)實(shí)踐。
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#
如果我們?cè)谙到y(tǒng)終端中執(zhí)行一個(gè)命令后想立即停止它,可以同時(shí)按下Ctrl + C組合鍵(生產(chǎn)環(huán)境中比較常用的一個(gè)快捷鍵),這樣將立即終止該命令的進(jìn)程。或者,如果有些命令在執(zhí)行時(shí)不斷地在屏幕上輸出信息,影響到后續(xù)命令的輸入,則可以在執(zhí)行命令時(shí)在末尾添加上一個(gè)&符號(hào),這樣命令將進(jìn)入系統(tǒng)后臺(tái)來(lái)執(zhí)行。
很多同學(xué)在報(bào)名劉遄老師培訓(xùn)課程時(shí)會(huì)提到自己的英語(yǔ)基礎(chǔ)不好,其實(shí)大可不必?fù)?dān)心,因?yàn)樵蹅兊臅?shū)籍、培訓(xùn)課程甚至紅帽考題都是中文的。而接下來(lái)您也就會(huì)發(fā)現(xiàn),原來(lái)一直使用的是Linux命令,而絕不是純粹的英語(yǔ)單詞,即便它們的拼寫(xiě)100%相同,最終用處肯定也是不一樣的。因此在學(xué)習(xí)Linux系統(tǒng)技術(shù)的這件事上,您跟英語(yǔ)達(dá)人絕對(duì)都是站在同一起跑線(xiàn)上的,更何況還正確的選擇了一本適合您的Linux教材,放心開(kāi)始學(xué)習(xí)吧!
劉遄老師主講的Linux技術(shù)培訓(xùn)課程介紹:https://www.linuxprobe.com/training
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: