阿里雲開發者實驗室提供免費雲資源和豐富的場景化實踐,旨在幫助開發者在學習應用技術,瞭解阿里雲產品的特性。shell
阿里雲體驗實驗室地址:https://developer.aliyun.com/adc/labs/緩存
本場景將介紹Linux中經常使用的系統工做命令以及系統狀態檢測命令bash
場景內容選自 阿里雲體驗實驗室
本場景將提供一臺配置了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 實例上,包括彈性裸金屬服務器 (神龍)。ssh
命令描述: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 [選項] [+格式]。
其中,時間格式的部分控制字符解釋以下:
字符 | 說明 |
---|---|
%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 [參數] 下載地址。
參數說明:
參數 | 做用 |
---|---|
-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
輸出結果:
命令輸出參數解釋:
以上命令輸出視圖中分爲兩個區域,一個統計信息區,一個進程信息區。
統計信息區
進程信息區
列名 | 含義 |
---|---|
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命令用於查詢指定服務進程的PID值。
命令格式:pidof [服務名稱]。
命令參數說明:
參數 | 說明 |
---|---|
-s | 僅返回一個進程號 |
-c | 只顯示運行在root目錄下的進程,這個選項只對root用戶有效 |
-o | 忽略指定進程號的進程 |
-x | 顯示由腳本開啓的進程 |
命令使用示例:
查詢出crond服務下的全部進程ID。
pidof crond
輸出結果:
命令描述:kill命令用於終止指定PID的服務進程。
kill可將指定的信息送至程序。預設的信息爲SIGTERM(15),可將指定程序終止。若仍沒法終止該程序,可以使用SIGKILL(9)信息嘗試強制刪除程序。
命令格式:kill [參數] [進程PID]。
命令使用示例:
刪除pid爲1247的進程。
kill -9 1247
命令描述:killall命令用於終止指定名稱的服務對應的所有進程。
命令格式:killall [進程名稱]。
命令使用示例:
刪除crond服務下的全部進程。
killall crond
命令描述:reboot命令用來重啓系統。
命令格式:reboot [-n] [-w] [-d] [-f] [-i]。
命令參數說明:
-n:保存數據後再從新啓動系統。
-w:僅作測試,並非真的將系統從新開機,只會把從新開機的數據寫入記錄文件/var/log/wtmp。
-d:從新啓動時不把數據寫入記錄文件/var/tmp/wtmp。
-f:強制從新開機,不調用shutdown指令的功能。
-i:關閉網絡設置以後再從新啓動系統。
命令使用示例:
reboot
命令描述:poweroff命令用來關閉系統。
命令使用示例:
poweroff
命令描述: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 -amnrsv[--version]
命令使用示例:
顯示系統信息。
uname -a
命令輸出結果:
顯示當前系統的硬件架構。
uname -i
命令輸出結果:
顯示操做系統發行編號。
uname -r
命令輸出結果:
顯示操做系統名稱。
uname -s
命令輸出結果:
顯示主機名稱。
uname -n
命令輸出結果:
命令描述:uptime 用於查看系統的負載信息。
命令使用示例:
命令輸出說明:
負載信息 | 命令輸出值 |
---|---|
當前服務器時間 | 14:20:27 |
當前服務器運行時長 | 2 min |
當前用戶數 | 2 users |
當前負載狀況 | load average: 0.03, 0.04, 0.02(分別取1min,5min,15min的均值) |
命令描述:free用於顯示當前系統中內存的使用量信息。
命令語法:free -bkmotV。
命令參數說明:
參數 | 說明 |
---|---|
-b | 以Byte爲單位顯示內存使用狀況 |
-k | 以KB爲單位顯示內存使用狀況 |
-m | 以MB爲單位顯示內存使用狀況 |
-h | 以合適的單位顯示內存使用狀況,最大爲三位數,自動計算對應的單位值。 |
命令使用示例:
命令輸出說明:
參數 | 說明 |
---|---|
total | 物理內存總數 |
used | 已經使用的內存數 |
free | 空間的內存數 |
share | 多個進程共享的內存總額 |
buff/cache | 應用使用內存數 |
available | 可用的內存數 |
Swap | 虛擬內存(阿里雲ECS服務器默認不開啓虛擬內存) |
命令描述:who 命令顯示關於當前在本地系統上的全部用戶的信息。
命令使用示例:
命令描述: last 命令用於顯示用戶最近登陸信息。
命令使用示例:
因爲這些信息都是以日誌文件的形式保存在系統中,黑客能夠很容易地對內容進行篡改,因此該命令輸出的信息並不能做爲服務器是否被入侵的依據。
命令描述:history命令用於顯示歷史執行過的命令。
bash默認記錄1000條執行過的歷史命令,被記錄在~/.bash_history文件中。
命令使用示例:
清除歷史記錄。
history -c
阿里雲體驗實驗室地址:
https://developer.aliyun.com/adc/labs/