Linux 基礎學習篇 - Mandrake 9

第四章、開機、關機、線上求助與指令下達方式 - for Mandrake 9

鳥哥的第一本書籍的主要內容,內容稍微與書籍不太一樣了!

最近更新時間: 2004/05/01

鳥哥的第一本書大約是在 2002 年的年底左右出版的,內容幾乎都是 Linux 基礎學習,一點也沒有談到伺服器的部份!這也是後來的雛型! 不過內容錯誤的地方很多,導致在 2003 年的年底推出了『基礎學習篇增訂版』的內容,大致上就是處理掉一些比較有嚴重錯誤的部份。 不過,因為 Linux 的版本變化非常快速,因此,寫完了這些文件之後,鳥哥還是持續在網站上更新文件內容,導致原本書籍內容的資料與網站資料差異太大! 這個問題直到鳥哥在 2008 年左右才發現!糟糕了!舊版的文件資料已經遺失~覺得相當扼腕~

因此,在底下的文件內容與當初的書籍內容雖然大同小異,不過章節的編排卻是有所不同!再花時間去一個一個處理,似乎也不太符合成本效益! 鳥哥僅是想要將自己以前的文件記錄下來而已,同時將過時的 big5 編碼改回 utf8 編碼,再加上可以支援 RWD 的樣式而已啦! 內容已經不多做編排~因此,如果內容文件你看不懂,那也是應該的! ^_^

建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。最新文章請前往鳥站首頁查閱囉!

