- Linux就該這么學(xué)
- 劉遄
- 2920字
- 2019-01-05 05:54:00
2.3 常用系統(tǒng)工作命令
您現(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)行匯總、歸納、整理、分類后,把這些常用的命令合理安排到了后續(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”,用戶只需要看一眼文件名稱就能大概了解到每個(gè)文件的備份時(shí)間了。date命令中常見(jiàn)的參數(shù)格式及作用如表2-4所示。
表2-4 date命令中的參數(shù)以及作用

按照默認(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ù)以及作用

嘗試使用wget命令從本書(shū)的配套站點(diǎn)中下載本書(shū)的最新pdf格式電子文檔,這個(gè)文件的完整路徑為http://www.linuxprobe.com/docs/LinuxProbe.pdf,執(zhí)行該命令后的下載效果如下:
[root@linuxprobe ~]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf --2017-08-24 19:30:12-- http://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 http://www.linuxprobe.com,該命令的執(zhí)行結(jié)果如下。
[root@linuxprobe ~]# wget -r -p http://www.linuxprobe.com --2017-08-24 19:31:41-- http://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ù)以及作用

Linux系統(tǒng)中時(shí)刻運(yùn)行著許多進(jì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)

注:
如前面所提到的,在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-5所示。

圖2-5 top命令的運(yùn)行界面
在圖2-5中,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行:用戶占用資源百分比、系統(tǒng)內(nèi)核占用資源百分比、改變過(guò)優(yōu)先級(jí)的進(jìn)程資源百分比、空閑的資源百分比等。
注:
第3行中的數(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命令用于查詢某個(gè)指定服務(wù)進(jìn)程的PID值,格式為“pidof [參數(shù)] [服務(wù)名稱]”。
每個(gè)進(jìn)程的進(jìn)程號(hào)碼值(PID)是唯一的,因此可以通過(guò)PID來(lái)區(qū)分不同的進(jìn)程。例如,可以使用如下命令來(lái)查詢本機(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命令查詢到的PID所代表的進(jìn)程終止掉,其命令如下所示。這種操作的效果等同于強(qiáng)制停止sshd服務(wù)。
[root@linuxprobe ~]# kill 2156
10.killall命令
killall命令用于終止某個(gè)指定名稱的服務(wù)所對(duì)應(yīng)的全部進(jìn)程,格式為:“killall [參數(shù)] [進(jìn)程名稱]”。
通常來(lái)講,復(fù)雜軟件的服務(wù)程序會(huì)有多個(gè)進(jìn)程協(xié)同為用戶提供服務(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 135811358013579135781357713576 [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í)行。
- Linux操作系統(tǒng)基礎(chǔ)
- 玩到極致 iPhone 4S完全攻略
- 高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn):系統(tǒng)安全、故障排查、自動(dòng)化運(yùn)維與集群架構(gòu)
- Linux就該這么學(xué)
- 嵌入式系統(tǒng)及其應(yīng)用(第三版)
- Linux內(nèi)核設(shè)計(jì)的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理
- Django Project Blueprints
- Hands-On GPU Programming with Python and CUDA
- Windows 7實(shí)戰(zhàn)從入門到精通(超值版)
- 從實(shí)踐中學(xué)習(xí)Windows滲透測(cè)試
- 應(yīng)急指揮信息系統(tǒng)設(shè)計(jì)
- Linux從入門到精通(視頻教學(xué)版)
- Android應(yīng)用性能優(yōu)化最佳實(shí)踐
- Windows網(wǎng)絡(luò)編程(第2版)
- Angular權(quán)威教程