電腦網路與作業系統 電腦網路與作業系統

電腦網路與作業系統上課教材

電腦網路與作業系統 > 課程內容 > 第 09 章 - Linux 作業系統 - 初探圖形與文字界面

第 09 章 - Linux 作業系統 - 初探圖形與文字界面

上次更新日期 2020/05/14

我們前面談到,計算機概論的硬體只是個軀殼,還需要作業系統這個靈魂來驅動才行!現今桌上型或筆記型電腦最常使用的有 windows / Apple Mac / Linux, 而 Linux 更活躍於伺服器系統與手機系統,包括大型的 Top 500 超級電腦、雲端資料中心,小型的手持式系統、嵌入式家電系統等, 很多都是使用 Linux 作業系統喔!所以,多多認識 Linux 系統,對你沒有壞處!

學習目標

  1. 了解 Linux 的開發、核心與開發套件的意義
  2. 登入 Linux 圖形界面
  3. 操作簡易的終端機指令

9.1: Linux 系統簡介

我們知道四個同心圓的圖示中,最中心的底層是硬體,然後就是作業系統核心與系統呼叫,最後是應用程式。早期的作業系統, 也大部分由所謂的『多元程式處理系統』的概念開發而來。再者,在 1971 年由貝爾實驗室開發成功的 Unix 系統,就是個極致的作業系統! 這個已經具有 50 年歷史的作業系統,可是當前所有常見作業系統的起源喔!如下所示 (維基百科):

Unix 作業系統

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 系統,系統示意圖如下所示:

Goucloud 畫面示意圖

如果是第一次使用的學生,那就請先來註冊一下!按下如上圖的箭頭指向的地方,點下去就會出現註冊的項目了,如下所示:

Goucloud 畫面示意圖

一般來說,如果是學校單位,鳥哥建議如上述畫面所示,最好請學生依據自己的學號作為帳號,真實姓名作為姓名填寫, 這樣老師比較知道學生與帳號的對應,在考試出題與作答時,會比較清楚對應。如果沒有強調這一點,那學生註冊的姓名可能會比較傷腦筋。 等到註冊完畢後,還要等老師將你的帳號開通之後才能夠使用。因此,此時請稍微等待一小段時間喔!

等到老師將你的帳號開通,並且假設老師已經將硬碟製作好給你了,此時請回到登入畫面去輸入帳號與密碼欄位, 並按下登入系統或 [Enter],那就能夠登入系統了。登入系統會出現如下的圖示:

Goucloud 畫面示意圖

畫面中最上方為學生可以操作的系統功能,其中比較常用的是:

  • 啟動/關閉主機:讓學生可以 (1)啟動雲端虛擬機器,並打開 gocloud 的防火牆,取得連線的 URL; (2)虛擬機器運作中,可以抽換光碟; (3)可以強制關機 (直接斷電)。
  • 課程磁碟復原:在虛擬機器關機的狀態下,可以將個人的磁碟復原到最原始的狀態,所以學生可以實際多操作數次,做完直接復原即可。
  • 軟體下載:其實主要是針對 Windows 系統喔!可以安裝連線軟體,如此你的 windows/Linux 就可以使用 remote-viewer 這套軟體來取得雲端虛擬機器的終端界面。
實際練習:安裝 remote-viewer

課程的 Linux 作業系統需要用到虛擬機器,您電腦與網路雲裡面作業系統是需要連線軟體的支援的。gocloud 目前提供的是使用 remove-viewer 這套軟體來連線, 底下會介紹常見的作業系統安裝 remote-viewer 的過程,請依據你的環境來安裝。

  1. Windows 作業系統:virt-viewer 為自由軟體,網路有提供已經預編譯好的 windows 軟體,直接下載安裝即可。 目前 (2020/03) 最新的版本為 8.0 版,請安裝 64 位元的版本,如下連結所示:(點選『Win x64 MSI (gpg)』那個項目即可!) https://virt-manager.org/download/
  2. Mac OSX 作業系統:有兩種方式可以安裝 virt-viewer,第一種是安裝比較舊版,但是動作相對簡單的 0.5.7 版,如底下的 A 連結,直接下載安裝即可。 另一種則是前往 spice 官網,使用自己編譯的方式編譯出最新的 virt-viewer 版本,但是過程非常繁複。因此,建議直接下載第一個檔案來安裝即可,較簡單。
    1. https://people.freedesktop.org/~teuf/spice-gtk-osx/dmg/
    2. https://www.spice-space.org/osx-client.html
  3. Linux 作業系統:如果是 Red Hat 系列的 (RHEL/Fedora/CentOS) ,直接安裝 virt-viewer 軟體即可。 安裝方式為(有啟動網路的情境下):『yum install virt-viewer』,啟動方式為 (須有圖形界面的環境下):『remote-viewer』
  4. Android 平板:目前 Android 平板也能夠支援 gocloud 的連線了,不過需要於 play.google.com 下載 aSpice 才能夠連線 (不是 remote-viewer 軟體)。