第一次登入系統與離開系統

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

  • 啊開機就開機呀!怎麼還有所謂的登入與離開呀!?呵呵!開什麼玩笑,在 Linux 裡面,正確的開關機可是很重要的!因為,不正常的關機可能會導致整個系統的磁區錯亂,造成資料的毀損呢!這也是為什麼通常我們的 Linux 主機都會加掛一個不斷電系統囉!
    在順利的安裝完成之後,就是要快樂的進入 Linux 的世界啦,這個時候,按下電源,如果你是以文字型的 Grub 登入的話,那麼你的螢幕可能會出現下列的字樣 ( 註:不同的 Linux distribution 的登入畫面都不相同的啦!這無所謂,只是開機的畫面而已! ) :
    這個就是 Grub 開機管理程式啦!由上面我們可以發現,總共目前有三個開機的選項,分別是 linux, failsafe 與 floppy 三個!當然啦,我們要使用的是 linux ,則移動游標指到 linux 上面去,按下 Enter 即可!另外,仔細看到右下方有個秒數對不對,呵呵!只要您在預設的秒數之內沒有按下任何按鍵,那麼 grub 會自動的以系統預設的開機檔案來開機囉!還有還有, grub 還有很多的功能,關於這個,我們留待後面的『系統管理員篇』再來詳細的介紹這個玩意兒~此外,如果是以另一個多重開機軟體 ( loader ) ,也就是 LILO 來設定你的 MBR 時,那麼預設是不會出現選單的!只會有出現『 boot: 』的畫面而已,如果按下『 Enter 』就會以預設的開機檔來開機,如果按下『Tab』按鍵,就會出現其他可能的開機檔啦!這部份我們同樣在管理員篇再介紹!
    選擇了 Linux 之後,會開始跑一些硬體搜尋的資料,然後是一些服務的開啟動做,就像下圖一般:
    呵呵!這就是在正確的開機啦!OK!如果順利的開機成功,那麼就會進入到底下的畫面來啦!
     
    Mandrake Linux release 9.0 (dolphin) for i586
    Kernel 2.4.19-16mdk on an i686 / tty1
    test login: root
    Password:
    [root@test root]#
     
    上面的畫面顯示的內容是:
     
    • 第一行顯示的是您的 Linux distribution 與版本,還有安裝的軟體等級( i586 ),
    • 第二行顯示的是您的 Linux 核心版本,以及您的硬體等級 ( i686 ),那麼什麼是 tty1 呢?這個等一下告訴你!
    • 第三行顯是您的主機名稱 (Hostname) ,至於 login 後面則是需要你輸入登入者的帳號,由於我們剛剛安裝完畢,直接以 root 來登入即可!注意,那個 root 就是『系統管理員』,也就是『超級使用者, Super User』,在 Linux 主機之內,這個帳號代表的是『無窮的權力!』,任何事都可以進行的,因此,使用這個帳號要『粉小心!』
    • 第四行則在第三行輸入後才會出現,要你輸入密碼囉!請注意,在輸入密碼的時候,螢幕上面『不會顯示任何的字樣!』,所以不要以為你的鍵盤壞掉去!
    • 第五行則是正確登入之後才顯示的訊息,最左邊的 root 顯示的是『目前使用者的帳號』,而 @ 之後接的 test 則是『主機名稱』,至於最右邊的 root 則指的是『目前所在的目錄』,那麼那個 # 則是我們常常講的『提示字元』啦!
     
    好了這樣就是登入主機了!很快樂吧!耶~
     
      註:關於登入的身份:為了安全的考量上,通常我們都希望普通時候不要以 root 的身份登入 Linux 系統中。這裡有必要說明一下 root 身份與一般身份的異同。其實在 Linux 上面實際上記錄使用者身份的是 UID 與 GID ,分別是使用者的號碼與群組的號碼。舉例來說,系統管理員 ( root ) 的號碼即是 0 ,所以你只要進入 /etc/passwd 這個檔案中,即可看到 root 有兩個號碼都是 0 ,基本上,你只要建立一個帳號,並且將他的 UID 設定為 0 的話,那麼他就具有 root 的身份了!而一般使用者的號碼通常在 500 以後,至於 1~499 之間,比較多會留給系統來使用!至於為什麼?這僅是一個習慣而已!好了!我們都知道 root 具有無窮大的權力,例如他可以殺掉任何一個檔案或者是目錄!因此,若您以 root 的身份登入 Linux 系統,還不小心殺掉了任何一個檔案,是可能會造成非常大的問題。除此之外,使用 root 的身份登入系統最大的問題其實是『不安全』。容易被有心人士監聽你對主機下達的命令,使得密碼或者是資料的外流!因此,稱職的網管人員通常具有兩個帳號,平時以自己一般的帳號使用 Linux 主機,除非系統的主要功能需要修改設定時,才以 root 的身份來登入的!所以我也建議您建立一個普通的帳號來供自己使用喔!尤其是遠端登入時(如 telnet 與 SSH 伺服器),最好不要以 root 來登入喔!
     
  • 離開系統:

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

圖形模式與文字模式的切換方式

    咦!萬一我在安裝的時候選擇的是圖形模式呢?怎麼辦?我要如何跑到文字介面下面工作吶!?呵呵!沒有關係, Linux 預設提供了六個文字介面終端機來讓您登入呢!您可以直接按下:『 Ctrl 』+ 『 Alt』 加上 『F1』 ~ 『F6』 功能鍵 來變換不同的文字介面登入點,這也是剛剛我們上面提到的那個 tty1 的咚咚啦!當您以『 Ctrl 』+ 『 Alt』 + 『F1』登入主機時,他所在的位置就是 tty1 這個終端機,而 F2 就是 tty2 這個終端機囉!那怎麼回到美美的桌面去?很簡單呀!按下『 Ctrl 』+ 『 Alt』 + 『F7』就回到桌面囉! ( 註:某些 Linux distribution 會使用到 F8 這個終端介面做為他的桌面終端機,例如 OpenLinux Server 3.1.1 ,所以這部份還不是很統一!無論如何,嘗試按按 F7 or F8 就可以知道囉! )
  • Ctrl + Alt + [F1] ~ [F6]  :文字介面登入 tty1 ~ tty6 終端機;
  • Ctrl + Alt + [F7]   :圖形介面桌面。
    這也就是說,如果您是以文字介面登入的話,那麼您可以有 tty1 ~ tty6 這六個文字介面的終端機玩,但是 圖形介面 則沒有任何東西。至於以圖形介面登入的話,就可以使用圖形介面跟文字介面囉!當然,如果您在文字介面卻想要進入圖形介面時,可以直接下達:
     
    [root@test root]# startx
     
    就可以啟動圖形介面啦!當然,前提是您的 XFree86 需要設定 OK 才行。那麼如果您要修訂一下預設的開機進入的介面呢?例如由文字介面變到圖形介面,哈哈!修改一下 /etc/inittab 這個檔案,但是我們還沒有提到 vi 文書編輯器呀!所以這部份得到系統管理員篇幅的時候再說明!別擔心,再仔細的看下去吧!

