標籤:pdf body 管理 ps aux 系統時間 lease 目前時間 command 資源
1、echo 命令
echo命令用於在終端輸出字串或變數提取後的值,格式為“echo [字串 | $變數]”。
例如,把指定字串“Linuxprobe.com”輸出到終端螢幕的命令為:
[[email protected] ~]# echo Linuxprobe.Com
該命令會在終端螢幕上顯示如下資訊:
Linuxprobe.Com
下面,我們使用$變數的方式提取變數SHELL的值,並將其輸出到螢幕上:
[[email protected] ~]# echo $SHELL/bin/bash
2、date 命令
date命令用於顯示及設定系統的時間或日期,格式為“date [選項] [+指定的格式]”。
只需在強大的date命令中輸入以“+”號開頭的參數,即可按照指定格式來輸出系統的時間或日期,這樣在日常工作時便可以把備份資料的命令與指定格式輸出的時間資訊結合到一起。例如,把打包後的檔案自動按照“年-月-日”的格式打包成“backup-2017-9-1.tar.gz”,使用者只需要看一眼檔案名稱就能大概瞭解到每個檔案的備份時間了。date命令中常見的參數格式及作用如表1 所示。
表1 date命令中的參數以及作用
參數 |
作用 |
%t |
跳格[Tab鍵] |
%H |
小時(00~23) |
%I |
小時(00~12) |
%M |
分鐘(00~59) |
%S |
秒(00~59) |
%j |
今年中的第幾天 |
按照預設格式查看當前系統時間的date命令如下所示:
[[email protected] ~]# dateSat Aug 4 22:25:46 EDT 2018
按照“年-月-日 小時:分鐘:秒”的格式查看當前系統時間的date命令如下所示:
[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S"2018-08-04 22:28:50[[email protected] ~]# date "+%Y-%m-%d %I:%M:%S"2018-08-04 10:29:11
將系統的目前時間設定為2018年8月5日10點30分的date命令如下所示:
[[email protected] ~]# date -s "20180805 10:30:00"Sun Aug 5 10:30:00 EDT 2018
再次使用date命令並按照預設的格式查看當前的系統時間,如下所示:
[[email protected] ~]# dateSun Aug 5 10:30:09 EDT 2018
date命令中的參數%j可用來查看今天是當年中的第幾天。這個參數能夠很好地區分備份時間的新舊,即數字越大,越靠近目前時間。該參數的使用方式以及顯示結果如下所示。
[[email protected] ~]# date "+%j"217
3、reboot 命令
reboot命令用於重啟系統,其格式為reboot。
由於重啟電腦這種操作會涉及硬體資源的系統管理權限,因此預設只能使用root管理員來重啟,其命令如下:
[[email protected] ~]# reboot
4、poweroff 命令
poweroff命令用於關閉系統,其格式為poweroff。
該命令與reboot命令相同,都會涉及硬體資源的系統管理權限,因此預設只有root管理員才可以關閉電腦,其命令如下:
[[email protected] ~]# poweroff
5、wget 命令
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,執行該命令後的下載效果如下:
[[email protected] ~]# 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.bz2Resolving docs.python.org (docs.python.org)... 151.101.72.223, 2a04:4e42:36::223Connecting to docs.python.org (docs.python.org)|151.101.72.223|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 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][[email protected] ~]#
接下來,我們使用wget命令遞迴下載https://docs.python.org網站內的所有頁面資料以及檔案,下載完後會自動儲存到當前路徑下一個名為docs.python.org的目錄中。執行該操作的命令為wget -r -p https://docs.python.org,該命令的執行結果如下。
[[email protected] ~]# 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::223Connecting to docs.python.org (docs.python.org)|151.101.72.223|:443... connected.HTTP request sent, awaiting response... 302 Moved TemporarilyLocation: 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 OKLength: 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.txtReusing existing connection to docs.python.org:443.HTTP request sent, awaiting response... 200 OKLength: 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]
....................省略下載過程....................
6、ps 命令
ps 命令用於查看系統中的進程狀態,格式為“ps [參數]”。
估計讀者在第一次執行這個命令時都要驚呆一下—怎麼會有這麼多輸出值,這可怎麼看得過來?其實,我們通常會將ps命令與管道符技術搭配使用,用來抓取與某個指定服務進程相對應的PID號碼。ps命令的常見參數以及作用如表3 所示。
表3 ps命令的參數以及作用
參數 |
作用 |
-a |
顯示所有進程(包括其他使用者的進程) |
-u |
使用者以及其他詳細資料 |
-x |
顯示沒有控制終端的進程 |
Linux系統中時刻運行著許多進程,如果能夠合理地管理它們,則可以最佳化系統的效能。在Linux系統中,有5種常見的進程狀態,分別為運行、中斷、不可中斷、僵死與停止,其各自含義如下所示。
- R(運行):進程正在運行或在運行隊列中等待。
- S(中斷):進程處於休眠中,當某個條件形成後或者接收到訊號時,則脫離該 狀態。
- D(不可中斷):進程不響應系統非同步訊號,即便用kill命令也不能將其中斷。
- Z(僵死):進程已經終止,但進程描述符依然存在, 直到父進程調用wait4()系統函數後將進程釋放。
- T(停止):進程收到停止訊號後停止運行。
當執行ps aux命令後通常會看到如表7 所示的進程狀態,表4 中只是列舉了部分輸出值,而且正常的輸出值中不包括中文注釋。
表 4 進程狀態
USER |
PID |
%CPU |
%MEM |
VSZ |
RSS |
TTY |
STAT |
START |
TIME |
COMMAND |
進程的所有者 |
進程ID號 |
運算器佔用率 |
記憶體佔用率 |
虛擬記憶體使用量(單位是KB) |
佔用的固定記憶體量(單位是KB) |
所在終端 |
進程 狀態 |
被啟動 的時間 |
實際使用 CPU的時間 |
命令名稱與參數 |
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的樣子。
7、top 命令
top命令用於動態地監視進程活動與系統負載等資訊,其格式為 top。
top命令相當強大,能夠動態地查看系統營運狀態,完全將它看作Linux中的“強化版的Windows工作管理員”。top命令的運行介面 1 所示:
圖 1 top命令的運行介面
在圖1中,top命令執行結果的前5行為系統整體的統計資訊,其所代表的含義如下。
- 第1行:系統時間、已耗用時間、登入終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。
- 第2行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。
- 第3行:使用者佔用資源百分比、系統核心佔用資源百分比、改變過優先順序的進程資源百分比、閒置資源百分比等。
- 第4行:實體記憶體總量、記憶體使用量量、記憶體空閑量、作為核心緩衝的記憶體量。
- 第5行:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閑量、已被提前載入的記憶體量。
註:第3行中的資料均為CPU資料並以百分比格式顯示,例如“54.0 id”意味著有54.0%的CPU處理器資源處於空閑。
8、pidof 命令
pidof命令用於查詢某個指定服務進程的PID值,格式為“pidof [參數] [服務名稱]”。
每個進程的進程號碼值(PID)是唯一的,因此可以通過PID來區分不同的進程。例如,可以使用如下命令來查詢本機上sshd服務程式的PID:
[[email protected] ~]# pidof sshd1657
9、kill 命令
kill命令用於終止某個指定PID的服務進程,格式為“kill [參數] [進程PID]”。
接下來,我們使用kill命令把上面用pidof命令查詢到的PID所代表的進程終止掉,其命令如下所示。這種操作的效果等同於強制停止sshd服務。
[[email protected] ~]# kill 1657
10、killall 命令
killall命令用於終止某個指定名稱的服務所對應的全部進程,格式為:“killall [參數] [服務名稱]”。
通常來講,複雜軟體的服務程式會有多個進程協同為使用者提供服務,如果逐個去結束這些進程會比較麻煩,此時可以使用killall命令來批量結束某個服務程式帶有的全部進程。下面以httpd服務程式為例,來結束其全部進程。由於RHEL7系統預設沒有安裝httpd服務程式,因此大家此時只需看操作過程和輸出結果即可,等學習了相關內容之後再來實踐。
[[email protected] ~]# pidof httpd13581 13580 13579 13578 13577 13576[[email protected] ~]# killall httpd[[email protected] ~]# pidof httpd[[email protected] ~]#
註:如果我們在系統終端中執行一個命令後想立即停止它,可以同步選取Ctrl + C按鍵組合(生產環境中比較常用的一個快速鍵),這樣將立即終止該命令的進程。或者,如果有些命令在執行時不斷地在螢幕上輸出資訊,影響到後續命令的輸入,則可以在執行命令時在末尾添加上一個&符號,這樣命令將進入系統後台來執行。
Linux 常用的系統工作命令