這裡假設學校的電腦大多為 windows 作業系統,因此當安裝完軟體後,可以在『開始』-->『所有程式』-->『VirtViewer』找到『 Remote Viewer 』這套軟體。 點選此軟體後,就可以得到如下的畫面:

Goucloud 畫面示意圖

當學生開啟虛擬機器後,將虛擬機器所在的網址複製到上述箭頭所指定的方框中,即可達成連線。

  • 啟動與管理虛擬機器

在你登入 Gocloud 網站系統後,點選『啟動/關閉主機』後,應該會得到如下的畫面。如果一切順利的話,那麼你應該會取得至少一個以上的硬碟環境。 如下圖的 2 號箭頭處。如果找不到任何硬碟,請與您的授課教師聯繫。選擇正確的磁碟後,請按下『開啟機器』的按鈕來啟動雲端虛擬機器。

Goucloud 畫面示意圖

如果一切順利,那麼你就會得到如下的畫面示意圖,基本上,我們最重要的是取得如下圖 1 號箭頭指的方框處的 URL (spice 開頭那項), 請複製該項目,並且將他貼上 remote-viewer 所需要指定的 URL 方框中,按下連線 (Connect) 即可取得虛擬機器了!

Goucloud 畫面示意圖 Goucloud 畫面示意圖

remote viewer 軟體左上方主要有兩個基本功能可以選擇:

  • View:可以將整個畫面放大到『全螢幕(Full Screen)』,要取消只要按下鍵盤功能鍵 [F11] 即可復原,也能夠放大、縮小畫面。
  • Send key:可以傳送組合按鍵給虛擬機器,避免由於直接按下按鍵導致 windows 或用戶端自己其他作業系統的困擾。

另外請注意,由於目前你應該有兩個完全獨立的系統,一個是你自己的系統,一個是 Gocloud 的雲端虛擬機器, 若要操作 Gocloud 的雲端虛擬機器時,你應該要將滑鼠移動到 remote viewer 的視窗內,這樣才能夠完整的使用虛擬機器的資源!

實際練習:嘗試熟悉 remote-viewer 軟體
  1. 依據上述的說明,取得你的雲端虛擬機;
  2. 在 remote-viewr 的軟體左上方,點選『view』、『zoom』、『zoom in | zoom out | normal size』,測試一下畫面的變化情境
  3. 點選『View』、『Full screen』,看看畫面是否已經變成全螢幕狀態
  4. 將滑鼠游標移動到整個畫面的中央正上方,這時畫面正上方會出現一個小按鈕,如下所示,下圖中,1 號箭頭表示可以回到原本的小視窗畫面, 2 號箭頭則是直接關掉這個虛擬機。請點選 1 號箭頭,回到原本的小視窗中。 Goucloud 畫面示意圖
  5. 點選『Send key』、『Ctrl + Alt + F2』,然後再點選『Ctrl + Alt + F1』,看看畫面的變化情境。
  6. 承上,請將滑鼠移動到 remote-viewer 的視窗內,然後分別點選『Ctrl + Alt + F2』與『Ctrl + Alt + F1』, 看看畫面的變化。

9.3: 第一次登入 CentOS 8

取得雲端 Linux 機器後,就能夠開始操作 Linux 系統了。接下來先來學習如何登入 Linux、了解圖形界面、文字界面的操作差異, 並建立好『良好的操作行為』,這對於未來的幫助會很大的

  • 圖形界面操作 CentOS

在等待登入的畫面中,(1)使用滑鼠左鍵將螢幕向上拉動,(2)或者是隨意在鍵盤上面輸入任意鍵,就會出現等待登入的畫面,如下所示:

Goucloud 畫面示意圖

你可以:

  • 點選出現的人名 (你的帳號),然後輸入密碼,即可登入系統;
  • 點選『Not listed?』:接下來出現『Username』請填寫帳號,按下 [Next] 出現『Password:』請輸入正確的密碼, 然後按下 [Sign In] 即可登入系統。

