Linux 基礎學習篇 - Fedora Core 4

第五章、開機關機、線上求助與指令下達方式 - for Fedora Core 4

首次進入 Linux 的開機、關機與指令下達方式的介紹

最近更新時間: 2007/12/08

本文資料主要針對 Fedora Core 4 的系統進行說明, Fedora Core 1 主要是由 Red Hat Linux 9 改版而來, 這個 Red Hat Linux 9 並不是當前大家聽到的 RHEL 喔!那是在 RHEL 出現之前的產品,基本上是在 2003 年以前的作品了!Fedora Core 4 則是在 2005 年 6 月份釋出,使用的核心是 2.6.11 版,當時是很紅的一個作品!只是生命週期太短,所以用這個 Fedora 系列來介紹 Server, 當時的決定確實有點莫名其妙了...

建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。那為何還需要編輯 Fedora Core 4 的資料呢? 鳥哥只想要做個自己曾經撰寫過的文件內容保存而已囉! ^_^!最新文章請前往鳥站首頁查閱囉!

由於 Linux 在運作的過程中,會有很多的程式常駐在記憶體中來執行,此外, 由於 Linux 的磁碟使用效能比較高,利用了非同步的磁碟/記憶體資料傳輸的模式, 因此, Linux 系統是很怕不正常開關機的!因為,不正常開關機的結果, 將可能造成磁碟資料的損毀啊!(其實各個作業系統都很怕這個問題!)。 所以,在這個章節,鳥哥會跟大家介紹一下 Linux 正常開關機的步驟, 以及初次進入 Linux 的您,可以如何來操作文字介面的指令呢!要注意啊! 學習文字介面真的是一件很不錯的事喔! ^_^

首次登入系統

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

首次登入 FC 圖形介面

啊開機就開機呀!怎麼還有所謂的登入與離開呀!?呵呵!開什麼玩笑,在 Linux 裡面,正確的開關機可是很重要的!因為, 不正常的關機可能會導致整個系統的磁區錯亂,造成資料的毀損呢!這也是為什麼通常我們的 Linux 主機都會加掛一個不斷電系統囉!

在順利的安裝完成之後,就是要快樂的進入 Linux 的世界啦,這個時候,按下電源, 如果您預設是有啟動圖形介面的話,那麼應該會出現如下的字樣(這裡是以 FC4 作為範例介紹的,各家版本多少會有點不同的登入畫面,這無所謂! 只是作為選擇作業系統的一個畫面而已。不過要注意的是,開機前如果想要加入任何的參數, 就得在底下這個畫面來增加喔! ^_^)

Linux 的 grub 開機選單畫面
圖 1 、 Linux 的 grub 開機選單畫面

看到了嗎?!這就是開機的選單啊!在上圖的最上一行,告訴我們,如果想要進入額外的選單的話, 可以按任意鍵來進入,而這就是 grub 這個程式的功能了。另外,如果您在預設的時間內沒有按下任何按鍵( 在這一版的 Fedora ,預設是 3 秒鐘啦!),那麼 grub 開機管理程式就會以系統預設的核心來開機。 事實上, grub 的功能還有很多,包含可以在系統發生錯誤的時候,以額外的參數來強制開機, 以順利進行系統的修復等等功能呢!關於這個,我們留待後面的『系統管理員篇』再來詳細的介紹這個玩意兒~

此外,如果是以另一個開機管理程式( loader ),也就是 LILO 來設定你 MBR 的開機選單時, 那麼預設也是不會出現選單的!只會有出現『 boot: 』的畫面而已,如果按下『 Enter 』 就會以預設的開機檔來開機,如果按下『Tab』按鍵,就會出現其他可能的開機檔啦! 不過,在預設的情況下, FC4 並不會主動的安裝 Lilo 呢!但比較舊的版本還是存在的啦! 這部份我們同樣在管理員篇再介紹!

假設我們是以 FC4 預設的開機核心來開機,那麼接下來系統就會讀取核心程式, 並且開始跑一些硬體搜尋的資料, 然後是一些服務的開啟動作,就像下圖一般:

開機過程的文字畫面
圖 2 、 開機過程的文字畫面

如果一切都順利,嘿嘿!就會進入圖形畫面了!如同底下的模樣!(要注意, 我們這裡預設是以圖形介面來登入 Linux 的,所以才會有這樣的畫面, 如果您是以純文字介面來登入 Linux ,那麼就不會有這些畫面了。果真如此的話, 那麼這部分您稍微瞧一瞧即可!)

開機過程的圖形畫面
圖 3 、 開機過程的圖形畫面

如果在上圖按下了『顯示詳細資訊』時,就會顯示出一些文字訊息了, 對於初學者來說,或許沒有什麼太大的意義,不過,還是先告知一下呢, 這個時候,您可以看一看,到底有多少程式已經被啟動呢?

開機過程的圖形畫面
圖 4 、 開機過程的圖形畫面

怕了吧??有這麼多不知名的咚咚已經在您的 Linux 裡面啟動了呢! 裡面其實有很多是我們不需要的,在未來您瞭解了 Linux 相關的知識之後, 就可以將那些不需要的程式( 或稱為服務 )給他關掉了。目前還不需要緊張, 因為我們還沒有連上 Internet 哪!還不需要太緊張啦! ^_^

另外,如果您是使用本書介紹的 FC4 ( Fedora Core IV )來安裝您的 Linux , 並且也安裝了預設 X Window 啟動的狀態,那麼您就得要設定 X Window 的使用環境囉! 瞎密!?還需要設定 X Window 喔?沒錯啊! 因為您可以修改時區啊、選擇語系啊、設定螢幕相關的解析度與色澤度啊等等的, 這些都是 X Window 環境下需要的咚咚呢,所以,當然得要設定一下囉。而且設定很簡單啦! 用滑鼠點一點就好了,別緊張喔! ^_^

1. 歡迎畫面與授權
首先,螢幕會出現如下的歡迎畫面,主要分為左右兩個畫面,左邊僅是介紹流程到哪裡, 右邊才是內容設定的部分。至於最下方則是下個步驟與前個步驟的按鈕。 我們按下『下一步』後,進入授權的說明。

X Window 設定的歡迎畫面
圖 5 、 X Window 設定的歡迎畫面

在歡迎畫面之後,會出現如下的授權聲明,這個時候,當然給他『是的』就好了!

X Window 設定的授權同意書
圖 6 、 X Window 設定的授權同意書

2. 日期與時間的設定
接著下來,就是要設定目前的日期與時間了。您的系統時間可能會跑掉喔! 所以,這個時候請調整回來吧! ^_^ 畫面左邊可以點選正確的日期, 右方則可以填選正確的時間說!

X Window 設定的日期與時間
圖 7 、 X Window 設定的日期與時間

3. 解析度與彩度的設定
接下來則是重頭戲啦!就是 X Window 系統內的顯示卡模組、螢幕解析度與彩度設定。 一般來說,如果畫面上顯示的是您正確的顯示卡,那麼問題就不大了!而鳥哥喜好的解析度, 大概就是 1024x768 那種大大的畫面小小的字體~各人喜好啦! 而如果您的顯示卡記憶體沒有很大的話,彩度可以調小一點!

X Window 設定的解析度與彩度
圖 8 、 X Window 設定的解析度與彩度

4. 建立一般帳戶
一般來說,我們在操作 Linux 系統時,除非必要,否則不要使用 root 的權限, 這是因為管理員(root)的權限太大了!我們可能會隨時不小心搞錯了一個小咚咚, 結果卻造成整個系統的掛點去.....所以,建立一個一般身份使用者來操作,才是好習慣。 舉例來說,鳥哥都會建立一個一般身份使用者的帳號(例如底下的 dmtsai), 用這個帳號來操作 Linux ,而當我的主機需要額外的 root 權限來管理時, 才使用身份轉換指令(這個我們會在後面提到)來切換身份成為 root 來管理維護呢! ^_^

如下圖所示,登入的帳號名稱為 dmtsai ,而全名僅是一個簡易的說明而已, 那個地方隨便填沒關係(不填也無所謂!)。但是兩個密碼欄均需填寫, 他並不會顯示出您打入的字元,而是以 * 取代。兩個必須打相同的密碼喔!

X Window 設定的建立一般帳號使用者
圖 9 、 X Window 設定的建立一般帳號使用者

