阿里雲體驗實驗室 體驗教程《Linux指令入門-系統管理》

bainana發表於2020-09-08

體驗平臺簡介

阿里雲開發者實驗室提供免費雲資源和豐富的場景化實踐,旨在幫助開發者在學習應用技術,瞭解阿里雲產品的特性。

阿里雲體驗實驗室地址:https://developer.aliyun.com/adc/labs/

教程介紹

本場景將介紹Linux中常用的系統工作命令以及系統狀態檢測命令

場景體驗

場景內容選自 阿里雲體驗實驗室
本場景將提供一臺配置了Aliyun Linux 2的ECS例項(雲伺服器)。您可以參考本教程學習Linux系統中的文字編輯工具Vim以及文字處理命令。

阿里雲 Aliyun Linux 2的ECS例項資源
https://developer.aliyun.com/adc/scenario/c8d3efc90d634366bc012a69129c9aef

涉及以下雲產品和服務

[雲伺服器ECS]
雲伺服器(Elastic Compute Service,簡稱ECS)是阿里雲提供的效能卓越、穩定可靠、彈性擴充套件的IaaS(Infrastructure as a Service)級別雲端計算服務。雲伺服器ECS免去了您採購IT硬體的前期準備,讓您像使用水、電、天然氣等公共資源一樣便捷、高效地使用伺服器,實現計算資源的即開即用和彈性伸縮。阿里雲ECS持續提供創新型伺服器,解決多種業務需求,助力您的業務發展。

[Aliyun Linux 2]
Aliyun Linux 2是阿里雲推出的下一代 Linux 發行版,它為雲上應用程式環境提供 Linux 社群的最新增強功能,在提供雲上最佳使用者體驗的同時,也針對阿里雲基礎設施做了深度的優化。Aliyun Linux 2 OS 映象可以執行在阿里雲全規格系列 VM 例項上,包括彈性裸金屬伺服器 (神龍)。

目錄一:常用系統工作命令

echo

命令描述:echo命令用於在終端輸出字串或變數提取後的值。

命令格式:echo [字串 | $變數]。

命令用法示例:

顯示普通字串

echo "Hello World"

顯示變數
首先在shell環境中定義一個臨時變數name。

export name="Tom"

使用echo命令將變數name的值顯示到終端。

echo $name

輸出結果:
在這裡插入圖片描述

顯示結果定向至檔案
以下命令會將文字This is a test text.輸出重定向到檔案test.txt中,如果檔案已存在,將會覆蓋檔案內容,如果不存在則建立。其中>符號表示輸出重定向。

echo "This is a test text." > test.txt

如果您希望將文字追加到檔案內容最後,而不是覆蓋它,請使用>>輸出追加重定向符號。

顯示命令執行結果
以下命令將會在終端顯示當前的工作路徑。

echo `pwd`

注意:pwd命令是用一對反引號(``)包裹,而不是一對單引號('')。

使用$(command)形式可以達到相同效果。

echo $(pwd)

輸出結果:
在這裡插入圖片描述

date

命令描述:date命令用於顯示和設定系統的時間和日期。

命令格式:date [選項] [+格式]。

其中,時間格式的部分控制字元解釋如下:

字元 說明
%a 當地時間的星期名縮寫(例如: 日,代表星期日)
%A 當地時間的星期名全稱 (例如:星期日)
%b 當地時間的月名縮寫 (例如:一,代表一月)
%B 當地時間的月名全稱 (例如:一月)
%c 當地時間的日期和時間 (例如:2005年3月3日 星期四 23:05:25)
%C 世紀;比如 %Y,通常為省略當前年份的後兩位數字(例如:20)
%d 按月計的日期(例如:01)
%D 按月計的日期;等於%m/%d/%y
%F 完整日期格式,等價於 %Y-%m-%d
%j 按年計的日期(001-366)
%p 按年計的日期(001-366)
%r 當地時間下的 12 小時時鐘時間 (例如:11:11:04 下午)
%R 24 小時時間的時和分,等價於 %H:%M
%s 自UTC 時間 1970-01-01 00:00:00 以來所經過的秒數
%T 時間,等於%H:%M:%S
%U 一年中的第幾周,以週日為每星期第一天(00-53)
%x 當地時間下的日期描述 (例如:12/31/99)
%X 當地時間下的時間描述 (例如:23:13:48)
%w 一星期中的第幾日(0-6),0 代表週一
%W 一年中的第幾周,以週一為每星期第一天(00-53)

命令用法示例:

按照預設格式檢視當前系統時間

date

輸出結果:
在這裡插入圖片描述

