echo命令用於在終端輸出字符串或變量提取後的值,格式爲「echo [字符串 | $變量]」。html
例如,把指定字符串「Linuxprobe.com」輸出到終端屏幕的命令爲:python
[root@linuxprobe ~]# echo Linuxprobe.Com
該命令會在終端屏幕上顯示以下信息:linux
Linuxprobe.Com
下面,咱們使用$變量的方式提取變量SHELL的值,並將其輸出到屏幕上:緩存
[root@linuxprobe ~]# echo $SHELL /bin/bash
date命令用於顯示及設置系統的時間或日期,格式爲「date [選項] [+指定的格式]」。bash
只需在強大的date命令中輸入以「+」號開頭的參數,便可按照指定格式來輸出系統的時間或日期,這樣在平常工做時即可以把備份數據的命令與指定格式輸出的時間信息結合到一塊兒。例如,把打包後的文件自動按照「年-月-日」的格式打包成「backup-2017-9-1.tar.gz」,用戶只須要看一眼文件名稱就能大概瞭解到每一個文件的備份時間了。date命令中常見的參數格式及做用如表1 所示。網絡
表1 date命令中的參數以及做用app
參數運維 |
做用ssh |
%t異步 |
跳格[Tab鍵] |
%H |
小時(00~23) |
%I |
小時(00~12) |
%M |
分鐘(00~59) |
%S |
秒(00~59) |
%j |
今年中的第幾天 |
按照默認格式查看當前系統時間的date命令以下所示:
[root@linuxprobe ~]# date Sat Aug 4 22:25:46 EDT 2018
按照「年-月-日 小時:分鐘:秒」的格式查看當前系統時間的date命令以下所示:
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2018-08-04 22:28:50
[root@linuxprobe ~]# date "+%Y-%m-%d %I:%M:%S"
2018-08-04 10:29:11
將系統的當前時間設置爲2018年8月5日10點30分的date命令以下所示:
[root@linuxprobe ~]# date -s "20180805 10:30:00" Sun Aug 5 10:30:00 EDT 2018
再次使用date命令並按照默認的格式查看當前的系統時間,以下所示:
[root@linuxprobe ~]# date Sun Aug 5 10:30:09 EDT 2018
date命令中的參數%j可用來查看今天是當年中的第幾天。這個參數可以很好地區分備份時間的新舊,即數字越大,越靠近當前時間。該參數的使用方式以及顯示結果以下所示。
[root@linuxprobe ~]# date "+%j" 217
reboot命令用於重啓系統,其格式爲reboot。
因爲重啓計算機這種操做會涉及硬件資源的管理權限,所以默認只能使用root管理員來重啓,其命令以下:
[root@linuxprobe ~]# reboot
poweroff命令用於關閉系統,其格式爲poweroff。
該命令與reboot命令相同,都會涉及硬件資源的管理權限,所以默認只有root管理員才能夠關閉電腦,其命令以下:
[root@linuxprobe ~]# poweroff
wget命令用於在終端中下載網絡文件,格式爲「wget [參數] 下載地址」,表2 所示爲wget命令的參數以及參數的做用。
表2 wget命令的參數以及做用
參數 |
做用 |
-b |
後臺下載模式 |
-P |
下載到指定目錄 |
-t |
最大嘗試次數 |
-c |
斷點續傳 |
-p |
下載頁面內全部資源,包括圖片、視頻等 |
-r |
遞歸下載 |
嘗試使用wget命令下載最新的Python3.7文檔,這個文件的完整路徑爲https://docs.python.org/3/archives/python-3.7.0-docs-pdf-letter.tar.bz2,執行該命令後的下載效果以下:
[root@linuxprobe ~]# wget https://docs.python.org/3/archives/python-3.7.0-docs-pdf-letter.tar.bz2
--2018-08-05 07:51:25-- https://docs.python.org/3/archives/python-3.7.0-docs-pdf-letter.tar.bz2 Resolving docs.python.org (docs.python.org)... 151.101.72.223, 2a04:4e42:36::223 Connecting to docs.python.org (docs.python.org)|151.101.72.223|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 13984044 (13M) [application/octet-stream] Saving to: ‘python-3.7.0-docs-pdf-letter.tar.bz2’ 100%[======================================>] 13,984,044 864KB/s in 17s 2018-08-05 07:51:43 (804 KB/s) - ‘python-3.7.0-docs-pdf-letter.tar.bz2’ saved [13984044/13984044] [root@linuxprobe ~]#
接下來,咱們使用wget命令遞歸下載https://docs.python.org網站內的全部頁面數據以及文件,下載完後會自動保存到當前路徑下一個名爲docs.python.org的目錄中。執行該操做的命令爲wget -r -p https://docs.python.org,該命令的執行結果以下。
[root@linuxprobe ~]# wget -r -p https://docs.python.org --2018-08-05 08:00:01-- https://docs.python.org/ Resolving docs.python.org (docs.python.org)... 151.101.72.223, 2a04:4e42:36::223 Connecting to docs.python.org (docs.python.org)|151.101.72.223|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: https://docs.python.org/3/ [following] --2018-08-05 08:00:02-- https://docs.python.org/3/ Reusing existing connection to docs.python.org:443. HTTP request sent, awaiting response... 200 OK Length: 9875 (9.6K) [text/html] Saving to: ‘docs.python.org/index.html’ 100%[======================================>] 9,875 --.-K/s in 0.001s 2018-08-05 08:00:02 (17.0 MB/s) - ‘docs.python.org/index.html’ saved [9875/9875] Loading robots.txt; please ignore errors. --2018-08-05 08:00:02-- https://docs.python.org/robots.txt Reusing existing connection to docs.python.org:443. HTTP request sent, awaiting response... 200 OK Length: 129 [text/plain] Saving to: ‘docs.python.org/robots.txt’ 100%[======================================>] 129 --.-K/s in 0s 2018-08-05 08:00:02 (13.0 MB/s) - ‘docs.python.org/robots.txt’ saved [129/129]
....................省略下載過程....................
ps 命令用於查看系統中的進程狀態,格式爲「ps [參數]」。
估計讀者在第一次執行這個命令時都要驚呆一下—怎麼會有這麼多輸出值,這可怎麼看得過來?其實,咱們一般會將ps命令與管道符技術搭配使用,用來抓取與某個指定服務進程相對應的PID號碼。ps命令的常見參數以及做用如表3 所示。
表3 ps命令的參數以及做用
參數 |
做用 |
-a |
顯示全部進程(包括其餘用戶的進程) |
-u |
用戶以及其餘詳細信息 |
-x |
顯示沒有控制終端的進程 |
Linux系統中時刻運行着許多進程,若是可以合理地管理它們,則能夠優化系統的性能。在Linux系統中,有5種常見的進程狀態,分別爲運行、中斷、不可中斷、僵死與中止,其各自含義以下所示。
當執行ps aux命令後一般會看到如表7 所示的進程狀態,表4 中只是列舉了部分輸出值,並且正常的輸出值中不包括中文註釋。
表 4 進程狀態
USER |
PID |
%CPU |
%MEM |
VSZ |
RSS |
TTY |
STAT |
START |
TIME |
COMMAND |
進程的全部者 |
進程ID號 |
運算器佔用率 |
內存佔用率 |
虛擬內存使用量(單位是KB) |
佔用的固定內存量(單位是KB) |
所在終端 |
進程 狀態 |
被啓動 的時間 |
實際使用 |
命令名稱與參數 |
root |
1 |
0.0 |
0.4 |
53684 |
7628 |
? |
Ss |
07 :22 |
0:02 |
/usr/lib/systemd/systemd |
root |
2 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[kthreadd] |
root |
3 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[ksoftirqd/0] |
root |
5 |
0.0 |
0.0 |
0 |
0 |
? |
S< |
07:22 |
0:00 |
[kworker/0:0H] |
root |
7 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[migration/0] |
………………省略部分輸出信息……………… |
注:如前面所提到的,在Linux系統中的命令參數有長短格式之分,長格式和長格式之間不能合併,長格式和短格式之間也不能合併,但短格式和短格式之間是能夠合併的,合併後僅保留一個-(減號)便可。另外ps命令可容許參數不加減號(-),所以可直接寫成ps aux的樣子。
top命令用於動態地監視進程活動與系統負載等信息,其格式爲 top。
top命令至關強大,可以動態地查看系統運維狀態,徹底將它看做Linux中的「強化版的Windows任務管理器」。top命令的運行界面如圖 1 所示:
圖 1 top命令的運行界面
在圖1中,top命令執行結果的前5行爲系統總體的統計信息,其所表明的含義以下。
注:第3行中的數據均爲CPU數據並以百分比格式顯示,例如「54.0 id」意味着有54.0%的CPU處理器資源處於空閒。
pidof命令用於查詢某個指定服務進程的PID值,格式爲「pidof [參數] [服務名稱]」。
每一個進程的進程號碼值(PID)是惟一的,所以能夠經過PID來區分不一樣的進程。例如,可使用以下命令來查詢本機上sshd服務程序的PID:
[root@linuxprobe ~]# pidof sshd 1657
kill命令用於終止某個指定PID的服務進程,格式爲「kill [參數] [進程PID]」。
接下來,咱們使用kill命令把上面用pidof命令查詢到的PID所表明的進程終止掉,其命令以下所示。這種操做的效果等同於強制中止sshd服務。
[root@linuxprobe ~]# kill 1657
killall命令用於終止某個指定名稱的服務所對應的所有進程,格式爲:「killall [參數] [服務名稱]」。
一般來說,複雜軟件的服務程序會有多個進程協同爲用戶提供服務,若是逐個去結束這些進程會比較麻煩,此時可使用killall命令來批量結束某個服務程序帶有的所有進程。下面以httpd服務程序爲例,來結束其所有進程。因爲RHEL7系統默認沒有安裝httpd服務程序,所以你們此時只需看操做過程和輸出結果便可,等學習了相關內容以後再來實踐。
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd [root@linuxprobe ~]#
注:若是咱們在系統終端中執行一個命令後想當即中止它,能夠同時按下Ctrl + C組合鍵(生產環境中比較經常使用的一個快捷鍵),這樣將當即終止該命令的進程。或者,若是有些命令在執行時不斷地在屏幕上輸出信息,影響到後續命令的輸入,則能夠在執行命令時在末尾添加上一個&符號,這樣命令將進入系統後臺來執行。