返回文章列表

Linux 系統管理核心技術

本文涵蓋 Linux 系統管理的關鍵導向,包含使用者許可權管理、系統日誌監控、背景程式操作、系統關閉與重啟、網路問題診斷、硬體資訊檢索、電池狀態監控,以及軟體套件管理等核心技術與實用指令。文章深入淺出地介紹了各種常用工具和技巧,並提供實際操作範例,適合系統管理員和 Linux 使用者參考。

系統管理 Linux

Linux 系統管理員日常工作包含使用者許可權控管、系統日誌分析、背景程式操作、網路設定與診斷等。有效運用 sudo 指令管理使用者許可權,避免直接使用 root 許可權操作,能提升系統安全性。透過 syslog 和相關工具監控系統事件,有助於及時發現並處理潛在問題。熟練掌握背景程式管理技巧,能提升工作效率。shutdownreboot 指令則用於控制系統的關閉和重啟。網路故障排除工具如 pingtraceroutemtr 等,可協助診斷網路連線問題。lscpulshw 等指令可快速取得硬體資訊。upoweracpi 則提供電池狀態和電源管理資訊。最後,熟悉套件管理工具,例如 aptyum,對於安裝、更新和移除軟體至關重要。

管理系統管理員與使用者通知

在建立使用者之後,可以授予他們對作業系統的 root 許可權,以便他們能夠執行較低層級的系統任務(例如維護安全性、硬體等)。必須謹慎地授予此許可權,因為這意味著他們可以在本機或遠端系統上執行任何操作。

授予 Root 許可權的方法

一般有兩種方法可以實作這一目標。第一種方法是讓使用者始終以 root 許可權執行命令,但這種方法並不推薦,因為它存在安全風險。例如,如果使用者的帳戶中存在惡意軟體,惡意軟體現在就可以執行任何想要的操作。

第二種方法是使用 sudo 命令,推薦使用此方法。sudo 命令允許普通使用者帳戶臨時提升命令的許可權,以 root 層級執行。這是一個安全功能,因此您不必一直以 root 身份執行。

使用 sudo 命令

要檢視 sudoers 檔案中的所有使用者,請輸入:

sudo cat /etc/sudoers

sudoers 檔案允許您控制誰可以使用 sudo 命令。要存取此命令需要 root 許可權。較新的發行版可能具有安全性群組,例如 sudoroot,這些群組在 sudoers 檔案中被參考,這將允許您控制誰可以存取此檔案。

要檢視 sudo 群組中的所有使用者,請輸入:

awk -F':' '/sudo/{print $4}' /etc/group

有一個名為 visudo 的命令允許您編輯 sudoers 檔案。它還會檢查檔案的語法,以確保您不會因為損壞的 sudoers 檔案而被鎖定在外。要執行此命令,請輸入:

sudo visudo

將使用者新增至 sudoers 檔案

要將使用者新增至 /etc/sudoers 檔案的末尾,請輸入:

sudo echo 'user_name ALL=(ALL:ALL) ALL' >> /etc/sudoers

使用者通知

如果您需要向登入本機或遠端系統的使用者傳送通知,可以使用 write 命令在使用者主控台畫面上顯示訊息。

要向同一個系統上的其他使用者寫入訊息,請輸入:

write user_name

開始命令後,您可以向使用者寫入訊息,該訊息將顯示在他們的終端機上,完成後按 Ctrl+D

管理 Syslog 與監控日誌檔

當系統或應用程式需要寫入事件(例如警告、警示、資訊等)時,它會將它們寫入系統日誌(即 syslog)。

檢視 Syslog 內容

要檢查 syslog 的內容,請輸入:

less /var/log/syslog

/var/log/ 目錄中還有其他與系統相關的日誌檔。要檢視所有這些日誌檔,請輸入:

