基礎學習篇 - CentOS 7.x

第四章、首次登入與線上求助

首次進入 Linux 的開機、關機與指令下達方式的介紹,只是基本的介紹,後面章節才有更詳細的解說喔!

最近更新時間: 2015/06/02

終於可以開始使用Linux這個有趣的系統了!由於Linux系統使用了非同步的磁碟/記憶體資料傳輸模式,同時又是個多人多工的環境, 所以你不能隨便的不正常關機,關機有一定的程序喔!錯誤的關機方法可能會造成磁碟資料的損毀呢! 此外,Linux有多種不同的操作方式,圖形介面與文字介面的操作有何不同? 我們能否在文字介面取得大量的指令說明,而不需要硬背某些指令的選項與參數等等。這都是這一章要來介紹的呢!

4.1 首次登入系統

登入系統有這麼難嗎?並不難啊!雖然說是這樣說,然而很多人第一次登入Linux的感覺都是『接下來我要幹啥?』如果是以圖形介面登入的話,或許還有很多好玩的事物, 但要是以文字介面登入的話,面對著一片黑壓壓的螢幕,還真不曉得要幹嘛呢!為了讓大家更瞭解如何正確的使用Linux, 正確的登入與離開系統還是需要說明的!

4.1.1 首次登入CentOS 7.x圖形介面

開機就開機呀!怎麼還有所謂的登入與離開呀?不是開機就能夠用電腦了嗎? 開什麼玩笑,在Linux系統中由於是多人多工的環境,所以系統隨時都有很多不同的用戶所下達的任務在進行, 因此正確的開關機可是很重要的!不正常的關機可能會導致檔案系統錯亂,造成資料的毀損呢!這也是為什麼通常我們的Linux主機都會加掛一個不斷電系統囉!

如果在第三章一切都順利的將CentOS 7.x完成安裝並且重新開機後, 應該就會出現如下的等待登入的圖形畫面才對。畫面中1號箭頭顯示目前的日期與時間,2號箭頭則是輔助功能、語系、音量與關機鈕, 3號箭頭就是我們可以使用帳號登入的輸入框框,至於4號箭頭則是在使用特別的帳號登入時才會用到的按鈕。

X等待登入的畫面示意圖
圖4.1.1、X等待登入的畫面示意圖

接下來讓我們來了解一下這個登入畫面的相關功能吧!首先,在箭頭 1 的地方,如果你動滑鼠過去點一下,就會出現如下的視窗, 主要在告訴你日期、日曆與時間而已~如下圖所示,鳥哥擷取這張圖的時間就是在 2015/05/21 早上喔!

X等待登入的畫面示意圖-日曆、時間顯示
圖4.1.2、X等待登入的畫面示意圖-日曆、時間顯示

然後看一下右上角的角落,你會發現有個小人形圖示,那個是協助登入的無障礙畫面處理!如果你的鍵盤暫時出了點問題,某些按鍵無法按, 那就可以使用如下畫面的『螢幕鍵盤』的項目,將他 On 一下~那未來有需要在登入的時候有打字的需求時,螢幕就會出現類似手機要你打字的鍵盤畫面啦!

X等待登入的畫面示意圖-無障礙登入協助
圖4.1.3、X等待登入的畫面示意圖-無障礙登入協助

有看到那個 zh 嘛?那個是語系的選擇~點下去你會看到這部系統支援的語系資料有多少。至於那個類似喇叭的小圖示,就是代表著音效的大小聲控制~ 而最右邊那個有點像是關機的小圖示又是幹麻的呢?沒關係!別緊張!用力點下去看看~就會出現如下圖示,其實就是準備要關機的一些功能按鈕~ 暫停是進入休眠模式,重新啟動就是重新開機啊,關閉電源當然就是關機囉!所以,你不需要登入系統,也能夠透過這個畫面來『關機』喔!

X等待登入的畫面示意圖-無須登入的關機與重新開機
圖4.1.4、X等待登入的畫面示意圖-無須登入的關機與重新開機

接下來看到圖4.1.1的地方,圖示中的箭頭 3,4 指的地方就是可以登入的帳號!一般來說,能夠讓你輸入帳密的正常帳號, 都會出現在這個畫面當中,所以列表的情況可能會非常長!那有些特殊帳號,例如我們在第三章安裝過程中,曾經有建置過兩個帳號, 一個是 root 一個是 dmtsai,那個 dmtsai 可以列出來沒問題,但是 root 因為身份比較特殊,所以就沒有被列出來!因此, 如果你想要使用 root 的身份來登入,就得要點選箭頭 4 的地方,然後分別輸入帳密即可!

如果是一般可登入正常使用的帳號,如畫面中的 dmtsai 的話,那你就直接點選該帳號,然後輸入密碼即可開始使用我們的系統了! 使用 dmtsai 帳號來輸入密碼的畫面示意如下:

X等待登入的畫面示意圖-一般帳號登入系統的密碼欄位
圖4.1.5、X等待登入的畫面示意圖-一般帳號登入系統的密碼欄位

在你輸入正確的密碼之後,按下『登入』按鈕,就可以進入 Linux 的圖形畫面中,並開始準備操作系統囉!

Tips 鳥哥 一般來說,我們不建議您直接使用 root 的身份登入系統喔!請使用一般帳號登入!等到有需要修改或者是建立系統相關的管理工作時, 才切換身份成為 root!為什麼呢?因為系統管理員的權限太高了!而 Linux 底下很多的指令行為是『沒有辦法復原』的!所以, 使用一般帳號時,『手滑』的災情會比較不嚴重!

4.1.2 GNOME的操作與登出

在每一個用戶『第一次』以圖形介面登入系統時,系統都會詢問使用者的操作環境,以依據使用者的國籍、 語言與區域等制定與系統預設值不同的環境。如下所示,第一個問題就是詢問你未來整體的環境要使用的語系為哪個語系與國家? 當然我們台灣都選漢語台灣啊 (安裝的時候選擇的預設值),如果有不同的選擇,請自行挑選你想要的環境,然後按下『下一步』即可。

每個用戶第一次登入系統的環境設定
圖4.1.6、每個用戶第一次登入系統的環境設定

再來則是選擇輸入法,除非你有特殊需求,否則不需要修改設定值。若是需要有其他不同的輸入法,請看下圖左側箭頭指的『+』符號, 按下它就可以開始選擇其他的輸入法了。一切順利的話,請點選『下一步』。

每個用戶第一次登入系統的環境設定
圖4.1.7、每個用戶第一次登入系統的環境設定

上述的環境選擇妥當之後,系統會出現一個確認的畫面,然後就出現『入門資訊』的類似網頁的畫面來給你瞧一瞧如何快速入門囉!如下所示。 如果你有需要,請一個一個連結去點選查閱,如果已經知道這是啥東西,也可以如畫面箭頭處,直接關閉即可!

每個用戶第一次登入系統的環境設定
圖4.1.8、每個用戶第一次登入系統的環境設定
Tips 鳥哥 要注意喔!上述的畫面其實是 GNOME 的求助軟體視窗,並不是瀏覽器視窗!第一次接觸到這個畫面的學生, 直接在類似網址列的框框中寫入 URL 網址,結果當然是找不到資料...當學生問鳥哥時,鳥哥也被唬住了...以為是瀏覽器...

終於給他看到圖形介面啦!真是很開心吧!如下圖所示,整個GNOME的視窗大約分為三個部分:

視窗介面的環境介紹
圖4.1.9、視窗介面的環境介紹
  • 上方工作列(control panel)
    上半部左側有『應用程式』與『位置』,右側則有『輸入法切換』、聲音、網路、日期、帳號相關設定切換等,這個位置可以看成是工作列。 舉例來說,你可以使用滑鼠在 2 號箭頭處 (應用程式) 點擊一下,就會有更多的程式集出現!然後移動滑鼠就能夠使用各個軟體了。 至於 5 號箭頭所指的地方,就是系統時間與聲音調整。最右上角則是目前登入的帳號身份,可以取得很多的設定資訊的!

  • 桌面
    整個畫面中央就是桌面啦!在桌面上預設有兩個小按鈕,例如箭頭 1 所指的地方,常見的就是目前這個帳號的家目錄,你可以使用滑鼠連擊兩下就能夠打開該功能。 另一個則是垃圾桶 (Trash)。如果你的安裝光碟沒有退出,那麼該光碟以及其他可能的可攜式 USB 裝置,也可能顯示在桌面上! 例如圖中的『 CentOS 7 x86_64 』的光片圖示,就是你沒有退出的光碟喔!

  • 下方工作列
    下方工作列的目的是將各工作顯示在這裡,可以方便使用者快速的在各個工作間切換喔!另外,我們還有多個可用的虛擬桌面 (Virtual Desktop),就是畫面中右下角那個 1/4 的東東! 該數字代表的意思是,共有 4 個虛擬桌面,目前在第一個的意思。你可以點一下該處,就知道那是啥東西了!

Linux 桌面的使用方法幾乎跟 Windows 一模一樣,你可以在桌面上按下右鍵就可以有額外的選單出現;你也可以直接按下桌面上的『個人資料夾 (home)』, 就會出現類似Windows的『檔案總管』的檔案/目錄管理視窗,裡面則出現你自己的家目錄;底下我們就來談談幾個在圖形介面裡面經常使用的功能與特色吧!

Tips 鳥哥 關於『個人資料夾』的內容,記得我們之前說過Linux是多人多工的作業系統吧? 每個人都會有自己的『工作目錄』,這個目錄是使用者可以完全掌控的, 所以就稱為『使用者個人家目錄』了。一般來說,家目錄都在/home底下, 以鳥哥這次的登入為例,我的帳號是 dmtsai,那麼我的家目錄就應該在/home/dmtsai/囉!
  • 上方工具列:應用程式 (Applications)

讓我們點擊一下『應用程式』那個按鈕吧!看看下拉式選單中有什麼軟體可用!如下圖所示。

應用程式集當中,需要注意有階層的顯示喔!
圖4.1.10、應用程式集當中,需要注意有階層的顯示喔!

你要注意的是,這一版的 CentOS 在這個應用程式的設計上,階層式變化間並沒有顏色的區分,左側也沒有深色三角形的示意小圖,因此如上圖所示,如果你想要打開計算機軟體, 那得先在左邊第一層先移動到『附屬應用』之後,滑鼠水平橫向移動到右邊,才可以點選計算機喔!鳥哥一開始在這裡確實容易將滑鼠垂直向亂移動,導致老是沒辦法移動到正確的按鈕上!

基本上,這個『應用程式』按鈕已經將大部分的軟體功能分類了,你可以在裡頭找到你常用的軟體來操作。例如想要使用 Office 的辦公室軟體, 就到『辦公』選項上,就可以看到許多軟體存在了!此外,你還會看到最底下有個『活動總覽』,那個並沒有任何分類的子項目在內,那是啥東西? 沒關係,基本上練習機你怎麼玩都沒關係!所以,這時就給他點點看啊!會像底下的圖示這樣:

應用程式的總覽畫面示意圖
圖4.1.11、應用程式的總覽畫面示意圖!

畫面左側 1 號箭頭處,其實就是類似快速按鈕的地方,可以讓你快速的選擇你所常用的軟體。右側 2 號箭頭處,就是剛剛我們上面談到的虛擬桌面囉! 共有四個,而目前畫面中顯示的最是最上面那個一號桌面的意思。如果細看該區塊,就會發現其實鳥哥在第三個虛擬桌面當中也有打開幾個軟體在操作呢! 有沒有發現啊?至於畫面中的 3 號箭頭處,就是目前這個活動中的虛擬桌面上,擁有的幾個啟動的軟體囉!你可以點選任何你想要的軟體,就可以開始操作該軟體了! 所以使用這個『活動總覽』,比較可以讓你在開好多視窗的環境下,快速的回到你所需要的軟體功能中喔!

  • 上方工具列:位置 (就是檔案總管)

如果你想要知道系統上面還有哪些檔案資料,以及你目前這個帳號的基本子目錄,那就得要打開檔案總管囉 (file manager)! 打開檔案總管很簡單,就是選擇左上方那個『位置』的按鈕項目即可。在這個項目中主要有幾個細項可以直接打開目錄的內容,家目錄、下載、圖片、影片等等, 其實除了家目錄之外,底下的次目錄『就是家目錄下的次目錄』啦!所以你可以直接打開家目錄即可!如下所示:

檔案總管操作示意圖
圖4.1.12、檔案總管操作示意圖