指令下達方式與基礎指令練習

好了,既然我們是要以文字介面來介紹 Linux ,那麼自然就需要先談一談指令下達的方式囉!一般而言,指令下達的方式為:
 
[root@test root]# command [-options] parameter1 parameter2 ... 
                  指令     選項      參數(1)    參數(2) 

說明:
0. 上面的指令與參數之下達中,字母的大小寫代表意義不同:
1. command 為指令的名稱,例如變換路徑的指令為 cd 等等;
2. 中刮號[]並不存在於實際的指令中,而加入參數設定時,通常為 - 號,
   有時候完整參數名稱會輸入 -- 符號; 
3. parameter1 parameter2.. 為依附在 option 後面的參數,
   或者是 command 的參數; 
4. command, -options, parameter1.. 這幾個咚咚中間以空格來區分,
   不論空幾格 shell 都視為一格; 
5. 指令太長的時候,可以使用 \ 符號來跳脫 [Enter] 符號,
   使指令連續到下一行。

 
實例:
以 ls 列出 /root 這個目錄中的隱藏檔與相關的屬性參數;
 
[root@test /root]# ls -al /root 
[root@test /root]# ls           -al   /root
 
上面這兩個指令的下達方式是一模一樣的執行結果喔!為什麼?請參考上面的說明吧!關於更詳細的文字模式使用方式,我們會在『Shell 與 Shell Scripts』篇幅中再來強調喔!此外,請特別留意,在 Linux 的環境中,『大小寫字母是不一樣的東西!』也就是說,在 Linux 底下, VBird 與 vbird 這兩個檔案是『完全不一樣的』檔案呢!所以,您在下達指令的時候千萬要注意到您的指令是大寫還是小寫。例如當您輸入底下這個指令的時候,看看有什麼現象:
 
[root@test /root]# date
[root@test /root]# Date
[root@test /root]# DATE
 