本教材提供虛擬機的帳號與密碼為『student/mystdgo』,請依據此帳號密碼來登入系統。

實際練習:首次登入 CentOS 圖形界面

請第一次登入系統,並且處理好中文的操作界面!同時,家目錄底下的檔案檔名,最好不要有中文存在。

  1. 登入:根據教材提供的帳號密碼登入系統:選擇 student 帳號,然後輸入密碼,如下圖所示: CentOS 8 login
  2. 語系選擇:第一次登入時,會出現選擇用戶語系的畫面,以符合每個操作者的習慣語系界面。本教材預設使用英文界面, 所以,這裡請改變語系,改變的方法請點選最底下的未知(三個直立的小數點),然後輸入 taiwan 的 t ,系統會主動拉出台灣!如下所示: CentOS 8 login CentOS 8 login
  3. 輸入法選擇:選擇預設的輸入法為『英語(美式)』即可按下 [下一步];
  4. CentOS 8 login
  5. 隱私權與帳號關聯性:由於我們的虛擬機器就是個雲端的機器,因此網路位置以及線上帳號,都可以選擇略過,如下所示: CentOS 8 login CentOS 8 login
  6. 準備開始使用:接下來還會出現兩個畫面,一個是『開始使用 CentOS Linux (S)』的畫面,一個則是『Getting Started』的畫面, 第一畫面個只是告知設定完畢,第二個畫面則是初次進入系統的指引。你可以每個指引都查看,也可以直接略過,我們這裡選擇略過, 直接按下右上方的『X』即可。
  7. 查閱畫面與登出:此時畫面依舊是英文,你可以點選左上角的『Activities』按鈕,然後點選左側最下方的按鈕列程式集 (九個小點合成的按鈕), 就會出現如下畫面。之後,點選右上角的開關按鈕,然後在你的帳號 (student) 點一下,就會出現『Log Out』按鈕,點下去!有點像這樣: CentOS 8 login 接下來你有 60 秒的時間可以等待是否登出,如果要立即登出,就點選『Log Out』按鈕,如下所示: CentOS 8 login
  8. 再次登入與確認家目錄的子目錄檔名:再次回到登入的畫面,使用 student 帳號登入系統, 登入之後,由於檔名與語系不同,因此 CentOS 會再次詢問你的意願。建議保留英文,未來比較好操作,如下所示: CentOS 8 login

如果一切處理順利,那就可以出現圖形化視窗。現在,請在登入的畫面上,按下左上角的『概覽』按鈕,然後在左側的『終端機』點一下, 就會出現如下畫面的環境了!

CentOS 8 login
  • 圖形界面元件認識

現在,請先按下『概覽』按鈕,然後將滑鼠向右移到視窗的邊界,就會看到類似如下的畫面:

CentOS 8 login

上述的各個元件大致上是這樣功能:

  1. 概覽:就有點像是整個畫面叫出活動範圍的按鈕,要看到上圖的畫面,就得點選『概覽』才行
  2. 功能表:有點像以前的開始功能集,你需要的軟體,大部分都在這裡。例如上面畫面中,有瀏覽器、檔案總管、軟體倉庫、求助(救生圈)、終端機與程式集等。 點下各個按鈕,即可啟動該軟體。另外,你也可以在每個軟體上面按下右鍵,還有額外的選項可以挑選呢。
  3. 虛擬桌面:CentOS 8 跟以前的版本不一樣,以前的版本我們可以自行預先定義出所需要的虛擬桌面,這一版則是當你有需要,才點下新的虛擬桌面即可。 如上圖所示,你在第 3 個箭頭處,有目前的桌面 (聚焦外環的項目),以及另一個就是新的虛擬桌面,亦即有需要才有新的桌面的意思。
  4. 控制台:這裡的項目有很多,包括亮度挑選、網路是否啟動與關閉、使用者名稱與登出功能、直接進入控制台功能、直接關機或休眠等, 相關內容有點像底下這樣: CentOS 8 login
  5. 此虛擬桌面執行的軟體:這個與 3 號箭頭有關,亦即當你選擇虛擬桌面之後,在該虛擬桌面的軟體全部會展示出來,此時你就可以選擇你要執行的軟體了。

整個圖形界面大致如上介紹,底下請你自己探索一下整個系統內容吧:

