Linux 基礎學習訓練教材 - RockyLinux 9.x

課程/課後例題參考解答

單純提供一個相對的解答,並不是標準答案!

最近更新時間: 2023/05/01

單純就是個解答的參考,寫完之後再來這邊查查看答案跟你想的一樣不一樣!?

第 01 堂課 (2023/02/17)

  • 例題 1.1.1-1:

    大部分的伺服器 (除了資料庫之外) 主要的任務大多在處理檔案資料的傳輸運作,真正用在計算的時間 (資料庫例外) 相對是少的。 而且,大部分的伺服器總是服務多數用戶,每個用戶都會生成一個程序,每個程序都有自己的資料運作。因此,在資料的傳輸上面, 可能會佔據比較大部份的資源,亦即,伺服器大部分都是 I/O bound 的情況。在這種情況下,加大記憶體 (插更多的主記憶體) 以及加快磁碟讀寫 (更換速度更快的 SSD 或 M2 或 RAID 等) ,可能是讓伺服器效能增加是比較有用的。

  • 例題 1.1.1-2:
    1. 當時 microsoft 為了改善作業系統的資訊安全問題,因此採用全新的系統呼叫設計,同時系統核心層級也進行大幅度的修改,據以開發出新一代的 vista 作業系統,因此,很多 windows XP 的軟體就無法在 vista 上面運作!這是因為系統呼叫不同所致。故而很多的廠商就不敢更換成 Vista 系統, 免得自家開發的軟體不能執行。後來 microsoft 很多系統開發時,就有考慮到軟體相容性的問題,避免再次發生同樣的困擾。
    2. 如同四個同心圓的架構,軟體依附在作業系統上面,因此,同樣是 google chrome 瀏覽器,就會分 windows 版本、Linux 版本、 Mac 版本等等。 例如下圖所示,就是一個簡單的範本:
      以 google chrome 為例,不同作業系統須下載不同的版本
      以 google chrome 為例,不同作業系統須下載不同的版本
      上圖來源為 https://www.google.com/chrome/,請自行點選參考。 由上所知,軟體與作業系統有關。
    3. 由於不同的作業系統其編譯行為並不相同,因此桌上型 x86 Linux 作業系統是沒有辦法直接放到 ARM 的手機硬體上面執行的,這也能由 4 個同心圓的圖示得到印證。
  • 例題 1.1.2-1:
    1. 早期的系統大多屬於 I/O bound 的狀態,因為 CPU 的效能相對強大。在此情況下,如何將 I/O 的狀態切開,讓 CPU 可以省去等待的時間, 就很重要。早期的批次處理系統會讓 CPU 無法執行下一個程序,因此,多元程式處理系統,在記憶體內改變程序的狀態, 同時 CPU 也能進行多工 (在工作中切換),因此將程序設定為中斷 (interrupt) 時,此時該程序就會被放置到其他裝置獨立運作, 而 CPU 的資源就能釋放出來,給予其他程序持續進行。如此則可以加速程序運作,並且讓 CPU 資源完整被利用!
    2. 指的其實是 1977 年的 BSD 與 SystemV
    3. (1)GNU is Not Unix;
      (2)https://www.gnu.org/;
      (3)是隻公牛;
      (4)由 https://www.gnu.org/software/hurd/hurd.html 找到,名為 GNU hurd 作業系統。
  • 例題 1.1.3-1:

    開放原始碼基金會 (Free software Foundation, FSF, https://www.fsf.org/) 主要提供了 GNU/GPL 授權,該授權的使用有相關嚴格的規定。相對來說,開放原始碼基金會 ( Open Source Initiative, https://opensource.org/) 則雖然也是開放原始碼軟體,但至少可以擁有商業化的空間。因此,若想要商業化保留專屬軟體的封閉內容功能,可能選擇 BSD 發佈會比較好。 相關的 open source 授權,可以參考 https://opensource.org/licenses/

  • 例題 1.1.4-1:
    1. 相關 Android 版本可以參考 https://zh.wikipedia.org/wiki/Android, https://zh.wikipedia.org/wiki/Android版本列表, https://source.android.com/docs/core/architecture/kernel/android-common?hl=zh-tw。 由上述的連結,可以知道 android 的版本與 Linux 核心版本的對應,已經設計成為:『android{版號}-{Linux版號}』特色! 例如 2022 年發布的 android13 其核心對應版本為: android13-5.15,即可了解市面上最新的 Android 13 使用的是 Linux kernel 5.15 版本。
    2. 請先前往 https://www.kernel.org/category/releases.html 查看,在製作教材的 2023/02 時,使用的 longterm 版本有 6.1, 5.15, 5,10, 5.4, 4.19, 4.14 等。
  • 例題 1.1.5-1:

    Red Hat 為一家自由軟體商業公司,由於 Linux kernel 使用 GPL 授權,因此,Red Hat 就得要將其所開發的軟體使用 open source 的方式釋出, 這當然也包括 RHEL 這些軟體的程式碼。但是,RHEL 裡面含有 Red Hat 本身的商標授權等特別的圖案等,這些資料則是 Red Hat 商業擁有! 那是不能夠直接取用的。

    RockyLinux 為社群單位,志工工程師取得 RHEL 的軟體之後,會依據 RHEL 建置的流程,先建立開放原始碼的伺服器樹狀環境, 之後逐一檢視各軟體是否有專屬的商業圖示在內,必需要取出後重新修改與編譯。你可以參考 RockyLinux 的發行注記 (release note) 來了解更多!由於是 GPL 的關係,因此 RockyLinux 同樣以 GPL 釋出喔! 因此,你可以享有自由的複製與在發行的權力!

  • 例題 1.1.6-1:

    經過追查該系統,其相關資訊為:

    • 使用 Intel Xeon Gold 6154,每顆 CPU 有 18 核心,系統總核心數達到 170,352 個,所以,總安裝 CPU 顆數應可達到 170352/18 = 9464 顆。
    • 使用記憶體容量達到 193,536GB,差不多就是 194TB 的等級!
    • 就是使用 CentOS 喔!
    • 實際運作,耗電量達到 797千瓦,台灣一度電測定方式為 1 千瓦小時,所以,該系統開機一天 (24hrs) 時,耗電量為: 797*24 = 19128 千瓦小時。 每度電 5 元,故一天的電費: 19128*5 = 95640 元。這還不考慮冷氣與照明設備的額外電力喔!
  • 例題 1.1.6-2:

    經查該系統,發現到主要支援的作業系統有 Oracle Linux (甲骨文,與 RockkyLinux 類似,都是從 RHEL 系統複製來的分支), RHEL 與 RHEV (Red Hat 系統的虛擬化架構)、SUSE Linux Enterprise Server (SLES)、Ubuntu等, 這代表硬體製造商認為這幾個作業系統是一般商用最常使用的環境,因此才會進行硬體支援度的測試。因此, 要選擇 Linux distributions,當然以這幾個版本來挑選是最佳的。

  • 例題 1.3.1-1:
    1. 點擊『概覽』之後,點擊類似文件櫃的圖示,即可開啟檔案總管
    2. 大致區分為:『上方檔案所在工作目錄、可工作項目』、『左側快速連結與其他電腦目錄』、『右側主要檔案清單區』
      檔案總管大致的三個區塊介紹
      檔案總管大致的三個區塊介紹
    3. 可以點選上圖中,在放大鏡右側的按鈕,即可變更圖示與詳細項目的功能切換
    4. 在詳細顯示的環境下,你先點選上方工作列最左側的圖示,然後依序執行底下的動作即可:
      操作檔案總管顯示詳細資料的方法
      操作檔案總管顯示詳細資料的方法
    5. 依序點擊『左側的"其他的位置"』,然後『雙擊右側的"電腦"畫面』,即可看到目前系統的所有可用目錄
    6. 持續點擊『電腦』、『etc』、『passwd』這個檔案,然後在 passwd 上面點選右鍵,選擇『複製』。 之後點選左側『家目錄』後,滑鼠移動到右側點選右鍵後貼上即可。你可以發現到擁有者、群組、修改時間都改變了。
    7. 因為擁有者與群組都是『root』,目前身份是 student,因此,可能是因為權限不足的緣故。
  • 例題 1.3.1-2:
    1. 點選右上角圖示,進入控制台,並點選『Keyboard』的項目
    2. 如下所示,顯示出目前的輸入法:
      在控制台改變輸入法的方式 在控制台改變輸入法的方式 在控制台改變輸入法的方式
      在控制台改變輸入法的方式
    3. 如下所示,在終端機輸入中文看看:
      在控制台改變輸入法的方式
      在控制台改變輸入法的方式
    4. 由『概覽』點選左側的『顯示應用程式』,然後選擇『文字編輯器』即可打開編輯軟體
    5. 在右上角的輸入法選擇項目,點出『漢語(新注音)』的項目,此時你會看到右上角出現一個『中』的字樣。 在此字樣下,你可以按下 [shift] 來暫時轉換中英文輸入。此時就可以開始打字了。
    6. 按下文字編輯器右上角的『儲存』按鈕,並填寫正確的檔名與位置,就可以儲存了!如下所示:
      gedit 文書編輯器的儲存示意圖 gedit 文書編輯器的儲存示意圖
      gedit 文書編輯器的儲存示意圖
    7. 由『概覽』啟動『檔案總管』,並點選『家目錄』,應該就能看到剛剛處理妥當的檔名了!
      查閱剛剛建立的檔案
      查閱剛剛建立的檔案
  • 例題 1.3.1-3:

    設定螢幕保護程式與解析度的示意圖如下:

    關閉螢幕保護程式 關閉螢幕保護程式
    關閉螢幕保護程式
  • 例題 1.3.2-1:
    1. 以 [alt]+[shift]+[F3] 的方式切換到 tty3,並輸入 student 帳號與密碼來登入
    2. 此時輸入 w 之後,畫面可能有點像底下這樣:
      [student@station10-101 ~]$ w
       16:49:12 up 4 min,  2 users,  load average: 0.04, 0.09, 0.04
      USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
      student  tty2       16:47    ?     26.29s  0.02s /usr/libexec/gnome-session-binary
      student  tty5       16:46    2:54   0.03s  0.03s w
      
    3. TTY 指的是從哪個終端機登入的意思,因此上表中的 tty5 指的是 tty5 有個名為 student 的帳號登入,且正在操作 w 指令。 至於 tty2 的用戶,則使用 gnome-session-binary 這個圖形界面軟體喔!
  • 例題 1.4.1-1:
    1. 直接輸入 clear 之後,你會發現終端機的環境變得乾淨,指令輸入回到第一行,可以清理終端機的畫面。
    2. 使用 ll 來查閱,查閱的方式有兩種,分別如下:
      [student@station10-101 ~]$ ll /var/spool/mail
      total 0
      -rw-rw----. 1 student mail 0 Feb 16 11:51 student
      # 可以看到裡面只有 1 個檔名,亦即只有 1 個檔案的意思
      
      [student@station10-101 ~]$ ll -d /var/spool/mail
      drwxrwxr-x. 2 root mail 21 Feb 16 11:51 /var/spool/mail
      # 這個方法可以直接看到目錄本身,因此可以知道是 2 月 16 日建立這個目錄的。
      
      [student@station10-101 ~]$ ll /var/spool
      total 0
      drwxr-xr-x. 2 root root 63 Feb 16 11:44 anacron
      drwx------. 3 root root 31 Feb 16 11:46 at
      drwx------. 2 root root  6 Nov  1 03:55 cron
      drwx--x---. 3 root lp   17 Feb 16 11:45 cups
      drwxr-xr-x. 2 root root  6 May 16  2022 lpd
      drwxrwxr-x. 2 root mail 21 Feb 16 11:51 mail
      drwxr-xr-x. 2 root root  6 May 26  2022 plymouth
      # 除了上述的方法之外,也可以透過觀察上層目錄,也就是 /var/spool 的內部檔名來找到 mail 喔!
      
  • 例題 1.5 課後作業:
    1. 先在圖形界面上面,盡量使用圖形化機制進行關機 (右上角的倒三角形,選擇關機),如果有顯示任何還在系統上面的用戶,請先到該終端機上面登出後, 再繼續進行關機的行為較佳。關機之後, remote-viewer 軟體會自動離線關閉,所以不要緊張。
    2. 重新在 virtualbox 畫面,或者是 gocloud 的畫面,再以 student 帳號登入,密碼為 mystdgo,登入之後,按下『概覽』, 再按下左側『終端機』按鈕,即可啟用終端機。之後按下 w 之後,你就可以發現類似如下的畫面:
      [student@station10-101 ~]$ w
       23:38:30 up 2 min,  2 users,  load average: 0.58, 0.32, 0.13
      USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
      student  tty2      23:37    2:27   0.04s  0.04s /usr/libexec/gnome-session-binary
      
    3. 以前的版本當中,圖形界面終端機為 :0 之類的號碼,目前則直接還是使用終端機編號來顯示。因此,如果要判斷是否為圖形界面, 就得要從指令去判斷!如上所示,看到 tty2 為 gnome-session-binary 指令,因此這個圖形界面終端機就在 tty2 了!
    4. 有沒有正常運作網路,可以看一下右上方的狀態列是否有出現網路圖示來判別。若沒有網路圖示,請『點選倒三角形』, 然後點選『有線網路未連線』的按鈕,並按一下『連線』,如果環境中有正確的網路設定,那就可以連上網路了。 此時,你可以到終端機環境,輸入『 nmcli connection show 』看看有沒有輸出正確的設定,如下所示:
      [student@station10-101 ~]$ nmcli connection show
      NAME  UUID                                  TYPE      DEVICE
      ens3  6d7acc4f-a409-38ee-a913-76a66ce86e32  ethernet  ens3
      # 若正常設定, NAME 與 DEVICE 欄位都會有資料!
      
    5. 按下『右上角按鈕』,選擇『設定值』,按下左側的『電源』,就可以看到『螢幕轉黑』的設定值,要設定成為『永不』才合理。
    6. 承上,在控制台的環境下,選擇左側『裝置』,然後點選『顯示器』,就可以看到『解析度』的設定了。
    7. 承上,在控制台的環境下,選擇『keyboard』,然後查看『輸入來源』的項目,就可以看到是否有新注音了。 若無新注音,請依據例題 1.3.1-2 的介紹,自行安裝好新注音。
    8. 按下『概覽』之後,點選『檔案』,然後依序點選『其他的位置』、『電腦』、『etc』,然後將滑鼠移動到『放大鏡』上面點一下, 之後到搜尋的方塊,填入 group 關鍵字,應該就可以看到簡化的內容,然後在 group 上面按右鍵,選擇『複製』即可。
      利用檔案總管複製檔案
      利用檔案總管複製檔案
    9. 最後按下左側『家目錄』然後按下組合鍵『 [ctrl]+v 』即可貼上。
    10. 將滑鼠移動到 remote-viewer 畫面內,按下 [alt]+[ctrl]+[F6] 進入到 tty6,然後輸入 student , 顯示出 Password 時,再輸入 student 的密碼,之後看到『 [student@localhost]$ 』的提示字元,就是登入成功了。
    11. 輸入 history 就可以看到曾經下達過的指令,同時指令前面還會有編號喔。
    12. 你可以有幾種方式來重複執行 (1)重新打字輸入指令 (2)看到前面的編號,輸入『 !數值』來重新執行 (3)按下方向鍵向上慢慢找到該指令來按下 [enter] 執行。 看起來還是第 (2) 個方式比較適合!請執行一次!
    13. 直接輸入『 ll /etc 』就可以查閱了。
    14. 你可以分別使用『 ll /etc/pam.d 』以及『 ll -d /etc/pam.d 』來檢查輸出的結果,就可以知道這一題的用途了。
    15. 由於目前正在家目錄,因此直接輸入『 ll -a 』即可。如果想要確定是本身的家目錄,可以執行『 ll -a ~ 』亦可。 你會發現多了很多小數點開頭的檔案,那就是隱藏檔。
    16. 輸入『 clear 』可以清除畫面,然後按下 [ctrl]+d 就可以登出了!登出之後,按下 [alt]+[ctrl]+[F2] 即可回到原本的圖形畫面。
    17. 按下『倒三角形』,選擇『student』底下的『登出』,就會回到原本的等待登入的畫面。點選右上角的倒三角形, 應該可以看到電源按鈕,點下之後就可以選擇『Power Off』來關機了。
修改歷史:
  • 2023/02/17:RHEL 改版到 EL9 了,只好再度改版!否則教學上面挺困擾!
2023/02/17 以來統計人數
計數器
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計