1 / 82

第 16 章

第 16 章. 檢視系統資訊. 本章提要. 16-1 查看登入的使用者 16-2 管理執行中的程序 16-3 檢查記錄檔. 16-1 查看登入的使用者. 多人使用的環境中 , 每個用戶都能執行各種不同的程式。有些使用者在閱讀新聞群組 , 有些則在撰寫電子郵件 , 而另一些使用者可能正在下載檔案。如果電腦的運作不正常 , 或是被使用者亂搞一通 , 那可要好好管理才行。. 查看登入的使用者. 16-1-1 觀察使用者舉動的 w 指令 16-1-2 查看目前有哪些使用者登入的 who 指令

dunn
Download Presentation

第 16 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 16 章 檢視系統資訊

  2. 本章提要 • 16-1 查看登入的使用者 • 16-2 管理執行中的程序 • 16-3 檢查記錄檔

  3. 16-1 查看登入的使用者 • 多人使用的環境中, 每個用戶都能執行各種不同的程式。有些使用者在閱讀新聞群組, 有些則在撰寫電子郵件, 而另一些使用者可能正在下載檔案。如果電腦的運作不正常, 或是被使用者亂搞一通, 那可要好好管理才行。

  4. 查看登入的使用者 • 16-1-1 觀察使用者舉動的 w 指令 • 16-1-2 查看目前有哪些使用者登入的 who 指令 • 16-1-3 查看曾登入此系統之使用者的 last 指令 • 清單太長了!來不及看,怎麼辦?

  5. 16-1-1 觀察使用者舉動的 w 指令 • 若想知道使用者的舉止行為, 只需在文字模式下執行 w指令即可:

  6. 觀察使用者舉動的 w 指令 • w 指令的訊息意義 • 觀察個別使用者

  7. w 指令的訊息意義 • 首先, 來瞭解一下 w指令顯示之訊息所代表的意義。第一列由左至右共有四個欄位, 分述其意義如下: • 系統目前的時間:"14:12:38" 表示執行 w指令的時間。 • 系統啟動後已經過的時間:"up 10 days, 20:38" 表示該系統已經啟動 10 天又 20 小時 38 分鐘。

  8. w 指令的訊息意義 • 目前登入此系統的使用者總數:"6 users" 表示目前共有 6 位使用者登入此系統。同一個使用者帳號可重複登入, 因而會見到重複的帳號名稱。 • 系統平均負載指示:"load average: 0.12, 0.09, 0.08" 的數值, 分別表示該系統在過去 1、5、15 分鐘內的平均負載程度。其值越接近 0.00 表示系統負載越低, 效能亦會較佳。

  9. w 指令的訊息意義 • 第二列共分為 8 個欄位, 分別顯示出各個使用者在做的事情, 以及該使用者所佔用的系統資源: • USER:顯示登入的使用者帳號名稱。若使用者重複登入系統, 則其帳號名稱也會重複顯現。

  10. w 指令的訊息意義 • TTY:該使用者登入的終端機代號。依照登入的形式不同, 終端機代號也不盡相同。其中, tty1~tty6 分別代表本機上的 1 到 6 號虛擬主控台。pts/1 之類的標示, 代表此使用者是從遠端登入, 至於 ":0" 則表示使用者是從 X WindowSystem 登入。

  11. w 指令的訊息意義 • FROM:顯示使用者從何處登入系統。如果是由本地端登入系統, 則此一欄位將呈現 - 符號。若從遠端登入, 便會顯示遠端主機的 IP 位址或主機名稱。 • LOGIN@:這是 "Login At" 的意思, 表示該使用者登入系統時的時間 (不是登入後經過的時間)。

  12. w 指令的訊息意義 • IDLE:使用者閒置的時間。這是一個計時器, 只要該使用者開始新工作, 這個計時器就會重新計時。 • JCPU:以終端機之代號來區分, 該終端機所有相關程序(process) 執行時,所消耗的 CPU 時間會顯示在這裡。此處的時間並非不斷累加, 每當工作告一段落就停止計時, 開始新的工作則會重新計時。

  13. w 指令的訊息意義 • PCPU:CPU 執行程式耗費的時間, 該時間就是執行 WHAT 欄內的程式所消耗之時間。 • WHAT:使用者正在做的事。假若正在執行某個程式, 這裡會標示出該程式的名稱, 如果正在執行一般的文字模式指令, 則會顯示使用者環境的名稱。

  14. 觀察個別使用者 • 當登入系統的使用者眾多, 執行 w指令列出所有資料, 恐怕會讓自己眼花撩亂。假設只需觀察其中某位使用者時, 可指定使用者的帳號名稱: • w指令預設會顯示詳細資料, 假使不需如此詳細, 在執行指令時加上參數即可, 相關資訊請執行 w --help或 man w指令查詢。

  15. 16-1-2 查看目前有哪些使用者 登入的 who 指令 • who指令可用來查看目前系統有哪些使用者登入:

  16. 查看目前有哪些使用者 登入的 who 指令 • 亦可加上參數讓列表更加詳細, 請執行 who -Hu指令:

  17. 查看目前有哪些使用者 登入的 who 指令 • PID 為程序代號。每個程序都會有一個 PID, 以供系統辨識及處理。 • 您可以執行 who --help指令獲知參數的相關資訊。

  18. 16-1-3 查看曾登入此系統之 使用者的 last 指令 • 想知道最近有哪些使用者曾經登入過系統, 可執行last指令查詢:

  19. 查看曾登入此系統之 使用者的 last 指令 • 僅執行last指令, 會列出所有使用者。如果想要查詢某位使用者的登入狀況, 只需在指令後面加上該使用者的帳號名稱即可:

  20. 查看曾登入此系統之 使用者的 last 指令 • 其他關於 last指令參數的資訊, 執行 last --help指令便可獲知。

  21. 清單太長了!來不及看,怎麼辦? • 系統運行一段時間後, 單用last指令查詢曾登入的使用者清單時, 將會列出長長的一串內容, 由於其列出的內容實在是太長了, 在眼前一晃即過, 根本來不及細看。 • 此時可使用建立管線的方式以便觀看清單, 例如執行 last | more指令, 然後每按一次 鍵就向下捲動一行, 或是每按一次空白鍵就向下捲動一頁, 慢慢查看登入記錄。

  22. 清單太長了!來不及看,怎麼辦? • 執行 last | less指令亦有類似效果, 您可用方向鍵、空白鍵、[Page Up] 和 [Page Down] 等按鍵瀏覽記錄, 然後按 [Q] (或 [q] ) 鍵離開。此外您亦可按[Shift] + [Page Up] 和 [Shift] + [Page Down] 組合鍵, 上下瀏覽程序列表。 • 當然也可以先將執行結果輸出成檔案, 例如執行 last > login.log指令, 會產生一個名稱為 login.log 的檔案, 再以文書編輯程式開啟該檔案, 就能不慌不忙地觀看其內容。

  23. 16-2 管理執行中的程序 • 在系統中每位使用者都能執行多個程式, 每個程式又可能分成數個程序執行。某些程序會佔用大量的系統資源, 造成系統負載過重。因此如何做好程序的管理與監督, 是一項重要的工作。

  24. 管理執行中的程序 • 16-2-1 監視系統資源的使用狀況 - top指令 • 16-2-2 查詢執行中的程序 - ps指令 • 16-2-3 刪除執行中的程序 - kill 指令 • 16-2-4 改變程序的優先權等級 - nice 與 renice 指令

  25. 16-2-1 監視系統資源的 使用狀況 - top指令 • 做為一個良好的管理者, 我們必須掌握系統中最消耗 CPU 資源的程序, 以維持系統之整體效能, 因而隨時監看系統的狀態也是管理者的一項重要工作。 • top指令用於監控系統的資源, 包括記憶體、交換檔分割區和 CPU 之使用率等等。現在請執行 top指令:

  26. 監視系統資源的使用狀況 - top指令

  27. 監視系統資源的使用狀況- top指令 • 執行 top指令後, 會周期性地更新內容, 顯示最新的系統狀況。 • 預設是以CPU 的負載狀況排序, 您也可以按[M] 鍵改成以記憶體的使用率, 或者按 [T] 鍵以執行的時間排序 (按 [P] 鍵可改回預設值)。 • 在 top 裡的按鍵, 需注意大小寫是不同的。

  28. 監視系統資源的使用狀況- top指令 • 殭屍出現了! • 監視特定使用者 • 結束執行中的程序

  29. 殭屍出現了! • 執行的程序有 sleeping、running、stopped 等狀態, 相信大家都還能夠理解, 可是這邊居然出現了殭屍 (zombie)?看來 Linux 的世界裡似乎存在著不少妖魔鬼怪! • 其實所謂的殭屍, 是指『父母不知道的死孩子』。

  30. 殭屍出現了! • 我們用電腦的語言來解釋會更清楚些, 程式可能分為數個程序執行, 當某個程序又產生另一個程序時, 原先的程序就稱為父程序(parent), 從父程序中產生的新程序, 稱之為子程序(child)。 • 倘若子程序已經當掉 (形同死亡), 而其父程序不知子程序早已死去, 無法將子程序佔用的系統資源回收, 此時這個子程序就變成殭屍。

  31. 監視特定使用者 • 直接執行 top 指令時, 它會去監視系統中全部的程序, 所以感覺有些零亂。 • 假如只想監控某位特定的使用者, 只需按下 鍵, 然後指定使用者帳號名稱即可:

  32. 監視特定使用者

  33. 結束執行中的程序 • 假設發覺某個程序佔用太多系統資源, 或使用者執行規定以外的程式, 則可從 top 內直接將其刪除:

  34. 結束執行中的程序

  35. 結束執行中的程序 • 除了管理者可刪除任何程序之外, 每個使用者僅能刪除隸屬於自己的程序, 而無法刪除其他使用者的程序。 • top 還有其他的功能, 詳細說明請按 [h] 或 [?] 鍵即可得知。

  36. 16-2-2 查詢執行中的程序 - ps指令 • 要查看系統中正在執行的程序時, ps (Process Status) 是經常使用的指令。單獨執行 ps指令時, 只會列出屬於擁有者為自己, 正在執行中的程序:

  37. 查詢執行中的程序 - ps指令 • 若加入 "u" 或 "-l" 參數則可觀看較詳細的說明:

  38. 查詢執行中的程序 - ps指令 • 觀察其他使用者的程序 • 查看背景執行的程序 • 替程序清單排序 • 搭配其他指令查詢特定程序

  39. 觀察其他使用者的程序 • 若想一併查看其他使用者正在執行的程序, 請執行 ps -Al指令:

  40. 觀察其他使用者的程序 • 由顯示的訊息中,可得知目前系統中有 UID 編號為 500、501 與 502 共三位其他使用者登入, 並可看到他們正在執行的程序。

  41. 查看背景執行的程序 • 單純使用 ps指令, 所觀察到的程序列表, 都是在前景執行的程序。但實際上並非所有程序都在前景中執行, 隱藏在背景裡執行之程序數量也不少。想觀察系統和每位使用者執行中的全部程序, 可加上參數 "aux" 來查看:

  42. 查看背景執行的程序

  43. 替程序清單排序 • ps指令有個 "--sort" 參數, 可將查詢結果依程序執行的時間、PID、UID...等做排序, 再呈現於我們眼前。詳細的使用方法,可執行 man ps指令就能查詢,在此不一一介紹, 僅以下例表示:

  44. 搭配其他指令查詢特定程序 • 由於 ps aux指令會列出系統中正在執行的所有程序, 因此反而不易找到特定的程序。若搭配其他指令使用 (如 grep指令), 則可事半功倍:

  45. 搭配其他指令查詢特定程序 • 上面的效果類似搭配 "uU" 參數:

  46. 16-2-3 刪除執行中的程序- kill 指令 • 要刪除某些程序時, 除了使用top指令的 鍵功能之外, 最簡單的方法就是在文字模式下執行kill指令將其刪除, 通常它會搭配 ps指令使用:

  47. 刪除執行中的程序 - kill 指令 • kill指令預設是使用參數 "-15", 這個參數會中斷正在執行的程序, 所以一般情況下只需使用kill指令加上欲刪除程序的 PID, 便可刪除該程序。若遇到無法順利刪除的程序, 就需要再加上其他的參數:

  48. 如何將目前登入的 使用者踢出系統? • 當您發現有某個使用者佔用了太多的系統資源, 或是正在進行非法活動, 只要執行以下指令, 就可以將其強制驅離, 踢出系統。假設現在要將已登入系統的使用者 tony 踢出系統, 請先執行 who指令, 找出使用者 tony 登入的終端機代號, 接著再以ps指令, 找出該終端機正在執行的程序中, 程序識別碼 PID 編號最小者:

  49. 如何將目前登入的 使用者踢出系統?

  50. 如何將目前登入的 使用者踢出系統? • 由於 PID 編號最小的程序, 即為該使用者登入系統時所執行的第一個程序, 通常為其工作環境 Shell 。因此只要執行 kill - 9指令, 將此程序強制刪除, 即可將使用者踢出系統:

More Related