5. 額外的音效與軟體
如果您有音效卡的話(或者是主機板內建的音效晶片),就會出現如下的圖示。 如果確定音效晶片名稱沒有問題,那就直接下一步即可。

X Window 設定的音效卡確認
圖 10 、 X Window 設定的音效卡確認

如果您還想要額外的安裝其他的增強套件,這個時候可以在這裡加入。 不過,我們使用預設的 FC4 ,不需要額外的 CD 來安裝啦!

X Window 設定的額外的 CD
圖 11 、 X Window 設定的額外的 CD

這樣就完成了首次 X Window 的設定囉!

X Window 設定完成
圖 12 、 X Window 設定完成


接下來呢?嘿嘿!等著進入 X Window 的美美的畫面吧!如下圖所示,這是 Fedora 預設的登入畫面。您可以看到中間請你輸入『用戶名稱』,那就是帳號啦! 目前我們 Linux 系統上面應該會有一個 root 與剛剛才建立的 dmtsai 這兩個帳號呢。 你可以利用你剛剛自己建立的帳號來登入喔!

等待登入的圖形介面
圖 13 、 等待登入的圖形介面

另外,仔細看一下上圖中的最下方還有四個選項呢,分別是『語言』、『作業階段』、『重新開機』 與『關機』。他們各有什麼功能呢?首先,我們先來看看語言有啥功能吧? 用滑鼠按下『語言』之後,就會出現如下的畫面。嘿嘿!沒錯!您可以使用多種語言的顯示呢! 我們是使用繁體中文啊!

選擇這次工作的語言
圖 14 、 選擇這次工作的語言

在接下來則是『作業階段』,用滑鼠按下他,出現如下畫面。不要懷疑! 在這裡你就可以選擇你喜歡的 X Window Manager 了!亦即是視窗管理員啊! 因為鳥哥上次安裝時,僅安裝 KDE 而已,所以只會出現 KDE ,否則, 應該還有 GNOME 會出現在這個選單中喔!
Tips 鳥哥 什麼是 KDE 呢?為了讓 X Window 的顯示效果更佳,很多團體開始發展桌面應用的環境, KDE 就是其中一個。他們的目標就是發展出類似 Windows 桌面的一整套可以工作的桌面環境, KDE 是架構在 X Window 上面的,他可以進行視窗的定位、放大、縮小、 同時還提供很多的桌面應用軟體,詳情請參考 http://www.kde.org/。GNOME 則是另外一個計畫!
選擇喜好的 Window Manager
圖 15 、 選擇喜好的 Window Manager

各位觀眾!接下來,哈哈!終於來到了登入的階段了!如同下面所示, 輸入帳號後按下『Enter』再出現密碼後,再輸入密碼,這裡同樣的, 螢幕上不會出現密碼啦!會用星號(*)取代的喔!

登入時,帳號的填入
圖 16 、 登入時,帳號的填入

登入時,密碼的填入
圖 17 、 登入時,密碼的填入

接下來就能夠進入 X Window 啦!不過,系統還會很好心的詢問一下, 你要不要將這次的環境設定(KDE啊、語言啊等等的)保留成為預設值呢? 通常鳥哥都是選擇預設值啦!所以就給他保留成預設值吧!

是否保留此次登入的設定
圖 18 、 是否保留此次登入的設定

KDE 的簡易操作

嘿嘿嘿嘿!真是的,歷經千辛萬苦,終於還是給我進入了 KDE 的畫面喔~ 整個畫面如下所示,主要分為兩個區塊,亦即上方深藍色的桌面區, 以及下方的工作列(control panel)。在桌面上還有一些小圖示 (icons) 可以用來快速連結到某些內容。 其實跟微軟的 Windows 桌面很像啦!那些小圖示就是捷徑囉!

KDE 的桌面環境
圖 19 、 KDE 的桌面環境

整個桌面的使用方法幾乎跟 Windows 一模一樣,你可以在桌面上按下右鍵, 就可以有額外的選單出現;您也可以直接按下桌面上的『家目錄』,就會出現類似 Windows 的 『檔案總管』的檔案/目錄管理視窗,裡面則出現您自己的工作目錄;至於最下方的工作列, 最左邊出現的三個小圖示中,那個紅色的帽子的功能(KDE menu),就跟 Windows 的『開始』一樣, 你按下紅帽後,就會出現一個下拉式選單出來,您就可以選擇其他的相關程式來執行了。
Tips 鳥哥 最左邊的圖示中,其實在 KDE 原本的圖示,是以一個大 K 來展現的。 Fedora 則修訂成為小紅帽。某些版本還是保留 KDE 的 K 圖示呢! 另外,關於家目錄,記得我們之前說過 Linux 是多人多工的作業系統吧? 那麼每個人自然應該都會有自己的『工作目錄』,這個目錄是使用者可以完全掌控的, 所以就稱為『使用者個人家目錄』了。一般來說,家目錄都在 /home 底下, 以我的這次登入為例,我的帳號是 dmtsai ,那麼我的家目錄就應該在 /home/dmtsai 囉!
至於工作列左邊數來第二個 icon ,則是一個瀏覽器喔(Konqueror, 中文翻譯為『征服家』) 。他是 KDE 發展的一個瀏覽器, 如果未來您可以連上 Internet 後,就可以利用這個瀏覽器來瀏覽網站了!而第三個 icon 則是信件收發軟體,功能有點類似 Windows 的 outlook express 囉! 總之,如果您用過 Windows 的話,嘿嘿!這個 KDE 的環境幾乎與 Windows 相同, 你可以開始玩弄 X Window 囉。

且慢且慢!不知道您有沒有發現在第三個 icon 的右邊還有個四方形的咚咚, 裡面還分成四個小方格,那是個什麼咚咚?其實,他被稱為虛擬桌面(Virtual Desktop), 在你進入 KDE 後,應該是到『1』的畫面,但是我們的 KDE 提供了四個虛擬桌面, 你還可以分別到其他三個桌面去瞧一瞧呢!這預設的四個桌面都可以有自己的底圖, 而如果你有很多視窗時,就可以放在不同的桌面中,還不會互相影響呢! 趕緊去試看看吧!^_^

最後,在工作列的最右方有個小小的警告標誌(驚嘆號),那是什麼啊?! 沒有任何一個作業系統是絕對安全的!我們的 Linux 當然也是~ 而為了保持我們 Linux 的所有程式、套件的安全性,隨時將套件更新到最新版本, 是一個很好的習慣啊!在 Fedora 當中,我們使用的是 Red Hat 發展的 up2date 更新方法, 但是需要註冊才能使用。由於我們還沒有連上 Internet ,當然也就尚未註冊資料, 所以這裡才會顯示一個驚嘆號啦!無論如何,我們還可以透過其他較為快速的方法來升級, 不一定要用這個機制,所以,這個圖形就先讓他擺在這裡,先不要理他。
Tips 鳥哥 這裡說不要理他,並不是不重要喔!設定系統的自動升級是目前所有知名的作業系統 都在努力進行的工作,我們 Fedora 可以利用社群提供的 yum 或 apt 等機制來更新, 不需要透過遠在美國的 Fedora 計畫的主機來更新啦!不過,因為這個圖示判斷是以 有沒有註冊來判定,所以,常常我們自己升級了,但這裡還是會出現有問題的驚嘆號~ 因此,鳥哥才說,先不要理他。另外,這麼說您也就知道了,系統可能並不十分安全, 因此,在尚未提到更新方法之前,連上 Internet 可是很危險的喔!
至於更多的 X window 相關的使用技巧,以及相關的軟體應用,鳥哥這裡就不多說了, 因為鳥哥著重在 Linux 網路伺服器的應用啊! ^_^ 如果您還真的有興趣, 建議您可以前往楊老師的網站上看看喔!http://apt.nc.hcc.edu.tw/docs/FC3_X/

如果使用 KDE 完畢後,想要離開,那麼按下工作列最左方的小紅帽,選擇最下方的『登出』, 會出現底下的畫面,按下『End current session』就可以回到等待登入的畫面囉。

登出 KDE
圖 20 、 登出 KDE

同時給他注意一下,如果不想要玩 Linux 了,想要關機時,務必按下那個『關機』的選項, 以出現如下畫面後,選擇關閉電腦,這樣才行喔!不要直接按電源啊!拜託拜託!

關閉 Linux 主機
圖 21 、 關閉 Linux 主機

