第 09 章 - Linux 作業系統 - 初探圖形與文字界面
上次更新日期 2020/05/14
我們前面談到,計算機概論的硬體只是個軀殼,還需要作業系統這個靈魂來驅動才行!現今桌上型或筆記型電腦最常使用的有 windows / Apple Mac / Linux, 而 Linux 更活躍於伺服器系統與手機系統,包括大型的 Top 500 超級電腦、雲端資料中心,小型的手持式系統、嵌入式家電系統等, 很多都是使用 Linux 作業系統喔!所以,多多認識 Linux 系統,對你沒有壞處!
學習目標
- 了解 Linux 的開發、核心與開發套件的意義
- 登入 Linux 圖形界面
- 操作簡易的終端機指令
- 9.1: Linux 系統簡介
- 9.2: 登入與操作 Gocloud 雲端系統 (鳥哥教室專用)
- 9.3: 第一次登入 CentOS 8
- 9.4: 簡易文字指令操作
- 9.5: 系統關機
- 9.6: 課後練習
9.1: Linux 系統簡介
我們知道四個同心圓的圖示中,最中心的底層是硬體,然後就是作業系統核心與系統呼叫,最後是應用程式。早期的作業系統, 也大部分由所謂的『多元程式處理系統』的概念開發而來。再者,在 1971 年由貝爾實驗室開發成功的 Unix 系統,就是個極致的作業系統! 這個已經具有 50 年歷史的作業系統,可是當前所有常見作業系統的起源喔!如下所示 (維基百科):
Linux 站在巨人的肩膀上,現在也成為巨人,讓其他人站在 Linux 的肩膀上了!Linux 從 1991 年開始開發起來,1996 年釋出 2.0 版的核心之後, 到目前也已經將近 30 個年頭,也真的是很成熟的一個作業系統軟體了。Linux 目前的核心開發,放置到底下的的網站上:
目前 (2020/05) 最新的版本是 5.6.12 了,在 3.0 以後,Linux 核心分為主線版本,然後還有包含穩定版本與長期支援版本等, 同時,目前的核心已經同時支援 x86 以及 ARM 的程式碼,因此,只要直接在該硬體上面編譯後,即可運作 Linux 核心程式喔。 至於長期版本就是針對某項設備所規劃開發的版本,大部分都針對手機系統的長期維護!
- Linux distributions
Linux 的版本都在 https://www.kernel.org 裡面,那就是所謂的 Linux 核心版本。但是,不能只有核心啊!還需要應用程式、開發工具與管理工具, 這些東西就得要有社團或者是商業公司來負責維護了!很多團隊就開始組合起來進行 Linux 系統上面的操作環境界面開發, 於是將底下這些東西兜起來,就變成了 Linux distributions,中文或者稱為 Linux 開發套件:
- Linux kernel + Software + Tools + Installation ==> Linux distributions
常見的 Linux 開發套件有:
- Red Hat Enterprise Linux, RHEL
- CentOS
- Fedora
- SuSE
- Debian
- Ubuntu
還有很多很多!讀者們可以自行上網查閱。
- Linux 的 GPL 授權
先說, Linux 不是免費軟體,Linux 是『自由軟體』: free software!
GNU 的 GPL 授權主要強調自由的學習,Free Software(自由軟體)是一種自由的權力,並非是『價格!』 舉例來說,你可以擁有自由呼吸的權力、你擁有自由發表言論的權力,但是,這並不代表你可以到處喝『免費的啤酒!(free beer)』, 也就是說,自由軟體的重點並不是指『免費』的,而是指具有『自由度, freedom』的軟體,史托曼進一步說明了自由度的意義是: 使用者可以自由的執行、複製、再發行、學習、修改與強化自由軟體。
GNU 的 GPL 授權有底下的權力與義務:
- 取得軟體與原始碼:你可以根據自己的需求來執行這個自由軟體;
- 複製:你可以自由的複製該軟體;
- 修改:你可以將取得的原始碼進行程式修改工作,使之適合你的工作;
- 再發行:你可以將你修改過的程式,再度的自由發行,而不會與原先的撰寫者衝突;
- 回饋:你應該將你修改過的程式碼回饋於社群!
- 不可修改授權:你不能將一個GPL授權的自由軟體,在你修改後而將他取消GPL授權~
- 不可單純販賣:你不能單純的販賣自由軟體。
由於自由軟體使用的英文為 free software,這個 free 在英文是有兩種以上不同的意義,除了自由之外,免費也是這個單字! 因為有這些額外的聯想,因此許多的商業公司對於投入自由軟體方面確實是有些疑慮存在的!許多人對於這個情況總是有些擔心~
為了解決這個困擾,1998 年成立的『開放原始碼促進會 (Open Source Initiative)』提出了開放原始碼 (Open Source,亦可簡稱開源軟體) 這一名詞! 另外,並非軟體可以被讀取原始碼就可以被稱為開源軟體喔!該軟體的授權必須要符合底下的基本需求,才可以算是 open source 的軟體。
- 公佈原始碼且用戶具有修改權:用戶可以任意的修改與編譯程式碼,這點與自由軟體差異不大;
- 任意的再散佈:該程式碼全部或部份可以被販售,且程式碼可成為其他軟體的元件之一,作者不該宣稱具有擁有權或收取其他額外費用。
- 必須允許修改或衍生的作品,且可讓再發佈的軟體使用相似的授權來發表即可。
- 承上,用戶可使用與原本軟體不同的名稱或編號來散佈。
- 不可限制某些個人或團體的使用權
- 不可限制某些領域的應用:例如不可限制不能用於商業行為或者是學術行為等特殊領域等等
- 不可限制在某些產品當中,亦即程式碼可以應用於多種不同產品中。
- 不可具有排他條款,例如不可限制本程式碼不能用於教育類的研究中,諸如此類。
9.2: 登入與操作 Gocloud 雲端系統 (鳥哥教室專用)
為方便教師/學生可以在任何地方學習 Linux 作業系統,一個教學環境是需要事先建置的。除了使用實體機器原生的 Linux 之外, 虛擬化的環境更方便教師製作教學單元。因為虛擬化的環境軟/硬體可以模擬的完全一致,對於教師與學生的實作練習以及錯誤重現,都有很大的幫助。
- 註冊 gocloud 與登入
請依據貴單位的環境設定 (網際網路 IP 或 主機名稱),直接以瀏覽器來連線到 Gocloud 系統,系統示意圖如下所示:
如果是第一次使用的學生,那就請先來註冊一下!按下如上圖的箭頭指向的地方,點下去就會出現註冊的項目了,如下所示:
一般來說,如果是學校單位,鳥哥建議如上述畫面所示,最好請學生依據自己的學號作為帳號,真實姓名作為姓名填寫, 這樣老師比較知道學生與帳號的對應,在考試出題與作答時,會比較清楚對應。如果沒有強調這一點,那學生註冊的姓名可能會比較傷腦筋。 等到註冊完畢後,還要等老師將你的帳號開通之後才能夠使用。因此,此時請稍微等待一小段時間喔!
等到老師將你的帳號開通,並且假設老師已經將硬碟製作好給你了,此時請回到登入畫面去輸入帳號與密碼欄位, 並按下登入系統或 [Enter],那就能夠登入系統了。登入系統會出現如下的圖示:
畫面中最上方為學生可以操作的系統功能,其中比較常用的是:
- 啟動/關閉主機:讓學生可以 (1)啟動雲端虛擬機器,並打開 gocloud 的防火牆,取得連線的 URL; (2)虛擬機器運作中,可以抽換光碟; (3)可以強制關機 (直接斷電)。
- 課程磁碟復原:在虛擬機器關機的狀態下,可以將個人的磁碟復原到最原始的狀態,所以學生可以實際多操作數次,做完直接復原即可。
- 軟體下載:其實主要是針對 Windows 系統喔!可以安裝連線軟體,如此你的 windows/Linux 就可以使用 remote-viewer 這套軟體來取得雲端虛擬機器的終端界面。
課程的 Linux 作業系統需要用到虛擬機器,您電腦與網路雲裡面作業系統是需要連線軟體的支援的。gocloud 目前提供的是使用 remove-viewer 這套軟體來連線, 底下會介紹常見的作業系統安裝 remote-viewer 的過程,請依據你的環境來安裝。
- Windows 作業系統:virt-viewer 為自由軟體,網路有提供已經預編譯好的 windows 軟體,直接下載安裝即可。 目前 (2020/03) 最新的版本為 8.0 版,請安裝 64 位元的版本,如下連結所示:(點選『Win x64 MSI (gpg)』那個項目即可!) https://virt-manager.org/download/
- Mac OSX 作業系統:有兩種方式可以安裝 virt-viewer,第一種是安裝比較舊版,但是動作相對簡單的 0.5.7 版,如底下的 A 連結,直接下載安裝即可。 另一種則是前往 spice 官網,使用自己編譯的方式編譯出最新的 virt-viewer 版本,但是過程非常繁複。因此,建議直接下載第一個檔案來安裝即可,較簡單。
- Linux 作業系統:如果是 Red Hat 系列的 (RHEL/Fedora/CentOS) ,直接安裝 virt-viewer 軟體即可。 安裝方式為(有啟動網路的情境下):『yum install virt-viewer』,啟動方式為 (須有圖形界面的環境下):『remote-viewer』
- Android 平板:目前 Android 平板也能夠支援 gocloud 的連線了,不過需要於 play.google.com 下載 aSpice 才能夠連線 (不是 remote-viewer 軟體)。
這裡假設學校的電腦大多為 windows 作業系統,因此當安裝完軟體後,可以在『開始』-->『所有程式』-->『VirtViewer』找到『 Remote Viewer 』這套軟體。 點選此軟體後,就可以得到如下的畫面:
當學生開啟虛擬機器後,將虛擬機器所在的網址複製到上述箭頭所指定的方框中,即可達成連線。
- 啟動與管理虛擬機器
在你登入 Gocloud 網站系統後,點選『啟動/關閉主機』後,應該會得到如下的畫面。如果一切順利的話,那麼你應該會取得至少一個以上的硬碟環境。 如下圖的 2 號箭頭處。如果找不到任何硬碟,請與您的授課教師聯繫。選擇正確的磁碟後,請按下『開啟機器』的按鈕來啟動雲端虛擬機器。
如果一切順利,那麼你就會得到如下的畫面示意圖,基本上,我們最重要的是取得如下圖 1 號箭頭指的方框處的 URL (spice 開頭那項), 請複製該項目,並且將他貼上 remote-viewer 所需要指定的 URL 方框中,按下連線 (Connect) 即可取得虛擬機器了!
remote viewer 軟體左上方主要有兩個基本功能可以選擇:
- View:可以將整個畫面放大到『全螢幕(Full Screen)』,要取消只要按下鍵盤功能鍵 [F11] 即可復原,也能夠放大、縮小畫面。
- Send key:可以傳送組合按鍵給虛擬機器,避免由於直接按下按鍵導致 windows 或用戶端自己其他作業系統的困擾。
另外請注意,由於目前你應該有兩個完全獨立的系統,一個是你自己的系統,一個是 Gocloud 的雲端虛擬機器, 若要操作 Gocloud 的雲端虛擬機器時,你應該要將滑鼠移動到 remote viewer 的視窗內,這樣才能夠完整的使用虛擬機器的資源!
- 依據上述的說明,取得你的雲端虛擬機;
- 在 remote-viewr 的軟體左上方,點選『view』、『zoom』、『zoom in | zoom out | normal size』,測試一下畫面的變化情境
- 點選『View』、『Full screen』,看看畫面是否已經變成全螢幕狀態
- 將滑鼠游標移動到整個畫面的中央正上方,這時畫面正上方會出現一個小按鈕,如下所示,下圖中,1 號箭頭表示可以回到原本的小視窗畫面, 2 號箭頭則是直接關掉這個虛擬機。請點選 1 號箭頭,回到原本的小視窗中。
- 點選『Send key』、『Ctrl + Alt + F2』,然後再點選『Ctrl + Alt + F1』,看看畫面的變化情境。
- 承上,請將滑鼠移動到 remote-viewer 的視窗內,然後分別點選『Ctrl + Alt + F2』與『Ctrl + Alt + F1』, 看看畫面的變化。
9.3: 第一次登入 CentOS 8
取得雲端 Linux 機器後,就能夠開始操作 Linux 系統了。接下來先來學習如何登入 Linux、了解圖形界面、文字界面的操作差異, 並建立好『良好的操作行為』,這對於未來的幫助會很大的
- 圖形界面操作 CentOS
在等待登入的畫面中,(1)使用滑鼠左鍵將螢幕向上拉動,(2)或者是隨意在鍵盤上面輸入任意鍵,就會出現等待登入的畫面,如下所示:
你可以:
- 點選出現的人名 (你的帳號),然後輸入密碼,即可登入系統;
- 點選『Not listed?』:接下來出現『Username』請填寫帳號,按下 [Next] 出現『Password:』請輸入正確的密碼, 然後按下 [Sign In] 即可登入系統。
本教材提供虛擬機的帳號與密碼為『student/mystdgo』,請依據此帳號密碼來登入系統。
請第一次登入系統,並且處理好中文的操作界面!同時,家目錄底下的檔案檔名,最好不要有中文存在。
- 登入:根據教材提供的帳號密碼登入系統:選擇 student 帳號,然後輸入密碼,如下圖所示:
- 語系選擇:第一次登入時,會出現選擇用戶語系的畫面,以符合每個操作者的習慣語系界面。本教材預設使用英文界面, 所以,這裡請改變語系,改變的方法請點選最底下的未知(三個直立的小數點),然後輸入 taiwan 的 t ,系統會主動拉出台灣!如下所示:
- 輸入法選擇:選擇預設的輸入法為『英語(美式)』即可按下 [下一步];
- 隱私權與帳號關聯性:由於我們的虛擬機器就是個雲端的機器,因此網路位置以及線上帳號,都可以選擇略過,如下所示:
- 準備開始使用:接下來還會出現兩個畫面,一個是『開始使用 CentOS Linux (S)』的畫面,一個則是『Getting Started』的畫面, 第一畫面個只是告知設定完畢,第二個畫面則是初次進入系統的指引。你可以每個指引都查看,也可以直接略過,我們這裡選擇略過, 直接按下右上方的『X』即可。
- 查閱畫面與登出:此時畫面依舊是英文,你可以點選左上角的『Activities』按鈕,然後點選左側最下方的按鈕列程式集 (九個小點合成的按鈕), 就會出現如下畫面。之後,點選右上角的開關按鈕,然後在你的帳號 (student) 點一下,就會出現『Log Out』按鈕,點下去!有點像這樣: 接下來你有 60 秒的時間可以等待是否登出,如果要立即登出,就點選『Log Out』按鈕,如下所示:
- 再次登入與確認家目錄的子目錄檔名:再次回到登入的畫面,使用 student 帳號登入系統, 登入之後,由於檔名與語系不同,因此 CentOS 會再次詢問你的意願。建議保留英文,未來比較好操作,如下所示:
如果一切處理順利,那就可以出現圖形化視窗。現在,請在登入的畫面上,按下左上角的『概覽』按鈕,然後在左側的『終端機』點一下, 就會出現如下畫面的環境了!
- 圖形界面元件認識
現在,請先按下『概覽』按鈕,然後將滑鼠向右移到視窗的邊界,就會看到類似如下的畫面:
上述的各個元件大致上是這樣功能:
- 概覽:就有點像是整個畫面叫出活動範圍的按鈕,要看到上圖的畫面,就得點選『概覽』才行
- 功能表:有點像以前的開始功能集,你需要的軟體,大部分都在這裡。例如上面畫面中,有瀏覽器、檔案總管、軟體倉庫、求助(救生圈)、終端機與程式集等。 點下各個按鈕,即可啟動該軟體。另外,你也可以在每個軟體上面按下右鍵,還有額外的選項可以挑選呢。
- 虛擬桌面:CentOS 8 跟以前的版本不一樣,以前的版本我們可以自行預先定義出所需要的虛擬桌面,這一版則是當你有需要,才點下新的虛擬桌面即可。 如上圖所示,你在第 3 個箭頭處,有目前的桌面 (聚焦外環的項目),以及另一個就是新的虛擬桌面,亦即有需要才有新的桌面的意思。
- 控制台:這裡的項目有很多,包括亮度挑選、網路是否啟動與關閉、使用者名稱與登出功能、直接進入控制台功能、直接關機或休眠等, 相關內容有點像底下這樣:
- 此虛擬桌面執行的軟體:這個與 3 號箭頭有關,亦即當你選擇虛擬桌面之後,在該虛擬桌面的軟體全部會展示出來,此時你就可以選擇你要執行的軟體了。
整個圖形界面大致如上介紹,底下請你自己探索一下整個系統內容吧:
- 先啟動檔案總管的軟體:點擊『概覽』之後,點擊類似文件櫃的圖示,即可開啟檔案總管
- 查看畫面,主要分為三個區塊:上方檔案所在工作目錄、可工作項目』、『左側快速連結與其他電腦目錄』、『右側主要檔案清單區』
- 要顯示詳細資料,應該點擊哪個項目?可以點選上圖中,在放大鏡右側的按鈕,即可變更圖示與詳細項目的功能切換
- 詳細資料還想要有:擁有者、群組、權限等資料,該如何設定?在詳細顯示的環境下,你先點選上方工作列最左側的圖示,然後依序執行底下的動作即可:
- 想瀏覽整個系統的檔案,要點擊哪裡?依序點擊『左側的"其他的位置"』,然後『雙擊右側的"電腦"畫面』,即可看到目前系統的所有可用目錄
- 持續點擊『電腦』、『etc』、『passwd』這個檔案,選擇複製,再到家目錄去貼上,查看一下檔案的相關屬性是否相同?
- 持續點擊『電腦』、『root』,能不能進入該目錄?為啥?
- 由於教學系統原本僅使用英文環境,因此預設並沒有安裝相關的中文輸入法,因此我們得要開啟網路後安裝相關軟體,因此,第一步請啟動網路: 請點選右上角倒三角形,點選『有線網路』,點選『連線』之後,就可以看到網路圖示。
- 開啟終端機,同時切換身份成為 root 管理員 (管理員密碼 myCentOS8):方法:
點選『概覽』之後,點選『終端機』,然後輸入『 su - 』,之後提示輸入密碼時,輸入『 myCentOS8 』這串密碼,即可變身成為 root 管理員。
終端機畫面有點像這樣:
[student@station10-101 ~]$ su - 密碼: <==這裡輸入 myCentOS8 這個密碼 [root@station10-101 ~]#
如上所示,在中括號內的項目,從 student 變成了 root 了! - 輸入『 yum install ibus-libzhuyin 』這段程式碼,開始安裝軟體:示意如下
[root@station10-101 ~]# yum install ibus-libzhuyin Last metadata expiration check: 0:03:10 ago on Sun 01 Mar 2020 03:45:14 PM CST. Dependencies resolved. ======================================================================================= Package Architecture Version Repository Size ======================================================================================= Installing: ibus-libzhuyin x86_64 1.8.93-1.el8 AppStream 7.4 M Installing dependencies: kyotocabinet-libs x86_64 1.2.76-17.el8 AppStream 328 k libpinyin x86_64 2.2.0-1.el8 AppStream 340 k libpinyin-data x86_64 2.2.0-1.el8 AppStream 9.3 M libzhuyin x86_64 2.2.0-1.el8 AppStream 325 k Transaction Summary ======================================================================================= Install 5 Packages Total download size: 18 M Installed size: 67 M Is this ok [y/N]: y Downloading Packages: (1/5): kyotocabinet-libs-1.2.76-17.el8.x86_64.rpm 586 kB/s | 328 kB 00:00 (2/5): libpinyin-2.2.0-1.el8.x86_64.rpm 512 kB/s | 340 kB 00:00 (3/5): libzhuyin-2.2.0-1.el8.x86_64.rpm 1.8 MB/s | 325 kB 00:00 (4/5): ibus-libzhuyin-1.8.93-1.el8.x86_64.rpm 4.0 MB/s | 7.4 MB 00:01 (5/5): libpinyin-data-2.2.0-1.el8.x86_64.rpm 5.9 MB/s | 9.3 MB 00:01 ---------------------------------------------------------------------------------------- Total 6.0 MB/s | 18 MB 00:02 warning: /var/cache/dnf/AppStream-a520ed22b0a8a736/packages/ibus-libzhuyin-1.8.93-1.el8. x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY CentOS-8 - AppStream 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x8483C65D: Userid : "CentOS (CentOS Official Signing Key) <security@centos.org>" Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial Is this ok [y/N]: y Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : kyotocabinet-libs-1.2.76-17.el8.x86_64 1/5 Running scriptlet: kyotocabinet-libs-1.2.76-17.el8.x86_64 1/5 Installing : libpinyin-data-2.2.0-1.el8.x86_64 2/5 Installing : libpinyin-2.2.0-1.el8.x86_64 3/5 Running scriptlet: libpinyin-2.2.0-1.el8.x86_64 3/5 Installing : libzhuyin-2.2.0-1.el8.x86_64 4/5 Installing : ibus-libzhuyin-1.8.93-1.el8.x86_64 5/5 Running scriptlet: ibus-libzhuyin-1.8.93-1.el8.x86_64 5/5 Verifying : ibus-libzhuyin-1.8.93-1.el8.x86_64 1/5 Verifying : kyotocabinet-libs-1.2.76-17.el8.x86_64 2/5 Verifying : libpinyin-2.2.0-1.el8.x86_64 3/5 Verifying : libpinyin-data-2.2.0-1.el8.x86_64 4/5 Verifying : libzhuyin-2.2.0-1.el8.x86_64 5/5 Installed: ibus-libzhuyin-1.8.93-1.el8.x86_64 kyotocabinet-libs-1.2.76-17.el8.x86_64 libpinyin-2.2.0-1.el8.x86_64 libpinyin-data-2.2.0-1.el8.x86_64 libzhuyin-2.2.0-1.el8.x86_64 Complete!
基本上,系統會自動的幫你進行網路安裝的程序,非常簡單。 - 輸入『 exit 』兩次,離開終端機
[root@station10-101 ~]# exit logout [student@station10-101 ~]$ exit
- 再次登出後,重新登入,以更新輸入法模組
- 由右上角進入控制台,然後在『地區與語言』的地方新增新注音即可。示意圖如下:
- 呼叫出『文字編輯器』軟體,由『概覽』點選左側的『顯示應用程式』,然後選擇『文字編輯器』即可打開編輯軟體
- 隨意在該軟體上面輸入一些中文字
- 按下『儲存』,將檔儲存在『家目錄』的名為『text1.txt』的檔案中,並關閉文字編輯器
- 前往檔案總管看看是否有該檔案的存在。
由於我們是虛擬機器,因此在雲裡面是不需要螢幕的,因此似乎無須螢幕保護功能,請關閉螢幕保護功能。此外,也請自行調整螢幕解析度, 以配合你自己的螢幕與上課所需要的環境!
- 文字界面登入
Linux預設的情況下會提供六個Terminal來讓使用者登入, 切換的方式為使用:[Ctrl] + [Alt] + [F1]~[F6]的組合按鈕。
系統會將[F1] ~ [F6]命名為tty1 ~ tty6的操作介面環境。 也就是說,當你按下[ctrl] + [Alt] + [F1]這三個組合按鈕時 (按著[ctrl]與[Alt]不放,再按下[F1]功能鍵), 就會進入到tty1的terminal介面中了。同樣的[F2]就是tty2! 按下[Ctrl] + [Alt] + [F1]就可以回到原本的 X 圖形界面中。整理一下登入的環境如下:
- [Ctrl] + [Alt] + [F2] ~ [F6] :文字介面登入 tty2 ~ tty6 終端機;
- [Ctrl] + [Alt] + [F1] :圖形介面桌面。
- 透過 remote-viewer 的『 Send key 』切換,或者將滑鼠移動到 remote-viewer 的軟體內,按下 [alt]+[shift]+[F2] 皆可。
- 你會發現到整個畫面有點像底下這樣:
CentOS Linux 8 (Core) Kernel 4.18.0-147.el8.x86_64 on an x86_64 localhost login: student Password: <==這裡輸入你的密碼 Last login: Sun Mar 1 16:37:30 on :0 <==上次登入的情況 [student@localhost ~]$ _ <==游標閃爍,等待你的指令輸入
- 基本上,這就是所謂的文字界面!與圖形界面取得終端機的方式的差別在於:須不須要輸入帳號與密碼而已!
上面顯示的內容為:
- CentOS Linux 8 (Core)
顯示Linux distribution 的名稱 (CentOS) 與版本(8); - Kernel 4.18.0-147.el8.x86_64 on an x86_64
顯示 Linux 核心的版本為 4.18.0-147.el8.x86_64,且目前這部主機的硬體等級為x86_64。 - localhost login:
localhost 是主機名稱。至於login:則是一支可以讓用戶登入的程式。 你可以在login:後面輸入你的帳號後,按下 [enter] 就可以開始準備下個動作。 - Password:
這一行的出現必須要在上個動作按 [enter] 之後才會出現。 在輸入密碼的時候,螢幕上面『不會顯示任何的字樣!』 這是為了擔心使用者輸入密碼時,被偷看到『輸入的密碼長度』之故。 - Last login: Sun Mar 1 16:37:30 on :0
當使用者登入系統後,系統會列出上一次這個帳號登入系統的時間與終端機名稱! - [student@localhost ~]$ _:
這一行則是正確登入之後才顯示的訊息, 最左邊的 student 顯示的是『目前使用者的帳號』,而@之後接的 localhost 則是『主機名稱』,至於最右邊的『 ~ 』則指的是 『目前所在的目錄』,那個 $ 則是『提示字元』
上述比較重要的資料在第 6 行,CentOS 的 bash 提示字元通常的格式就是『 [使用者帳號@本主機名 工作目錄]提示字元 』。 其中比較重要的項目是:
- ~ 符號代表的是『使用者的家目錄』的意思,他是個『變數!』。舉例來說,root的家目錄在/root, 所以 ~ 就代表/root的意思。而student的家目錄在/home/student, 所以如果你以student登入時,他看到的 ~ 就會等於/home/student
- 提示字元方面,在Linux當中,預設root的提示字元為 # ,而一般身份使用者的提示字元為 $ 。
另外,文字界面等待登入畫面的第一、第二行的內容其實是來自於/etc/issue這個檔案!
那麼如何離開系統呢?其實應該說『登出Linux』才對!登出很簡單,直接這樣做:
[student@localhost ~]$ exit
就能夠登出Linux了。但是請注意:『離開系統並不是關機!』 基本上,Linux本身已經有相當多的工作在進行,你的登入也僅是其中的一個『工作』而已, 所以當你離開時,這次這個登入的工作就停止了,但此時Linux其他的工作是還是繼續在進行的!
- 重新以 student 的身份登入在 tty3 的位置上
- 輸入 w (who 的縮寫) 查看用戶在幹什麼
9.4: 簡易文字指令操作
請使用一般用戶的身份登入 Linux 系統,同時啟動一個終端機在桌面上。現在讓我們來執行兩隻指令,確認一下如何操作系統與觀察輸出的資料。
[student@localhost ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates text1.txt Videos
使用 ls 可以單純的列出檔名,就是上面列出的『Desktop Documents Downloads...』等等的資料。 不過並沒有顯示這個檔名相關的各項檔案權限資訊,包括時間、容量等等。若需要查閱比較詳細的資訊,需要使用 ll (LL 的小寫) 來處置。
[student@localhost ~]$ ll drwx------. 2 student student 6 3月 1 15:35 Desktop drwx------. 2 student student 6 3月 1 15:35 Documents drwx------. 2 student student 6 3月 1 15:35 Downloads drwx------. 2 student student 6 3月 1 15:35 Music drwx------. 2 student student 6 3月 1 15:35 Pictures drwx------. 2 student student 6 3月 1 15:35 Public drwx------. 2 student student 6 3月 1 15:35 Templates -rw-r--r--. 1 student student 22 3月 1 16:12 text1.txt drwx------. 2 student student 6 3月 1 15:35 Videos
第一堂課的此時,你需要注意的是最右邊的三個參數,分別是檔案容量、檔案最後被修改的日期、檔名資訊。 以『Pictures』檔名為例,該檔名的容量有 6bytes,而最後被修改的日期為『 3月 1 15:35 』。至於年份則是本年度的意思。
如果想要查閱根目錄 (類似 windows 的『電腦』項目),則使用如下的指令:
[student@localhost ~]$ ll /
總計 24
lrwxrwxrwx. 1 root root 7 5月 11 2019 bin -> usr/bin
dr-xr-xr-x. 6 root root 4096 2月 26 09:15 boot
drwxr-xr-x. 20 root root 3260 3月 1 16:44 dev
drwxr-xr-x. 135 root root 8192 3月 1 16:49 etc
drwxr-xr-x. 3 root root 21 2月 26 09:10 home
lrwxrwxrwx. 1 root root 7 5月 11 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 5月 11 2019 lib64 -> usr/lib64
......
此時螢幕上顯示的為根目錄底下的檔名,而不是 student 的家目錄了。這個練習在讓操作者了解到,指令後面可以加參數 (parameters)。 而如果想要知道 student 家目錄底下有沒有『隱藏檔』時,可以使用如下的指令:
[student@localhost ~]$ ll -a
總計 36
drwx------. 15 student student 4096 3月 1 16:47 .
drwxr-xr-x. 3 root root 21 2月 26 09:10 ..
-rw-------. 1 student student 44 3月 1 16:44 .bash_history
-rw-r--r--. 1 student student 18 11月 9 00:21 .bash_logout
-rw-r--r--. 1 student student 141 11月 9 00:21 .bash_profile
-rw-r--r--. 1 student student 312 11月 9 00:21 .bashrc
drwx------. 11 student student 244 3月 1 15:56 .cache
drwx------. 14 student student 4096 3月 1 16:36 .config
drwx------. 2 student student 6 3月 1 15:35 Desktop
......
可以發現多了相當多以小數點開頭的檔名,這些檔名在 ls 或 ll 時並不會出現,但加上『 -a 』這個『 選項 (Option) 』之後, 就會開始出現了。這個練習在讓操作者了解到,指令後面可以加『選項』來改變指令的處理行為。
- 在終端機界面中輸入『 clear 』會有什麼效果?
- 檢查一下 /var/spool/mail 這個目錄 (1)裡面有幾個檔案? (2)這個目錄本身所修改的時間是什麼時候?
- 使用 ll 查詢該目錄
- 使用 ll 查詢上層目錄,亦即 ll /var/spool 即可!
- 歷史命令功能
Linux 的文字界面中,可以用幾個簡單的方式去檢查你曾經下達過的指令,最簡單的方法就是使用方向鍵『上與下』, 不但能夠呼叫出之前的指令,也能夠再透過方向鍵『左與右』,與鍵盤上的『home/end』按鍵,直接在一行指令的最前面與最後面直接再修改。 熟悉這個作法,可以讓你快速的編輯一行指令。
但是如果是太久之前做的指令,此時就能夠透過歷史命令『 history 』來呼叫出來。
- 使用 student 的身份,下達 history 這個指令:
[student@station10-101 ~]$ history ...... 6 w 7 ls 8 ll 9 ll / 10 ll -a 11 ll -d / 12 clear 13 ll /var/spool/mail 14 ll -d /var/spool/mail 15 ll /var/spool 16 history
- 觀察上述指令,可以發現 ll / 是在第 9 個號碼上面,亦即曾經執行過的第 9 個指令。重複上述的指令,可以使用『 !9 』即可!
亦即驚嘆號加上指令號碼,且驚嘆號與 9 中間沒有空格喔!如下:
[student@station10-101 ~]$ !9 ll / <==這裡會將指令的完整下達方式顯示一次喔! 總計 24 lrwxrwxrwx. 1 root root 7 5月 11 2019 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 2月 26 09:15 boot drwxr-xr-x. 20 root root 3260 3月 1 16:44 dev drwxr-xr-x. 135 root root 8192 3月 1 16:49 etc drwxr-xr-x. 3 root root 21 2月 26 09:10 home lrwxrwxrwx. 1 root root 7 5月 11 2019 lib -> usr/lib ......
9.5: 系統關機
基本上,所謂的『離開系統』應該也能稱為『關閉某個軟體』的意思。以 CentOS 8 來說,圖形界面是個軟體,終端機是個軟體,瀏覽器也是個軟體。 離開瀏覽器、離開控制台,都可以直接點選該軟體右上角的『 X 』即可關閉。但是對於終端機來說,由於終端機環境底下,你可能會有其他同步工作的任務在, 因此,要離開終端機或圖形界面,不建議直接點選『 X 』,最好可以輸入『 exit 』或『 logout 』或者是在沒有輸入任何資料的情況下, 按下 [ctrl]+d 來關閉該軟體。注意,是關閉該軟體,不是關機喔!底下為關閉終端機的建議方式:
- exit
- logout
- [ctrl]+d
要關閉圖形界面,就點選登出 (logout) 即可,登出前,最好按下『概覽』看一下所有的桌面,是否所有的軟體都已經關閉了? 最好全部都關閉再登出比較好!那如果要關機呢?最好先檢查看看有沒有任何用戶在系統上?如果有,先讓該用戶登出, 等到全部都登出了,再關機比較好。觀察系統正上線的用戶,可以使用之前講過的 w 來查閱:
[student@localhost ~]$ w
20:48:08 up 4:03, 3 users, load average: 0.00, 0.00, 0.00
20:48:08 up 4:03, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
student :1 :1 16:47 ?xdm? 54.99s 0.02s /usr/libexec/gdm-x-session gnome-session
student tty3 - 16:46 4:01m 0.03s 0.03s -bash
student pts/0 172.16.200.254 20:45 0.00s 0.04s 0.01s w
看起來有個 student 在 tty3 登入了!我們先去到 tty3 登出後,再回到圖形界面來關機吧!從上面的結果我們也可以知道, 終端機界面使用的軟體為 bash,而圖形界面則是使用 gdm-x-session 這個軟體的意思。
至於 pts/0 則可能是 (1)在圖形界面啟動的終端機,或 (2)透過網路連線進來的終端機。並非本機的 tty1~tty6 。
從上表看來,目前確實僅有 student 在線上,若本機器並非伺服器,則此時應該可以進行關機的行為。關機可以使用如下的指令:
[student@localhost ~]$ poweroff
9.6: 課後練習
作業上傳時的注意事項:
- 伺服器的詳細資料,以及相關傳輸軟體設定,請參考第一章的 1.5 節的內容。
- 可以使用 MS office 的 word 或者是 libreoffice 的 writer 等軟體來撰寫你的作業,作業檔名可以使用 .doc, .docx 或者是 .odt 或者是 pdf 等格式,均可接受。
- 若作業中有圖檔,請將圖檔降低水平解析度到 800 像素以下再貼到文章中,檔案容量以不超過 2Mbytes 為限。
- 檔名請設定為: os_4XXXCYYY_unit09.doc (4XXXCYYY 是你的學號,請填正確,有分大小寫,請確認)
- 請上傳到你家目錄底下的 os 目錄中 (若不存在,請自行建立該目錄)
開始本章節題目:
- 請查詢 Linux 核心官網,寫下 (1)今天的日期以及 (2)此時核心的最新主線版本是多少?
- 在 Linux 作業系統底下,你要移動到到 tty5 這個實體終端機界面,應該要按下哪些組合按鈕?
- 承上,如果要回到原本的圖形畫面,怎麼按下組合按鈕?
- 在你的家用電腦上面 (非系上電腦) 安裝 virt-viewer 軟體,以取得 remote-viewer 軟體,並請將安裝結果貼圖到 word 上面。
- 在你的家用電腦 (非系上電腦) 透過 remote-viewer 連線到 gocloud 上面,並且取得 Linux 畫面,將登入畫面以及你的 windows 桌面截圖, 然後貼到 word 檔案上面,證明你在家裡面已經可以取得雲端 Linux 系統。
- 請在 tty6 登入 root 這個帳號,然後回到你的圖形界面,打開終端機,輸入 w ,將結果截圖貼上來。
- 打開瀏覽器,找到這個章節的網頁,請將摘要的部份複製。接下來,打開文書編輯器,將摘要的部份貼上去。貼完之後請按下儲存, 將檔名放置到 student 家目錄,取名為『 chapter_09.txt 』。將儲存後的結果,文書編輯器的畫面截圖貼上來。
- 回到終端機,輸入 ll 這個指令,看看有沒有看到 chapter_09.txt,請將畫面截圖貼上來 (若沒有上述的檔名,應該就是儲存到錯誤的目錄了。)。