更多精彩文章點擊 -> 我的學習小站 & 更多好玩點擊 -> 技術雜談
常用系統工作命令
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)
wget(常用)
命令描述:在終端中下載文件。
命令格式:wget [參數] 下載地址
。
參數說明:
參數 | 作用 |
---|---|
-b | 後臺下載 |
-P | 下載到指定目錄 |
-t | 最大重試次數 |
-c | 斷點續傳 |
-p | 下載頁面內所有資源,包括圖片、視頻等 |
-r | 遞歸下載 |
命令使用示例:
下載一張圖片到路徑/root/static/img/中,-p
參數默認值爲當前路徑,如果指定路徑不存在會自動創建。
wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.png
ps(常用)
命令描述:ps命令用於查看系統中的進程狀態。
命令格式:ps [參數]
。
命令參數說明:
參數 | 作用 |
---|---|
-a | 顯示現行終端機下的所有程序,包括其他用戶的程序 |
-u | 以用戶爲主的格式來顯示程序狀況 |
-x | 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑 |
-e | 列出程序時,顯示每個程序所使用的環境變量 |
-f | 顯示當前所有的進程 |
-t | 指定終端機編號,並列出屬於該終端機的程序的狀況 |
命令使用示例:
[root@iZbp1dbo8o3zwbipcf48llZ ~]# ps -ef | grep sshd
root 983 1 0 10:52 ? 00:00:00 /usr/sbin/sshd -D
root 1397 983 0 10:53 ? 00:00:00 sshd: root@pts/0
root 1441 1403 0 10:57 pts/0 00:00:00 grep --color=auto sshd
top(常用)
命令描述:top命令動態地監視進程活動與系統負載等信息。
命令使用示例:
[root@iZbp1dbo8o3zwbipcf48llZ ~]# top
top - 10:53:43 up 1 min, 1 user, load average: 0.07, 0.03, 0.01
Tasks: 74 total, 1 running, 72 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1014672 total, 488536 free, 109500 used, 416636 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 764412 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1342 root 10 -10 122932 11348 8748 S 0.7 1.1 0:00.28 AliYunDun
1276 root 10 -10 32524 4236 2772 S 0.3 0.4 0:00.47 AliYunDunUpdate
1 root 20 0 125488 3916 2608 S 0.0 0.4 0:00.76 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
5 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u2:0
6 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
命令輸出參數解釋:
以上命令輸出視圖中分爲兩個區域,一個統計信息區,一個進程信息區。
-
統計信息區
- 第一行信息依次爲:系統時間、運行時間、登錄終端數、系統負載(三個數值分別爲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。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# pidof crond
989
kill(常用)
命令描述:kill命令用於終止指定PID的服務進程。
kill可將指定的信息送至程序。預設的信息爲SIGTERM(15)
,可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)
信息嘗試強制刪除程序。
命令格式:kill [參數] [進程PID]
。
命令使用示例:
刪除pid爲1247的進程。
kill -9 1247
reboot
命令描述:reboot命令用來重啓系統。
命令格式:reboot [-n] [-w] [-d] [-f] [-i]
。
命令參數說明:
- -n:保存數據後再重新啓動系統。
- -w:僅做測試,並不是真的將系統重新開機,只會把重新開機的數據寫入記錄文件/var/log/wtmp。
- -d:重新啓動時不把數據寫入記錄文件/var/tmp/wtmp。
- -f:強制重新開機,不調用shutdown指令的功能。
- -i:關閉網絡設置之後再重新啓動系統。
命令使用示例:
reboot
poweroff
命令描述:poweroff命令用來關閉系統。
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 | 一星期中的第幾日(0-6),0 代表週一 |
命令用法示例:
-
按照默認格式查看當前系統時間
date
-
按照指定格式查看當前系統時間
date "+%Y-%m-%d %H:%M:%S"
系統狀態檢測命令
ifconfig(常用)
命令描述:ifconfig命令用於獲取網卡配置與網絡狀態等信息。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.111 netmask 255.255.255.0 broadcast 172.16.1.225
ether 00:16:3e:00:63:b5 txqueuelen 1000 (Ethernet)
RX packets 41415 bytes 59663367 (56.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6523 bytes 868724 (848.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
命令輸出說明:
- 第一部分的第一行顯示網卡狀態信息。
- eth0表示第一塊網卡。
- UP代表網卡開啓狀態。
- RUNNING代表網卡的網線被接上。
- MULTICAST表示支持組播。
- 第二行顯示網卡的網絡信息。
- inet(IP地址):172.16.1.111。
- broadcast(廣播地址):172.16.1.225。
- netmask(掩碼地址):255.255.255.0。
- RX表示接收數據包的情況,TX表示發送數據包的情況。
- lo表示主機的迴環網卡,是一種特殊的網絡接口,不與任何實際設備連接,而是完全由軟件實現。與迴環地址(127.0.0.0/8 或 ::1/128)不同,迴環網卡對系統顯示爲一塊硬件。任何發送到該網卡上的數據都將立刻被同一網卡接收到。
uname(常用)
命令描述:uname命令用於查看系統內核與系統版本等信息。
命令語法:uname [-amnrsv][--help][--version]
命令使用示例:
-
顯示系統信息。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# uname -a Linux iZbp1dbo8o3zwbipcf48llZ 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
-
顯示當前系統的硬件架構。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# uname -i x86_64
-
顯示操作系統發行編號。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# uname -r 3.10.0-1062.18.1.el7.x86_64
uptime
命令描述:uptime 用於查看系統的負載信息。
命令使用示例:
[root@iZbp1dbo8o3zwbipcf48llZ ~]# uptime
11:07:28 up 14 min, 1 user, load average: 0.00, 0.01, 0.02
命令輸出說明:
負載信息 | 命令輸出值 |
---|---|
當前服務器時間 | 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 | 以合適的單位顯示內存使用情況,最大爲三位數,自動計算對應的單位值。 |
命令使用示例:
[root@iZbp1dbo8o3zwbipcf48llZ ~]# free -h
total used free shared buff/cache available
Mem: 990M 92M 469M 484K 429M 759M
Swap: 0B 0B 0B
命令輸出說明:
參數 | 說明 |
---|---|
total | 物理內存總數 |
used | 已經使用的內存數 |
free | 空間的內存數 |
share | 多個進程共享的內存總額 |
buff/cache | 應用使用內存數 |
available | 可用的內存數 |
Swap | 虛擬內存 |
who
命令描述:who 命令顯示關於當前在本地系統上的所有用戶的信息。
命令使用示例:
-
顯示當前登錄系統的用戶
[root@iZbp1dbo8o3zwbipcf48llZ ~]# who root pts/0 2020-06-05 10:53 (27.196.220.18)
-
顯示用戶登錄來源
[root@iZbp1dbo8o3zwbipcf48llZ ~]# who -l -H NAME LINE TIME IDLE PID COMMENT LOGIN tty1 2020-06-05 10:52 999 id=tty1 LOGIN ttyS0 2020-06-05 10:52 1000 id=tyS0
last
命令描述: last 命令用於顯示用戶最近登錄信息。
命令使用示例:
[root@iZbp1dbo8o3zwbipcf48llZ ~]# last
root pts/0 127.196.225.185 Fri Jun 5 10:53 still logged in
reboot system boot 3.10.0-1062.18.1 Fri Jun 5 18:52 - 11:11 (-7:-41)
wtmp begins Sun Apr 26 16:02:02 2020
由於這些信息都是以日誌文件的形式保存在系統中,黑客可以很容易地對內容進行篡改,所以該命令輸出的信息並不能作爲服務器是否被入侵的依據。
history
命令描述:history命令用於顯示歷史執行過的命令。
bash默認記錄1000條執行過的歷史命令,被記錄在~/.bash_history文件中。
命令使用示例:
-
顯示最新10條執行過的命令。
[root@iZbp1dbo8o3zwbipcf48llZ ~]# history 10 6 uname -i 7 uname -r 8 uname -s 9 uptime 10 free -h 11 who 12 who -l -H 13 last 14 ls 15 history 10
-
清除歷史記錄。
history -c
Reference
阿里雲開發者社區