例題:(很簡單的,請讀者們自行操作找出答案喔)
  • 如何在工作列 (Control panel) 上新增其他的 icons ?
  • 嘗試瀏覽一下 /etc 這個目錄內,有哪些檔案/目錄存在?
  • 請將 /etc/crontab 這個檔案『複製』到您的家目錄中;
  • 嘗試修改螢幕解析度;
  • 請嘗試『搜尋』檔案,檔名為 crontab
  • 在您按下桌面的『家目錄』後,出現的視窗中,最右上角有個小釘子, 按下他之後,發生什麼現象?
  • 請修改四個 Virtual Desktop 的底色圖案,讓他們都不相同;
  • 工作列的最右方原本是數字形態的時鐘,請將他改為圖形顯示的時鐘;
  • 如何叫出控制台?控制台的『區域性』裡面的『鍵盤對應』有何用處?
特殊小技巧:
一般來說,我們是可以手動來直接修改 X Window 的設定檔的,不過, 修改完成之後 X Window 並不會立刻載入,必須要重新啟動 X 才行 (特別注意,不是重新開機,而是重新啟動 X !) 。那麼如何重新啟動 X 呢? 最簡單的方法就是在 X 的畫面中直接按下 [Alt] + [Ctrl] + [Backspace], 亦即是倒退鍵,這樣就可以直接重新啟動 X 囉!也就可以直接讀入設定檔囉! 另外,如果您的 X Window 因為不明原因導致有點問題時, 也可以利用這個方法來重新啟動 X 喔! ^_^

X window 與文字模式的切換

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

同時,系統為了判斷,會將 [F1] ~ [F6] 定義為 tty1 ~ tty6 的操作介面環境。 也就是說,當您按下 [crtl] + [Alt] + [F1] 這三個組合按鈕時,就會進入到 tty1 的 terminal 介面中了。同樣的 [F2] 就是 tty2 囉!那麼如何回到剛剛的 KDE 呢? 很簡單啊!按下 [Ctrl] + [Alt] + [F7] 就可以了!
Tips 鳥哥 註:某些 Linux distribution 會使用到 F8 這個終端介面做為他的桌面終端機,例如 OpenLinux Server 3.1.1 ,所以這部份還不是很統一!無論如何,嘗試按按 F7 or F8 就可以知道囉!
  • [Ctrl] + [Alt] + [F1] ~ [F6]  :文字介面登入 tty1 ~ tty6 終端機;
  • [Ctrl] + [Alt] + [F7]   :圖形介面桌面。
這也就是說,如果您是以文字介面登入的話,那麼您可以有 tty1 ~ tty6 這六個文字介面的終端機玩,但是圖形介面 則沒有任何東西。 至於以圖形介面登入的話,就可以使用圖形介面跟文字介面囉! 而如果您是以文字介面啟動 Linux 的,也就是說,您的 tty7 預設是沒有東西的, 那您可以直接下達:
[root@linux ~]# startx
『理論上』就可以啟動圖形介面啦!當然,『前提是您的 X Window 需要設定 OK,且您有安裝 KDE/GNOME 等桌面系統才行』。 好啦,我們知道在 Linux 開機之後,可以進入 X Window 或者是純文字介面環境, 那麼這兩種環境是否可以變更呢?呵呵!那就涉及所謂的『Run Level』了! 你可以將預設啟動的 X Window (Run level 等級為 5)改為不啟動(Run level 3), 只要修訂一下 /etc/inittab 這個檔案的內容,就能夠決定呢! 因為我們尚未提到 vi 以及開機過程的詳細資訊,所以啊, 這部分得到系統管理員篇幅的時候再說明!別擔心,再仔細的看下去吧!

以文字模式登入 linux

好了,剛剛我們有提到按下 [Ctrl] + [Alt] + [F1] 可以來到 tty1 的 terminal 當中, 而如果您是使用純文字介面 ( 其實是 run level 3 ) 啟動 Linux 主機的話, 那麼預設就是會來到 tty1 這個環境中。這個環境的等待登入的畫面有點像這樣:
Fedora Core release 3 (Heidelberg)
Kernel 2.6.11-1.27_FC3 on an i686

linux login: root
Password:
[root@linux ~]# _
上面顯示的內容是這樣的:
  • 第一行顯示的是您的 Linux distribution 與版本;
  • 第二行顯示的是您的 Linux 核心版本 (2.6.11-1.27_FC3) ,以及您的硬體等級 ( i686 )。
  • 第三行顯是您的主機名稱 (linux) ,至於 login 後面則是需要你輸入登入者的帳號。 在這裡請輸入您想要登入的使用者帳號。我們直接以 root 來登入。注意, 那個 root 就是『系統管理員』,也就是『超級使用者, Super User』, 在 Linux 主機之內,這個帳號代表的是『無窮的權力!』,任何事都可以進行的, 因此,使用這個帳號要『粉小心!』
  • 第四行則在第三行輸入後才會出現,要你輸入密碼囉!請注意,在輸入密碼的時候, 螢幕上面『不會顯示任何的字樣!』, 所以不要以為你的鍵盤壞掉去!
  • 第五行則是正確登入之後才顯示的訊息,最左邊的 root 顯示的是『目前使用者的帳號』, 而 @ 之後接的 linux 則是『主機名稱』,至於最右邊的 ~ 則指的是 『目前所在的目錄』,那麼那個 # 則是我們常常講的『提示字元』啦!
Tips 鳥哥 那個 ~ 符號代表的是『使用者的家目錄』的意思,他是個『變數!』 這相關的意義我們會在後續的章節依序介紹到。舉例來說, root 的家目錄在 /root, 所以 ~ 就代表 /root 的意思~而 dmtsai 的家目錄在 /home/dmtsai, 所以如果您以 dmtsai 登入時,他看到的 ~ 就會等於 /home/dmtsai 喔!

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

還有,上面的第一、第二行的內容其實是來自於 /etc/issue 這個檔案喔!
好了這樣就是登入主機了!很快樂吧!耶~

另外,在上面的例子當中,鳥哥是以 root 這個系統管理員身份的帳號來登入的。 但是,在一般時刻的 Linux 使用情況中,為了『系統與網路安全』的考量,通常我們都希望大家不要以 root 身份來登入主機的。這是因為系統管理員帳號 root 具有無窮大的權力, 例如他可以刪除任何一個檔案或目錄,因此,若您以 root 身份登入 Linux 系統,一個不小心下錯指令, 這個時候可不是『欲哭無淚』就能夠解決的了問題的~因此,一個稱職的網路/系統管理人員, 通常都會具有兩個帳號,平時以自己的一般帳號來使用 Linux 主機的任何資源, 有需要動用到系統功能修訂時,才會轉換身份成為 root 呢!所以, 鳥哥強烈建議您建立一個普通的帳號來供自己平時使用喔! 更詳細的帳號訊息,我們會在後續的『帳號管理』章節中再次提及! 這裡先有概念即可!

那麼如何離開系統呢?其實應該說『登出 Linux』才對!登出很簡單,直接這樣做:
[root@linux ~]# exit
就能夠登出 Linux 了。但是請注意:『離開系統並不是關機!』 基本上,Linux 本身已經有相當多的工作在進行,您的登入也僅是其中的一個『工作』而已, 所以當您離開時,那麼該工作就停止了,不過其他的工作但此時 Linux 其他的工作是還是進行的!在後面我們再來提如何正確的關機,這裡先建立起這個概念即可!

文字模式下指令的下達

其實我們所謂的『文字模式』就是指你在登入 Linux 的時候,得到的一個 Shell 啦! 那麼什麼是 Shell 呢?關於這個 Linux 重要的 bash Shell 的作用我們會在後面提到, 這裡您先有個概念就好了。 Shell 提供我們使用者一些工具,可以透過這個工具, 來控制 kernel 的動作囉! ^_^。好吧!開始來練一練打字了先!

開始下達指令

其實整個指令下達的方式很簡單,您只要記得幾個重要的概念就可以了。 舉例來說,你可以這樣下達指令的:
[root@linux ~]# command [-options] parameter1 parameter2 ...
                  指令     選項      參數(1)    參數(2)
說明:
0. 一行指令中第一個輸入的絕對是『指令(command)』或『可執行檔案』
1. command 為指令的名稱,例如變換路徑的指令為 cd 等等;
2. 中刮號[]並不存在於實際的指令中,而加入參數設定時,通常為 - 號,例如 -h;
   有時候完整參數名稱會輸入 -- 符號,例如 --help;