很好玩吧!不一樣的大小寫顯示的結果會有錯誤訊息發生呢!因此,請千萬記得這個狀態呦!好囉,底下我們來練習一下一些簡單的指令,好讓您可以瞭解指令下達方式的模式:
  • 顯示日期的指令: date
  • 顯示日曆的指令: cal
  • 簡單好用的計算機: bc

  • 顯示日期的指令: date

  • 如果在文字介面上面,想要知道目前的時間,那麼就直接在指令列模式輸入 date 即可顯示:
     
    [root@test root]# date 
    Wed Oct 16 15:19:59 CST 2002
     
    上面是顯示:星期三, 十月十六日, 15:19 分, 59 秒,在 2002 年的 CST 時區!請趕快動手做做看呦!好了,那麼如果我想要以 2002/10/16 顯示目前的時間呢?那麼就使用 date 的相關功能吧!
     
    [root@test root]# date +%Y/%m/%d
    2002/10/16
    [root@test root]# date +%H:%M
    15:32
     
    那個『 +%Y%m%d 』就是 date 的一些參數功能啦!很好玩吧!

  • 顯示日曆的指令: cal

  • 那如果我想要列出目前這個月份的月曆呢?呵呵!直接給他下達 cal 即可!
     
    [root@test root]# cal
        October 2002
    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) 這個指令可以做的事情還很多,你可以顯示整年的月曆情況:
     
    [root@test root]# cal 2002
                                   2002

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

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

     
    也就是說,基本上, cal 接的語法為:
     
    [root@test root]# cal [month] [year]
     
    所以,我想要知道 2003 年 2 月的月曆,可以直接下達:
     
    [root@test root]# cal 2 2003
        February 2003
    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
     
    所以,未來您可以很輕易的就以 cal 來取得日曆上面的日期囉!簡直就是萬年曆啦! ^_^

  • 簡單好用的計算機: bc

  • 如果我想要使用簡單的計算器呢?很容易呀!就使用 bc 即可!在輸入 bc 之後,顯示出版本資訊之後,就進入到等待指示的階段,如下所示:
     
    [root@test root]# 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'.
      ==> 游標在這裡等待您的輸入
     
    好了,來基本的操作一下,在此之前,必須要先告知幾個使用的運算子:
     
      +  加法
      -  減法
      *  乘法
      /  除法
      ^  指數
      %  餘數
     
    [root@test root]# 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
    quit==> 離開 bc 這個計算器
     
    在上表當中,黃色的字表示輸入的東西,而在每個黑體的字底下就是輸出的結果。咦!每個計算都還算正確,怎麼 10/100 會變成 0 呢?這是因為 bc 預設僅輸出整數,如果要輸出小數點下位數,那麼就必須要執行 scale=number ,那個 number 就是小數點位數,例如:
     
    [root@test root]# 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
     
    好了!就是這樣子啦!簡單的很吧!以後你可以輕輕鬆鬆的進行加減乘除啦!

  • 一些按鍵的說明:

  • 在 Linux 底下有幾個常用的按鍵,這裡要給他說明一下,以方便你未來在文字介面操作的情況下,可以直接按下這些按鍵來幫你處理事務喔!
     
    • Ctrl + c : 在 Linux 底下,如果您輸入了錯誤的指令或參數,有的時候這個指令或程式會在系統底下『跑不停』這個時候怎麼辦?別擔心,如果您想讓當前的程式『停掉』的話,可以輸入: 『Ctrl』+『c』,這個就是中斷目前程式的按鍵啦!
     
    • q : 有很多程式在跑的時候(例如 man 這個指令或 more 這個指令),如果您想跳出來,就按下 q 即可!這個按鈕也是很多指令常定義的退出鈕
     
    • [Tab] :會不會覺得打字很疲勞啊!沒關係,在 Linux 的預設文字介面 ( 我們稱為 BASH Shell ) 當中,有個很棒的功能,叫做是『命令與檔案補全』的功能!那就是鍵盤左邊的[Tab]這個按鍵啦!他有什麼好處呢?例如剛剛我們要執行 cal 這個指令對吧,這個時候,你只要輸入 ca[tab][tab] ,也就是輸入 ca 之後,再按兩次 [tab] 按鍵,您會發現什麼事呢?啊!所以以 ca 為開頭的指令都被顯示出來啦!很棒吧!另外,如果你輸入『 ls -al .bash[tab][tab]』會發生什麼事呢?哈哈!在該目錄下面所有以 .bash 的檔案名稱都會被顯示出來!所以囉,你就會知道,[tab] 按鍵是『很棒的功能!』在文字介面底下,要多按 [tab] 按鍵,可以避免打錯字或下錯指令喔
     
    總之,在 Linux 底下,文字介面的功能是很強悍的!要多多的學習他,而要學習他的基礎要訣就是......多使用、多熟悉啦!

  • 錯誤訊息的查看

  • 萬一我下達了錯誤的指令怎麼辦?不要緊呀!您可以藉由螢幕上面顯示的錯誤訊息來瞭解你的問題點,那就很容易知道如何改善這個錯誤訊息囉!舉個例子來說,假如我輸入了 DATE 這個錯誤的訊息了:
     
    [root@test root]# DATE
    bash: DATE: command not found
     
    上面那個 bash: 表示的是我們的 Shell 的名稱,那麼什麼是 Shell 呢?還記不記得我們在 什麼是 Linux 的時候提到的『使用者、使用者介面、核心、硬體』的架構呢?呵呵!那個 shell 就是使用者介面囉!在 Linux 底下預設的使用者介面就是 bash shell 囉!
    好了,那麼上面的例子說明了, bash 有錯誤,什麼錯誤呢? bash告訴你:
     
      DATE: command not found ==>指令找不到啦!
     
    所以說,系統上面可能並沒有 DATE 這個指令囉!就是這麼簡單!那如果是底下的樣子呢?
     
    [root@test root]# cal 13 2003
    cal: illegal month value: use 1-12
     
    呵呵!這下子換到 cal 警告你啦, illegal month value: use 1-12,看不懂英文?沒關係,又不是考試,趕快拿本英文字典在旁邊對照著看呀!意思是說『不合法的月份值,應該使用 1-12 之間的數字!』所以各位看倌您看看,跟著螢幕的錯誤訊息瞧,很容易知道問題的錯誤是什麼吧!因此,以後如果出現了問題,螢幕上的訊息真的是很重要的呢!不要忽略了他呦!

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