例題:使用圖形化界面進行檔案管理操作
  1. 先啟動檔案總管的軟體:點擊『概覽』之後,點擊類似文件櫃的圖示,即可開啟檔案總管
  2. 查看畫面,主要分為三個區塊:上方檔案所在工作目錄、可工作項目』、『左側快速連結與其他電腦目錄』、『右側主要檔案清單區』 CentOS 8 檔案總管
  3. 要顯示詳細資料,應該點擊哪個項目?可以點選上圖中,在放大鏡右側的按鈕,即可變更圖示與詳細項目的功能切換
  4. 詳細資料還想要有:擁有者、群組、權限等資料,該如何設定?在詳細顯示的環境下,你先點選上方工作列最左側的圖示,然後依序執行底下的動作即可: CentOS 8 檔案總管 CentOS 8 檔案總管 CentOS 8 檔案總管
  5. 想瀏覽整個系統的檔案,要點擊哪裡?依序點擊『左側的"其他的位置"』,然後『雙擊右側的"電腦"畫面』,即可看到目前系統的所有可用目錄
  6. 持續點擊『電腦』、『etc』、『passwd』這個檔案,選擇複製,再到家目錄去貼上,查看一下檔案的相關屬性是否相同?
  7. 持續點擊『電腦』、『root』,能不能進入該目錄?為啥?

例題 :調整中文輸入法與啟用文字編輯器
  1. 由於教學系統原本僅使用英文環境,因此預設並沒有安裝相關的中文輸入法,因此我們得要開啟網路後安裝相關軟體,因此,第一步請啟動網路: 請點選右上角倒三角形,點選『有線網路』,點選『連線』之後,就可以看到網路圖示。
  2. 開啟終端機,同時切換身份成為 root 管理員 (管理員密碼 myCentOS8):方法: 點選『概覽』之後,點選『終端機』,然後輸入『 su - 』,之後提示輸入密碼時,輸入『 myCentOS8 』這串密碼,即可變身成為 root 管理員。 終端機畫面有點像這樣:
    [student@station10-101 ~]$ su -
    密碼:   <==這裡輸入 myCentOS8 這個密碼
    [root@station10-101 ~]#
    
    如上所示,在中括號內的項目,從 student 變成了 root 了!
  3. 輸入『 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!
    
    基本上,系統會自動的幫你進行網路安裝的程序,非常簡單。
  4. 輸入『 exit 』兩次,離開終端機
    [root@station10-101 ~]# exit
    logout
    [student@station10-101 ~]$ exit
    
  5. 再次登出後,重新登入,以更新輸入法模組
  6. 由右上角進入控制台,然後在『地區與語言』的地方新增新注音即可。示意圖如下: CentOS 8 更改輸入法 CentOS 8 更改輸入法 CentOS 8 更改輸入法
  7. 呼叫出『文字編輯器』軟體,由『概覽』點選左側的『顯示應用程式』,然後選擇『文字編輯器』即可打開編輯軟體
  8. 隨意在該軟體上面輸入一些中文字
  9. 按下『儲存』,將檔儲存在『家目錄』的名為『text1.txt』的檔案中,並關閉文字編輯器
  10. 前往檔案總管看看是否有該檔案的存在。

例題 :

由於我們是虛擬機器,因此在雲裡面是不需要螢幕的,因此似乎無須螢幕保護功能,請關閉螢幕保護功能。此外,也請自行調整螢幕解析度, 以配合你自己的螢幕與上課所需要的環境!

CentOS 8 更改輸入法 CentOS 8 更改輸入法
  • 文字界面登入

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] :圖形介面桌面。
實際練習:在 tty2 使用 student 帳號身份登入:
  1. 透過 remote-viewer 的『 Send key 』切換,或者將滑鼠移動到 remote-viewer 的軟體內,按下 [alt]+[shift]+[F2] 皆可。
  2. 你會發現到整個畫面有點像底下這樣:
    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 ~]$ _ <==游標閃爍,等待你的指令輸入
    
  3. 基本上,這就是所謂的文字界面!與圖形界面取得終端機的方式的差別在於:須不須要輸入帳號與密碼而已!