3. parameter1 parameter2.. 為依附在 option 後面的參數,
   或者是 command 的參數; 
4. command, -options, parameter1.. 這幾個咚咚中間以空格來區分,
   不論空幾格 shell 都視為一格; 
5. 按下 [Enter] 按鍵後,該指令就立即執行。[Enter] 按鍵為 <CR> 字符,
   他代表著一行指令的開始啟動。
6. 指令太長的時候,可以使用 \ 符號來跳脫 [Enter] 符號,
   使指令連續到下一行。注意! \ 後就立刻接特殊字符。
其他:
a. 在 Linux 系統中,英文大小寫字母是不一樣的。舉例來說, cd 與 CD 並不同。
b. 更多的介紹等到 bash 時,再來詳述。
注意到上面的說明當中,『第一個被輸入的資料絕對是指令或者是可執行的檔案』! 這個是很重要的概念喔!還有,按下 [Enter] 鍵表示要開始執行此一命令的意思。來,我們實際操作: 以 ls 這個『指令』列出『/root』這個目錄下的『所有隱藏檔與相關的檔案屬性』, 檔案的屬性的 option 為 -al ,所以:
[root@linux ~]# ls -al /root
[root@linux ~]# ls           -al   /root
上面這兩個指令的下達方式是一模一樣的執行結果喔!為什麼?請參考上面的說明吧! 關於更詳細的文字模式使用方式,我們會在『Shell 與 Shell Scripts』篇幅中再來強調喔! 此外,請特別留意,在 Linux 的環境中, 『大小寫字母是不一樣的東西!』也就是說,在 Linux 底下, VBird 與 vbird 這兩個檔案是『完全不一樣的』檔案呢!所以, 您在下達指令的時候千萬要注意到您的指令是大寫還是小寫。例如當您輸入底下這個指令的時候,看看有什麼現象:
[root@linux ~]# date
[root@linux ~]# Date
[root@linux ~]# DATE
很好玩吧!不一樣的大小寫顯示的結果會有錯誤訊息發生呢! 因此,請千萬記得這個狀態呦!好囉,底下我們來練習一下一些簡單的指令,好讓您可以瞭解指令下達方式的模式:

另外,很多時候您會發現,咦!怎麼我輸入指令之後出現的是亂碼?? 這跟鳥哥說的不一樣啊!呵呵!不要緊張~我們前面提到過, Linux 是支援多國語系的,若可能的話, 螢幕的訊息是會以該支援語系來輸出的。但是,我們的終端機介面 (terminal) 在預設的情況下, 無法支援以中文編碼輸出資料的。這個時候,我們就得將支援語系改為英文,才能夠顯示出正確的訊息。 那怎麼做呢?您可以這樣做:
[root@linux ~]# LANG=en
[root@linux ~]# LANGUAGE=en
[root@linux ~]# LC_ALL=en
[root@linux ~]# LC_CTYPE=en
[root@linux ~]# LC_TIME=en
注意一下,上面每一行指令都是用等號『 = 』連接並且等號兩邊沒有空格喔!是連續輸入的! 這樣一來,就能夠在『這次的登入』察看英文訊息囉!為什麼說是『這次的登入』呢? 因為,如果您登出 Linux 後,剛剛下達的指令就沒有用啦! ^_^,這個我們會在 bash shell 章節中好好聊一聊的!

基礎指令的操作

底下我們立刻來操作幾個簡單的指令看看囉!
  • 顯示日期的指令: date
  • 顯示日曆的指令: cal
  • 簡單好用的計算機: bc

1. 顯示日期的指令: date
如果在文字介面上面,想要知道目前的時間,那麼就直接在指令列模式輸入 date 即可顯示:
[root@linux ~]# date
Thu Jun 23 11:32:02 CST 2005
上面是顯示:星期四, 六月二十三日, 11:32 分, 02 秒,在 2005 年的 CST 時區!請趕快動手做做看呦! 好了,那麼如果我想要讓這個程式顯示出『 2005/06/23 』這樣的日期顯示方式呢? 那麼就使用 date 的相關功能吧!
[root@linux ~]# date +%Y/%m/%d
2005/06/23
[root@linux ~]# date +%H:%M
11:35
那個『 +%Y%m%d 』就是 date 的一些參數功能啦!很好玩吧!那你問我, 鳥哥怎麼知道這些參數的啊?要背起來嗎?當然不必啦!底下再告訴你!

2. 顯示日曆的指令: cal
那如果我想要列出目前這個月份的月曆呢?呵呵!直接給他下達 cal 即可!
[root@linux ~]# cal
      June 2005
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
基本上, cal (calendar) 這個指令可以做的事情還很多,你可以顯示整年的月曆情況:
[root@linux ~]# cal 2005
                               2005

       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          1  2  3  4  5          1  2  3  4  5
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 12
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
16 17 18 19 20 21 22   20 21 22 23 24 25 26   20 21 22 23 24 25 26
23 24 25 26 27 28 29   27 28                  27 28 29 30 31
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    1  2  3  4  5  6  7             1  2  3  4
 3  4  5  6  7  8  9    8  9 10 11 12 13 14    5  6  7  8  9 10 11
10 11 12 13 14 15 16   15 16 17 18 19 20 21   12 13 14 15 16 17 18
17 18 19 20 21 22 23   22 23 24 25 26 27 28   19 20 21 22 23 24 25
24 25 26 27 28 29 30   29 30 31               26 27 28 29 30

        July                  August                September
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6                1  2  3
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    4  5  6  7  8  9 10
10 11 12 13 14 15 16   14 15 16 17 18 19 20   11 12 13 14 15 16 17
17 18 19 20 21 22 23   21 22 23 24 25 26 27   18 19 20 21 22 23 24
24 25 26 27 28 29 30   28 29 30 31            25 26 27 28 29 30
31
       October               November               December
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5                1  2  3
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    4  5  6  7  8  9 10
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   11 12 13 14 15 16 17
16 17 18 19 20 21 22   20 21 22 23 24 25 26   18 19 20 21 22 23 24
23 24 25 26 27 28 29   27 28 29 30            25 26 27 28 29 30 31
30 31
也就是說,基本上, cal 接的語法為:
[root@linux ~]# cal [month] [year]
所以,我想要知道 2005 年 7 月的月曆,可以直接下達:
[root@linux ~]# cal 7 2005
      July 2005
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 來取得日曆上面的日期囉!簡直就是萬年曆啦! ^_^

3. 簡單好用的計算機: bc
如果我想要使用簡單的計算器呢?很容易呀!就使用 bc 即可!在輸入 bc 之後, 顯示出版本資訊之後,就進入到等待指示的階段。如下所示:
[root@linux ~]# bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_<==這個時候,游標會停留在這裡等待您的輸入
事實上,我們是『進入到 bc 這個指令的工作環境當中』了! 就好像我們在 Windows 裡面使用『小算盤』一樣!所以,我們底下嘗試輸入的資料, 都是在 bc 程式當中在進行運算的動作。所以囉,您輸入的資料當然就得要符合 bc 的要求才行! 在基本的 bc 計算機操作之前,先告知幾個使用的運算子好了:
  • + 加法
  • - 減法
  • * 乘法
  • / 除法
  • ^ 指數
  • % 餘數