按照指定格式檢視當前系統時間

date "+%Y-%m-%d %H:%M:%S"

輸出結果:
在這裡插入圖片描述

檢視今天是當年中的第幾天

date "+%j"

輸出結果:
在這裡插入圖片描述

將系統的當前時間設定為2020年02月20日20點20分20秒

date -s "20200220 20:20:20"

輸出結果:
在這裡插入圖片描述

校正系統時間,與網路時間同步
a. 安裝ntp校時工具

yum -y install ntp
b. 用ntpdate從時間伺服器更新時間
ntpdate time.nist.gov
輸出結果:

在這裡插入圖片描述

wget

命令描述:在終端中下載檔案。

命令格式:wget [引數] 下載地址。

引數說明:

引數 作用
-b 後臺下載
-P 下載到指定目錄
-t 最大重試次數
-c 斷點續傳
-p 下載頁面內所有資源,包括圖片、視訊等
-r 遞迴下載

命令使用示例:

下載一張圖片到路徑/root/static/img/中,-p引數預設值為當前路徑,如果指定路徑不存在會自動建立。

wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png

輸出結果:
在這裡插入圖片描述

ps
命令描述:ps命令用於檢視系統中的程式狀態。

命令格式:ps [引數]。

命令引數說明:

引數 作用
-a 顯示現行終端機下的所有程式,包括其他使用者的程式
-u 以使用者為主的格式來顯示程式狀況
-x 顯示沒有控制終端的程式,同時顯示各個命令的具體路徑
-e 列出程式時,顯示每個程式所使用的環境變數
-f 顯示當前所有的程式
-t 指定終端機編號,並列出屬於該終端機的程式的狀況

命令使用示例:

ps -ef | grep sshd

輸出結果:
在這裡插入圖片描述

top

命令描述:top命令動態地監視程式活動與系統負載等資訊。

命令使用示例:

top

輸出結果:
在這裡插入圖片描述

命令輸出引數解釋:

以上命令輸出檢視中分為兩個區域,一個統計資訊區,一個程式資訊區。

統計資訊區

  • 第一行資訊依次為:系統時間、執行時間、登入終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。
  • 第二行資訊依次為:程式總數、執行中的程式數、睡眠中的程式數、停止的程式數、僵死的程式數。
  • 第三行資訊依次為:使用者佔用資源百分比、系統核心佔用資源百分比、改變過優先順序的程式資源百分比、空閒的資源百分比等。
  • 第四行資訊依次為:實體記憶體總量、記憶體使用量、記憶體空閒量、作為核心快取的記憶體量。
  • 第五行資訊依次為:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閒量、預載入記憶體量。

程式資訊區

列名 含義
PID 程式ID
USER 程式所有者的使用者名稱
PR 程式優先順序
NI nice值。負值表示高優先順序,正值表示低優先順序
VIRT 程式使用的虛擬記憶體總量,單位kb
RES 程式使用的、未被換出的實體記憶體大小,單位kb
SHR 共享記憶體大小,單位kb
S 程式狀態 D:不可中斷的睡眠狀態 R:正在執行 S:睡眠 T:停止 Z:殭屍程式
%CPU 上次更新到現在的CPU時間佔用百分比
%MEM 程式使用的實體記憶體百分比
TIME+ 程式使用的CPU時間總計,單位1/100秒
COMMAND 命令名

按 q 鍵退出監控頁面。

pidof

命令描述:pidof命令用於查詢指定服務程式的PID值。

命令格式:pidof [服務名稱]。

命令引數說明:

引數 說明
-s 僅返回一個程式號
-c 只顯示執行在root目錄下的程式,這個選項只對root使用者有效
-o 忽略指定程式號的程式
-x 顯示由指令碼開啟的程式

命令使用示例:

查詢出crond服務下的所有程式ID。

pidof crond

輸出結果:
在這裡插入圖片描述

kill

命令描述:kill命令用於終止指定PID的服務程式。

kill可將指定的資訊送至程式。預設的資訊為SIGTERM(15),可將指定程式終止。若仍無法終止該程式,可使用SIGKILL(9)資訊嘗試強制刪除程式。

命令格式:kill [引數] [程式PID]。

命令使用示例:

刪除pid為1247的程式。

kill -9 1247

killall

命令描述:killall命令用於終止指定名稱的服務對應的全部程式。

命令格式:killall [程式名稱]。

命令使用示例:

刪除crond服務下的所有程式。

killall crond

reboot

命令描述:reboot命令用來重啟系統。

命令格式:reboot [-n] [-w] [-d] [-f] [-i]。