線上求助:man, info

哇! linux 還有線上求助系統啊!呵呵!這是『一定要的啦!』因為 Linux 是由所謂的『虛擬團隊』開發出來的,所以雖然他的功能很多,但是指令也是有點雜亂的!如果沒有線上說明文件的話,那麼肯定會讓大家無所適從的!因此,不論任何人寫出了一個很好用的指令後,他也會同是附上這個指令的說明文件喔!你可以很輕鬆的就查詢到這個指令的使用方法呢!很不賴吧!底下說一下幾個在 Linux 上面很常用的求助指令喔!
  • 最廣泛使用的線上查詢: man
  • 用在 Linux 上面的線上查詢: info
  • Linux 系統中的說明文件彙集目錄: /usr/share/doc

  • man

  • 嗄?不知道怎麼使用 date 這個指令?嘿嘿嘿!不要擔心,我們 Linux 上面的線上求助系統已經都幫您想好要怎麼辦了,所以你只要使用簡單的方法去尋找一下說明的內容,馬上就清清楚楚的知道該指令的用法了!怎麼看呢?就是找男人 ( man ) 呀!?喔!不是啦! man 是 manual (操作說明) 的簡寫啦!只要下達:『 man date 』馬上就會有清楚的說明出現在你面前:
     
    [root@test root]# man date
    DATE(1)                        FSF                        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

    ……………………………………(中間省略)

    ENVIRONMENT
           TZ     Specifies  the  timezone,  unless overridden by command line parameters.  If
                  neither is specified, the setting from /etc/localtime is used.

    AUTHOR
           Written by David MacKenzie.

    REPORTING BUGS
           Report bugs to <bug-sh-utils@gnu.org>.

    COPYRIGHT
           Copyright ?2000 Free Software Foundation, Inc.
           This is free software; see the source for copying conditions.   There  is  NO  war?
           ranty; 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 date

           should give you access to the complete manual.

    GNU sh-utils 2.0.11        October 2000                   DATE(1)
    (END)

     
    看!馬上就知道一大堆的用法了!出現的這個螢幕畫面,我們稱呼他為 man page ,您可以在裡頭查詢他的用法與相關的參數說明,如果要向下翻頁的話,可以按下鍵盤的 空白鍵 ,也可以使用 [Page Up] 與 [Page Down] 來翻頁呢!同時,如果您知道某些關鍵字的話,那麼可以在任何時候輸入『 /word 』,來主動搜尋關鍵字!例如在上面的搜尋當中,我輸入了 /date 會變成怎樣?
     

     
    此外,看到了最後面的幾個資訊了嗎?包括了這個程式的『環境』、『作者』及相關資訊等等,最重要的是那個『See Also』的內容囉,該內容告訴我們,還有其他相關的程式可以查詢!呵呵!查了一個,可以知道更多個!棒!那麼離開 man page 就直接輸入 『q』 這個字母即可離開!整理一下,在 man page 當中可以按的鍵有:
     
    • 空白鍵:  往下翻一頁;
    • page up:  往上翻一頁;
    • page down: 往下翻一頁;
    • home:  回到最前面;
    • end:  去到最終頁;
    • /word:  搜尋 word 這個檔案。
     
    那麼這些 man page 放在哪裡呢?不同的 distribution 通常可能有點差異性,不過,通常是放在 /usr/share/man 裡頭,然而,我們可以透過修改他的 man page 搜尋路徑來改善這個目錄的問題!修改 /etc/man.config ( 有的版本為 man.conf ) 即可囉!至於更多的關於 man 的訊息您可以使用『 man man 』來查詢呦!關於更詳細的設定,我們會在 Shell 的章節當中繼續的說明喔!

  • info

  • 除了 man 之外,在 Linux 裡面亦提供另外一種查詢的方式,稱為 info ,使用的方法跟 man 差不多,
     
    [root@test root]# info command
     
    使用 info 後面接您要查詢的指令名稱即可!這個 info 的功能比 man 還要更強大呢!在這個 info page 裡面,你可以輸入 p 及 n 往前及往後翻頁,如果看到『 * text :』的項目時,將游標移到該項目上面,按下『Enter』還可以進入次頁面的說明畫面中!很厲害喔!不過,這個 info 目前只有 Linux 底下有,其他 Unix-Like 就沒有啦!除非你有安裝....無論如何,這個部分我們會在『系統管理員篇』裡面再加以介紹啦!

  • /usr/share/doc

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

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