ls -l /var/log/*.log

要找出 syslog 的位置,請輸入:

less /etc/syslog.conf

或者,也可能是 /etc/rsyslog.conf,取決於發行版。

將訊息傳送至 Syslog

要將訊息傳送至 syslogd,請輸入:

echo HelloWorld | logger

監控日誌檔

Linux 提供多種不同的工具來搜尋和顯示日誌檔。以下是一些基本工具:

要檢視日誌檔的最後幾行,請輸入:

tail /var/log/syslog

要持續顯示日誌檔的最新變更,請輸入:

tail -f /var/log/syslog

背景與前景作業管理

在終端機中,命令會串列執行,這意味著您必須等待第一個命令完成才能執行下一個命令。如果一個命令執行時間很長,這可能會很惱人。

要將命令放在背景執行(在命令末尾使用和號 &),請輸入:

tree / > ~/output_file.txt &

檢視背景作業

要檢視所有在背景執行的命令,請輸入:

jobs

要將已停止的程式(使用 Ctrl+Z)送到背景執行,請輸入:

bg

要將在背景執行的命令帶到前景,請輸入:

fg

Ctrl+Z 可暫停應用程式,輸入 fg 可重新啟動應用程式,或輸入 bg 可在背景執行。

關閉與重新啟動系統

本文主要介紹如何重新啟動和關閉本機或遠端系統。使用這些命令時請謹慎,因為它們將停止所有程式,直到系統重新啟動。

要關閉(或停止)系統,請輸入:

sudo shutdown -h now

要重新啟動系統,請輸入:

sudo shutdown -r now

要取消關機,請輸入:

sudo shutdown -c

網路故障排除工具

這些工具將幫助您排除本機和遠端系統的網路問題。

檢查基本連線能力

要檢查從本機系統到遠端系統的基本連線能力(按 Ctrl+C 停止),請輸入:

ping example.com

如果上述命令不起作用,請檢查其他事項。確保本機系統具有 IP 位址(如果顯示不正確,可能存在網路設定問題)。

測試 DNS 連線能力

要測試 DNS 連線能力,請嘗試 ping 一個遠端資源,如果無法解析,請檢查您的 DNS 設定(或您的 DNS 伺服器是否關閉),請輸入:

ping google.com

顯示網路路由路徑

要顯示封包到達目的地的網路路由路徑(即跳躍),請輸入:

traceroute example.com

追蹤系統連線速度

要追蹤系統連線的速度,請輸入:

mtr -report example.com

列出開放的網路埠

要列出系統上處於監聽狀態的開放網路埠,請輸入:

netstat -lnp

檢視 HOSTS 檔案內容

要檢視 HOSTS 檔案(它會覆寫本機主機上的 DNS),請確保檔案中沒有阻止連線的條目, 請輸入:

cat /etc/hosts 

#### 內容解密:

  • 在這裡我們討論瞭如何管理管理員和使用者通知、syslog、背景和前景作業、關閉和重新啟動以及網路故障排除工具。
  • 管理員應謹慎授予 root 許可權,因為這可能會帶來安全風險。
  • 使用 sudo 命令可以臨時提升許可權,這是一種更安全的做法。
  • syslog 用於記錄系統和應用程式事件,可以用各種工具進行監控。
  • 背景和前景作業管理允許更靈活地使用終端。
  • 網路故障排除工具幫助診斷和解決網路問題。

Linux 系統管理與網路工具

管理 HOSTS 檔案與網路設定

在 Linux 系統中,HOSTS 檔案的管理是網路設定的重要一環。要編輯 HOSTS 檔案,可以使用以下指令:

sudo nano /etc/hosts

這個檔案用於將主機名稱對映到 IP 位址,是網路設定的基礎。

DNS 設定與網路工具的演變

/etc/resolv.conf 檔案包含了本機使用的 Domain Name Servers (DNS) 清單。瞭解 DNS 設定對於網路通訊至關重要。

舊式與新式網路管理工具

過去常用的網路管理工具如 ifconfig 已逐漸被新工具取代,例如 ip 指令。traceroute 也被 mtr 取代,後者結合了 tracerouteping 的功能,提供更全面的網路診斷。

舊式方法:使用 ifconfig

檢視本機的 TCP/IP 設定:

ifconfig

停用網路介面卡:

ifdown eth1

啟用網路介面卡:

ifup eth1

檢視無線網路介面卡資訊:

iwconfig

若無線網路工具未安裝,可使用以下指令安裝:

sudo apt-get install wireless-tools

sudo yum install wireless-tools

新式方法:使用 ip

ip 是一個用於顯示和修改路由、裝置、策略路由和隧道的實用工具。

顯示本機 IP 摘要資訊:

ip addr show

內容解密:

  1. ip addr show 指令用於顯示本機所有網路介面的 IP 位址資訊。
  2. 這包括了 IPv4 和 IPv6 位址,以及介面的狀態。
  3. 該指令對於快速瞭解本機網路組態非常有用。

顯示所有啟用的網路連線:

ip link ls up

檢視特定網路介面的 IP 資訊:

ip addr show eth1

內容解密:

  1. ip addr show eth1 用於顯示特定網路介面(此例中為 eth1)的詳細 IP 組態。
  2. 這有助於管理員檢查特定介面的設定。

顯示 IPv4 資訊:

ip -4 a

啟用或停用網路介面:

sudo ip link set eth1 up
sudo ip link set eth1 down

內容解密:

  1. sudo ip link set eth1 up/down 用於控制指定網路介面(此例中為 eth1)的啟用或停用狀態。
  2. 這對於網路故障排除或維護非常有用。

顯示路由表:

ip route show

新增或刪除靜態 IP 位址:

sudo ip addr add 192.168.0.100/24 dev eth1
sudo ip addr del 192.168.0.100/24 dev eth1

內容解密:

  1. sudo ip addr add/del 192.168.0.100/24 dev eth1 用於在指定網路介面上新增或刪除靜態 IP 位址。
  2. 正確管理靜態 IP 位址對於網路組態至關重要。

遠端主機管理與檔案傳輸

使用 SSH 和 SCP

SSH(Secure Shell)是一種安全的遠端登入工具,而 SCP(Secure Copy)則用於安全地傳輸檔案。

遠端登入到另一台主機:

ssh user@hostaddress

建立 SSH 登入別名(並自動加入 .bash_aliases):

echo alias jane=\'ssh user@hostaddress\' >> ~/.bash_aliases; source ~/.bash_aliases

啟用 SSH 主機的 Tab 自動補完功能:

complete -W "$(echo $(grep '^ssh ' .bash_history | sort -u | sed 's/^ssh //'))" ssh

安全地上傳檔案到遠端伺服器:

scp file_name.tar.gz [email protected]:/path/to/directory/

內容解密:

  1. scp file_name.tar.gz [email protected]:/path/to/directory/ 用於將檔案安全地傳輸到遠端伺服器的指定目錄。
  2. 這需要遠端伺服器上已安裝並正確組態 SSH 服務。

軟體套件管理

Linux 發行版通常使用套件管理器來安裝、更新和移除軟體。常見的套件管理器包括 apt(Debian 系統)、yum(Fedora 系統)和 zipper(SUSE 系統)。

基本套件管理指令

列出已安裝的套件(Debian 系統):

dpkg -l

搜尋特定的套件(Debian 系統):

sudo apt-cache search zip

取得特定套件的詳細資訊(Debian 系統):

sudo apt-cache show zip

內容解密:

  1. sudo apt-cache search/show zip 用於搜尋或顯示特定套件的資訊。
  2. 這有助於使用者在安裝前瞭解套件的功能和依賴關係。

更新系統與清理本地儲存空間

更新套件函式庫和升級系統是保持系統安全性和穩定性的關鍵步驟。定期清理本地儲存空間也可以釋放寶貴的磁碟空間。

系統更新與清理

更新系統

使用 apt-get 更新 Debian 系統的套件函式庫和升級系統:

apt-get update
apt-get upgrade
apt-get dist-upgrade

使用 yum 更新 Fedora 系統的套件函式庫和升級系統:

yum update
yum upgrade

清理本地儲存空間

檢查和清理 APT 快取:

sudo apt-get check
sudo apt-get clean
sudo apt-get autoclean

移除不需要的軟體包和核心版本:

sudo apt-get autoremove --purge
sudo apt-get remove linux-image-KERNAL_VERSION

內容解密:

  1. sudo apt-get autoremove --purge 用於移除不再需要的軟體包和核心版本,釋放磁碟空間。
  2. 正確清理系統可以保持系統的整潔和高效執行。

綜上所述,Linux 系統管理涉及多個方面,包括網路設定、遠端管理、軟體套件管理和系統維護。掌握相關的指令和工具對於有效管理 Linux 系統至關重要。

清理孤立套件

當你安裝了一個名為 some_program 的套件,而它依賴了一個名為 some_lib 的函式庫時,這個函式庫通常會在安裝 some_program 時自動下載。然而,當你移除 some_program 後,解除安裝程式可能會讓 some_lib 仍然保留在系統中。如此一來,some_lib 就變成了孤立套件,因為系統中沒有其他程式依賴它來執行。

要移除不再需要的套件和依賴項,請輸入:

sudo apt-get autoremove

另外,有一個名為 gtkorphan 的圖形介面工具可以用來移除孤立套件。如果尚未安裝,請輸入:

sudo apt-get install gtkorphan

內容解密:

  • sudo apt-get autoremove:此命令用於移除系統中不再需要的套件和依賴項,幫助保持系統的清潔和高效。
  • gtkorphan:這是一個圖形介面工具,專門用於識別和移除孤立套件,讓使用者能夠更直覺地管理系統中的套件。

硬體資訊

以下列出的工具能夠顯示與本地系統(無論是實體還是虛擬硬體)相關的技術資訊。當你需要編寫指令碼來告知使用者當前作業系統可用的周邊裝置時,這些資訊將非常有用。

要檢視CPU的技術資訊,請輸入:

lscpu

顯示電腦硬體資訊,請輸入:

lshw

列出硬體抽象層(HAL)所知的所有裝置,請輸入:

lshal

檢視所有連線到USB匯流排的裝置,請輸入:

lsusb

檢視所有連線到PCI匯流排的裝置,請輸入:

lspci

顯示區塊裝置的資訊,請輸入:

lsblk

內容解密:

  • lscpu:顯示CPU的架構資訊,如核心數、執行緒數、快取大小等。
  • lshw:提供詳細的硬體組態資訊,包括主機板、記憶體、CPU等。
  • lshallsusblspcilsblk:這些命令分別用於列出HAL所知的裝置、USB裝置、PCI裝置和區塊裝置的資訊,有助於瞭解系統的硬體組成。

電池狀態與溫度監控

Linux系統允許你從ACPI(高階組態和電源介面)取得電源系統的資訊,包括電池狀態。ACPI是一項產業規範,旨在實作電腦能耗的高效管理。

有幾種工具和檔案系統方法可用於管理和取得來自該子系統的資訊。

upower:提供了一個介面來列舉電源並控制系統範圍內的電源管理。 例如:upower -i 如果尚未安裝,請輸入:

sudo apt-get install upower

sudo yum install upower

acpi:顯示ACPI資訊(如電池和電源資訊),使用來自/proc/sys目錄的資料。 例如:acpi -V 如果尚未安裝,請輸入:

sudo apt-get install acpitool

sudo yum install acpitool

/sys/class/power_supply/battery:儲存有關裝置電池的ACPI資訊。

內容解密:

  • upoweracpi:這兩個工具提供了查詢電池狀態和電源管理資訊的功能,有助於監控和管理筆記型電腦或其他行動裝置的能耗。
  • /sys/class/power_supply/battery:這是一個虛擬檔案系統,提供了電池狀態的詳細資訊。

Linux診斷工具

下列工具簡要介紹了一些可用於檢查系統狀況的工具。這些工具能夠幫助你隔離硬體、作業系統和檔案系統的不同問題。

要檢查鍵盤是否正常運作,或顯示按鍵的ASCII碼,請輸入:

showkey -a

內容解密:

  • showkey -a:此命令用於測試鍵盤的功能,按下鍵盤上的按鍵會顯示對應的ASCII碼,按下Ctrl+D可停止程式。

強制在下次開機時檢查檔案系統,請輸入:

sudo touch /forcefsck

顯示是否有任何未寫入磁碟的資料,請輸入:

grep ^Dirty /proc/meminfo

內容解密:

  • sudo touch /forcefsck:建立一個名為/forcefsck的檔案,指示系統在下次啟動時進行檔案系統檢查。
  • grep ^Dirty /proc/meminfo:查詢目前有多少資料仍在記憶體中等待寫入磁碟,有助於判斷是否可能有資料遺失的風險。