上面顯示的內容為:

  1. CentOS Linux 8 (Core)
    顯示Linux distribution 的名稱 (CentOS) 與版本(8);
  2. Kernel 4.18.0-147.el8.x86_64 on an x86_64
    顯示 Linux 核心的版本為 4.18.0-147.el8.x86_64,且目前這部主機的硬體等級為x86_64。
  3. localhost login:
    localhost 是主機名稱。至於login:則是一支可以讓用戶登入的程式。 你可以在login:後面輸入你的帳號後,按下 [enter] 就可以開始準備下個動作。
  4. Password:
    這一行的出現必須要在上個動作按 [enter] 之後才會出現。 在輸入密碼的時候,螢幕上面『不會顯示任何的字樣!』 這是為了擔心使用者輸入密碼時,被偷看到『輸入的密碼長度』之故。
  5. Last login: Sun Mar 1 16:37:30 on :0
    當使用者登入系統後,系統會列出上一次這個帳號登入系統的時間與終端機名稱!
  6. [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其他的工作是還是繼續在進行的!

例題 :多重登入與觀察登入帳號
  1. 重新以 student 的身份登入在 tty3 的位置上
  2. 輸入 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) 』之後, 就會開始出現了。這個練習在讓操作者了解到,指令後面可以加『選項』來改變指令的處理行為。

例題:清除螢幕以及查閱檔案權限參數
  1. 在終端機界面中輸入『 clear 』會有什麼效果?
  2. 檢查一下 /var/spool/mail 這個目錄 (1)裡面有幾個檔案? (2)這個目錄本身所修改的時間是什麼時候?
    • 使用 ll 查詢該目錄
    • 使用 ll 查詢上層目錄,亦即 ll /var/spool 即可!
  • 歷史命令功能

Linux 的文字界面中,可以用幾個簡單的方式去檢查你曾經下達過的指令,最簡單的方法就是使用方向鍵『上與下』, 不但能夠呼叫出之前的指令,也能夠再透過方向鍵『左與右』,與鍵盤上的『home/end』按鍵,直接在一行指令的最前面與最後面直接再修改。 熟悉這個作法,可以讓你快速的編輯一行指令。

但是如果是太久之前做的指令,此時就能夠透過歷史命令『 history 』來呼叫出來。

實際練習:呼叫以前下達過的指令,同時重複執行該指令
  1. 使用 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
    
  2. 觀察上述指令,可以發現 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. 伺服器的詳細資料,以及相關傳輸軟體設定,請參考第一章的 1.5 節的內容。
  2. 可以使用 MS office 的 word 或者是 libreoffice 的 writer 等軟體來撰寫你的作業,作業檔名可以使用 .doc, .docx 或者是 .odt 或者是 pdf 等格式,均可接受。
  3. 若作業中有圖檔,請將圖檔降低水平解析度到 800 像素以下再貼到文章中,檔案容量以不超過 2Mbytes 為限。
  4. 檔名請設定為: os_4XXXCYYY_unit09.doc (4XXXCYYY 是你的學號,請填正確,有分大小寫,請確認)
  5. 請上傳到你家目錄底下的 os 目錄中 (若不存在,請自行建立該目錄)

開始本章節題目:

  1. 請查詢 Linux 核心官網,寫下 (1)今天的日期以及 (2)此時核心的最新主線版本是多少?
  2. 在 Linux 作業系統底下,你要移動到到 tty5 這個實體終端機界面,應該要按下哪些組合按鈕?
  3. 承上,如果要回到原本的圖形畫面,怎麼按下組合按鈕?
  4. 在你的家用電腦上面 (非系上電腦) 安裝 virt-viewer 軟體,以取得 remote-viewer 軟體,並請將安裝結果貼圖到 word 上面。
  5. 在你的家用電腦 (非系上電腦) 透過 remote-viewer 連線到 gocloud 上面,並且取得 Linux 畫面,將登入畫面以及你的 windows 桌面截圖, 然後貼到 word 檔案上面,證明你在家裡面已經可以取得雲端 Linux 系統。
  6. 請在 tty6 登入 root 這個帳號,然後回到你的圖形界面,打開終端機,輸入 w ,將結果截圖貼上來。
  7. 打開瀏覽器,找到這個章節的網頁,請將摘要的部份複製。接下來,打開文書編輯器,將摘要的部份貼上去。貼完之後請按下儲存, 將檔名放置到 student 家目錄,取名為『 chapter_09.txt 』。將儲存後的結果,文書編輯器的畫面截圖貼上來。
  8. 回到終端機,輸入 ll 這個指令,看看有沒有看到 chapter_09.txt,請將畫面截圖貼上來 (若沒有上述的檔名,應該就是儲存到錯誤的目錄了。)。