正確的關機方式

OK!大概知道開機的方法,也知道基本的指令操作,而且還已經知道線上查詢了,好累呦!想去休息呢!那麼如何關機呢?我想,很多朋友在 DOS 的年代已經有在玩電腦了!在當時我們關掉 DOS 的系統時,常常是直接關掉電源開關,而 Windows 在你不爽的時候,按著電源開關四秒也可以關機!但是在 Linux 則相當的不建議這麼做! Why?在 Windows 系統中,由於是單人假多工的情況,所以即使你的電腦關機,對於別人應該不會有影響才對!不過呢,在 Linux 底下,由於每個程序(或者說是服務)都是在在背景下執行的,因此,在你看不到的螢幕背後其實可能有相當多人同時在你的主機上面工作,例如瀏覽網頁啦、傳送信件啦以 FTP 傳送檔案啦等等的,如果你直接按下電源開關來關機時,則其他人的資料可能就此中斷!那可就傷腦筋了!此外,最大的問題是,若不正常關機,則可能造成檔案系統的毀損(因為來不及將資料回寫到檔案中,所以有些服務的檔案會有問題!)。正常情況下,要關機時需要注意底下幾件事:
  • 觀察系統的使用狀態:如果要看目前有誰在線上,可以下達 who 這個指令,而如果要看網路的連線狀態,可以下達 netstat -a 這個指令,而要看背景執行的程序可以執行 ps -aux 這個指令。使用這些指令可以讓你稍微瞭解主機目前的使用狀態!當然囉,就可以讓你判斷是否可以關機了(這些指令在後面 Linux 常用指令中會提及喔!)
  • 通知線上使用者關機的時刻:要關機前總得給線上的使用者一些時間來結束他們的工作,所以,這個時候你可以使用 shutdown 的特別指令來達到此一功能。
  • 正確的關機指令使用:例如 shutdown 與 reboot 兩個指令!
