Linux 經常使用的系統工做命令

 一、echo 命令

echo命令用於在終端輸出字符串或變量提取後的值,格式爲「echo [字符串 | $變量]」。html

例如,把指定字符串「Linuxprobe.com」輸出到終端屏幕的命令爲:python

[root@linuxprobe ~]# echo Linuxprobe.Com

該命令會在終端屏幕上顯示以下信息:linux

Linuxprobe.Com 

下面,咱們使用$變量的方式提取變量SHELL的值,並將其輸出到屏幕上:緩存

[root@linuxprobe ~]# echo $SHELL

/bin/bash

 二、date 命令

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命令用於重啓系統,其格式爲reboot。

因爲重啓計算機這種操做會涉及硬件資源的管理權限,所以默認只能使用root管理員來重啓,其命令以下:

[root@linuxprobe ~]# reboot

四、poweroff 命令

poweroff命令用於關閉系統,其格式爲poweroff。

該命令與reboot命令相同,都會涉及硬件資源的管理權限,所以默認只有root管理員才能夠關閉電腦,其命令以下:

[root@linuxprobe ~]# poweroff

五、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,執行該命令後的下載效果以下:

[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 [參數]」。

估計讀者在第一次執行這個命令時都要驚呆一下—怎麼會有這麼多輸出值,這可怎麼看得過來?其實,咱們一般會將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的樣子。

七、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處理器資源處於空閒。

八、pidof 命令

pidof命令用於查詢某個指定服務進程的PID值,格式爲「pidof [參數] [服務名稱]」。

每一個進程的進程號碼值(PID)是惟一的,所以能夠經過PID來區分不一樣的進程。例如,可使用以下命令來查詢本機上sshd服務程序的PID:

[root@linuxprobe ~]# pidof sshd
1657

九、kill 命令

kill命令用於終止某個指定PID的服務進程,格式爲「kill [參數] [進程PID]」。

接下來,咱們使用kill命令把上面用pidof命令查詢到的PID所表明的進程終止掉,其命令以下所示。這種操做的效果等同於強制中止sshd服務。

[root@linuxprobe ~]# kill 1657

十、killall 命令

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組合鍵(生產環境中比較經常使用的一個快捷鍵),這樣將當即終止該命令的進程。或者,若是有些命令在執行時不斷地在屏幕上輸出信息,影響到後續命令的輸入,則能夠在執行命令時在末尾添加上一個&符號,這樣命令將進入系統後臺來執行。

相關文章
相關標籤/搜索