命令引數說明:

-n:儲存資料後再重新啟動系統。
-w:僅做測試,並不是真的將系統重新開機,只會把重新開機的資料寫入記錄檔案/var/log/wtmp。
-d:重新啟動時不把資料寫入記錄檔案/var/tmp/wtmp。
-f:強制重新開機,不呼叫shutdown指令的功能。
-i:關閉網路設定之後再重新啟動系統。
命令使用示例:

reboot

poweroff

命令描述:poweroff命令用來關閉系統。

命令使用示例:

poweroff

目錄二:系統狀態檢測命令

ifconfig

命令描述:ifconfig命令用於獲取網路卡配置與網路狀態等資訊。

命令示例:
在這裡插入圖片描述

命令輸出說明:

  • 第一部分的第一行顯示網路卡狀態資訊。
    • eth0表示第一塊網路卡。
    • UP代表網路卡開啟狀態。
    • RUNNING代表網路卡的網線被接上。
    • MULTICAST表示支援組播。
  • 第二行顯示網路卡的網路資訊。
    • inet(IP地址):172.16.132.195。
    • broadcast(廣播地址):172.16.143.255。
    • netmask(掩碼地址):255.255.240.0。
    • RX表示接收資料包的情況,TX表示傳送資料包的情況。
    • lo表示主機的迴環網路卡,是一種特殊的網路介面,不與任何實際裝置連線,而是完全由軟體實現。與迴環地址(127.0.0.0/8 或
      ::1/128)不同,迴環網路卡對系統顯示為一塊硬體。任何傳送到該網路卡上的資料都將立刻被同一網路卡接收到。

uname

命令描述:uname命令用於檢視系統核心與系統版本等資訊。

命令語法:uname [-amnrsv][--help][--version]

命令使用示例:

顯示系統資訊。

uname -a

命令輸出結果:
在這裡插入圖片描述

顯示當前系統的硬體架構。

uname -i

命令輸出結果:
在這裡插入圖片描述

顯示作業系統發行編號。

uname -r

命令輸出結果:
在這裡插入圖片描述

顯示作業系統名稱。

uname -s

命令輸出結果:
在這裡插入圖片描述

顯示主機名稱。

uname -n

命令輸出結果:
在這裡插入圖片描述

uptime

命令描述:uptime 用於檢視系統的負載資訊。

命令使用示例:
在這裡插入圖片描述

命令輸出說明:

負載資訊 命令輸出值
當前伺服器時間 14:20:27
當前伺服器執行時長 2 min
當前使用者數 2 users
當前負載情況 load average: 0.03, 0.04, 0.02(分別取1min,5min,15min的均值)

free

命令描述:free用於顯示當前系統中記憶體的使用量資訊。

命令語法:free [-bkmotV][-s <間隔秒數>]。

命令引數說明:

引數 說明
-b 以Byte為單位顯示記憶體使用情況
-k 以KB為單位顯示記憶體使用情況
-m 以MB為單位顯示記憶體使用情況
-h 以合適的單位顯示記憶體使用情況,最大為三位數,自動計算對應的單位值。

命令使用示例:
在這裡插入圖片描述

命令輸出說明:

引數 說明
total 實體記憶體總數
used 已經使用的記憶體數
free 空間的記憶體數
share 多個程式共享的記憶體總額
buff/cache 應用使用記憶體數
available 可用的記憶體數
Swap 虛擬記憶體(阿里雲ECS伺服器預設不開啟虛擬記憶體)

who

命令描述:who 命令顯示關於當前在本地系統上的所有使用者的資訊。

命令使用示例:

  • 顯示當前登入系統的使用者

    在這裡插入圖片描述

  • 顯示使用者登入來源
    在這裡插入圖片描述

  • 只顯示當前使用者
    在這裡插入圖片描述

  • 精簡模式顯示
    在這裡插入圖片描述

last

命令描述: last 命令用於顯示使用者最近登入資訊。

命令使用示例:
在這裡插入圖片描述

由於這些資訊都是以日誌檔案的形式儲存在系統中,黑客可以很容易地對內容進行篡改,所以該命令輸出的資訊並不能作為伺服器是否被入侵的依據。

history

命令描述:history命令用於顯示歷史執行過的命令。

bash預設記錄1000條執行過的歷史命令,被記錄在~/.bash_history檔案中。

命令使用示例:

  • 顯示最新10條執行過的命令。
    在這裡插入圖片描述

清除歷史記錄。

history -c

阿里雲體驗實驗室地址:
https://developer.aliyun.com/adc/labs/

相關文章