好!讓我們來使用 bc 計算一些咚咚吧!
[root@linux ~]# bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 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 就是小數點位數,例如:
[root@linux ~]# bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 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
好了!就是這樣子啦!簡單的很吧!以後你可以輕輕鬆鬆的進行加減乘除啦!
Tips 鳥哥 如果照前面說的,我們執行 bc 會進入 bc 的軟體功能, 那麼我怎麼知道目前等待輸入的地方是某個軟體的功能還是 shell 的可輸入指令的環境下? 其實,在你進入 Linux 的時候,就會出現提示字元了不是嗎?以我們上頭的例子來說, 提示字元就是『 [root@linux ~]# 』,如果你發現在你等待輸入的地方並非提示字元, 那通常就是已經進入到某個軟體的功能當中啦!要注意喔!

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

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

  • [Tab] 按鍵
  • [Tab] 按鍵就是在鍵盤的大寫燈切換按鍵([Caps Lock])上面的那個按鍵! 在各種 Unix-Like 的 Shell 當中,這個 [Tab] 按鍵算是 Linux 的 Bash shell 最棒的功能之一了! 他具有『命令補全』與『檔案補齊』的功能喔!可以讓我們少打很多字,但重點是, 可以避免我們打錯指令或檔案名稱呢!很棒吧!但是 [Tab] 按鍵在不同的地方輸入,會有不一樣的結果喔! 我們舉下面的例子來說明。上一小節我們不是提到 cal 這個指令嗎?如果我在指令列輸入 ca 再按兩次 [tab] 按鍵,會出現什麼訊息?
    [root@linux ~]# ca[tab][tab]    <==[tab]按鍵是緊接在 a 字母後面!
    # 上面的 [tab] 指的是『按下那個tab鍵』,不是要您輸入 ca[... 的意思喔!
    cadaver             callgrind_control   capiinit            case
    cal                 cancel              capinfos            cat
    calibrate_ppa       cancel.cups         captoinfo           catchsegv
    caller              capifax             card
    callgrind           capifaxrcvd         cardctl
    callgrind_annotate  capiinfo            cardmgr
    
    發現什麼事?所有以 ca 為開頭的指令都被顯示出來啦!很不錯吧! 那如果你輸入 ls -al ~/.bash 兩個 [tab] 會出現什麼?
    [root@linux ~]# ls -al ~/.bash[tab][tab]
    .bash_history  .bash_logout   .bash_profile  .bashrc
    
    咦!在該目錄下面所有以 .bash 的檔案名稱都會被顯示出來了呢!注意看上面兩個例子喔, 我們按 [tab] 按鍵的地方如果是在 command (第一個輸入的資料) 後面時,他就代表著 『命令補全』,如果是接在第二個字以後的,就會變成『檔案補齊』的功能了!
    • [Tab] 接在一串指令的第一個字的後面,則為命令補全;
    • [Tab] 接在一串指令的第二個字以後時,則為『檔案補齊』!
    善用 [tab] 按鍵真的是個很好的習慣!可以讓您避免掉很多輸入錯誤的機會!!!

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

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

  • [Ctrl]-d 按鍵
  • 那麼 [Ctrl]-d 是什麼呢?就是 [Ctrl] 與 d 按鍵的組合啊!這個組合按鍵通常代表著: 『鍵盤輸入結束 (End Of File, EOF 或 End Of Input)』的意思! 另外,他也可以用來取代 exit 的輸入呢!例如您想要直接離開文字介面, 可以直接按下 [Ctrl]-d 就能夠直接離開了(相當於輸入 exit 啊!)。
    總之,在 Linux 底下,文字介面的功能是很強悍的!要多多的學習他, 而要學習他的基礎要訣就是......多使用、多熟悉啦!

    錯誤訊息的察看

    萬一我下達了錯誤的指令怎麼辦?不要緊呀!您可以 藉由螢幕上面顯示的錯誤訊息來瞭解你的問題點, 那就很容易知道如何改善這個錯誤訊息囉!舉個例子來說,假如想執行 date 卻打錯成為 DATE 時,這個錯誤的訊息是這樣顯示的:
    [root@linux ~]# DATE
    -bash: DATE: command not found
    
    上面那個 bash: 表示的是我們的 Shell 的名稱,那麼什麼是 Shell 呢?還記不記得我們在 什麼是 Linux 的時候提到的『使用者、使用者介面、核心、硬體』的架構呢?呵呵!那個 shell 就是使用者介面囉!在 Linux 底下預設的使用者介面就是 bash shell 囉!

    好了,那麼上面的例子說明了, bash 有錯誤,什麼錯誤呢? bash告訴你:
      DATE: command not found
    字面上的意思是說『指令找不到』,那個指令呢?就是 DATE 這個指令啦! 所以說,系統上面可能並沒有 DATE 這個指令囉!就是這麼簡單!那如果是底下的樣子呢?
    [root@linux ~]# cal 13 2005
    cal: illegal month value: use 1-12
    
    呵呵!這下子換到 cal 警告你啦, illegal month value: use 1-12,看不懂英文? 沒關係,又不是考試,趕快拿本英文字典在旁邊對照著看呀!意思是說『 不合法的月份值,應該使用 1-12 之間的數字!』 所以各位看倌您看看,跟著螢幕的錯誤訊息瞧,很容易知道問題的錯誤是什麼吧! 因此,以後如果出現了問題,螢幕上的訊息真的是很重要的呢!不要忽略了他呦!
    先介紹這幾個指令讓您玩一玩先,更詳細的指令操作方法我們會在第三篇的時候再進行介紹!好了,萬一我在操作 date 這個指令的時候,手邊又沒有這本書,我要怎麼知道要如何加參數, 好讓輸出的結果符合我想要的輸出格式呢?嘿嘿!到下一節鳥哥來告訴你怎麼辦吧!

    Linux 系統上的線上求助 man page/info page

    先來瞭解一下, Linux 有多少指令呢?在文字模式下,你可以直接按下兩個 [Tab] 按鍵,看看總共有多少指令??呵呵!少說也有 2000 多個以上的指令!! 那在 Linux 裡面到底要不要背『指令』啊?可以啊!你背啊!這種事,鳥哥這個『忘性』特佳的老人家, 實在是背不起來 @_@ ~當然啦,有的時候為了要考試 (例如一些認證考試等等的) 還是需要背一些重要的指令。 不過,鳥哥主要還是以理解『在什麼情況下,應該要使用哪方面的指令』為準的!

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

    我們底下就來談一談,Linux 到底有多少的線上文件資料呢?

    man page

    嗄?不知道怎麼使用 date 這個指令?嘿嘿嘿!不要擔心,我們 Linux 上面的線上求助系統已經都幫您想好要怎麼辦了,所以你只要使用簡單的方法去尋找一下說明的內容, 馬上就清清楚楚的知道該指令的用法了!怎麼看呢?就是找男人( man ) 呀!?喔!不是啦!這個 man 是 manual (操作說明) 的簡寫啦!只要下達: 『man date』 馬上就會有清楚的說明出現在你面前喔!如下所示:
    [root@linux ~]# LANG="en"
    # 還記得這個咚咚的用意吧?前面提過了,是為了『語系』的需要啊!下達過一次即可!
    [root@linux ~]# man 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.
    
           -d, --date=STRING
                  display time described by STRING, not 'now'
    
           -f, --file=DATEFILE
                  like --date once for each line of DATEFILE
    
           -ITIMESPEC, --iso-8601[=TIMESPEC]
                  output  date/time  in ISO 8601 format.  TIMESPEC='date' for date
                  only, 'hours', 'minutes', or 'seconds' for date and time to  the
                  indicated  precision.   --iso-8601  without TIMESPEC defaults to
                  'date'.
    ................(略)....
    AUTHOR
           Written by David MacKenzie.
    
    REPORTING BUGS
           Report bugs to .
    
    COPYRIGHT
           Copyright ?2004 Free Software Foundation, Inc.
           This is free software; see the source for copying conditions.  There is
           NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR
           PURPOSE.
    
    SEE ALSO
           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
    
           should give you access to the complete manual.
    
    date (coreutils) 5.2.1             May 2005                            DATE(1)
    
    看!馬上就知道一大堆的用法了!如此一來,不就可以知道 date 的相關參數了嗎?呵呵!真方便! 而出現的這個螢幕畫面,我們稱呼他為 man page , 您可以在裡頭查詢他的用法與相關的參數說明。如果仔細一點來看這個 man page 的話, 您會發現幾個有趣的東西。

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

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

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

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

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

    有時候除了這些外,還可能會看到 Authors 與 Copyright 等等,不過也有很多時候僅有 NAME 與 DESCRIPTION 等部分。 通常鳥哥在查詢某個資料時,一定會察看 NAME 約略看一下這個資料的意思,再詳看一下 DESCRIPTION ,這個 DESCRIPTION 會提到很多相關的資料與使用時機,從這個地方可以學到很多小細節呢!而如果這個指令其實很熟悉了 (例如上面的 date ),那麼鳥哥主要就是查詢關於 OPTIONS 的部分了!可以知道每個參數的意思, 這樣就可以下達比較細部的指令內容呢!最後,鳥哥會再看一下,啊跟這個資料有關的還有哪些東西可以使用的? 舉例來說,上面的 SEE ALSO 就告知我們還可以利用『info coreutils date』來進一步查閱資料, 某些說明內容還會列舉有關的檔案 (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.config ( 有的版本為 man.conf 或 manpath.conf) 即可囉!至於更多的關於 man 的訊息您可以使用『 man man 』來查詢呦!關於更詳細的設定,我們會在 Shell 的章節當中繼續的說明喔!

    man 還有一些有趣的使用方式呢!舉例來說,如果您還想要知道更多跟 man 有較相關的訊息, 可以下達:
    [root@linux ~]# man -f man
    man                  (1)  - format and display the on-line manual pages
    man                  (7)  - macros to format man pages
    man.conf [man]       (5)  - configuration data for man
    
    看到了嗎?使用 -f 的參數,可以取得更多的 man 的相關資訊,而上頭這個表格當中,也有提示了 (數字) 的內容, 舉例來說,第二行的『 man (7) 』表示有個 man (7) 的說明文件存在喔!但是卻有個 man (1) 存在啊! 那當我們下達『 man man 』的時候,到底是找到哪一個說明檔呢?嘿嘿!混亂了吧?! 其實,您可以指定不同的文件的,舉例來說,上表當中的兩個 man 您可以這樣將他的文件叫出來:
    [root@linux ~]# man 1 man  <==這裡是用 man(1) 的文件資料
    [root@linux ~]# man 7 man  <==這裡是用 man(7) 的文件資料
    
    你可以自行將上面兩個指令輸入一次看看,就知道,兩個指令輸出的結果是不同的。 那個 1, 7 就是分別取出在 man page 裡面關於 1 與 7 相關資料的文件檔案囉! 好了,那麼萬一我真的忘記了下達數字,只有輸入『 man man 』時,那麼取出的資料到底是 1 還是 7 啊? 這個就跟搜尋的順序有關了。搜尋的順序是記錄在 /etc/man.conf 這個設定檔當中, 先搜尋到的那個說明檔,就會先被顯示出來! 一般來說,通常會先找到數字較小的那個啦!因為排序的關係啊!所以, man man 會跟 man 1 man 結果相同! 這樣說,可以明白了嗎?!

    除此之外,我們還可以利用『關鍵字』找到更多的說明文件資料喔!例如:
    [root@linux ~]# man -k man
    . [builtins]         (1)  - bash built-in commands, see bash(1)
    alias [builtins]     (1)  - bash built-in commands, see bash(1)
    ........(中間省略)....
    xsm                  (1x)  - X Session Manager
    zshall               (1)  - the Z shell meta-man page
    zshbuiltins          (1)  - zsh built-in commands
    zshzle               (1)  - zsh command line editor
    
    看到了吧!很多對吧!因為這個是利用關鍵字將說明文件裡面只要含有 man 那個字眼的(不見得是完整字串) 就將他取出來!很方便吧! ^_^

    事實上,還有兩個指令與 man page 有關呢!而這兩個指令是 man 的簡略寫法說~ 就是這兩個:
    [root@linux ~]# whatis  [指令或者是資料]   <==相當於 man -f [指令或者是資料]
    [root@linux ~]# apropos [指令或者是資料]   <==相當於 man -k [指令或者是資料]
    
    Tips 鳥哥 一般來說,鳥哥是真的不會去背指令的,只會去記住幾個常見的指令而已。那麼鳥哥是怎麼找到所需要的指令呢? 舉例來說,列印的相關指令,鳥哥其實僅記得 lp (line print)而已。那我就由 man lp 開始,去找相關的說明, 然後,再以 lp[tab][tab] 找到任何以 lp 為開頭的指令,找到我認為可能有點相關的指令後, 再以 man 去查詢指令的用法!呵呵!所以,如果是實際在管理 Linux , 那麼真的只要記得幾個很重要的指令即可,其他需要的,嘿嘿!努力的找男人(man)吧!

    info page

    在所有的 Unix Like 系統當中,都可以利用 man 來查詢指令或者是相關檔案的用法; 但是,在 Linux 裡面則又額外提供了一種線上求助的方法,那就是利用 info 這個好用的傢伙啦! 基本上, info 與 man 其實差不多,而且,文件資料必須要以 info 寫成的,才會比較完整。 而這個支援 info 指令的文件是放置在 /usr/share/info/ 這個目錄當中的。 舉例來說,info 的說明文件有寫成 info 格式,所以,你使用 info info 可以得到:
    [root@linux ~]# 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.
    
       There are two primary Info readers: `info', a stand-alone program
    designed just to read Info files, and the `info' package in GNU Emacs,
    a general-purpose editor.  At present, only the Emacs reader supports
    using a mouse.
    
       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.
    
       To read about expert-level Info commands, type `n' twice.  This
    brings you to `Info for Experts', skipping over the `Getting Started'
    chapter.
    
    * Menu:
    
    * Getting Started::             Getting started using an Info reader.
    * Expert Info::                 Info commands for experts.
    * Creating an Info File::       How to make your own Info file.
    * Index::                       An index of topics, commands, and variables.
    
    --zz-Info: (info.info.gz)Top, 29 lines --All---------------------------------
    Welcome to Info version 4.8. Type ? for help, m for menu item.
    
    仔細的看到上面這個表,您可以發現最後一行顯示出目前的 info 這個程式的版本資訊, 你可以按下 m 這個按鍵,就可以有更多的指令說明。 而第一行則顯示目前這個 info page 的檔名, 注意到我將他顯示成為特殊字體的那幾個部分,第一行的 Node 顯示,這個畫面是『在第幾層?』的意思, 因為 info page 將所有有關的資料都進行了連結,因此,他可以利用分層的架構來說明每個文件資料呢! 而且還有下一層資料,因此,您會看到第一行還有 Next 這個字眼。這表示, 您只要輸入『n』這個按鍵後,就可以跑到下一層, 也就是 Getting Started 那個章節去了!呵呵!很方便吧!

    再來,你也會看到有『Menu』那個咚咚吧!底下共分為四小節,分別是 Getting Started 等等的, 我們可以將游標移動到該文字或者 * 上面,按下 Enter , 就可以前往該小節了!而,利用 [Tab] 按鍵,就可以快速的將游標在上表的畫面中的 node 間移動,真的是很方便啦!不過,什麼是 node 呢?就是各個入口點稱為 node 。 舉例來說,上個表格當中,按下 n 或者是將游標游動到 Next 這個字上,按下 Enter ,就可以前往下個說明了。 這就是 node 啊!

    不過,就如同前面說的, info 需要文件有支援才行,如果我們以沒有支援的 man 來看的話, info man 的結果與 man man 的結果就一樣了~沒有不同啊!

    至於 info page 當中可以使用的按鍵,可以整理成這樣:

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

    info page 也是很不錯用啦!有興趣的話,可以多多去查詢查詢哩! ^_^

    其他有用的文件(documents)

    剛剛前面說,一般而言,指令或者軟體製作者,都會將自己的指令或者是軟體的說明製作成『線上說明文件』! 但是,畢竟不是每個咚咚都需要做成線上說明文件的,還有相當多的說明需要額外的文件!此時,這個所謂的 How-To ( 如何做的意思 ) 就很重要啦!還有,某些軟體不只告訴你『如何做』, 還會有一些相關的原理會說明,那麼這些說明文件要擺在哪裡呢?哈哈!就是擺在這個目錄 /usr/share/doc 啦!所以說,其實,您只要到這個目錄底下,就會發現好多好多的說明文件檔啦!還不需要到網路上面找資料呢!厲害吧! ^_^

    舉例來說,您想要知道這一版的 Fedora 相關的各項資訊,可以直接到:
    • /usr/share/doc/fedora-release-4
    這個目錄來查閱一下即可瞭解!如果想要知道 bash 是什麼,則可以到 /usr/share/doc/bash-3.0 這個目錄中! 很多東西呦!而且, /usr/share/doc 這個目錄下的資料主要是以套件 (packages) 為主的, 例如 GCC 這個套件的相關資訊在 /usr/share/doc/gcc-xxx (那個 xxx 表示版本的意思!)。 未來可得多多查閱這個目錄喔! ^_^

    記住喔!在文字介面下,有任何你不知道的玩意兒,但是你想要瞭解他,請趕快使用 man 或者是 info 來查詢這個玩意兒!此外,如果你想要架設一些其他的服務時,請趕快到 /usr/share/doc 底下查一查有沒有該服務的說明檔喔!另外,再次的強調,因為 Linux 畢竟是外國人發明的,所以中文文件確實是比較少的!但是不要害怕,拿本英文字典在身邊吧! 隨時查閱!不要害怕英文喔!

    正確的關機方法(shutdown, reboot, init, halt)

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

    Why?在 Windows (非 NT 主機系統) 系統中,由於是單人假多工的情況,所以即使你的電腦關機, 對於別人應該不會有影響才對!不過呢,在 Linux 底下,由於每個程序(或者說是服務) 都是在在背景下執行的,因此,在你看不到的螢幕背後其實可能有相當多人同時在你的主機上面工作, 例如瀏覽網頁啦、傳送信件啦以 FTP 傳送檔案啦等等的,如果你直接按下電源開關來關機時, 則其他人的資料可能就此中斷!那可就傷腦筋了!此外,最大的問題是, 若不正常關機,則可能造成檔案系統的毀損 (因為來不及將資料回寫到檔案中,所以有些服務的檔案會有問題!)。正常情況下,要關機時需要注意底下幾件事:
    • 觀察系統的使用狀態:如果要看目前有誰在線上,可以下達 who 這個指令,而如果要看網路的連線狀態,可以下達 netstat -a 這個指令,而要看背景執行的程序可以執行 ps -aux 這個指令。使用這些指令可以讓你稍微瞭解主機目前的使用狀態!當然囉,就可以讓你判斷是否可以關機了 (這些指令在後面 Linux 常用指令中會提及喔!)

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

    • 正確的關機指令使用:例如 shutdown 與 reboot 兩個指令!
    所以底下我們就來談一談關於這個關機的正確指令用法囉!
    • 將資料同步寫入硬碟中的指令: sync
    • 慣用的關機指令: shutdown
    • 重新開機,關機: reboot, halt, poweroff

    資料同步寫入磁碟: sync

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

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

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

    慣用的關機指令: shutdown

    好了,由於關機有種種的限制因子在,所以只有 root 有權力關機而已喔! 嗯!那麼就來關機試試看吧!我們較常使用的是 shutdown 這個指令,而這個指令會通知系統內的各個程序( processes ),並且將通知系統中的 run-level 內的一些服務來關閉( run-level 會在後面告知喔 )。shutdown 可以達成:
    • 可以自由選擇關機模式:是要關機、重新開機或進入單人操作模式均可;
    • 可以設定關機時間: 可以設定成現在立刻關機, 也可以設定某一個特定的時間才關機。
    • 可以自訂關機訊息:在關機之前,可以將自己設定的訊息傳送給線上 user 。
    • 可以僅發出警告訊息:有時有可能你要進行一些測試,而不想讓其他的使用者干擾, 或者是明白的告訴使用者某段時間要注意一下!這個時候可以使用 shutdown 來嚇一嚇使用者,但卻不是真的要關機啦!
    • 可以選擇是否要 fsck 檢查檔案系統 。
    那麼 shutdown 的語法是如何呢?聰明的讀者大概已經開始找『男人』了!沒錯,隨時隨地的 man 一下,是很不錯的舉動!好了,簡單的語法規則為:
    [root@linux ~]# /sbin/shutdown [-t 秒] [-arkhncfF] [時間] [警告訊息]
    實例:
    [root@linux ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'
    告訴大家,這部機器會在十分鐘後關機!並且會顯示在目前登入者的螢幕前方!
    至於參數有哪些呢?以下介紹幾個吧!
    
    -t sec  : -t 後面加秒數,亦即『過幾秒後關機』的意思
    -k      : 不要真的關機,只是發送警告訊息出去!
    -r      : 在將系統的服務停掉之後就重新開機
    -h      : 將系統的服務停掉後,立即關機。 
    -n      : 不經過 init 程序,直接以 shutdown 的功能來關機
    -f      : 關機並開機之後,強制略過 fsck 的磁碟檢查
    -F      : 系統重新開機之後,強制進行 fsck 的磁碟檢查
    -c      : 取消已經在進行的 shutdown 指令內容。
    
    此外,需要注意的是,時間參數請務必加入,否則會自動跳到 run-level 1 (就是單人維護的登入情況),這樣就傷腦筋了!底下提供幾個例子吧!
    [root@linux ~]# shutdown -h now
    立刻關機,其中 now 相當於時間為 0 的狀態
    [root@linux ~]# shutdown -h 20:25
    系統在今天的 20:25 分會關機
    [root@linux ~]# shutdown -h +10
    系統再過十分鐘後自動關機
    [root@linux ~]# shutdown -r now
    系統立刻重新開機
    [root@linux ~]# shutdown -r +30 'The system will reboot' 
    再過三十分鐘系統會重新開機,並顯示後面的訊息。
    [root@linux ~]# shutdown -k now 'This system will reboot' 
    僅發出警告信件的參數!系統並不會關機啦!嚇唬人!
    

    重新開機,關機: reboot, halt, poweroff

    這三個指令差不多,用途上有些不同而已!那個 reboot 其實與 shutdown -r now 幾乎相同!不過,建議在關機之前還是將資料回填的指令下達一次再說:
    [root@linux ~]# sync; sync; sync; reboot
    
    就可以啦!通常我如果忘記 shutdown 的指令,或者是怕麻煩,都是使用上面說的這一個指令來重新開機, 並且在聽到『逼』的一聲時,立刻將 Linux 主機的總電源關閉!如此亦可達到關機的目的呀! 此外, halt 與 poweroff 也具有相同的功能喔!不要擔心,使用 man 去查詢一下下吧! ^_^

    開機過程的問題排解

    事實上, Linux 主機是很穩定的,除非是硬體問題與系統管理員不小心的動作,否則, 很難會造成一些無法挽回的錯誤的。但是,畢竟我們目前使用的可能是練習機,會常常開開關關的, 所以確實可能會有一些小問題發生。好了,我們先來簡單的談一談,如果無法順利開機時, 您應該如何解決。要注意的是,底下說到的內容很多都還沒有開始介紹, 因此,看不懂也不要太緊張~在本書全部都讀完且看第二遍時,您自然就會有感覺了! ^_^


    磁區錯亂的問題

    在開機的過程中最容易遇到的問題就是硬碟可能有壞軌或磁區錯亂(資料損毀)的情況, 這種情況雖然不容易發生在穩定的 Linux 系統下,不過由於不當的開關機 還是可能會造成的,原因可能有:
    • 最可能發生的原因是因為斷電或不正常關機所導致的硬碟磁軌錯亂, 鳥哥的主機就曾經發生過多次因為跳電,家裡的主機又沒有安裝不斷電系統, 結果就導致硬碟磁軌錯亂了!

    • 硬碟使用率過高也是一個可能的原因,例如你開放了一個 FTP 服務,裡面有些資料很有用, 所以一堆人搶著下載,如果你又不是使用較穩定的 SCSI 介面硬碟,僅使用 IDE 介面的硬碟, 雖然機率真的不高,但還是有可能造成磁軌錯亂的(這個問題其實在 Windows 系統下更容易發生哩!)。
    解決的方法其實很簡單,也可能很困難,如果您的根目錄『/』並沒有損毀,那就很容易解決, 如果根目錄已經損毀了,那就比較麻煩!
    • 如果根目錄沒有損毀:假設你發生錯誤的磁碟區塊是在 /dev/hda7 這一塊,那麼在開機的時候,螢幕應該會告訴你: press root pass word or ctrl+D : 這時候請輸入 root 的密碼登入系統:

      • 在游標處輸入 root 密碼登入系統,進行單人單機的維護工作;
      • 輸入 fsck /dev/hda7 (fsck 為指令, /dev/hda7 為錯誤的磁碟區塊,請依你的情況下達參數), 這時螢幕會顯示開始修理硬碟的訊息,如果有發現任何的錯誤時,螢幕會顯示: clear [Y/N]? 的詢問訊息,就直接輸入 Y 吧!
      • 修理完成之後,以 reboot 重新開機囉!

    • 如果根目錄損毀了: 一般初學者喜歡將自己的硬碟只劃分為一個大區塊,亦即只有根目錄, 那硬碟區塊錯亂一定是根目錄的問題囉!這時你可以將硬碟拔掉,接到另一台 Linux 系統的電腦上,並且不要掛載(mount)該硬碟,然後以 root 的身份執行 fsck /dev/hdb1 (/dev/hdb1 指的是你的硬碟裝置名稱,你要依你的實際狀況來設定),這樣就 OK 囉!

      另外,也可以使用近年來很熱門的 Live CD ,也就是利用光碟開機就能夠進入 Linux 作業系統的特性, 您可以前往:『http://knoppix.tnc.edu.tw/』 這個網站來下載,並且燒錄成為 CD ,這個時候先用 Live CD 光碟開機,然後使用 fsck 去修復原本的根目錄, 例如: fsck /dev/hda1 ,就能夠救回來了!

    • 如果硬碟整個壞掉: 如果硬碟實在壞的離譜時,那就換一顆吧,如果不願意換硬碟,那就重灌 Linux 吧,並且在重灌的時候,於 Format 項目中,選取『error check』項目,只是如此一來, format 會很慢,並且,何時會再壞掉也不確定!最好還是換一顆吧!
    預防的方法:
    • 妥善保養硬碟:例如: 主機通電之後不要搬動,避免移動或震動硬碟;盡量降低硬碟的溫度,可以加裝風扇來冷卻硬碟; 或者可以換裝 SCSI 硬碟。

    • 劃分不同的磁碟區塊: 如果諸位看官還記得的話,應該知道 Fedora 安裝的方法可以分為四五種,有 upgrad, Server, Workstation 等等的,這些咚咚不一樣的地方就在於磁碟劃分的不同啦!通常我們會建議劃分下列的磁碟區塊:
      • /
      • /boot
      • /usr
      • /home
      • /var
      這樣劃分有些好處,例如 /var 是系統預設的一些資料暫存或者是 cache 資料的儲存目錄, 像 e-mail 就含在這裡面。如果還有使用 proxy 時,因為常常存取,所以有可能會造成磁碟損壞, 而當這部份的磁碟損壞時,由於其他的地方是沒問題的,因此資料得以保存,而且在處理時也比較容易!

    忘記 root 密碼:

    常常有些朋友在設定好了 Linux 之後,結果 root 密碼給他忘記去!要重新安裝嗎?! 不需要的,你只要以單人維護模式登入即可更改你的 root 密碼喔!不過,目前的開機選單主要有 LILO 與 Grub 兩種,這兩種模式並不相同,有必要來說明一下:

  • LILO
  • 您只要在出現 Lilo 選單的時候,輸入:(請注意,如果是 Red Hat 7.0 以後的版本,會出現圖形介面的 lilo ,這個時候請按下 [Ctrl] + x 即可進入純文字介面的 lilo 囉!)
    boot: linux -s
    
    以進入單人單機維護模式(即為 run-level 1 ),然後再輸入 passwd 這個指令,就可以直接更改 root 的密碼囉!同時,如果圖形介面無法登入的時候,也可以使用此一方法來進入單人單機的維護工作,然後再去修改 /etc/inittab 改變一下登入的預設模式,如此一來就可以在下次開機的時候以文字模式登入囉! 同時請注意!如果您在設定啟動的名稱的時候,已經改變了啟動的名稱,例如我都喜歡在名稱之後加上核心碼, 例如:Red-Hat-2.4.7,這個時候我就必須在 boot: 底下輸入:
    boot: Red-Hat-2.4.7linux -s
    boot: Red-Hat-2.4.7linux single
    
    另外,您可能會遇到 Lilo 的開機問題,這個時候建議您先參考一下底下這一篇討論,未來還會再次提到 lilo 的設定問題!
  • Grub
  • grub 做為開機管理程式,要進入單人維護模式就比較麻煩一些! 在開機的過程當中,會有讀秒的時刻,此時請按下任意按鍵,就會進入選單畫面。 這個時候只要選擇相對的核心檔案,並且按下『e』,就可以進入編輯畫面了。此時,你看到的畫面有點像:
    root   (hd0,0)
    kernel /boot/vmlinuz-2.4.19 root=/dev/hda1 
    
    此時,請將游標移動到 kernel 那一行,再按一次『 e 』進入 kernel 該行的編輯畫面中, 然後在出現的畫面當中,最後方輸入 single :
    root   (hd0,0)
    kernel /boot/vmlinuz-2.4.19 root=/dev/hda1 single
    
    再按下『 Enter 』確定之後,按下 b 就可以 boot 看看啦!

    關於 LILO 與 grub 我們會在後面繼續加以介紹,這裡先有概念即可!不過,並非所有版本的 Linux 皆可使用此一方法!例如 OpenLinux 就無法進入單人維護模式,因為他的單人維護模式 『仍然需要輸入 root 的密碼!』哇!真是可怕吶!這個時候怎麼辦?呵呵!別擔心,現在你還不會, 看完了後面幾個章節之後,您就一定會啦! ^_^

    本章習題練習

    ( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看)
    • 請問如果我以文字模式登入 Linux 主機時,我有幾個終端機介面可以使用?如何切換各個不同的終端機介面?
    • 共有六個, tty1 ~ tty6 ,切換的方式為 Crtl + Alt + [F1]~[F6],其中, [F7] 為圖形介面的使用。
    • 在 Linux 系統中, /VBird 與 /vbird 是否為相同的檔案?
    • 兩者為不同的檔案,因為 Linux 系統中,大小寫字母代表意義不一樣!
    • 我想要知道 date 如何使用,應該如何查詢?
    • 最簡單的方式就是使用 man date 或 info date 來查看,如果該套件有完整說明的話,那麼應該也可以在 /usr/share/doc 裡面找到說明檔!
    • 我想要在今天的 1:30 讓系統自己關機,要怎麼做?
    • shutdown -h 1:30
    • 如果我 Linux 的 X Window 突然發生問題而掛掉,但 Linux 本身還是好好的,那麼我可以按下哪三個按鍵來讓 X window 重新啟動?
    • [crtl]+[alt]+[backspace]
    • man page 的設定檔在哪裡?
    • Fedora 的設定檔在 /etc/man.conf 有的 distribution 會定義為 /etc/man.config 或 /etc/manpath.conf
    • 我想要知道 2005 年 5 月 2 日是星期幾?該怎麼做?
    • 最簡單的方式直接使用 cal 5 2005 即可找出 2003 年 5 月份的月曆。
    • 使用 man date 然後找出顯示目前的日期與時間的參數,成為類似:2002/10/16-20:03
    • date +%Y/%m/%d-%H:%M
    • 若以 X-Window 為預設的登入方式,那請問如何進入 Virtual console 呢?
    • 可以按下 [Ctrl] + [Alt] + [F1] ~ [F6] 進入 Virtual console ( 共六個 ); 而按下 [Ctrl] + [Alt] + [F8] 或 [F7] 可回到 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 -k passwd 與 man -K passwd 有什麼差異(大小寫的 K )?
      小寫的 -k 為查詢關鍵字,至於 -K 則是整個系統的 man page 查詢~ 每個被檢查到有關鍵字的 man page file 都會被詢問是否要顯示, 您可以輸入『ynq』,來表示:y:要顯示到螢幕上;n:不顯示;q:結束 man 的查詢。
    • 在 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 時,在我的終端機卻出現一些亂碼,請問可能的原因為何?如何修正?
    • 如果沒有其他錯誤的發生,那麼發生亂碼可能是因為語系的問題所致。 可以利用 LANG=en 或者是 LANG=en_US 等設定來修訂這個問題。
    • 我輸入這個指令『ls -al /vbird』,系統回覆我這個結果:『ls: /vbird: No such file or directory』 請問發生了什麼事?』
    • 不要緊張,很簡單的英文,因為系統根本沒有 /vbird 這個檔案的存在啊! ^_^
    • 你目前的 Linux 底下,預設共有多少可以被你執行的指令?
    • 最簡單的做法,直接輸入兩次 [tab] 按鍵即可知道有多少指令可以被執行。
    • 我想知道目前系統有多少指令是以 bz 為開頭的,可以怎麼作?
    • 直接輸入 bz[tab][tab] 就可以知道了!
    • 承上題,在出現的許多指令中,請問 bzip2 是幹嘛用的?
    • 在使用 man bzip2 之後,可以發現到,其實 bzip2 是用來作為壓縮與解壓縮檔案用的!
    • Linux 提供一些線上文獻資料,這些資料通常放在那個目錄當中
    • 通常放在 /usr/share/doc 當中!
    • 在終端機裡面登入後,看到的提示字元 $ 與 # 有何不同?平時操作應該使用哪一個?
    • # 代表以 root 的身份登入系統,而 $ 則代表一般身份使用者。依據提示字元的不同, 我們可以約略判斷登入者身份。一般來說,建議日常操作使用一般身份使用者登入,亦即是 $ !
    修改歷史:
    • 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 是不對的!請查閱此處
    伺服器篇文件
    各版本彙整說明
    CentOS 6.x