所以底下我們就來談一談關於這個關機的正確指令用法囉!
  • 將資料同步寫入硬碟中的指令: sync
  • 最正確的關機指令: shutdown
  • 重新開機: reboot
  • 關機囉: halt

  • sync

  • 在 Linux 系統中,為了加快資料的讀取速度,所以,預設的情況中,某些資料將不會直接被寫入硬碟,而是先暫存在記憶體當中,如此一來,如果一個資料被你重複的改寫,那麼由於他尚未被寫入硬碟中,因此可以直接由記憶體當中讀取出來,在速度上一定是快上相當多的!不過,如此一來也造成些許的困擾,那就是,萬一當你重新開機,或者是關機,或者是不正常的段電的情況下,由於資料尚未被寫入硬碟當中,哇!所以就會造成資料的更新不正常啦!那要怎麼辦呢?這個時候就需要 sync 這個指令來進行資料的寫入動作啦!直接在文字介面下輸入 sync ,那麼在記憶體中尚未被更新的資料,就會被寫入硬碟中!所以,這個指令在系統關機或重新開機之前,很重要喔!最好多執行幾次!( 註:這個指令也只有 root 可以執行喔! )
     
    [root@test root]# sync
     
  • shutdown

  • 好了,由於關機有種種的限制因子在,所以只有 root 有權力關機而已喔!嗯!那麼就來關機試試看吧!我們較常使用的是 shutdown 這個指令,而這個指令會通知系統內的各個行程( processes ),並且將通知系統中的 run-level 內的一些服務來關閉之( run-level 會在後面告知喔 )。shutdown 可以達成:
     
    • 可以自由選擇關機模式:是要關機、重新開機或進入單人操成模式均可;
    • 可以設定關機時間: 可以設定成現在立刻關機, 也可以設定某一個特定的時間才關機。
    • 可以自訂關機訊息:在關機之前,可以將自己設定的訊息傳送給線上 user 。
    • 可以僅發出警告信:有時有可能你要進行一些測試,而不想讓其他的使用者干擾,或者是明白的告訴使用者某段時間要注意一下!這個時候可以使用 shutdown 來嚇一嚇使用者,但卻不是真的要關機啦!
    • 可以選擇是否要 fsck 檢查檔案系統 。
     
    那麼 shutdown 的語法是如何呢?聰明的讀者大概已經開始找『男人』了!沒錯,隨時隨地的 man 一下,是很不錯的舉動!好了,簡單的語法規則為:
     
    [root@test root]# /sbin/shutdown [-t 秒] [-arkhncfF] [時間] [警告訊息]
    實例:
    [root@test root]# /sbin/shutdown -h 10 'This server will shutdown after 10 mins'
    告訴大家,這部機器會在十分鐘後關機!並且會顯示在目前登入者的螢幕前方!
    至於參數有哪些呢?以下介紹幾個吧!

    -t sec  : -t 後面加秒數,亦即『過幾秒後關機』的意思
    -k      : 不要真的關機,只是發送警告訊息出去!
    -r      : 在將系統的服務停掉之後就重新開機
    -h      : 將系統的服務停掉後,立即關機。 
    -n      : 不經過 init 程序,直接以 shutdown 的功能來關機
    -f      : 關機並開機之後,強制略過 fsck 的磁碟檢查
    -F      : 系統重新開機之後,強制進行 fsck 的磁碟檢查
    -c      : 取消已經在進行的 shutdown 指令內容。

     
    此外,需要注意的是,時間參數請務必加入,否則會自動跳到 run-level 1 (就是單人維護的登入情況),這樣就傷腦筋了!底下提供幾個例子吧!
     
    shutdown -h now    立刻關機,其中 now 相當於時間為 0 的狀態 
    shutdown -h 20:25  系統在今天的 20:25 分會關機 
    shutdown -h +10    系統再過十分鐘後自動關機 
    shutdown -r now    系統立刻重新開機
    shutdown -r +30 'The system will reboot' 
                     再過三十分鐘系統會重新開機,並顯示後面的訊息。 
    shutdown -k now 'This system will reboot' 
                     僅發出警告信件的參數!系統並不會關機啦!嚇唬人!
     

  • reboot; halt; poweroff

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

開機過程遇到的問題解決

