Linux RHEL

2025-06-16

筆記 Red Hat Enterprise Linux (RHEL) 的基本操作與設定,方便查詢。

logo

說明

Red Hat Enterprise Linux (RHEL) 是一個商業級的 Linux Distribution,主要用於企業環境。RHEL 提供穩定的系統更新和長期支援,Fedora 是 RHEL 的先行社群版本,最新的更新會出現在 Fedora 上,接著會將穩定的功能移往 CentOS Stream,最後成熟穩定的功能才會進入 RHEL。

開源的朋友會選擇 Rocky Linux,功能上與 RHEL 相同,但沒有商業支援。

常見的管理工具

RHEL 提供 GUI 的介面,但對於管理者而言,CLI 會是更常用的方式,因為通常不會使用遠端桌面進入伺服器,而是透過 SSH 連線,操作上都是在 Terminal 中進行,因此熟悉 CLI 的指令與相關工具是基本功夫。

如果要透過遠端桌面連線到 RHEL,可以使用 x2goxrdp 等工具。

tty 表示目前的終端機,tty1 固定為 GUI 的登入畫面,登入後的使用者會出現在 tty2 等終端機

Linux GUI 環境支援虛擬桌面,可以透過 Ctrl + Alt + left/right 切換不同的虛擬桌面。

  • man - 查詢指令的使用說明,例如 man ls 會顯示 ls 指令的詳細說明
  • w - 快速查看目前登入的使用者
  • ssh - 遠端連線至 Linux 主機
  • exit - 退出目前的 shell 或終端機
  • dnf - RHEL 的套件管理工具,用於安裝、更新和移除軟體包
  • file - 檢查檔案類型
  • cat - 顯示檔案內容,搭配 -A 參數可以顯示不可見字元,例如換行符號等
  • dos2unix/unix2dos - 轉換檔案的換行符號格式,從 DOS 格式轉換為 Unix 格式或反之
  • split - 分割檔案,常用於處理大檔案
  • head - 顯示檔案的前幾行,預設是前 10 行
  • tail - 顯示檔案的後幾行,預設是後 10 行
  • wc - 計算檔案的行數、字數和字元數
  • history - 顯示最近執行的指令歷史
  • clear - 清除終端機畫面
  • unalias - 移除指令別名,例如 unalias ll 會移除 ll 的別名設定
  • echo - 輸出文字到終端機,常用於顯示變數的值,例如 echo $HOME 會顯示使用者的家目錄路徑
  • which - 查詢指令的路徑,例如 which python 會顯示 Python 執行檔的路徑

man 指令要熟練如何使用鍵盤來瀏覽,例如使用 jk 鍵來上下滾動,使用 q 退出,使用 / 來搜尋關鍵字,使用 nN 來切換搜尋結果。

如果要執行多個指令,可以透過 ; 連結以依序執行
如果指令有換行的需求,可以使用 \ 加上 Enter 後繼續輸入下一行指令

檔案系統與目錄結構

注意!Linux 對於大小寫字母是區分的,因此 file.txtFile.txt 是兩個不同的檔案,在使用指令參數時也要注意大小寫。

Linux 只有一個管理者 root 並且整個作業系統的資料夾結構只有一個 / 根目錄,所有的檔案和資料夾都在這個根目錄下。其他的使用者的資料夾都在 /home 目錄下,例如使用者 user1 的資料夾會是 /home/user1,而 root 使用者的資料夾則是 /root

使用者可以透過 cd ~ 來快速切換到自己的 home 目錄,也可以透過 cd # 來切換到根目錄 /

Linux 的檔案及資料夾名稱如果開頭是 .,表示這是一個隱藏檔案或資料夾,例如 .bashrc 是使用者的 bash 設定檔,想要顯示隱藏檔案可以使用 ls -a 指令。

  • lsscsi - 列出 SCSI 裝置的資訊
  • pwd - 顯示目前所在的工作目錄
  • ls - 列出目錄中的檔案和資料夾,常用的參數有 -l (詳細資訊)、-a (顯示隱藏檔案)、-h (人類可讀的格式)、-R (遞迴列出子目錄)
  • cd - 切換目錄,透過 cd .. 可以回到上一層目錄,cd - 可以切換到前一個目錄
  • tree - 以樹狀結構顯示目錄內容,加上 -a 參數可以顯示隱藏檔案

