第一周就先熟悉一下 Linux 的基礎操作,會用到一點點圖形介面~還有雲端系統的操作!
Linux 是作業系統核心,RockyLinux 是 Linux 作業系統發佈套件,作業系統核心的目的第一是管理硬體、第二是提供系統呼叫給程式設計師開發軟體。 Linux 作業系統發佈套件則更提供常用軟體與工具及一個快速安裝的程序,讓操作者可以輕鬆的使用系統。理解核心、作業系統發佈套件等等是很重要的! 瞭解這些基本資料後,再來實際操作一下 RockyLinux 的圖形 (GUI) 與文字 (Command Line) 模式的運作~ 同時查詢一下一般用戶家目錄的資料吧!Linux 的基礎學習確實稍微困難,請大家從這一章仔細的開始進行操作的行為喔!
『Linux 到底是什麼東西?』這個問題,以標準答案來說,Linux 是一個作業系統『核心 (kernel)』的部份,目的除管理硬體分配資源之外, 還需要提供軟體開發者一個可以遵循的開發標準,讓程式開發人員可以在這個核心上面開發出人們所需要的軟體,諸如伺服器軟體、生產力軟體等等。由於 Linux 核心的主要目的是在管理硬體,因此,當然我們得要先來了解一下什麼是電腦的硬體,以及相關的硬體分類,這樣才比較好入門 Linux 的學習!
目前的電腦硬體系統主要經由底下的元件所組成:
上述主機部份是整體系統最重要的部份,該部份的組成為:控制單元、算術邏輯單元以及記憶體單元(含主記憶體、外部儲存裝置)等, 相關的組成圖示有點像底下這樣:
一般來說,上述的各個元件會以主機板為媒介,將所有的元件整合起來:
模擬一般使用者打開電腦準備使用瀏覽器的機制而言,首先電腦開機後,載入作業系統,將硬體驅動並且準備好使用者的操作界面, 接下來,使用者登入系統後,操作滑鼠 (輸入單元) 去點擊瀏覽器,這時作業系統會從硬碟 (輔助記憶體) 將資料載入到主記憶體 (記憶單元), 等到資料載入完畢後,這時算術邏輯單元與控制單元就會開始去主記憶體存取程式與影音文字資料,並且操作各項硬體,如顯示卡與音效卡, 最後將處理完畢的資料輸出到螢幕 (輸出單元)。
硬體系統最靈魂的部份當然就是 CPU 了。但是, CPU 要有資料存取才能夠邏輯的告知我們有用的資料數據。因此,這兩個部份 (CPU與記憶體) 哪個比較快,或哪個比較忙,就顯得很重要。請先閱讀 1.6 參考資料內關於 CPU bound 與 I/O bound 的相關文件後, 分析在一般伺服器的環境下,電腦五大單元的哪個元件可能是相對比較重要的?
目前的電腦硬體架構主要均由中央處理單元 (CPU) 所定義的各項連結元件所組成,而目前世界上消費市場中,最常見到的 CPU 架構大概可以分為兩大類:
為了簡化硬體的資源操作,因此後來有開發『作業系統』來管理硬體資源的分配。故而程式設計師僅須考量程式的運作流程,而無須考量記憶體配置、 檔案系統讀寫、網路資料存取等,在程式開發上面較為簡易。硬體、作業系統、作業系統提供的開發界面以及應用程式的相關性,可以使用底下的圖示來說明:
現代的作業系統主要的目的就是在控管硬體的資源,並且提供一組開發環境讓其他第三方協力廠商可以方便的在該作業系統上面開發相關的軟體。 故作業系統主要包含的部份是:『核心+系統呼叫』。
現代的 Linux 作業系統主要以可跨硬體平台的 C 程式語言所寫成,且 Linux 自從 3.x 以來的核心版本已經支援了 ARM 的 CPU 架構, 因此 Linux 可以輕鬆的在不同的硬體平台間編譯後安裝。但你依舊不可以直接拿 x86 架構的編譯好的 Linux 去安裝在 ARM 的平台上! 因為兩者對個別硬體的設計還是不太相同的!
Linux 並非憑空撰寫而來,其發展有一定的歷史背景。由於這些歷史背景,目前 Linux 是自由軟體,可以自由的使用、學習、修改、編譯、再發行, 而且是相對穩定的作業系統。
GNU 的 GPL 授權主要強調自由的學習,Free Software(自由軟體)是一種自由的權力,並非是『價格!』 舉例來說,你可以擁有自由呼吸的權力、你擁有自由發表言論的權力,但是,這並不代表你可以到處喝『免費的啤酒!(free beer)』, 也就是說,自由軟體的重點並不是指『免費』的,而是指具有『自由度, freedom』的軟體,史托曼進一步說明了自由度的意義是: 使用者可以自由的執行、複製、再發行、學習、修改與強化自由軟體。
GNU 的 GPL 授權有底下的權力與義務:
由於自由軟體使用的英文為 free software,這個 free 在英文是有兩種以上不同的意義,除了自由之外,免費也是這個單字! 因為有這些額外的聯想,因此許多的商業公司對於投入自由軟體方面確實是有些疑慮存在的!許多人對於這個情況總是有些擔心~
為了解決這個困擾,1998 年成立的『開放原始碼促進會 (Open Source Initiative)』提出了開放原始碼 (Open Source,亦可簡稱開源軟體) 這一名詞! 另外,並非軟體可以被讀取原始碼就可以被稱為開源軟體喔!該軟體的授權必須要符合底下的基本需求,才可以算是 open source 的軟體。
如果你自己開發的軟體未來可能會有商業化的可能,但目前你希望使用 Open source 的方式來提供大家使用。 另外,也希望未來能夠有一支保有開放源碼軟體的分支,那最好使用 GPL 還是 BSD 呢?
Linux kernel 主要由 http://www.kernel.org 維護,且在 2022 年已經釋出了 6.0 版。Linux kernel 1.0 在 1994 年釋出, 在 1996 年釋出 2.0 版,在 2.0 之後,核心的開發分為兩個部份,以當時廣為使用的 2.6 來說明的話,主要的分類有:
這種奇數、偶數的編號格式在 2011 年 3.0 核心推出之後就失效了。從 3.0 版開始,核心主要依據主線版本 (MainLine) 來開發,開發完畢後會往下一個主線版本進行。例如 4.9 就是在 4.8 的架構下繼續開發出來的新的主線版本。
舊的版本在新的主線版本出現之後,會有兩種機制來處理,一種機制為結束開發 (End of Live, EOL),亦即該程式碼已經結束, 不會有繼續維護的狀態。 另外一種機制為保持該版本的持續維護,亦即為長期維護版本 (Longterm)!例如 4.14 即為一個長期維護版本,這個版本的程式碼會被持續維護,若程式碼有 bug 或其他問題,核心維護者會持續進行程式碼的更新維護。
為了讓使用者能夠接觸到Linux,於是很多的商業公司或非營利團體,就將Linux Kernel(含tools)與可運行的軟體整合起來, 加上自己具有創意的工具程式,這個工具程式可以讓使用者以光碟/DVD或者透過網路直接安裝/管理Linux系統。 這個『Kernel + Softwares + Tools + 可完整安裝程序』的咚咚,我們稱之為Linux distribution, 一般中文翻譯成可完整安裝套件,或者Linux發佈商套件等。
常見的 Linux distributions 分類有:
RPM 軟體管理 | DPKG 軟體管理 | 其他未分類 | |
商業公司 | RHEL (Red Hat 公司) SuSE (Micro Focus) |
Ubuntu (Canonical Ltd.) | |
社群單位 | Fedora RockyLinux OpenSuSE |
Debian B2D |
Gentoo |
一般用途在個人電腦 (包括筆記型電腦) 的使用,建議可以使用 Ubuntu / Fedora / OpenSuSE 等,若用在 Server 上, 建議可以使用 RockyLinux 或 Debian。
RockyLinux 的產生較為有趣,他是取自 Red Hat 的 RHEL 作業系統,將原始碼中與 Red Hat 相關的註冊商標或其他著作相關的資料移除, 改以自己的『企業商用社群版本作業系統』取名,然後再次發行。因此 RockyLinux 的版本與 RHEL 是亦步亦趨的! (包括 Oracle Linux 與 Scientific Linux 也是同樣的作法)。
為什麼 RockyLinux 社群可以直接取用 RHEL 的程式碼來修改後釋出?這樣做有沒有任何法律的保護呢?
用在企業環境與學術環境中,最常見到的應用有:
個人的使用則有:
物連網 (Internet of Things, IoT) 的使用:
超級電腦可以說是一個國力的展現,而 top500 每年會有兩次去調查全世界跑得最快的超級電腦,台灣在 2022/11 的調查中,有一部超級電腦名列 64 名, 在 https://www.top500.org/system/179590,查詢一下該系統: (1)擁有幾顆 CPU 核心 (2)使用多少容量的記憶體 (3)使用什麼作業系統呢? (4)耗電量若以一度電 5 元台幣計算,系統運作一天要花多少錢?
前往 Dell 官網,調查其支援的 Linux distribution 主要是那幾種?另外,請思考這個查詢的意義為何? (https://linux.dell.com/files/supportmatrix/)
為方便教師/學生可以在任何地方學習 Linux 作業系統,一個教學環境是需要事先建置的。除了使用實體機器原生的 Linux 之外, 虛擬化的環境更方便教師製作教學單元。因為虛擬化的環境軟/硬體可以模擬的完全一致,對於教師與學生的實作練習以及錯誤重現,都有很大的幫助。
本教材預設使用的 Gocloud 雲端系統為鳥哥在自己的課堂上面搭建的小型雲伺服器,對於同學無間斷的學習是很有幫助的。不過因為系統硬體資源太少了, 所以僅開放給鳥哥實際課程的同學們使用,實際並未對網際網路開放,在此跟大家說聲抱歉!如果您是自學的朋友,那只好請參考書上的光碟資料, 使用 VirtualBox 軟體作為自學磁碟的系統了!
(ps. 除了 Gocloud 系統之外,老師們也可以選擇 Ovirt (https://ovirt.org/) 作為教學訓練的環境建置, 或者單純在原有的教室 windows 系統上面建置 virtualbox 的環境來教學即可。關於 virtualbox 的建置,可以參考光碟附件。如果是預計使用 ovirt, 可以參考如下的連結:https://www.ovirt.org/documentation/install-guide/Installation_Guide.html)
除非貴單位有購買與安裝 Gocloud 系統,否則請以光碟內容的 virtualbox 環境取代底下的說明。若有安裝 Gocloud 系統, 請依據貴單位的環境設定 (網際網路 IP 或 主機名稱),直接以瀏覽器來連線到 Gocloud 系統,系統示意圖如下所示:
如果是第一次使用的學生,那就請先來註冊一下!按下如上圖的箭頭指向的地方,點下去就會出現註冊的項目了,如下所示:
一般來說,如果是學校單位,鳥哥建議如上述畫面所示,最好請學生依據自己的學號作為帳號,真實姓名作為姓名填寫, 這樣老師比較知道學生與帳號的對應,在考試出題與作答時,會比較清楚對應。如果沒有強調這一點,那學生註冊的姓名可能會比較傷腦筋。 等到註冊完畢後,還要等老師將你的帳號開通之後才能夠使用。因此,此時請稍微等待一小段時間喔!
等到老師將你的帳號開通,並且假設老師已經將硬碟製作好給你了,此時請回到圖 1.2.1-1 去輸入帳號與密碼欄位, 並按下登入系統或 [Enter],那就能夠登入系統了。登入系統會出現如下的圖示:
畫面中最上方為學生可以操作的系統功能,其中比較常用的是:
課程的 Linux 作業系統需要用到虛擬機器,您電腦與網路雲裡面作業系統是需要連線軟體的支援的。gocloud 目前提供的是使用 remove-viewer 這套軟體來連線, 底下會介紹常見的作業系統安裝 remote-viewer 的過程,請依據你的環境來安裝。
除非貴單位有購買與安裝 Gocloud 系統,否則請以光碟內容的 virtualbox 環境取代底下的說明。若有安裝 Gocloud 系統, 請登入系統後,根據你自己家用 (或電腦教室中) 的作業系統,下載正確的 remote-viewer 軟體,並且安裝後啟動該軟體。
這裡假設學校的電腦大多為 windows 作業系統,因此當安裝完軟體後,可以在『開始』-->『所有程式』-->『VirtViewer』找到『 Remote Viewer 』這套軟體。 點選此軟體後,就可以得到如下的畫面:
當學生開啟虛擬機器後,將虛擬機器所在的網址複製到上述箭頭所指定的方框中,即可達成連線。
除非貴單位有購買與安裝 Gocloud 系統,否則請以光碟內容的 virtualbox 環境取代底下的說明。
若有安裝 Gocloud 系統, 在你登入 Gocloud 網站系統後,點選『啟動/關閉主機』後,應該會得到如下的畫面。如果一切順利的話,那麼你應該會取得至少一個以上的硬碟環境。 如下圖的 2 號箭頭處。如果找不到任何硬碟,請與您的授課教師聯繫。選擇正確的磁碟後,請按下『開啟機器』的按鈕來啟動雲端虛擬機器。
如果一切順利,那麼你就會得到如下的畫面示意圖,基本上,我們最重要的是取得如下圖 1 號箭頭指的方框處的 URL (spice 開頭那項), 請複製該項目,並且將他貼上 圖1.2.1-4 所需要指定的 URL 方框中,按下連線 (Connect) 即可取得如 圖1.2.2-3 的雲端虛擬機器視窗了!
remote viewer 軟體左上方主要有兩個基本功能可以選擇:
另外請注意,由於目前你應該有兩個完全獨立的系統,一個是你自己的系統,一個是 Gocloud 的雲端虛擬機器, 若要操作 Gocloud 的雲端虛擬機器時,你應該要將滑鼠移動到 remote viewer 的視窗內,這樣才能夠完整的使用虛擬機器的資源!
另外請注意,如果是使用 remote-viewer 的方式來進行雲端虛擬機器的連線時,由於 remote-viewer 的使用與網路頻寬很有關系, 所以,如果頻寬不太足夠的情況下 (不論是伺服器端還是用戶端),可能會導致 remote-viewer 的連線中斷。但是很可愛的是,離線中斷後, remote-viewer 會一直呈現離線那一刻的畫面...所以就會造成使用者誤以為系統當機的情況。此時只要關閉 remote-viewer ,並重新連線一次, 就可以再次取得連線的畫面了。
取得雲端 Linux 機器後,就能夠開始操作 Linux 系統了。接下來先來學習如何登入 Linux、了解圖形界面、文字界面的操作差異, 並建立好『良好的操作行為』,這對於未來的幫助會很大的
本教材預計在訓練學員們了解 Linux 在伺服器的使用上,應該如何操作與學習,因此使用了 RockyLinux 這套 Linux 作業系統來學習。 請大家依據教材的內容慢慢實做練習,以理解整個系統的操作!
在圖1.2.2-3 的畫面中,如果是一片漆黑的畫面時,隨意動一下滑鼠或鍵盤,就會出現等待登入的畫面,如下所示:
你可以:
本教材提供虛擬機的帳號與密碼為『student/mystdgo』,請依據此帳號密碼來登入系統。
如果一切處理順利,那就可以出現圖形化視窗。現在,請在登入的畫面上,按下左上角的『概覽』按鈕,然後在左側的『終端機』點一下, 就會出現如下畫面的環境了!
現在,請先按下『概覽』按鈕,然後將滑鼠向右移,就會看到類似如下的畫面:
上述的各個元件大致上是這樣功能:
整個圖形界面大致如上介紹,底下請你自己探索一下整個系統內容吧:
由於我們是虛擬機器,因此在雲裡面是不需要螢幕的,因此似乎無須螢幕保護功能,請關閉螢幕保護功能。此外,也請自行調整螢幕解析度, 以配合你自己的螢幕與上課所需要的環境!
由於使用圖形界面時,會在使用者的家目錄建立相當多的圖形界面操作設定檔與暫存檔。不過在系統管理員 (root) 的角色下, 我們希望不要有太多雜亂的資料,因此建議『不要在圖形環境下使用 root 的帳號登入系統』喔!你可以在其他的登入界面使用 root 的帳號! 如下一個小節的純文字模式介紹~
Linux預設的情況下會提供六個Terminal來讓使用者登入, 切換的方式為使用:[Ctrl] + [Alt] + [F1]~[F6]的組合按鈕。
系統會將[F1] ~ [F6]命名為tty1 ~ tty6的操作介面環境。 也就是說,當你按下[ctrl] + [Alt] + [F1]這三個組合按鈕時 (按著[ctrl]與[Alt]不放,再按下[F1]功能鍵), 就會進入到tty1的terminal介面中了。同樣的[F2]就是tty2! 要注意的是,預設的圖形畫面中,tty1 都是用來提供『圖形界面登入』的環境,所以,你實際操作的圖形界面, 很可能會在 tty2 以後的任何一個終端界面中喔!
Rocky Linux 9.1 (Blue Onyx) Kernel 5.14.0-162.6.1.el9_1.x86_64 on an x86_64 Active the web console with: systemctl enable --now cockpit.socket localhost login: student Password: <==這裡輸入你的密碼 Last login: Sun Mar 1 16:37:30 on tty2<==上次登入的情況 [student@localhost ~]$ _ <==游標閃爍,等待你的指令輸入
上面顯示的內容為:
上述比較重要的資料在最後一行,RHEL 衍生的系統之 bash 提示字元通常的格式就是『 [使用者帳號@本主機名 工作目錄]提示字元 』。 其中比較重要的項目是:
另外,文字界面等待登入畫面的第一、第二行的內容其實是來自於/etc/issue這個檔案!
那麼如何離開系統呢?其實應該說『登出Linux』才對!登出很簡單,直接這樣做:
[student@localhost ~]$ exit
就能夠登出Linux了。但是請注意:『離開系統並不是關機!』 基本上,Linux本身已經有相當多的工作在進行,你的登入也僅是其中的一個『工作』而已, 所以當你離開時,這次這個登入的工作就停止了,但此時Linux其他的工作是還是繼續在進行的!
站在伺服器角度的立場來看,使用純文字模式來進行系統的操作是很重要的!畢竟伺服器通常不會啟用圖形界面。 因此,第一堂課接觸過 Linux 與登入過 Linux 之後,讓我們來使用簡單的指令查詢一下用戶家目錄裡面有哪些資料,以及如何查詢自己曾經下達過的指令吧!
請使用一般用戶的身份登入 Linux 系統,同時啟動一個終端機在桌面上。現在讓我們來執行兩個指令,確認一下如何操作系統與觀察輸出的資料。
[student@localhost ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates text1.txt Videos
使用 ls 可以單純的列出檔名,就是上面列出的『Desktop Documents Downloads...』等等的資料。 不過並沒有顯示這個檔名相關的各項檔案權限資訊,包括時間、容量等等。若需要查閱比較詳細的資訊,需要使用 ll (LL 的小寫) 來處置。
[student@localhost ~]$ ll drwxr-xr-x. 2 student student 6 Feb 17 13:49 Desktop drwxr-xr-x. 2 student student 6 Feb 17 13:49 Documents drwxr-xr-x. 2 student student 6 Feb 17 13:49 Downloads drwxr-xr-x. 2 student student 6 Feb 17 13:49 Music drwxr-xr-x. 2 student student 6 Feb 17 13:49 Pictures drwxr-xr-x. 2 student student 6 Feb 17 13:49 Public drwxr-xr-x. 2 student student 6 Feb 17 13:49 Templates -rw-r--r--. 1 student student 44 Feb 17 14:51 text1.txt drwxr-xr-x. 2 student student 6 Feb 17 13:49 Videos
第一堂課的此時,你需要注意的是最右邊的三個參數,分別是檔案容量、檔案最後被修改的日期、檔名資訊。 以『Public』檔名為例,該檔名的容量有 6bytes,而最後被修改的日期為『 Feb 17 13:49 』。至於年份則是本年度的意思。
如果想要查閱根目錄 (類似 windows 的『電腦』項目),則使用如下的指令:
[student@localhost ~]$ ll /
dr-xr-xr-x. 2 root root 6 May 16 2022 afs
lrwxrwxrwx. 1 root root 7 May 16 2022 bin -> usr/bin
dr-xr-xr-x. 6 root root 4096 Feb 17 10:30 boot
drwxr-xr-x. 20 root root 3440 Feb 17 12:15 dev
drwxr-xr-x. 130 root root 8192 Feb 17 2023 etc
drwxr-xr-x. 3 root root 21 Feb 16 11:51 home
lrwxrwxrwx. 1 root root 7 May 16 2022 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 16 2022 lib64 -> usr/lib64
......
此時螢幕上顯示的為根目錄底下的檔名,而不是 student 的家目錄了。這個練習在讓操作者了解到,指令後面可以加參數 (parameters)。 而如果想要知道 student 家目錄底下有沒有『隱藏檔』時,可以使用如下的指令:
[student@localhost ~]$ ll -a
total 32
drwx------. 14 student student 4096 Feb 17 15:11 .
drwxr-xr-x. 3 root root 21 Feb 16 11:51 ..
-rw-------. 1 student student 5 Feb 17 15:11 .bash_history
-rw-r--r--. 1 student student 18 Nov 2 00:47 .bash_logout
-rw-r--r--. 1 student student 141 Nov 2 00:47 .bash_profile
-rw-r--r--. 1 student student 492 Nov 2 00:47 .bashrc
drwxr-xr-x. 10 student student 4096 Feb 17 14:48 .cache
drwx------. 12 student student 4096 Feb 17 14:58 .config
drwxr-xr-x. 2 student student 6 Feb 17 13:49 Desktop
......
可以發現多了相當多以小數點開頭的檔名,這些檔名在 ls 或 ll 時並不會出現,但加上『 -a 』這個『 選項 (Option) 』之後, 就會開始出現了。這個練習在讓操作者了解到,指令後面可以加『選項』來改變指令的處理行為。
最後,如果你想要知道根目錄本身的權限,而不是根目錄底下的檔名,則應該要使用底下的指令:
[student@localhost ~]$ ll -d /
dr-xr-xr-x. 18 root root 235 Feb 16 11:43 /
你將在螢幕上發現到只有根目錄 (/) 這個檔名存在,而不像剛剛『 ll / 』出現一堆檔名資料。 亦即一般情況下,ll 是『瀏覽目錄內的檔名資訊』,而不是看目錄本身。
以 windows 的檔案總管來說,通常檔名的瀏覽畫面中,左側為『目錄』而右側為『該目錄下的檔名』,所以,『 ll 』代表滑鼠點左邊的目錄, 而螢幕輸出右邊的檔名資料之意。
Linux 的文字界面中,可以用幾個簡單的方式去檢查你曾經下達過的指令,最簡單的方法就是使用方向鍵『上與下』, 不但能夠呼叫出之前的指令,也能夠再透過方向鍵『左與右』,與鍵盤上的『home/end』按鍵,直接在一行指令的最前面與最後面直接再修改。 熟悉這個作法,可以讓你快速的編輯一行指令。
但是如果是太久之前做的指令,此時就能夠透過歷史命令『 history 』來呼叫出來。
[student@station10-101 ~]$ history ...... 4 ll / 5 ll -a 6 ll -d / 7 clear 8 ll /var/spool/mail/ 9 ll -d /var/spool/mail 10 ll /var/spool/ 11 history
[student@station10-101 ~]$ !6 ll -d / <==這裡會將指令的完整下達方式顯示一次喔! dr-xr-xr-x. 18 root root 235 Feb 16 11:43 /
[student@station10-101 ~]$ !cl
在 RockyLinux 9 底下,預設歷史命令會紀錄 1000 筆,你下次登入後,系統會將上次的歷史命令匯入,亦即:假設上次你下達過 50 筆紀錄, 則下次啟用終端機後,第一個指令會紀錄在 51 筆。因此,經常查詢 history 可以讓操作者了解以前曾經下達過哪些指令。
基本上,所謂的『離開系統』應該也能稱為『關閉某個軟體』的意思。以 RockyLinux 9 來說,圖形界面是個軟體,終端機是個軟體,瀏覽器也是個軟體。 離開瀏覽器、離開控制台,都可以直接點選該軟體右上角的『 X 』即可關閉。但是對於終端機來說,由於終端機環境底下,你可能會有其他同步工作的任務在, 因此,要離開終端機或圖形界面,不建議直接點選『 X 』,最好可以輸入『 exit 』或『 logout 』或者是在沒有輸入任何資料的情況下, 按下 [ctrl]+d 來關閉該軟體。注意,是關閉該軟體,不是關機喔!底下為關閉終端機的建議方式:
要關閉圖形界面,就點選登出 (logout) 即可,登出前,最好按下『概覽』看一下所有的桌面,是否所有的軟體都已經關閉了? 最好全部都關閉再登出比較好!那如果要關機呢?最好先檢查看看有沒有任何用戶在系統上?如果有,先讓該用戶登出, 等到全部都登出了,再關機比較好。觀察系統正上線的用戶,可以使用之前講過的 w 來查閱:
[student@localhost ~]$ w
15:25:16 up 3:17, 3 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
student tty2 13:59 ? 0.04s 0.04s /usr/libexec/gnome-session-binary
student tty5 15:12 9:04 0.02s 0.02s -bash
student pts/1 15:16 1.00s 0.04s 0.01s w
看起來有個 student 在 tty5 登入了!我們先去到 tty5 登出後,再回到圖形界面來關機吧!從上面的結果我們也可以知道, 終端機界面使用的軟體為 bash,而圖形界面則是使用 gnome-session-binary 這個軟體的意思。
至於 pts/1 則可能是 (1)在圖形界面啟動的終端機,或 (2)透過網路連線進來的終端機。並非本機的 tty1~tty6 。
從上表看來,目前確實僅有 student 在線上,若本機器並非伺服器,則此時應該可以進行關機的行為。關機可以使用如下的指令:
[student@localhost ~]$ poweroff [student@localhost ~]$ halt [student@localhost ~]$ shutdown -h now [student@localhost ~]$ systemctl poweroff
上述的任何一個指令均可關機。但無論使用哪個指令關機,其實最終都是呼叫最後一個,亦即『 systemctl poweroff 』進行關機的行為。
在本機 tty1~tty6 登入系統的帳號,無論系統管理員或一般帳號,均可 poweroff 本機。但如果是透過網路連線進來的,則無法關閉 Linux , 除非使用管理員帳號,才有辦法透過網路關機。
做完之後,可以到參考解答查看一下你的答案是否合理喔!
作業硬碟一般操作說明:
作業當中,某些部份可能為簡答題~若為簡答題時,請將答案寫入 /home/student/ans.txt 當中,並寫好正確題號,方便老師訂正答案。 請注意,檔名寫錯將無法上傳!
作業結果傳輸:請以 root 的身分執行 vbird_book_check_unit 指令上傳作業結果。 正常執行完畢的結果應會出現【XXXXXX_aa:bb:cc:dd:ee:ff_unitNN】字樣。若需要查閱自己上傳資料的時間, 請在作業系統上面使用瀏覽器查詢: http://192.168.251.254 檢查相對應的課程檔案。 相關流程請參考: vbird_book_check_unit