如上圖所示,1 號箭頭處可以讓你選擇不同的目錄或資料來源,2 號箭頭則以小圖示的方式顯示該物件可能是什麼資料,3 號箭頭則可以將目前的小圖示變成詳細資料清單, 4 號箭頭就是目前小圖示的顯示模式,5 號箭頭可以進行圖示資料的放大、縮小、排序方式、是否顯示隱藏檔等重要功能!6 號箭頭則是其他額外的功能項目! 好了,現在讓我們來操作一下這個軟體吧!如果你想要觀察每個檔名的詳細資料,並且顯示『隱藏檔』的話,那該如何處理呢?如下圖所示的方式處理一下:

檔案總管操作示意圖
圖4.1.13、檔案總管操作示意圖

按照上面的三個步驟點選完畢後,你就會看到如 4 號箭頭處指的,有一些額外的檔名跑出來了!而且,這些跑出來的檔名共同的特色就是『檔名前面開頭是小數點 . 』 沒錯!你答對了~只要檔名的開頭是由小數點開始的,那麼該檔名就不會在一般觀察模式被顯示出來!所以說,在 Linux 底下,隱藏檔並不是什麼特殊的權限, 單純是因為檔名命名的處理方式來搞定的!這樣理解否?

如果你想要觀察系統有多少不同的檔案系統呢?那就看一下檔案總管左側『裝置』的項目下,有幾個項目就是有幾個裝置囉!現在讓我們來觀察一下『電腦』內有什麼資料吧! 請按下他!然後觀察一下如下的圖示:

檔案總管操作示意圖
圖4.1.14、檔案總管操作示意圖

如上圖所示,點下 1 號箭頭後,右邊就出現一堆目錄資料夾。注意看, 2 號箭頭處指的是正常的一般目錄, 3 號箭頭則指的是有『連結檔』的資料, 這個連結檔可以想像成 Windows 的『捷徑』功能就是了~如果你的帳號沒有權限進入該目錄時,該目錄就會出現一個 X 的符號,如同 4 號箭頭處!很清楚吧! 好!讓我們來觀察一下有沒有 /etc -> sysconfig -> network-scripts 這個目錄下的資料呢?

檔案總管操作示意圖
圖4.1.15、檔案總管操作示意圖

如果你可以依序雙擊每個正確的目錄,就可以得到如上圖示。畫面中的 1 號箭頭處,可以讓你『回到上一個畫面』中,不是回到上一層~而是『上一個畫面』喔! 這點要注意。至於 2 號區塊處,你可以發現有不同顏色的顯示,最右邊的是目前所在目錄,所以 3 號畫面就顯示該目錄下的檔案資訊。 你可以快速的點選 2 號區塊處的任何一個目錄,就可以快速的回到該層目錄中去查看檔案資料喔!

  • 中文輸入法與設定

如果你在安裝的時候就選定中文,並且有處理過切換中/英文的快速鍵,那這個項目幾乎可以不用理他了!但是如果你都使用預設值來安裝時, 可能會發生沒辦法使用慣用的『ctrl+shift』或『ctrl+space』來切換中文的問題!同時,也可能沒辦法找到你想要的中文輸入法~那怎辦?沒關係, 請使用圖4.1.9畫面中右上角的帳號名稱處點一下,然後選擇『設定值』,或者從『應用程式』、『系統工具』、『設定值』也可以打開它! 之後選擇『地區和語言』項目,就可以得到如下畫面。

地區與語言設定項目
圖4.1.16、地區與語言設定項目

在上面的畫面中,你可以按下箭頭所指的地方,就可以增加或減少輸入法的項目了。但是,如果想要切換不同的語言呢?那請回到原本的設定畫面, 之後請選擇『鍵盤』的項目,並按下『快捷鍵』,出現如下的畫面,點選在畫面中的左側『輸入』項目,並在『切換到下一個輸入來源』點選一、兩下, 等到出現如 3 號箭頭處出現『新捷徑鍵』時,按下你所需要的組合鍵,例如鳥哥習慣按『ctrl + space』,那就自己按下組合鍵, 之後你就可以使用自己習慣的輸入法切換快速鍵,來變更你所需要的輸入法囉!

輸入法切換之快捷鍵設定
圖4.1.17、輸入法切換之快捷鍵設定
  • 一些常見的練習

底下的例題請大家自行參考並且實作一下喔!題目很簡單,所以鳥哥就不額外抓圖了!

  1. 由『設定值』的『顯示器』項目中,確認一下目前的解析度,並且嘗試自己變更一下螢幕解析度;
  2. 由『設定值』的『背景』項目中,修改一下桌面的背景圖示:
  3. 由『設定值』的『電源』項目中,修改一下進入空白螢幕鎖定的時間,將它改成『永不』的設定值;
  4. 由『應用程式』的『公用程式』項目下的『調校工具』中,使用『Shell』功能內的『動態工作區』項目,將原本的 4 個虛擬桌面, 更改成 6 個虛擬桌面看看;
  5. 由『應用程式』的『公用程式』項目下的『調校工具』中,使用『輸入』項目,並選擇『砍除 X 伺服器的按鍵序列』從『已停用』改成『Control+Alt+退格鍵』的設定, 這可以讓你按下三個按鈕就能夠重新啟動 X 視窗管理員;
  6. 請將/etc/crontab這個檔案『複製』到你的家目錄中;
  7. 從『應用程式』的『附屬應用』點選『gedit』編輯器,按下 gedit 的『開啟』按鈕,選擇『家目錄(就是你的帳號名稱)』後,點選剛剛複製過來的 crontab 檔名。 在畫面中隨意使用中文輸入法輸入幾個字,然後儲存離開看看!
  8. 從『應用程式』的『喜好』當中打開『終端機』,在終端機中輸入『gsettings set org.gnome.desktop.interface enable-animations false』, 這個動作會將 GNOME 預設的畫面切換的動畫功能關閉,在虛擬機的環境下,有助於畫面切換的速度喔!

上述的練習中,第三個練習還挺重要的!因為在預設的狀態中,你的圖形介面會在 5 分鐘後自動的被鎖定!這是為了要避免你暫時離開座位, 有人偷偷使用你的電腦的緣故。而要解開鎖定,就得要輸入你這個帳號的密碼才行。這個功能最好是不要取消。但因為我們的系統是單純的練習機, 而且又是虛擬機,如果經常鎖定螢幕,老是要解開很煩~那就使用上述的 3 號練習題,應該可以處理完畢! 至於第 8 點對於初次接觸 Linux 的朋友來說,會有點困難,如果你不知道如何下達指令,沒關係~等到本章後面的小節讀完,你就知道如何處理了!

  • 登出 GNOME、重新啟動 X 視窗管理員或關機

如果你沒有想要繼續玩X Window了,那就登出吧!如果不想要繼續操作系統了,那就關機吧!如何登出/關機呢?如下圖所示,點選右上角你的帳號名稱, 然後在出現的畫面中去選擇即可。要記得的是,登出前最好將所有不需要的程式都關閉了再登出或關機啊!

離開視窗介面或 Linux 的方式
圖4.1.18、離開視窗介面或 Linux 的方式:有登出、鎖定與關機

不論是登出還是關閉電源(關機),都會有一個警告視窗來告知你 60 秒內沒有任何動作的話,就會被登出了!如下圖所示。當然, 你也可以按下確定來進行動作。登出後,系統畫面又會回到原本的等待登入的畫面中了!

離開視窗介面或 Linux 的方式
圖4.1.19、離開視窗介面或 Linux 的方式:登出提醒

請注意喔,登出並不是關機!只是讓你的帳號離開系統而已喔!

  • 重新啟動X Window的快速按鈕

一般來說,我們是可以手動來直接修改X Window的設定檔的,不過,修改完成之後的設定項目並不會立刻被載入, 必須要重新啟動X才行(特別注意,不是重新開機,而是重新啟動X!) 。那麼如何重新啟動X呢? 最簡單的方法就是:

  • 直接登出,然後再重新登入即可;
  • 在X的畫面中直接按下[Alt] + [Ctrl] + [Backspace]

第二個方法比較有趣,[backspace]是倒退鍵,你按下三個按鈕後X Window立刻會被重新啟動。 如果你的X Window因為不明原因導致有點問題時,也可以利用這個方法來重新啟動X喔!不過, 這個方法要生效,必須要先進行本節稍早之前的練習第五題才行呦

4.1.3 X window與文字模式的切換

我們前面一直談到的是X Window的視窗管理員環境,那麼在這裡面有沒有純文字介面的環境啊?因為聽說伺服器通常是純文字界面的啊! 當然有啊!但是,要怎麼切換X Window與文字模式呢?注意喔,通常我們也稱文字模式為終端機介面, terminal 或 console喔!Linux預設的情況下會提供六個Terminal來讓使用者登入, 切換的方式為使用:[Ctrl] + [Alt] + [F1]~[F6]的組合按鈕。

那這六個終端介面如何命名呢,系統會將[F1] ~ [F6]命名為tty1 ~ tty6的操作介面環境。 也就是說,當你按下[ctrl] + [Alt] + [F1]這三個組合按鈕時 (按著[ctrl]與[Alt]不放,再按下[F1]功能鍵), 就會進入到tty1的terminal介面中了。同樣的[F2]就是tty2囉!那麼如何回到剛剛的X視窗介面呢?很簡單啊!按下[Ctrl] + [Alt] + [F1]就可以了!我們整理一下登入的環境如下:

  • [Ctrl] + [Alt] + [F2] ~ [F6] :文字介面登入 tty2 ~ tty6 終端機;
  • [Ctrl] + [Alt] + [F1] :圖形介面桌面。

由於系統預設的登入界面不同,因此你想要進入 X 的終端機名稱也可能會有些許差異。以 CentOS 7 為例,由於我們這次安裝的練習機, 預設是啟動圖形界面的,因此這個 X 視窗將會出現在 tty1 界面中。如果你的 Linux 預設使用純文字界面,那麼 tty1~tty6 就會被文字界面佔用。

Tips 鳥哥 在 CentOS 7 環境下,當開機完成之後,預設系統只會提供給你一個 tty 而已,因此無論是文字界面還是圖形界面,都是會出現在 tty1 喔! tty2~tty6 其實一開始是不存在的!但是當你要切換時 (按下 [ctrl]+[alt]+[F2]),系統才產生出額外的 tty2, tty3...

若你在純文字環境中啟動 X 視窗,那麼圖形界面就會出現在當時的那個 tty 上面。舉例來說,你在 tty3 登入系統,然後輸入 startx 啟動個人的圖形界面, 那麼這個圖形界面就會產生在 tty3 上面!這樣說可以理解嗎?

# 純文字界面下 (不能有 X 存在) 啟動視窗界面的作法
[dmtsai@study ~]$ startx

不過startx這個指令並非萬靈丹,你要讓startx生效至少需要底下這幾件事情的配合:

  • 並沒有其他的 X window 被啟用;
  • 你必須要已經安裝了X Window system,並且X server是能夠順利啟動的;
  • 你最好要有視窗管理員,例如GNOME/KDE或者是陽春的TWM等;

其實,所謂的視窗環境,就是:『文字界面加上 X 視窗軟體』的組合!因此,文字界面是一定會存在的,只是視窗界面軟體就看你要不要啟動而已。 所以,我們才有辦法在純文字環境下啟動一個個人化的 X 視窗啊!因為這個 startx 是任何人都可以執行的喔!並不一定需要管理員身份的。 所以,是否預設要使用圖形界面,只要在後續管理服務的程序中,將『 graphical.target 』這個目標服務設定為預設,就能夠預設使用圖形界面囉!

Tips 鳥哥 從這一版 CentOS 7 開始,已經取消了使用多年的 SystemV 的服務管理方式,也就是說,從這一版開始,已經沒有所謂的『執行等級 (run level) 』的概念了! 新的管理方法使用的是 systemd 的模式,這個模式將很多的服務進行相依性管理。以文字與圖形界面為例,就是要不要加入圖形軟體的服務啟動而已~ 對於熟悉之前 CentOS 6.x 版本的老傢伙們,要重新摸一摸 systemd 這個方式喔!因為不再有 /etc/inittab 囉!注意注意!

4.1.4 在終端介面登入linux

剛剛你如果有按下[Ctrl] + [Alt] + [F2]就可以來到tty2的登入畫面,而如果你並沒有啟用圖形視窗界面的話, 那麼預設就是會來到tty1這個環境中。這個純文字環境的登入的畫面 (鳥哥用 dmtsai 帳號登入) 有點像這樣:

CentOS Linux 7 (Core)
Kernel 3.10.0-229.el7.x86_64 on an x86_64

study login: dmtsai
Password: <==這裡輸入你的密碼
Last login: Fri May 29 11:55:05 on tty1 <==上次登入的情況
[dmtsai@study ~]$ _ <==游標閃爍,等待你的指令輸入