預設 Linux 不支援 NTFS 檔案系統,如果需要掛載 NTFS 檔案系統,需要安裝 ntfs-3g 套件。

稍微認識根目錄以下的常見目錄:

  • /bin - 放置基本的系統指令,例如 ls, cp, mv
  • /boot - 系統啟動所需的檔案,例如核心檔案和啟動設定
  • /dev - 設備檔案,包含系統中的所有設備,例如硬碟、USB 裝置等
  • /etc - 系統設定檔案,包含系統的配置和服務設定
  • /home - 使用者的家目錄,每個使用者都有自己的資料夾
  • /root - 系統管理員的家目錄,只有 root 使用者可以存取
  • /lib - 系統函式庫檔案,包含系統指令和應用程式所需的函式庫
  • /mnt - 用於臨時掛載檔案系統的目錄
  • /usr - 用於存放使用者應用程式和相關檔案的目錄,通常包含 /usr/bin, /usr/lib, /usr/share 等子目錄
  • /tmp - 用於存放臨時檔案的目錄,系統會定期清理這個目錄
  • /run - 系統運行時的臨時檔案,包含系統啟動後的狀態資訊

學習 Linux 一定要掌握如何閱讀 ls 輸出結果的意涵,包含第一碼所代表的檔案類型:

  • -:一般檔案
  • d:目錄
  • l:符號連結

以及解讀權限的部分,例如 -rwxr-xr-- 的意涵並能夠解讀二進位制的表示方式,例如 rwxr-xr-- 可以轉換為 754

後續則是所屬的使用者、群組以及日期代表的是檔案的修改時間。

Linux 檔案的時間總共有四種時間,Accessed 是最後存取時間,Modified 是最後修改時間,Changed 是最後狀態改變時間,Birth 是檔案建立時間,其中 Change 是指 i-node 的狀態改變時間,包含權限、擁有者等屬性的變更,Modified 是指檔案內容的變更。

檔案與資料夾操作的相關指令:

  • touch - 建立新的檔案或更新現有檔案的時間戳記
  • cp - 複製檔案或資料夾,使用 -r 參數可以遞迴複製資料夾
  • mv - 移動或重新命名檔案或資料夾
  • rm - 刪除檔案或資料夾,使用 -r 參數可以遞迴刪除資料夾,使用 -f 參數可以強制刪除
  • mkdir - 建立新的資料夾,空白分隔可以一次建立多個資料夾,使用 -p 參數可以建立巢狀資料夾
  • rmdir - 刪除空的資料夾

注意!網路上喜歡捉弄菜鳥去執行 rm -rf /,這個指令會刪除整個根目錄下的所有檔案和資料夾,請小心 😥

關於 Linux 的檔案系統,在捷徑設定上不同於 Windows,Linux 分為 Symbolic Link (符號連結、也稱為 Soft Link) 和 Hard Link (硬連結),符號連結類似 Windows 的捷徑,而硬連結則是指向同一個 i-node 的另一個檔案名稱。但使用硬連結有不能跨越 Devices 及 Partitions 的限制,實務上還是用符號連結較多。

特別的是 Symbolic Link 檔案的權限固定為 lrwxrwxrwx,但實際的存取權限是由原始檔案決定的,因此 Symbolic Link 的權限不會影響原始檔案的存取權限,而 Hard Link 則是與原始檔案的權限相同。

如果要建立 Symbolic Link,可以使用 ln -s,沒有加上 -s 參數則是建立 Hard Link。

Linux 則檔案名稱參數支援 wildcard,例如 * 代表任意字元,? 代表單一字元,[abc] 代表 a、b 或 c 的任意一個字元。特別的是有 Brace Expansion 的功能,例如 file_{a,b,c}.txt 會展開為 file_a.txt file_b.txt file_c.txt

如果要優先執行參數內容,可以使用 $(command) 例如 $(ls) 會先執行 ls 指令,然後將結果傳遞給其他指令。

要 Escape 特殊字元,可以使用 \ 來避免特殊字元被解釋,例如 echo \$HOME 會輸出 $HOME 而不是環境變數的值。

Linux 當中,雙引號 " 和單引號 ' 的差異在於,雙引號會解析其中的變數和特殊字元,而單引號則不會解析,所有內容都會被視為字串。