Linux快速入手系列三( 系統管理 )

更多精彩文章點擊 -> 我的學習小站 & 更多好玩點擊 -> 技術雜談

常用系統工作命令

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

阿里雲開發者社區

更多

Linux快速入手系列一(文件管理)

Linux快速入手系列二( 文本處理 )

Linux快速入手系列三( 系統管理 )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章