上面顯示的內容是這樣的:

  1. CentOS Linux 7 (Core)
    顯示Linux distribution的名稱(CentOS)與版本(7);

  2. Kernel 3.10.0-229.el7.x86_64 on an x86_64
    顯示 Linux 核心的版本為3.10.0-229.el7.x86_64, 且目前這部主機的硬體等級為x86_64。

  3. study login:
    那個study是你的主機名稱。我們在第三章安裝時有填寫主機名稱為: study.centos.vbird,主機名稱的顯示通常只取第一個小數點前的字母,所以就成為study啦!至於login:則是一支可以讓我們登入的程式。 你可以在login:後面輸入你的帳號。以鳥哥為例,我輸入的就是第三章建立的dmtsai那個帳號啦! 當然囉,你也可以使用root這個帳號來登入的。不過『root』這個帳號代表在Linux系統下無窮的權力, 所以盡量不要使用root帳號來登入啦!

  4. Password:
    這一行則在第三行的dmtai輸入後才會出現,要你輸入密碼囉! 請注意,在輸入密碼的時候,螢幕上面『不會顯示任何的字樣!』, 所以不要以為你的鍵盤壞掉去!很多初學者一開始到這裡都會拼命的問!啊我的鍵盤怎麼不能用...

  5. Last login: Fri May 29 11:55:05 on tty1
    當使用者登入系統後,系統會列出上一次這個帳號登入系統的時間與終端機名稱! 建議大家還是得要看看這個資訊,是否真的是自己的登入所致喔!

  6. [dmtsai@study ~]$ _
    這一行則是正確登入之後才顯示的訊息, 最左邊的 dmtsai 顯示的是『目前使用者的帳號』,而@之後接的 study 則是『主機名稱』,至於最右邊的~則指的是 『目前所在的目錄』,那個$則是我們常常講的『提示字元』啦!
Tips 鳥哥 那個 ~ 符號代表的是『使用者的家目錄』的意思,他是個『變數!』 這相關的意義我們會在後續的章節依序介紹到。舉例來說,root的家目錄在/root, 所以 ~ 就代表/root的意思。而dmtsai的家目錄在/home/dmtsai, 所以如果你以dmtsai登入時,他看到的 ~ 就會等於/home/dmtsai喔!

至於提示字元方面,在Linux當中,預設root的提示字元為 # ,而一般身份使用者的提示字元為 $ 。

還有,上面的第一、第二行的內容其實是來自於/etc/issue這個檔案喔!

好了這樣就是登入主機了!很快樂吧!耶~

另外,再次強調,在Linux系統下最好常使用一般帳號來登入即可,所以上例中鳥哥是以自己的帳號dmtsai來登入的。 因為系統管理員帳號(root)具有無窮大的權力,例如他可以刪除任何一個檔案或目錄。因此若你以root身份登入Linux系統, 一個不小心下錯指令,這個時候可不是『欲哭無淚』就能夠解決的了問題的~

因此,一個稱職的網路/系統管理人員,通常都會具有兩個帳號,平時以自己的一般帳號來使用Linux主機的任何資源, 有需要動用到系統功能修訂時,才會轉換身份成為root呢!所以,鳥哥強烈建議你建立一個普通的帳號來供自己平時使用喔! 更詳細的帳號訊息,我們會在後續的『第十三章帳號管理』再次提及! 這裡先有概念即可!

那麼如何離開系統呢?其實應該說『登出Linux』才對!登出很簡單,直接這樣做:

[dmtsai@study ~]$ exit

就能夠登出Linux了。但是請注意:『離開系統並不是關機!』 基本上,Linux本身已經有相當多的工作在進行,你的登入也僅是其中的一個『工作』而已, 所以當你離開時,這次這個登入的工作就停止了,但此時Linux其他的工作是還是繼續在進行的! 本章後面我們再來提如何正確的關機,這裡先建立起這個概念即可!

4.2 文字模式下指令的下達

其實我們都是透過『程式』在跟系統作溝通的,本章上面提到的視窗管理員或文字模式都是一組或一隻程式在負責我們所想要完成的任務。 文字模式登入後所取得的程式被稱為殼(Shell),這是因為這支程式負責最外面跟使用者(我們)溝通,所以才被戲稱為殼程式! 更多與作業系統及殼程式的相關性可以參考第零章、計算機概論內的說明。

我們Linux的殼程式就是厲害的bash這一支!關於更多的bash我們在第三篇再來介紹。現在讓我們來練一練打字吧!

Tips 鳥哥 『練打字』真的是開玩笑的!各位觀眾朋友,千萬不要只是『觀眾朋友』而已,您得要自己親身體驗,看看指令下達之後所輸出的資訊, 並且理解一下『我敲這個指令的目的是想要完成什麼任務?』,再看看輸出的結果是否符合你的需求,這樣才能學到東西!不是單純的鳥哥寫什麼, 你就打什麼,那只是『練打字』不是『學Linux』喔! ^_^

4.2.1 開始下達指令

其實整個指令下達的方式很簡單,你只要記得幾個重要的概念就可以了。舉例來說,你可以這樣下達指令的:

[dmtsai@study ~]$ command  [-options]  parameter1  parameter2 ...
                     指令     選項        參數(1)     參數(2)

上述指令詳細說明如下:

  1. 一行指令中第一個輸入的部分絕對是『指令(command)』或『可執行檔案(例如批次腳本,script)』
  2. command 為指令的名稱,例如變換工作目錄的指令為 cd 等等;
  3. 中刮號[]並不存在於實際的指令中,而加入選項設定時,通常選項前會帶 - 號,例如 -h;有時候會使用選項的完整全名,則選項前帶有 -- 符號,例如 --help;
  4. parameter1 parameter2.. 為依附在選項後面的參數,或者是 command 的參數;
  5. 指令, 選項, 參數等這幾個咚咚中間以空格來區分,不論空幾格 shell 都視為一格。所以空格是很重要的特殊字元!
  6. 按下[Enter]按鍵後,該指令就立即執行。[Enter]按鍵代表著一行指令的開始啟動
  7. 指令太長的時候,可以使用反斜線 (\) 來跳脫[Enter]符號,使指令連續到下一行。注意!反斜線後就立刻接特殊字符,才能跳脫!
  8. 其他:
    1. 在 Linux 系統中,英文大小寫字母是不一樣的。舉例來說, cd 與 CD 並不同。
    2. 更多的介紹等到第十章 bash 時,再來詳述。

注意到上面的說明當中,『第一個被輸入的資料絕對是指令或者是可執行的檔案』! 這個是很重要的概念喔!還有,按下[Enter]鍵表示要開始執行此一命令的意思。我們來實際操作一下: 以ls這個『指令』列出『自己家目錄(~)』下的『所有隱藏檔與相關的檔案屬性』, 要達成上述的要求需要加入 -al 這樣的選項,所以:

[dmtsai@study ~]$ ls -al ~
[dmtsai@study ~]$ ls           -al   ~
[dmtsai@study ~]$ ls -a  -l ~

上面這三個指令的下達方式是一模一樣的執行結果喔!為什麼?請參考上面的說明吧! 關於更詳細的文字模式使用方式,我們會在第十章認識BASH再來強調喔! 此外,請特別留意,在Linux的環境中, 『大小寫字母是不一樣的東西!』也就是說,在Linux底下, VBird與vbird這兩個檔案是『完全不一樣的』檔案呢!所以, 你在下達指令的時候千萬要注意到指令是大寫還是小寫。例如當輸入底下這個指令的時候,看看有什麼現象:

[dmtsai@study ~]$ date  <==結果顯示日期與時間
[dmtsai@study ~]$ Date  <==結果顯示找不到指令
[dmtsai@study ~]$ DATE  <==結果顯示找不到指令

很好玩吧!只是改變小寫成為大寫而已,該指令就變的不存在了! 因此,請千萬記得這個狀態呦!

  • 語系的支援

另外,很多時候你會發現,咦!怎麼我輸入指令之後顯示的結果的是亂碼? 這跟鳥哥說的不一樣啊!呵呵!不要緊張~我們前面提到過,Linux是可以支援多國語系的,若可能的話, 螢幕的訊息是會以該支援語系來輸出的。但是,我們的終端機介面(terminal)在預設的情況下, 無法支援以中文編碼輸出資料的。這個時候,我們就得將支援語系改為英文,才能夠以英文顯示出正確的訊息。 那怎麼做呢?你可以這樣做:

1. 顯示目前所支援的語系
[dmtsai@study ~]$ locale
LANG=zh_TW.utf8              # 語言語系的輸出
LC_CTYPE="zh_TW.utf8"        # 底下為許多資訊的輸出使用的特別語系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8          # 時間方面的語系資料
LC_COLLATE="zh_TW.utf8"
....中間省略....
LC_ALL=                      # 全部的資料同步更新的設定值
# 上面的意思是說,目前的語系(LANG)為zh_TW.UTF-8,亦即台灣繁體中文的萬國碼
[dmtsai@study ~]$ date
鈭? 5??29 14:24:36 CST 2015  # 純文字界面下,無法顯示中文字,所以前面是亂碼

2. 修改語系成為英文語系
[dmtsai@study ~]$ LANG=en_US.utf8
[dmtsai@study ~]$ export LC_ALL=en_US.utf8
# LANG 只與輸出訊息有關,若需要更改其他不同的資訊,要同步更新 LC_ALL 才行!

[dmtsai@study ~]$ date
Fri May 29 14:26:45 CST 2015 # 順利顯示出正確的英文日期時間啊!

[dmtsai@study ~]$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
....中間省略....
LC_ALL=en_US.utf8
# 再次確認一下,結果出現,確實是en_US.utf8這個英文語系!

注意一下,那個『LANG=en_US.utf8』是連續輸入的,等號兩邊並沒有空白字元喔! 這樣一來,就能夠在『這次的登入』察看英文訊息囉!為什麼說是『這次的登入』呢? 因為,如果你登出Linux後,剛剛下達的指令就沒有用啦! ^_^,這個我們會在第十章再好好聊一聊的!好囉,底下我們來練習一下一些簡單的指令, 好讓你可以瞭解指令下達方式的模式:

4.2.2 基礎指令的操作

底下我們立刻來操作幾個簡單的指令看看囉!同時請注意,我們已經使用了英文語系作為預設輸出的語言喔!

  • 顯示日期與時間的指令: date
  • 顯示日曆的指令: cal
  • 簡單好用的計算機: bc
  • 1. 顯示日期的指令: date

如果在文字介面中想要知道目前Linux系統的時間,那麼就直接在指令列模式輸入date即可顯示:

[dmtsai@study ~]$ date
Fri May 29 14:32:01 CST 2015

上面顯示的是:星期五, 五月二十九日, 14:32 分, 01秒,在 2015 年的 CST 時區!台灣在CST時區中啦! 請趕快動手做做看呦!好了,那麼如果我想要讓這個程式顯示出『2015/05/29』這樣的日期顯示方式呢? 那麼就使用date的格式化輸出功能吧!

[dmtsai@study ~]$ date +%Y/%m/%d
2015/05/29
[dmtsai@study ~]$ date +%H:%M
14:33

那個『+%Y%m%d』就是date指令的一些參數功能啦!很好玩吧!那你問我, 鳥哥怎麼知道這些參數的啊?要背起來嗎?當然不必啦!底下再告訴你怎麼查這些參數囉!

從上面的例子當中我們也可以知道,指令之後的選項除了前面帶有減號『-』之外,某些特殊情況下, 選項或參數前面也會帶有正號『+』的情況!這部份可不要輕易的忘記了呢!

  • 2. 顯示日曆的指令: cal

那如果我想要列出目前這個月份的月曆呢?呵呵!直接給他下達cal即可!

[dmtsai@study ~]$ cal
      May 2015
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

除了本月的日曆之外,連同今日所在日期處都會有反白的顯示呢!真有趣!cal (calendar)這個指令可以做的事情還很多,例如你可以顯示整年的月曆情況:

[dmtsai@study ~]$ cal 2015
                               2015

       January               February                 March
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
             1  2  3    1  2  3  4  5  6  7    1  2  3  4  5  6  7
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    8  9 10 11 12 13 14
11 12 13 14 15 16 17   15 16 17 18 19 20 21   15 16 17 18 19 20 21
18 19 20 21 22 23 24   22 23 24 25 26 27 28   22 23 24 25 26 27 28
25 26 27 28 29 30 31                          29 30 31

        April                   May                   June
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
          1  2  3  4                   1  2       1  2  3  4  5  6
 5  6  7  8  9 10 11    3  4  5  6  7  8  9    7  8  9 10 11 12 13
12 13 14 15 16 17 18   10 11 12 13 14 15 16   14 15 16 17 18 19 20
19 20 21 22 23 24 25   17 18 19 20 21 22 23   21 22 23 24 25 26 27
26 27 28 29 30         24 25 26 27 28 29 30   28 29 30
                       31
....(以下省略)....

基本上cal這個指令可以接的語法為:

[dmtsai@study ~]$ cal [month] [year]

所以,如果我想要知道2015年10月的月曆,可以直接下達:

[dmtsai@study ~]$ cal 10 2015
    October 2015
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

那請問今年有沒有13月啊?來測試一下這個指令的正確性吧!下達下列指令看看:

[dmtsai@study ~]$ cal 13 2015
cal: illegal month value: use 1-12

cal竟然會告訴我們『錯誤的月份,請使用1-12』這樣的資訊呢!所以, 未來你可以很輕易的就以cal來取得日曆上面的日期囉!簡直就是萬年曆啦! ^_^。 另外,由這個cal指令的練習我們也可以知道,某些指令有特殊的參數存在, 若輸入錯誤的參數,則該指令會有錯誤訊息的提示,透過這個提示我們可以藉以瞭解指令下達錯誤之處。 這個練習的結果請牢記在心中喔!

  • 3. 簡單好用的計算機: bc

如果在文字模式當中,突然想要作一些簡單的加減乘除,偏偏手邊又沒有計算機!這個時候要筆算嗎? 不需要啦!我們的Linux有提供一支計算程式,那就是bc喔。你在指令列輸入bc後,螢幕會顯示出版本資訊, 之後就進入到等待指示的階段。如下所示:

[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_ <==這個時候,游標會停留在這裡等待你的輸入

事實上,我們是『進入到bc這個軟體的工作環境當中』了! 就好像我們在Windows裡面使用『小算盤』一樣!所以,我們底下嘗試輸入的資料, 都是在bc程式當中在進行運算的動作。所以囉,你輸入的資料當然就得要符合bc的要求才行! 在基本的bc計算機操作之前,先告知幾個使用的運算子好了:

  • + 加法
  • - 減法
  • * 乘法
  • / 除法
  • ^ 指數
  • % 餘數

好!讓我們來使用bc計算一些咚咚吧!

[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3+4  <==只有加法時
10
7-8+3
2
10*52
520
10%3     <==計算『餘數』
1
10^2
100
10/100   <==這個最奇怪!不是應該是 0.1 嗎?
0
quit     <==離開 bc 這個計算器

在上表當中,粗體字表示輸入的資料,而在每個粗體字的底下就是輸出的結果。 咦!每個計算都還算正確,怎麼10/100會變成0呢?這是因為bc預設僅輸出整數,如果要輸出小數點下位數,那麼就必須要執行 scale=number ,那個number就是小數點位數,例如:

[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=3     <==沒錯!就是這裡!!
1/3
.333
340/2349
.144
quit

注意啊!要離開bc回到命令提示字元時,務必要輸入『quit』來離開bc的軟體環境喔! 好了!就是這樣子啦!簡單的很吧!以後你可以輕輕鬆鬆的進行加減乘除啦!

從上面的練習我們大概可以知道在指令列模式裡面下達指令時,會有兩種主要的情況:

  • 一種是該指令會直接顯示結果然後回到命令提示字元等待下一個指令的輸入;
  • 一種是進入到該指令的環境,直到結束該指令才回到命令提示字元的環境。

我們以一個簡單的圖示來說明:

指令下達的環境
圖4.2.1、指令下達的環境,上圖為直接顯示結果,下圖為進入軟體功能

如圖4.2.1所示,上方指令下達後立即顯示訊息且立刻回到命令提示字元的環境。 如果有進入軟體功能的環境(例如上面的bc軟體),那麼就得要使用該軟體的結束指令 (例如在bc環境中輸入quit)才能夠回到命令提示字元中!那你怎麼知道你是否在命令提示字元的環境呢? 很簡單!你只要看到游標是在『[dmtsai@study ~]$ 』這種提示字元後面, 那就是等待輸入指令的環境了。很容易判斷吧!不過初學者還是很容易忘記啦!

4.2.3 重要的幾個熱鍵[Tab], [ctrl]-c, [ctrl]-d

在繼續後面章節的學習之前,這裡很需要跟大家再來報告一件事,那就是我們的文字模式裡頭具有很多的功能組合鍵, 這些按鍵可以輔助我們進行指令的編寫與程式的中斷呢!這幾個按鍵請大家務必要記住的!很重要喔!

  • [Tab]按鍵

[Tab]按鍵就是在鍵盤的大寫燈切換按鍵([Caps Lock])上面的那個按鍵!在各種Unix-Like的Shell當中, 這個[Tab]按鍵算是Linux的Bash shell最棒的功能之一了!他具有『命令補全』與『檔案補齊』的功能喔! 重點是,可以避免我們打錯指令或檔案名稱呢!很棒吧!但是[Tab]按鍵在不同的地方輸入,會有不一樣的結果喔! 我們舉下面的例子來說明。上一小節我們不是提到 cal 這個指令嗎?如果我在指令列輸入 ca 再按兩次 [tab] 按鍵, 會出現什麼訊息?

[dmtsai@study ~]$ ca[tab][tab]    <==[tab]按鍵是緊接在 a 字母後面!
cacertdir_rehash     cairo-sphinx         cancel               case
cache_check          cal                  cancel.cups          cat
cache_dump           calibrate_ppa        capsh                catchsegv
cache_metadata_size  caller               captoinfo            catman
# 上面的 [tab] 指的是『按下那個tab鍵』,不是要你輸入中括號內的tab啦!

發現什麼事?所有以ca為開頭的指令都被顯示出來啦!很不錯吧!那如果你輸入『ls -al ~/.bash』再加兩個[tab]會出現什麼?

[dmtsai@study ~]$ ls -al ~/.bash[tab][tab]
.bash_history  .bash_logout   .bash_profile  .bashrc

咦!在該目錄下面所有以 .bash 為開頭的檔案名稱都會被顯示出來了呢!注意看上面兩個例子喔, 我們按[tab]按鍵的地方如果是在command(第一個輸入的資料)後面時,他就代表著 『命令補全』,如果是接在第二個字以後的,就會變成『檔案補齊』的功能了!但是在某些特殊的指令底下,檔案補齊的功能可能會變成『參數/選項補齊』喔! 我們同樣使用 date 這個指令來查一下:

[dmtsai@study ~]$ date --[tab][tab]  <==[tab]按鍵是緊接在 -- 後面!
--date        --help        --reference=  --rfc-3339=   --universal
--date=       --iso-8601    --rfc-2822    --set=        --version
# 瞧!系統會列出來 date 這個指令可以使用的選項有哪些喔~包括未來會用到的 --date 等項目

總結一下:

  • [Tab] 接在一串指令的第一個字的後面,則為『命令補全』;
  • [Tab] 接在一串指令的第二個字以後時,則為『檔案補齊』!
  • 若安裝 bash-completion 軟體,則在某些指令後面使用 [tab] 按鍵時,可以進行『選項/參數的補齊』功能!

善用 [tab] 按鍵真的是個很好的習慣!可以讓你避免掉很多輸入錯誤的機會!

Tips 鳥哥 在這一版的 CentOS 7.x 當中,由於多了一個名為 bash_completion 的軟體,這個軟體會主動的去偵測『各個指令可以下達的選項與參數』等行為, 因此,那個『檔案補齊』的功能可能會變成『選項、參數補齊』的功能,不一定會主動補齊檔名了喔!這點得要特別留意。鳥哥第一次接觸 CentOS 7 的時候, 曾經為了無法補齊檔名而覺得奇怪!煩惱了老半天說!
  • [Ctrl]-c 按鍵

如果你在Linux底下輸入了錯誤的指令或參數,有的時候這個指令或程式會在系統底下『跑不停』這個時候怎麼辦?別擔心, 如果你想讓當前的程式『停掉』的話,可以輸入:[Ctrl]與c按鍵(先按著[Ctrl]不放,且再按下c按鍵,是組合按鍵), 那就是中斷目前程式的按鍵啦!舉例來說,如果你輸入了『find /』這個指令時,系統會開始跑一些東西(先不要理會這個指令串的意義),此時你給他按下 [Ctrl]-c 組合按鍵,嘿嘿!是否立刻發現這個指令串被終止了!就是這樣的意思啦!

[dmtsai@study ~]$ find /
....(一堆東西都省略)....
# 此時螢幕會很花,你看不到命令提示字元的!直接按下[ctrl]-c即可!
[dmtsai@study ~]$ <==此時提示字元就會回來了!find程式就被中斷!

不過你應該要注意的是,這個組合鍵是可以將正在運作中的指令中斷的, 如果你正在運作比較重要的指令,可別急著使用這個組合按鍵喔! ^_^

  • [Ctrl]-d 按鍵

那麼[Ctrl]-d是什麼呢?就是[Ctrl]與d按鍵的組合啊!這個組合按鍵通常代表著: 『鍵盤輸入結束(End Of File, EOF 或 End Of Input)』的意思! 另外,他也可以用來取代exit的輸入呢!例如你想要直接離開文字介面,可以直接按下[Ctrl]-d就能夠直接離開了(相當於輸入exit啊!)

  • [shift]+{[PageUP]|[Page Down]}按鍵

如果你在純文字的畫面中執行某些指令,這個指令的輸出訊息相當長啊!所以導致前面的部份已經不在目前的螢幕畫面中, 所以你想要回頭去瞧一瞧輸出的訊息,那怎辦?其實,你可以使用 [Shift]+[Page Up] 來往前翻頁,也能夠使用 [Shift]+[Page Down] 來往後翻頁! 這兩個組合鍵也是可以稍微記憶一下,在你要稍微往前翻畫面時,相當有幫助!

Tips 鳥哥 因為目前學生比較常用圖形界面的終端機系統,所以當鳥哥談到 [Shift]+[Page UP] 的功能時,他們很不能理解耶!說都有滑鼠滾輪了, 要這組合鈕幹麻?唉~真是沒見過世面的小朋友...

總之,在Linux底下,文字介面的功能是很強悍的!要多多的學習他,而要學習他的基礎要訣就是...多使用、多熟悉啦!

4.2.4 錯誤訊息的察看

萬一我下達了錯誤的指令怎麼辦?不要緊呀!你可以藉由螢幕上面顯示的錯誤訊息來瞭解你的問題點, 那就很容易知道如何改善這個錯誤訊息囉!舉個例子來說,假如想執行date卻因為大小寫打錯成為DATE時, 這個錯誤的訊息是這樣顯示的:

[dmtsai@study ~]$ DATE
bash: DATE: command not found...  # 這裡顯示錯誤的訊息
Similar command is: 'date'        # 這裡竟然給你一個可能的解決方案耶!

上面那個bash:表示的是我們的Shell的名稱, 本小節一開始就談到過Linux的預設殼程式就是bash囉! 那麼上面的例子說明了bash有錯誤,什麼錯誤呢?bash告訴你:

DATE: command not found

字面上的意思是說『指令找不到』,那個指令呢?就是DATE這個指令啦! 所以說,系統上面可能並沒有DATE這個指令囉!就是這麼簡單!通常出現『command not found』的可能原因為:

  • 這個指令不存在,因為該軟體沒有安裝之故。解決方法就是安裝該軟體;
  • 這個指令所在的目錄目前的用戶並沒有將他加入指令搜尋路徑中,請參考第十章bash的PATH說明;
  • 很簡單!因為你打錯字!

從 CentOS 7 開始,bash 竟然會嘗試幫我們找解答耶!看一下上面輸出的第二行『Similar command is: 'date'』,他說,相似的指令是 date 喔! 沒錯啊!我們就是輸入錯誤的大小寫而已~這就已經幫我們找到答案了!看了輸出,你也應該知道如何解決問題了吧?

介紹這幾個指令讓你玩一玩先,更詳細的指令操作方法我們會在第三篇的時候再進行介紹! 現在讓我們來想一想,萬一我在操作date這個指令的時候,手邊又沒有這本書,我要怎麼知道要如何加那些奇怪的參數, 好讓輸出的結果符合我想要的輸出格式呢?嘿嘿!到下一節鳥哥來告訴你怎麼辦吧!

4.3 Linux系統的線上求助man page與info page

先來瞭解一下Linux有多少指令呢?在文字模式下,你可以輸入 g 之後直接按下兩個[Tab]按鍵,看看總共有多少以 g 開頭的指令可以讓你用?

Tips 鳥哥 在這一版中,不輸入任何字僅按下兩次 [tab] 按鈕來顯示所有指令的功能被取消了!所以鳥哥以 g 為開頭來說明一下囉!
[dmtsai@study ~]$ g[tab][tab]<==在g之後直接輸入兩次[tab]按鍵
Display all 217 possibilities? (y or n) <==如果不想要看,按 n 離開

如上所示,鳥哥安裝的這個系統中,少說也有200多個以 g 為開頭的指令可以讓dmtsai這個帳號使用。 那在Linux裡面到底要不要背『指令』啊?可以啊!你背啊!這種事,鳥哥這個『忘性』特佳的老人家實在是背不起來 @_@ ~當然啦,有的時候為了要考試(例如一些認證考試等等的)還是需要背一些重要的指令與選項的! 不過,鳥哥主要還是以理解『在什麼情況下,應該要使用哪方面的指令』為準的!

既然鳥哥說不需要背指令,那麼我們如何知道每個指令的詳細用法?還有,某些設定檔的內容到底是什麼? 這個可就不需要擔心了!因為在Linux上開發的軟體大多數都是自由軟體/開源軟體,而這些軟體的開發者為了讓大家能夠瞭解指令的用法, 都會自行製作很多的文件,而這些文件也可以直接在線上就能夠輕易的被使用者查詢出來喔!很不賴吧! 這根本就是『線上說明文件』嘛!哈哈!沒錯!確實如此。我們底下就來談一談,Linux到底有多少的線上文件資料呢?

4.3.1 指令的 --help 求助說明

事實上,幾乎 Linux 上面的指令,在開發的時候,開發者就將可以使用的指令語法與參數寫入指令操作過程中了!你只要使用『 --help 』這個選項, 就能夠將該指令的用法作一個大致的理解喔!舉例來說,我們來瞧瞧 date 這個指令的基本用法與選項參數的介紹:

[dmtsai@study ~]# date --help
Usage: date [OPTION]... [+FORMAT]                           # 這裡有基本語法
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]  # 這是設定時間的語法
Display the current time in the given FORMAT, or set the system date.
# 底下是主要的選項說明
Mandatory arguments to long options are mandatory for short options too.
  -d, --date=STRING         display time described by STRING, not 'now'
  -f, --file=DATEFILE       like --date once for each line of DATEFILE
....(中間省略)....
  -u, --utc, --universal    print or set Coordinated Universal Time (UTC)
      --help     顯示此求助說明並離開
      --version  顯示版本資訊並離開
# 底下則是重要的格式 (FORMAT) 的主要項目
FORMAT controls the output.  Interpreted sequences are:

  %%   a literal %
  %a   locale's abbreviated weekday name (e.g., Sun)
  %A   locale's full weekday name (e.g., Sunday)
....(中間省略)....
# 底下是幾個重要的範例 (Example)
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
  $ date --date='@2147483647'
....(底下省略)....

看一下上面的顯示,首先一開始是下達語法的方式 (Usage),這個 date 有兩種基本語法,一種是直接下達並且取得日期回傳值,且可以 +FORAMAT 的方式來顯示。 至於另一種方式,則是加上 MMDDhhmmCCYY 的方式來設定日期時間。他的格式是『月月日日時時分分西元年』的格式!再往下看, 會說明主要的選項,例如 -d 的意義等等,後續又會出現 +FORMAT 的用法!從裡面你可以查到我們之前曾經用過得『 date +%Y%m%d 』這個指令與選項的說明。

基本上,如果是指令,那麼透過這個簡單的 --help 就可以很快速的取得你所需要的選項、參數的說明了!這很重要!我們說過,在 linux 底下你需要學習『任務達成』的方式, 不用硬背指令參數。不過常用的指令你還是得要記憶一下,而選項就透過 --help 來快速查詢即可。

同樣的,透過 cal --help 你也可以取得相同的解釋!相當好用!不過,如果你使用 bc --help 的話,雖然也有簡單的解釋,但是就沒有類似 scale 的用法說明, 同時也不會有 +, -, *, /, % 等運算子的說明了!因此,雖然 --help 已經相當好用,不過,通常 --help 用在協助你查詢『你曾經用過的指令所具備的選項與參數』而已, 如果你要使用的是從來沒有用過得指令,或者是你要查詢的根本就不是指令,而是檔案的『格式』時,那就得要透過 man page 囉!!

4.3.2 man page

咦!date --help 沒有告訴你 STRING 是什麼?嘿嘿!不要擔心,除了 --help 之外,我們Linux上面的其他線上求助系統已經都幫你想好要怎麼辦了, 所以你只要使用簡單的方法去尋找一下說明的內容,馬上就清清楚楚的知道該指令的用法了!怎麼看呢?就是找男人(man) 呀!喔!不是啦!這個man是manual(操作說明)的簡寫啦!只要下達:『man date』 馬上就會有清楚的說明出現在你面前喔!如下所示:

[dmtsai@study ~]$ LANG="en_US.utf8"
# 還記得這個咚咚的用意吧?前面提過了,是為了『語系』的需要啊!下達過一次即可!

[dmtsai@study ~]$ man date
DATE(1)                          User Commands                         DATE(1)
# 請注意上面這個括號內的數字
NAME  <==這個指令的完整全名,如下所示為date且說明簡單用途為設定與顯示日期/時間
       date - print or set the system date and time

SYNOPSIS  <==這個指令的基本語法如下所示
       date [OPTION]... [+FORMAT]                            <==第一種單純顯示的用法
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]   <==這種可以設定系統時間的用法

DESCRIPTION  <==詳細說明剛剛語法談到的選項與參數的用法
       Display the current time in the given FORMAT, or set the system date.

       Mandatory arguments to long options are mandatory for short options too.

       -d, --date=STRING  <==左邊-d為短選項名稱,右邊--date為完整選項名稱
              display time described by STRING, not 'now'

       -f, --file=DATEFILE
              like --date once for each line of DATEFILE

       -I[TIMESPEC], --iso-8601[=TIMESPEC]
              output  date/time  in  ISO  8601  format.   TIMESPEC='date' for date only (the
              default), 'hours', 'minutes', 'seconds', or 'ns' for  date  and  time  to  the
              indicated precision.
....(中間省略)....
       # 找到了!底下就是格式化輸出的詳細資料!
       FORMAT controls the output.  Interpreted sequences are:

       %%     a literal %

       %a     locale's abbreviated weekday name (e.g., Sun)

       %A     locale's full weekday name (e.g., Sunday)
....(中間省略)....
ENVIRONMENT  <==與這個指令相關的環境參數有如下的說明
       TZ     Specifies the timezone, unless overridden by command line parameters.  
              If neither is specified, the setting from /etc/localtime is used.

EXAMPLES     <==一堆可用的範本
       Convert seconds since the epoch (1970-01-01 UTC) to a date

              $ date --date='@2147483647'
....(中間省略)....

DATE STRING  <==上面曾提到的 --date 的格式說明!
       The --date=STRING is a mostly free format human readable date string such as "Sun, 29
       Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next  Thursday".   A  date
       string  may  contain  items  indicating calendar date, time of day, time zone, day of

AUTHOR  <==這個指令的作者啦!
       Written by David MacKenzie.

COPYRIGHT  <==受到著作權法的保護!用的就是 GPL 了!
       Copyright © 2013 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3 or
       later <http://gnu.org/licenses/gpl.html>.
       This  is free software: you are free to change and redistribute it.  There is NO WAR‐
       RANTY, to the extent permitted by law.

SEE ALSO  <==這個重要,你還可以從哪裡查到與date相關的說明文件之意
       The full documentation for date is maintained as a Texinfo manual.  If the  info  and
       date programs are properly installed at your site, the command

              info coreutils 'date invocation'

       should give you access to the complete manual.

GNU coreutils 8.22                        June 2014                                  DATE(1)
Tips 鳥哥 進入man指令的功能後,你可以按下『空白鍵』往下翻頁,可以按下『 q 』按鍵來離開man的環境。 更多在man指令下的功能,本小節後面會談到的!

看(鳥哥沒罵人!)馬上就知道一大堆的用法了!如此一來,不就可以知道date的相關選項與參數了嗎?真方便! 而出現的這個螢幕畫面,我們稱呼他為man page, 你可以在裡頭查詢他的用法與相關的參數說明。如果仔細一點來看這個man page的話,你會發現幾個有趣的東西。

首先,在上個表格的第一行,你可以看到的是:『DATE(1)』,DATE我們知道是指令的名稱, 那麼(1)代表什麼呢?他代表的是『一般使用者可使用的指令』的意思!咦!還有這個用意啊!呵呵! 沒錯~在查詢資料的後面的數字是有意義的喔!他可以幫助我們瞭解或者是直接查詢相關的資料。 常見的幾個數字的意義是這樣的:

代號代表內容
1使用者在shell環境中可以操作的指令或可執行檔
2系統核心可呼叫的函數與工具等
3一些常用的函數(function)與函式庫(library),大部分為C的函式庫(libc)
4裝置檔案的說明,通常在/dev下的檔案
5設定檔或者是某些檔案的格式
6遊戲(games)
7慣例與協定等,例如Linux檔案系統、網路協定、ASCII code等等的說明
8系統管理員可用的管理指令
9跟kernel有關的文件

上述的表格內容可以使用『man man』來更詳細的取得說明。透過這張表格的說明, 未來你如果使用man page在察看某些資料時,就會知道該指令/檔案所代表的基本意義是什麼了。 舉例來說,如果你下達了『man null』時,會出現的第一行是:『NULL(4)』,對照一下上面的數字意義, 嘿嘿!原來null這個玩意兒竟然是一個『裝置檔案』呢!很容易瞭解了吧!

Tips 鳥哥 上表中的1, 5, 8這三個號碼特別重要,也請讀者要將這三個數字所代表的意義背下來喔!

再來,man page的內容也分成好幾個部分來加以介紹該指令呢!就是上頭man date那個表格內, 以NAME作為開始介紹,最後還有個SEE ALSO來作為結束。基本上,man page大致分成底下這幾個部分:

代號內容說明
NAME簡短的指令、資料名稱說明
SYNOPSIS簡短的指令下達語法(syntax)簡介
DESCRIPTION較為完整的說明,這部分最好仔細看看!
OPTIONS針對 SYNOPSIS 部分中,有列舉的所有可用的選項說明
COMMANDS當這個程式(軟體)在執行的時候,可以在此程式(軟體)中下達的指令
FILES這個程式或資料所使用或參考或連結到的某些檔案
SEE ALSO可以參考的,跟這個指令或資料有相關的其他說明!
EXAMPLE一些可以參考的範例

有時候除了這些外,還可能會看到Authors與Copyright等,不過也有很多時候僅有NAME與DESCRIPTION等部分。 通常鳥哥在查詢某個資料時是這樣來查閱的:

  1. 先察看NAME的項目,約略看一下這個資料的意思;
  2. 再詳看一下DESCRIPTION,這個部分會提到很多相關的資料與使用時機,從這個地方可以學到很多小細節呢;
  3. 而如果這個指令其實很熟悉了(例如上面的date),那麼鳥哥主要就是查詢關於OPTIONS的部分了! 可以知道每個選項的意義,這樣就可以下達比較細部的指令內容呢!
  4. 最後,鳥哥會再看一下,跟這個資料有關的還有哪些東西可以使用的?舉例來說,上面的SEE ALSO就告知我們還可以利用『info coreutils date』來進一步查閱資料;
  5. 某些說明內容還會列舉有關的檔案(FILES 部分)來提供我們參考!這些都是很有幫助的!

大致上瞭解了man page的內容後,那麼在man page當中我還可以利用哪些按鍵來幫忙查閱呢?首先, 如果要向下翻頁的話,可以按下鍵盤的空白鍵,也可以使用[Page Up]與[Page Down]來翻頁呢!同時,如果你知道某些關鍵字的話, 那麼可以在任何時候輸入『/word』,來主動搜尋關鍵字!例如在上面的搜尋當中,我輸入了『/date』會變成怎樣?

DATE(1)                          User Commands                         DATE(1)

NAME
       date - print or set the system date and time

SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

DESCRIPTION
       Display  the  current  time  in  the given FORMAT, or set the system date.

....(中間省略)....

/date <==只要按下/,游標就會跑到這個地方來,你就可以開始輸入搜尋字串咯

看到了嗎,當你按下『/』之後,游標就會移動到螢幕的最下面一行, 並等待你輸入搜尋的字串了。此時,輸入date後,man page就會開始搜尋跟date有關的字串, 並且移動到該區域呢!很方便吧!最後,如果要離開man page時,直接按下『 q 』就能夠離開了。 我們將一些在man page常用的按鍵給他整理整理:

按鍵進行工作
空白鍵向下翻一頁
[Page Down]向下翻一頁
[Page Up]向上翻一頁
[Home]去到第一頁
[End]去到最後一頁
/string向『下』搜尋 string 這個字串,如果要搜尋 vbird 的話,就輸入 /vbird
?string向『上』搜尋 string 這個字串
n, N利用 / 或 ? 來搜尋字串時,可以用 n 來繼續下一個搜尋 (不論是 / 或 ?) ,可以利用 N 來進行『反向』搜尋。舉例來說,我以 /vbird 搜尋 vbird 字串, 那麼可以 n 繼續往下查詢,用 N 往上查詢。若以 ?vbird 向上查詢 vbird 字串, 那我可以用 n 繼續『向上』查詢,用 N 反向查詢。
q結束這次的 man page

要注意喔!上面的按鍵是在man page的畫面當中才能使用的! 比較有趣的是那個搜尋啦!我們可以往下或者是往上搜尋某個字串,例如要在man page內搜尋vbird這個字串, 可以輸入 /vbird 或者是 ?vbird ,只不過一個是往下而一個是往上來搜尋的。而要 重複搜尋 某個字串時,可以使用 n 或者是 N 來動作即可呢! 很方便吧!^_^

既然有man page,自然就是因為有一些文件資料,所以才能夠以man page讀出來囉!那麼這些man page的資料 放在哪裡呢?不同的distribution通常可能有點差異性,不過,通常是放在/usr/share/man這個目錄裡頭,然而,我們可以透過修改他的man page搜尋路徑來改善這個目錄的問題!修改/etc/man_db.conf (有的版本為man.conf或manpath.conf或man.config等)即可囉!至於更多的關於man的訊息你可以使用『 man man 』來查詢呦!關於更詳細的設定,我們會在第十章 bash 當中繼續的說明喔!

  • 搜尋特定指令/檔案的man page說明文件

在某些情況下,你可能知道要使用某些特定的指令或者是修改某些特定的設定檔,但是偏偏忘記了該指令的完整名稱。 有些時候則是你只記得該指令的部分關鍵字。這個時候你要如何查出來你所想要知道的man page呢? 我們以底下的幾個例子來說明man這個指令有用的地方喔!

例題:
你可否查出來,系統中還有哪些跟『man』這個指令有關的說明文件呢?
答:
你可以使用底下的指令來查詢一下:
[dmtsai@study ~]$ man -f man
man (1)              - an interface to the on-line reference manuals
man (1p)             - display system documentation
man (7)              - macros to format man pages
使用 -f 這個選項就可以取得更多與man相關的資訊,而上面這個結果當中也有提示了 (數字) 的內容, 舉例來說,第三行的『 man (7) 』表示有個man (7)的說明文件存在喔!但是卻有個man (1)存在啊! 那當我們下達『 man man 』的時候,到底是找到哪一個說明檔呢? 其實,你可以指定不同的文件的,舉例來說,上表當中的兩個 man 你可以這樣將他的文件叫出來:
[dmtsai@study ~]$ man 1 man  <==這裡是用 man(1) 的文件資料
[dmtsai@study ~]$ man 7 man  <==這裡是用 man(7) 的文件資料
你可以自行將上面兩個指令輸入一次看看,就知道,兩個指令輸出的結果是不同的。 那個1, 7就是分別取出在man page裡面關於1與7相關資料的文件檔案囉! 好了,那麼萬一我真的忘記了下達數字,只有輸入『 man man 』時,那麼取出的資料到底是1還是7啊? 這個就跟搜尋的順序有關了。搜尋的順序是記錄在/etc/man_db.conf 這個設定檔當中, 先搜尋到的那個說明檔,就會先被顯示出來! 一般來說,通常會先找到數字較小的那個啦!因為排序的關係啊!所以, man man 會跟 man 1 man 結果相同!

除此之外,我們還可以利用『關鍵字』找到更多的說明文件資料喔!什麼是關鍵字呢? 從上面的『man -f man』輸出的結果中,我們知道其實輸出的資料是:

  • 左邊部分:指令(或檔案)以及該指令所代表的意義(就是那個數字);
  • 右邊部分:這個指令的簡易說明,例如上述的『-macros to format man pages』

當使用『man -f 指令』時,man只會找資料中的左邊那個指令(或檔案)的完整名稱,有一點不同都不行! 但如果我想要找的是『關鍵字』呢?也就是說,我想要同時找上面說的兩個地方的內容,只要該內容有關鍵字存在, 不需要完全相同的指令(或檔案)就能夠找到時,該怎麼辦?請看下個範例囉!

例題:
找出系統的說明檔中,只要有man這個關鍵字就將該說明列出來。
答:
[dmtsai@study ~]$ man -k man
fallocate (2)        - manipulate file space
zshall (1)           - the Z shell meta-man page
....(中間省略)....
yum-config-manager (1) - manage yum configuration options and yum repositories
yum-groups-manager (1) - create and edit yum's group metadata
yum-utils (1)        - tools for manipulating repositories and extended package management
看到了吧!很多對吧!因為這個是利用關鍵字將說明文件裡面只要含有man那個字眼的(不見得是完整字串) 就將他取出來!很方便吧! ^_^(上面的結果有特殊字體的顯示是為了方便讀者查看, 實際的輸出結果並不會有特別的顏色顯示喔!)

事實上,還有兩個指令與man page有關呢!而這兩個指令是man的簡略寫法說~就是這兩個:

[dmtsai@study ~]$ whatis  [指令或者是資料]   <==相當於 man -f [指令或者是資料]
[dmtsai@study ~]$ apropos [指令或者是資料]   <==相當於 man -k [指令或者是資料]

而要注意的是,這兩個特殊指令要能使用,必須要有建立 whatis 資料庫才行!這個資料庫的建立需要以 root 的身份下達如下的指令:

[root@study ~]# mandb
# 舊版的 Linux 這個指令是使用 makewhatis 喔!這一版開使用 mandb 了!
Tips 鳥哥 一般來說,鳥哥是真的不會去背指令的,只會去記住幾個常見的指令而已。那麼鳥哥是怎麼找到所需要的指令呢? 舉例來說,列印的相關指令,鳥哥其實僅記得 lp (line print)而已。那我就由 man lp 開始,去找相關的說明, 然後,再以 lp[tab][tab] 找到任何以 lp 為開頭的指令,找到我認為可能有點相關的指令後,先以 --help 去查基本的用法, 若有需要再以 man 去查詢指令的用法!呵呵!所以,如果是實際在管理 Linux , 那麼真的只要記得幾個很重要的指令即可,其他需要的,嘿嘿!努力的找男人(man)吧!

4.3.3 info page

在所有的Unix Like系統當中,都可以利用 man 來查詢指令或者是相關檔案的用法; 但是,在Linux裡面則又額外提供了一種線上求助的方法,那就是利用info這個好用的傢伙啦!

基本上,info與man的用途其實差不多,都是用來查詢指令的用法或者是檔案的格式。但是與man page一口氣輸出一堆資訊不同的是,info page則是將文件資料拆成一個一個的段落,每個段落用自己的頁面來撰寫, 並且在各個頁面中還有類似網頁的『超連結』來跳到各不同的頁面中,每個獨立的頁面也被稱為一個節點(node)。 所以,你可以將info page想成是文字模式的網頁顯示資料啦!

不過你要查詢的目標資料的說明文件必須要以info的格式來寫成才能夠使用info的特殊功能(例如超連結)。 而這個支援info指令的文件預設是放置在/usr/share/info/這個目錄當中的。 舉例來說,info這個指令的說明文件有寫成info格式,所以,你使用『 info info 』可以得到如下的畫面:

[dmtsai@study ~]$ info info
File: info.info,  Node: Top,  Next: Getting Started,  Up: (dir)

Info: An Introduction
*********************

The GNU Project distributes most of its on-line manuals in the "Info
format", which you read using an "Info reader".  You are probably using
an Info reader to read this now.
....(中間省略)....

   If you are new to the Info reader and want to learn how to use it,
type the command 'h' now.  It brings you to a programmed instruction
sequence. # 這一段在說明,按下 h 可以有簡易的指令說明!很好用!
....(中間省略)....

* Menu:

* Getting Started::             Getting started using an Info reader.
* Advanced::                    Advanced Info commands.
* Expert Info::                 Info commands for experts.
* Index::                       An index of topics, commands, and variables.

--zz-Info: (info.info.gz)Top, 52 lines --Bot------------------------------------------

仔細的看到上面這個顯示的結果,裡面的第一行顯示了很多的資訊喔!第一行裡面的資料意義為:

  • File:代表這個info page的資料是來自info.info檔案所提供的;
  • Node:代表目前的這個頁面是屬於Top節點。 意思是info.info內含有很多資訊,而Top僅是info.info檔案內的一個節點內容而已;
  • Next:下一個節點的名稱為Getting Started,你也可以按『N』到下個節點去;
  • Up:回到上一層的節點總攬畫面,你也可以按下『U』回到上一層;
  • Prev:前一個節點。但由於Top是info.info的第一個節點,所以上面沒有前一個節點的資訊。

從第一行你可以知道這個節點的內容、來源與相關連結的資訊。更有用的資訊是,你可以透過直接按下N, P, U來去到下一個、上一個與上一層的節點(node)!非常的方便! 第一行之後就是針對這個節點的說明。在上表的範例中,第二行以後的說明就是針對info.info內的Top這個節點所做的。 另外,如論你在任何一個頁面,只要不知道怎麼使用 info 了,直接按下 h 系統就能夠提供一些基本按鍵功能的介紹喔!

     copy of the license to the document, as described in section 6 of
     the license.

* Menu:

* Getting Started::             Getting started using an Info reader.
* Advanced::                    Advanced Info commands.
* Expert Info::                 Info commands for experts.
* Index::                       An index of topics, commands, and variables.


--zz-Info: (info.info.gz)Top, 52 lines --Bot-------------------------------------------
Basic Info command keys  # 這裡是按下 h 之後才會出現的一堆簡易按鈕列說明!

x           Close this help window.      # 按下 x 就可以關閉這個 help 的視窗
q           Quit Info altogether.        # 完全離開 info page 喔!
H           Invoke the Info tutorial.

Up          Move up one line.
Down        Move down one line.
DEL         Scroll backward one screenful.
SPC         Scroll forward one screenful.
-----Info: *Info Help*, 405 lines --Top-------------------------------------------------

再來,你也會看到有『Menu』那個咚咚吧!底下共分為四小節,分別是Getting Started等等的,我們可以使用上下左右按鍵來將游標移動到該文字或者『 * 』上面,按下Enter, 就可以前往該小節了!另外,也可以按下[Tab]按鍵,就可以快速的將游標在上表的畫面中的node間移動, 真的是非常的方便好用。如果將info.info內的各個節點串在一起並繪製成圖表的話,情況有點像底下這樣:

info page各說明文件相關性的示意圖
圖4.3.1、info page各說明文件相關性的示意圖

如同上圖所示,info的說明文件將內容分成多個node,並且每個node都有定位與連結。 在各連結之間還可以具有類似『超連結』的快速按鈕,可以透過[tab]鍵在各個超連結間移動。 也可以使用U,P,N來在各個階層與相關連結中顯示!非常的不錯用啦! 至於在info page當中可以使用的按鍵,可以整理成底下這樣,事實上,你也可以在 info page 中按下 h 喔!

按鍵進行工作
空白鍵向下翻一頁
[Page Down]向下翻一頁
[Page Up]向上翻一頁
[tab]在 node 之間移動,有 node 的地方,通常會以 * 顯示。
[Enter]當游標在 node 上面時,按下 Enter 可以進入該 node 。
b移動游標到該 info 畫面當中的第一個 node 處
e移動游標到該 info 畫面當中的最後一個 node 處
n前往下一個 node 處
p前往上一個 node 處
u向上移動一層
s(/)在 info page 當中進行搜尋
h, ?顯示求助選單
q結束這次的 info page

info page是只有Linux上面才有的產物,而且易讀性增強很多~不過查詢的指令說明要具有info page功能的話,得用info page的格式來寫成線上求助文件才行!我們CentOS 7將info page的文件放置到/usr/share/info/目錄中!至於非以info page格式寫成的說明文件(就是man page),雖然也能夠使用info來顯示,不過其結果就會跟man相同。 舉例來說,你可以下達『info man』就知道結果了! ^_^

4.3.4 其他有用的文件(documents)

剛剛前面說,一般而言,指令或者軟體製作者,都會將自己的指令或者是軟體的說明製作成『線上說明文件』! 但是,畢竟不是每個咚咚都需要做成線上說明文件的,還有相當多的說明需要額外的文件!此時,這個所謂的 How-To(如何做的意思)就很重要啦!還有,某些軟體不只告訴你『如何做』,還會有一些相關的原理會說明呢。

那麼這些說明文件要擺在哪裡呢?哈哈!就是擺在/usr/share/doc這個目錄啦!所以說,你只要到這個目錄底下, 就會發現好多好多的說明文件檔啦!還不需要到網路上面找資料呢!厲害吧!^_^ 舉例來說,你可能會先想要知道 grub2 這個新版的開機管理軟體有什麼能使用的指令?那可以到底下的目錄瞧瞧:

  • /usr/share/doc/grub2-tools-2.02

另外,很多原版軟體釋出的時候,都會有一些安裝須知、預計工作事項、未來工作規劃等等的東西,還有包括可安裝的程序等, 這些檔案也都放置在 /usr/share/doc 當中喔!而且/usr/share/doc這個目錄下的資料主要是以套件(packages)為主的, 例如 nano 這個軟體的相關資訊在 /usr/share/doc/nano-xxx(那個xxx表示版本的意思!)。

總結上面的三個咚咚(man, info, /usr/share/doc/),請記住喔:

  • 在終端機模式中,如果你知道某個指令,但卻忘記了相關選項與參數,請先善用 --help 的功能來查詢相關資訊;
  • 當有任何你不知道的指令或檔案格式這種玩意兒,但是你想要瞭解他,請趕快使用man或者是info來查詢!
  • 而如果你想要架設一些其他的服務,或想要利用一整組軟體來達成某項功能時,請趕快到/usr/share/doc 底下查一查有沒有該服務的說明檔喔!
  • 另外,再次的強調,因為Linux畢竟是外國人發明的,所以中文文件確實是比較少的! 但是不要害怕,拿本英文字典在身邊吧!隨時查閱!不要害怕英文喔!

4.4 超簡單文書編輯器: nano

在Linux系統當中有非常多的文書編輯器存在,其中最重要的就是後續章節我們會談到的 vim 這傢伙! 不過其實還有很多不錯用的文書編輯器存在的!在這裡我們就介紹一下簡單的nano這一支文書編輯器來玩玩先!

nano的使用其實很簡單,你可以直接加上檔名就能夠開啟一個舊檔或新檔!底下我們就來開啟一個名為text.txt的檔名來看看:

[dmtsai@study ~]$ nano text.txt
# 不管text.txt存不存在都沒有關係!存在就開啟舊檔,不存在就開啟新檔

  GNU nano 2.3.1                        File: text.txt                                 

   <==這個是游標所在處




                                  [ New File ]
^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Te   ^T To Spell
# 上面兩行是指令說明列,其中^代表的是[ctrl]的意思

如上圖所示,你可以看到第一行反白的部分,那僅是在宣告nano的版本與檔名(File: text.txt)而已。 之後你會看到最底下的三行,分別是檔案的狀態(New File)與兩行指令說明列。指令說明列反白的部分就是組合鍵, 接的則是該組合鍵的功能。那個指數符號(^)代表的是鍵盤的[Ctrl]按鍵啦!底下先來說說比較重要的幾個組合按鍵:

  • [ctrl]-G:取得線上說明(help),很有用的!
  • [ctrl]-X:離開nano軟體,若有修改過檔案會提示是否需要儲存喔!
  • [ctrl]-O:儲存檔案,若你有權限的話就能夠儲存檔案了;
  • [ctrl]-R:從其他檔案讀入資料,可以將某個檔案的內容貼在本檔案中;
  • [ctrl]-W:搜尋字串,這個也是很有幫助的指令喔!
  • [ctrl]-C:說明目前游標所在處的行數與列數等資訊;
  • [ctrl]-_:可以直接輸入行號,讓游標快速移動到該行;
  • [alt]-Y:校正語法功能開啟或關閉(按一下開、再按一下關)
  • [alt]-M:可以支援滑鼠來移動游標的功能

比較常見的功能是這些,如果你想要取得更完整的說明,可以在nano的畫面中按下[ctrl]-G或者是[F1]按鍵, 就能夠顯示出完整的nano內指令說明了。好了,請你在上述的畫面中隨便輸入許多字, 輸入完畢之後就儲存後離開,如下所示:

  GNU nano 2.3.1                        File: text.txt                                 

Type some words in this nano editor program.
You can use [ctrl] plus some keywords to go to some functions.
Hello every one.
Bye bye.
   <==這個是由標所在處

^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Te   ^T To Spell

此時按下[ctrl]-X會出現類似下面的畫面:

  GNU nano 2.3.1                        File: text.txt                                 

Type some words in this nano editor program.
You can use [ctrl] plus some keywords to go to some functions.
Hello every one.
Bye bye.


Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                         
 Y Yes
 N No           ^C Cancel

如果不要儲存資料只想要離開,可以按下N即可離開。如果確實是需要儲存的,那麼按下Y後,最後三行會出現如下畫面:

File Name to Write: text.txt  <==可在這裡修改檔名或直接按[enter]                     
^G Get Help          M-D DOS Format       M-A Append           M-B Backup File
^C Cancel            M-M Mac Format       M-P Prepend

如果是單純的想要儲存而已,直接按下[enter]即可儲存後離開nano程式。不過上表中最底下還有兩行,我們知道指數符號代表[ctrl], 那個M是代表什麼呢?其實就是[alt]囉!其實nano也不需要記太多指令啦!只要知道怎麼進入nano、怎麼離開,怎麼搜尋字串即可。 未來我們還會學習更有趣的vi呢!

4.5 正確的關機方法

OK!大概知道開機的方法,也知道基本的指令操作,而且還已經知道線上查詢了,好累呦! 想去休息呢!那麼如何關機呢?我想,很多朋友在DOS的年代已經有在玩電腦了! 在當時我們關掉DOS的系統時,常常是直接關掉電源開關,而 Windows 在你不爽的時候,按著電源開關四秒也可以關機!但是在Linux則相當的不建議這麼做!

Why?在 Windows (非 NT 主機系統) 系統中,由於是單人假多工的情況,所以即使你的電腦關機, 對於別人應該不會有影響才對!不過呢,在 Linux 底下,由於每個程序 (或者說是服務) 都是在在背景下執行的,因此,在你看不到的螢幕背後其實可能有相當多人同時在你的主機上面工作, 例如瀏覽網頁啦、傳送信件啦以 FTP 傳送檔案啦等等的,如果你直接按下電源開關來關機時, 則其他人的資料可能就此中斷!那可就傷腦筋了!

此外,最大的問題是,若不正常關機,則可能造成檔案系統的毀損 (因為來不及將資料回寫到檔案中,所以有些服務的檔案會有問題!)。所以正常情況下,要關機時需要注意底下幾件事:

  • 觀察系統的使用狀態
    如果要看目前有誰在線上,可以下達『who』這個指令,而如果要看網路的連線狀態,可以下達 『 netstat -a 』這個指令,而要看背景執行的程序可以執行『 ps -aux 』這個指令。使用這些指令可以讓你稍微瞭解主機目前的使用狀態!當然囉,就可以讓你判斷是否可以關機了 (這些指令在後面Linux常用指令中會提及喔!)

  • 通知線上使用者關機的時刻
    要關機前總得給線上的使用者一些時間來結束他們的工作,所以,這個時候你可以使用 shutdown 的特別指令來達到此一功能。

  • 正確的關機指令使用
    例如 shutdown 與 reboot 兩個指令!

所以底下我們就來談一談幾個與關機/重新開機相關的指令囉!

  • 將資料同步寫入硬碟中的指令: sync
  • 慣用的關機指令: shutdown
  • 重新開機,關機: reboot, halt, poweroff
Tips 鳥哥 由於Linux系統的關機/重新開機是很重大的系統運作,因此只有root才能夠進行例如shutdown, reboot等指令。 不過在某些distributions當中,例如我們這裡談到的CentOS系統,他允許你在本機前的tty1~tty7當中(無論是文字界面或圖形界面), 可以用一般帳號來關機或重新開機!但某些distributions則在你要關機時,他會要你輸入root的密碼呢!^_^
  • 資料同步寫入磁碟: sync

第零章、計算機概論裡面我們談到過資料在電腦中運作的模式, 所有的資料都得要被讀入記憶體後才能夠被CPU所處理,但是資料又常常需要由記憶體寫回硬碟當中(例如儲存的動作)。 由於硬碟的速度太慢(相對於記憶體來說),如果常常讓資料在記憶體與硬碟中來回寫入/讀出,系統的效能就不會太好。

因此在Linux系統中,為了加快資料的讀取速度,所以在預設的情況中, 某些已經載入記憶體中的資料將不會直接被寫回硬碟,而是先暫存在記憶體當中,如此一來, 如果一個資料被你重複的改寫,那麼由於他尚未被寫入硬碟中,因此可以直接由記憶體當中讀取出來, 在速度上一定是快上相當多的!

不過,如此一來也造成些許的困擾,那就是萬一你的系統因為某些特殊情況造成不正常關機 (例如停電或者是不小心踢到power)時,由於資料尚未被寫入硬碟當中,哇!所以就會造成資料的更新不正常啦! 那要怎麼辦呢?這個時候就需要sync這個指令來進行資料的寫入動作啦! 直接在文字介面下輸入sync,那麼在記憶體中尚未被更新的資料,就會被寫入硬碟中!所以,這個指令在系統關機或重新開機之前, 很重要喔!最好多執行幾次!

雖然目前的 shutdown/reboot/halt 等等指令均已經在關機前進行了 sync 這個工具的呼叫,不過,多做幾次總是比較放心點~呵呵~

[dmtsai@study ~]$ su -   # 這個指令在讓你的身份變成 root !底下請輸入 root 的密碼!
Password:  # 就這裡!請輸入安裝時你所設定的 root 密碼!
Last login: Mon Jun  1 16:10:12 CST 2015 on pts/0

[root@study ~]# sync
Tips 鳥哥 事實上sync也可以被一般帳號使用喔!只不過一般帳號使用者所更新的硬碟資料就僅有自己的資料,不像root可以更新整個系統中的資料了。
  • 慣用的關機指令: shutdown

由於Linux的關機是那麼重要的工作,因此除了你是在主機前面以實體終端機 (tty1~tty7) 來登入系統時, 不論用什麼身份都能夠關機之外,若你是使用遠端管理工具(如透過pietty使用ssh服務來從其他電腦登入主機), 那關機就只有root有權力而已喔!

嗯!那麼就來關機試試看吧!我們較常使用的是shutdown這個指令,而這個指令會通知系統內的各個程序 (processes),並且將通知系統中的一些服務來關閉。shutdown可以達成如下的工作:

  • 可以自由選擇關機模式:是要關機或重新開機均可;
  • 可以設定關機時間: 可以設定成現在立刻關機, 也可以設定某一個特定的時間才關機。
  • 可以自訂關機訊息:在關機之前,可以將自己設定的訊息傳送給線上 user 。
  • 可以僅發出警告訊息:有時有可能你要進行一些測試,而不想讓其他的使用者干擾,或者是明白的告訴使用者某段時間要注意一下!這個時候可以使用 shutdown 來嚇一嚇使用者,但卻不是真的要關機啦!

那麼shutdown的語法是如何呢?聰明的讀者大概已經開始找『男人』了!沒錯,隨時隨地的 man 一下,是很不錯的舉動!好了,簡單的語法規則為:

[root@study ~]# /sbin/shutdown [-krhc] [時間] [警告訊息]
選項與參數:
-k     : 不要真的關機,只是發送警告訊息出去!
-r     : 在將系統的服務停掉之後就重新開機(常用)
-h     : 將系統的服務停掉後,立即關機。 (常用)
-c     : 取消已經在進行的 shutdown 指令內容。
時間   : 指定系統關機的時間!時間的範例底下會說明。若沒有這個項目,則預設 1 分鐘後自動進行。
範例:
[root@study ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'
Broadcast message from root@study.centos.vbird (Tue 2015-06-02 10:51:34 CST):

I will shutdown after 10 mins
The system is going down for power-off at Tue 2015-06-02 11:01:34 CST!

在執行 shutdown 之後,系統告訴大家,這部機器會在十分鐘後關機!並且會將訊息顯示在目前登入者的螢幕前方! 你可以輸入『 shutdown -c 』來取消這次的關機指令。而如果你什麼參數都沒有加,單純執行 shutdown 之後, 系統預設會在 1 分鐘後進行『關機』的動作喔!我們也提供幾個常見的時間參數給你參考!

Tips 鳥哥 與舊版不同的地方在於,以前 shutdown 後面一定得要加時間參數才行,如果沒有加上的話,系統會跳到單人維護模式中。 在這一版中,shutdown 會以 1 分鐘為限,進行自動關機的任務!真的很不一樣喔!所以時間參數可以不用加囉!
[root@study ~]# shutdown -h now
立刻關機,其中 now 相當於時間為 0 的狀態
[root@study ~]# shutdown -h 20:25
系統在今天的 20:25 分會關機,若在21:25才下達此指令,則隔天才關機
[root@study ~]# shutdown -h +10
系統再過十分鐘後自動關機
[root@study ~]# shutdown -r now
系統立刻重新開機
[root@study ~]# shutdown -r +30 'The system will reboot' 
再過三十分鐘系統會重新開機,並顯示後面的訊息給所有在線上的使用者
[root@study ~]# shutdown -k now 'This system will reboot' 
僅發出警告信件的參數!系統並不會關機啦!嚇唬人!
  • 重新開機,關機: reboot, halt, poweroff

還有三個指令可以進行重新開機與關機的任務,那就是reboot, halt, poweroff。 其實這三個指令呼叫的函式庫都差不多,所以當你使用『man reboot』時,會同時出現三個指令的用法給你看呢。 其實鳥哥通常都只有記poweroff與reboot這兩個指令啦!一般鳥哥在重新開機時,都會下達如下的指令喔:

[root@study ~]# sync; sync; sync; reboot

既然這些指令都能夠關機或重新開機,那他有沒有什麼差異啊?基本上,在預設的情況下, 這幾個指令都會完成一樣的工作!(全部的動作都是去呼叫 systemctl 這個重要的管理命令!) 所以,你只要記得其中一個就好了!重點是,你自己習慣即可!

[root@study ~]# halt      # 系統停止~螢幕可能會保留系統已經停止的訊息!
[root@study ~]# poweroff  # 系統關機,所以沒有提供額外的電力,螢幕空白!

更多halt與poweroff的選項功能,請務必使用man去查詢一下喔!

  • 實際使用管理工具 systemctl 關機

如果你跟鳥哥一樣是個老人家,那麼一定會知道有個名為 init 的指令,這個指令可以切換不同的執行等級~ 執行等級共有 0~6 七個,其中 0 就是關機、6 就是重新開機等等。不過,這個 init 目前只是一個相容模式而已~ 所以在 CentOS 7 當中,雖然你依舊可以使用『 init 0 』來關機,但是那已經跟所謂的『執行等級』無關了!

那目前系統中所有服務的管理是使用哪個指令呢?那就是 systemctl 啦!這個指令相當的複雜!我們會在很後面系統管理員部份才講的到! 目前你只要學習 systemctl 當中與關機有關的部份即可。要注意,上面談到的 halt, poweroff, reboot, shutdown 等等,其實都是呼叫這個 systemctl 指令的喔! 這個指令跟關機有關的語法如下:

[root@study ~]# systemctl [指令]
指令項目包括如下:
halt       進入系統停止的模式,螢幕可能會保留一些訊息,這與你的電源管理模式有關
poweroff   進入系統關機模式,直接關機沒有提供電力喔!
reboot     直接重新開機
suspend    進入休眠模式

[root@study ~]# systemctl reboot    # 系統重新開機
[root@study ~]# systemctl poweroff  # 系統關機

4.6 重點回顧

  • 為了避免瞬間斷電造成的Linux系統危害,建議做為伺服器的Linux主機應該加上不斷電系統來持續提供穩定的電力;
  • 養成良好的操作習慣,盡量不要使用 root 直接登入系統,應使用一般帳號登入系統,有需要再轉換身份
  • 可以透過『活動總覽』查看系統所有使用的軟體及快速啟用慣用軟體
  • 在X的環境下想要『強制』重新啟動X的組合按鍵為:『[alt]+[ctrl]+[backspace]』;
  • 預設情況下,Linux提供tty1~tty6的終端機界面;
  • 在終端機環境中,可依據提示字元為$或#判斷為一般帳號或root帳號;
  • 取得終端機支援的語系資料可下達『echo $LANG』或『locale』指令;
  • date可顯示日期、cal可顯示日曆、bc可以做為計算機軟體;
  • 組合按鍵中,[tab]按鍵可做為(1)命令補齊或(2)檔名補齊或(3)參數選項補齊,[ctrl]-[c]可以中斷目前正在運作中的程式;
  • Linux 系統上的英文大小寫為不同的資料
  • 線上說明系統有man及info兩個常見的指令;
  • man page說明後面的數字中,1代表一般帳號可用指令,8代表系統管理員常用指令,5代表系統設定檔格式;
  • info page可將一份說明文件拆成多個節點(node)顯示,並具有類似超連結的功能,增加易讀性;
  • 系統需正確的關機比較不容易損壞,可使用shutdown, poweroff等指令關機。

4.7 本章習題

( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看)
情境模擬題一:我們在純文字界面,例如tty2裡面看到的歡迎畫面,就是在那個login:之前的畫面(CentOS Linux 7 ...)是怎麼來的?
  • 目標:瞭解到終端機介面的歡迎訊息是怎麼來的?
  • 前提:歡迎訊息的內容,是記錄到/etc/issue當中的
  • 需求:利用man找到該檔案當中的變數內容
情境模擬題一的解決步驟:
  1. 歡迎畫面是在/etc/issue檔案中,你可以使用『nano /etc/issue』看看該檔案的內容(注意,不要修改這個檔案內容,看完就離開),這個檔案的內容有點像底下這樣:
    \S
    Kernel \r on an \m
    
  2. 與tty3比較之下,發現到核心版本使用的是 \r 而硬體等級則是 \m 來取代,這兩者代表的意義為何? 由於這個檔案的檔名是issue,所以我們使用『man issue』來查閱這個檔案的格式;

  3. 透過上一步的查詢我們會知道反斜線(\)後面接的字元是與agetty(8)及mingetty(8)有關,故進行『man agetty』這個指令的查詢。

  4. 由於反斜線(\)的英文為『escape』因此在上個步驟的man環境中,你可以使用『/escape』來搜尋各反斜線後面所接字元所代表的意義為何。

  5. 請自行找出:如果我想要在/etc/issue檔案內表示『時間(localtime)』與『tty號碼(如tty1, tty2的號碼)』的話, 應該要找到那個字元來表示(透過反斜線的功能)?(答案為:\t 與 \l)

簡答題部分:
  • 簡單的查詢一下,Physical console / Virtual console / Terminal 的說明為何?
    console 有『控制台』的意思在裡面,因此你可以這樣看的:
    • 實體控制台:實體的螢幕、鍵盤、滑鼠等界面,讓妳可以使用該配備來操作系統的環境,就稱為實體控制台 (Physical console)
    • 虛擬控制台:由系統衍生出的虛擬控制台,你可以透過該虛擬控制台搭配你自己系統的實體配備,來操作遠端系統的環境。每個虛擬控制台都是獨立運作的。
    • 終端機:你可以用該界面來取得一個可以控制系統的 shell 環境。
    由這些定義來看,一般來說,我們取得可以與系統互動的環境,大致上都稱為 terminal 就是了。
  • 請問如果我以文字模式登入Linux主機時,我有幾個終端機介面可以使用?如何切換各個不同的終端機介面?
    共有六個, tty1 ~ tty6 ,切換的方式為 Ctrl + Alt + [F1]~[F6]
  • 在Linux系統中,/VBird與/vbird是否為相同的檔案?
    兩者為不同的檔案,因為 Linux 系統中,大小寫字母代表意義不一樣!
  • 我想要知道 date 如何使用,應該如何查詢?
    最簡單的方式就是使用 man date 或 info date 來查看,如果該套件有完整說明的話,那麼應該也可以在 /usr/share/doc 裡面找到說明檔!
  • 我想要在今天的 1:30 讓系統自己關機,要怎麼做?
    shutdown -h 1:30
  • 如果我 Linux 的 X Window 突然發生問題而掛掉,但 Linux 本身還是好好的,那麼我可以按下哪三個按鍵來讓 X window 重新啟動?
    [ctrl]+[alt]+[backspace]
  • 我想要知道 2010 年 5 月 2 日是星期幾?該怎麼做?
    最簡單的方式直接使用 cal 5 2010 即可找出 2010 年 5 月份的月曆。
  • 使用 man date 然後找出顯示目前的日期與時間的參數,成為類似:2015/10/16-20:03
    date +%Y/%m/%d-%H:%M
  • 若以 X-Window 為預設的登入方式,那請問如何進入 Virtual console 呢?
    可以按下 [Ctrl] + [Alt] + [F2] ~ [F6] 進入 Virtual console ( 共六個 ); 而按下 [Ctrl] + [Alt] + [F1] 可回到 X-Window 的 desktop 中!
  • 簡單說明在 bash shell 的環境下, [tab] 按鍵的用途?
    [Tab] 按鍵可做為命令補齊或檔案補齊的功能,與所接的指令位置有關。 接在一串指令的第一個單字後面,則為命令補齊,否則則為檔案補齊! 目前尚有選項/參數補齊的功能。
  • 如何強制中斷一個程式的進行?(利用按鍵,非利用 kill 指令)
    可以利用 [Ctrl] + c 來中斷!
  • Linux 提供相當多的線上查詢,稱為 man page,請問,我如何知道系統上有多少關於 passwd 的說明?又,可以使用其他的程式來取代 man 的這個功能嗎?
    可以利用 man -f passwd 來查詢,另外,如果有提供 info 的文件資料時 (在 /usr/share/info/ 目錄中) ,則能夠利用 info passwd 來查詢之!
  • 在 man 的時候, man page 顯示的內容中,指令(或檔案)後面會接一組數字,這個數字若為 1, 5, 8 ,表示該查詢的指令(或檔案)意義為何?
    代表意義為 1) 一般使用者可以使用的指令或可執行檔案 5)一些設定檔的檔案內容格式 8)系統管理員能夠使用的管理指令。
  • man page 顯示的內容的檔案是放置在哪些目錄中?
    放置在 /usr/share/man/ 與 /usr/local/man 等預設目錄中。
  • 請問這一串指令『 foo1 -foo2 foo3 foo4 』中,各代表什麼意義?
    foo1 一定是指令, -foo2 則是 foo1 這個指令的選擇項目參數, foo3 與 foo4 則不一定, 可能是 foo1 的參數設定值,也可能是額外加入的 parameters。
  • 當我輸入 man date 時,在我的終端機卻出現一些亂碼,請問可能的原因為何?如何修正?
    如果沒有其他錯誤的發生,那麼發生亂碼可能是因為語系的問題所致。 可以利用 export LANG=en_US.utf8 或者是 export LC_ALL=en_US.utf8 等設定來修訂這個問題。
  • 我輸入這個指令『ls -al /vbird』,系統回覆我這個結果:『ls: /vbird: No such file or directory』 請問發生了什麼事?』
    不要緊張,很簡單的英文,因為系統根本沒有 /vbird 這個檔案的存在啊! ^_^
  • 我想知道目前系統有多少指令是以 bz 為開頭的,可以怎麼作?
    直接輸入 bz[tab][tab] 就可以知道了!
  • 承上題,在出現的許多指令中,請問 bzip2 是幹嘛用的?
    在使用 man bzip2 之後,可以發現到,其實 bzip2 是用來作為壓縮與解壓縮檔案用的!
  • 在終端機裡面登入後,看到的提示字元 $ 與 # 有何不同?平時操作應該使用哪一個?
    # 代表以 root 的身份登入系統,而 $ 則代表一般身份使用者。依據提示字元的不同, 我們可以約略判斷登入者身份。一般來說,建議日常操作使用一般身份使用者登入,亦即是 $ !
  • 我使用dmtsai這個帳號登入系統了,請問我能不能使用reboot來重新開機? 若不能,請說明原因,若可以,請說明指令如何下達?
    理論上reboot僅能讓root執行。不過,如果dmtsai是在主機前面以圖形介面登入時,則dmtsai還是可以透過圖形介面功能來關機。