磁區錯亂
在開機的過程中最容易遇到的問題就是硬碟可能有壞軌或磁區錯亂(資料損毀)的情況,這種情況雖然不容易發生在穩定的 Linux 系統下,不過由於不當的開關機還是可能會造成的,原因可能有:
  • 最可能發生的原因是因為斷電或不正常關機所導致的硬碟磁軌錯亂, VBird 就曾經發生過多次因為跳電,家裡的主機又沒有安裝不斷電系統,結果就導致硬碟磁軌錯亂了!
  • 硬碟使用率過高也是一個可能的原因,例如你開放了一個 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 重新開機囉!
  • 如果根目錄損毀了:一般初學者喜歡將自己的硬碟只劃分為一個大區塊,亦即只有根目錄,那硬碟區塊錯亂一定是根目錄的問題囉!這時你可以將硬碟拔掉,接到另一台 Linx 系統的電腦上,並且不要掛載(mount)該硬碟,然後以 root 的身份執行 fsck /dev/hdb1 (/dev/hdb1 指的是你的硬碟裝置名稱,你要依你的實際狀況來設定),這樣就 OK 囉!
  • 如果硬碟整個壞掉:如果硬碟實在壞的離譜時,那就換一顆吧,如果不願意換硬碟,那就重灌 Linux 吧,並且在重灌的時候,於 Format 項目中,選取『error check』項目,只是如此一來,format 會很慢,並且,何時會再壞掉也不確定!最好還是換一顆吧!
預防的方法:
  • 妥善保養硬碟:例如:主機通電之後不要搬動,避免移動或震動硬碟;盡量降低硬碟的溫度,可以加裝風扇來冷卻硬碟;或者可以換裝 SCSI 硬碟。
  • 劃分不同的磁碟區塊:如果諸位看官還記得的話,應該知道 Redhat 安裝的方法可以分為四五種,有 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.7 -s       或者是:
      boot: Red-Hat-2.4.7 single
       
    另外,您可能會遇到 Lilo 的開機問題,這個時候建議您先參考一下底下這一篇討論,未來還會再次提到 lilo 的設定問題!
    關於 Lilo !
  • Grub:

  • grub 做為開機檔案,要進入單人維護模式就比較麻煩一些!請回到 上面的圖示 中查看一下,關於 grub 的圖示,看到該圖示的底下有些說明對不對!?對啦!這個時候,請按下『 e 』進入編輯畫面,這個時候,你的畫面會有點像底下的樣子:
       
      root   (hd0,0)
      kernel /boot/vmlinuz-2.4.19 root=/dev/hda1 
       
    此時,請將游標移動到 kernel 那一行,再按一次『 e 』進入 kernel 該行的編輯畫面中,然後在出現的畫面當中,最後方輸入 single :
       
      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 是否為相同的檔案?

  • 答:
      兩者為不同的檔案,因為大小寫不一樣!
  • 我想要知道 date 如何使用,應該如何查詢?

  • 答:
      最簡單的方式就是使用 man date 或 info date 來查看,如果該套件有完整說明的話,那麼應該也可以在 /usr/share/doc 裡面找到說明檔!
  • 我想要在今天的 1:30 讓系統自己關機,要怎麼做?

  • 答:
      shutdown –h 1:30
  • man page 的設定檔在哪裡?

  • 答:
      /etc/man.config 有的 distribution 會定義為 /etc/man.conf
  • 我想要知道 2003 年 5 月 2 日是星期幾?該怎麼做?

  • 答:
      最簡單的方式直接使用 cal 5 2003 即可找出 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 中!
修改歷史:
  • 2002/07/16:第一次完成吧?
  • 2003/02/06:重新編排與加入 FAQ
  • 2004/05/01:在 shutdown 的指令部分,修改 shutdown -k "messages" 成為 shutdown -k now "messages",很抱歉,這部份寫太快,寫錯了!
伺服器篇文件
各版本彙整說明
CentOS 6.x