4.8 參考資料與延伸閱讀

  • 為了讓Linux的視窗顯示效果更佳,很多團體開始發展桌面應用的環境,GNOME/KDE都是。 他們的目標就是發展出類似Windows桌面的一整套可以工作的桌面環境,他可以進行視窗的定位、放大、縮小、 同時還提供很多的桌面應用軟體。底下是KDE與GNOME的相關連結:
    http://www.kde.org/
    http://www.gnome.org/
修改歷史:
  • 2002/07/16:第一次完成吧?
  • 2003/02/06:重新編排與加入 FAQ
  • 2004/05/01:在shutdown的指令部分,修改 shutdown -k "messages" 成為 shutdown -k now "messages",很抱歉,寫錯了!
  • 2005/06/17:將原本的文章移動到 這裡
  • 2005/06/27:終於寫完了!寫的真久~沒辦法,將 man page 擴大解釋,增加的幅度還挺多的!
  • 2005/08/23:剛剛才發現,那個man page的內部指令說明中, n 與 N 的說明錯誤了!已訂正!
  • 2007/12/08:透過網友sheaushyong的發現,之前將Live CD中,說明要掛載 / 才 fsck 是不對的!請查閱此處
  • 2008/09/03:將原本的Fedora Core IV的文章移動到此處
  • 2008/09/08:加入了一些圖示說明,尤其是info的部分多了一個示意圖!
  • 2008/09/09:加入了nano這個簡單的文書編輯器說明,以及情境模擬題的解釋!
  • 2009/09/17:修訂了顯示的資訊,將圖片重新抓圖彙整。
  • 2015/05/21:基於 CentOS 5.x 的首次開機說明文件移到這裡了!
2002/01/01以來統計人數
計數器
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

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