鸟哥的 Linux 私房菜7 -- 首次开机关机与基本指令执行
生活随笔
收集整理的這篇文章主要介紹了
鸟哥的 Linux 私房菜7 -- 首次开机关机与基本指令执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鳥哥的 Linux 與 ADSL 私房菜
開機、關機、在線求助與指令下達方式 最近更新日期:2004/05/01第一次登入系統與離開系統
圖形模式與文字模式的切換方式
指令下達方式與基礎指令練習
在線求助:man, info
正確的關機方式
開機過程的問題排解
本章習題練習
第一次登入系統與離開系統 登入系統有這么難嗎?呵呵!并不難,不過,雖然說是這樣說,然而很多人第一次登入 Linux 的感覺都是『接下來我要干啥?』如果是以圖形接口登入的話,或許還有很多好玩的事物,但是,要是以文字接口登入的話,面對著一片黑壓壓的屏幕,還真不曉得要干嘛呢!嗯!為了讓大家更了解如何正確的使用 Linux ,正確的登入與離開系統還是需要說明的!
上面的畫面顯示的內容是:
好了這樣就是登入主機了!很快樂吧!耶~
離開系統就很簡單啦!直接下達:
就能夠離開系統,但是請注意:『離開系統并不是關機!』基本上, Linux 本身已經有相當多的工作在進行,您的登入也僅是其中的一個『工作』而已,所以當您離開時,那么該工作就停止了,不過其它的工作但此時 Linux 其它的工作是還是進行的!在后面我們再來提如何正確的關機,這里先建立起這個概念即可!
圖形模式與文字模式的切換方式
就可以啟動圖形接口啦!當然,前提是您的 XFree86 需要設定 OK 才行。那么如果您要修訂一下預設的開機進入的界面呢?例如由文字接口變到圖形接口,哈哈!修改一下 /etc/inittab 這個檔案,但是我們還沒有提到 vi 文書編輯器呀!所以這部份得到系統管理員篇幅的時候再說明!別擔心,再仔細的看下去吧!
指令下達方式與基礎指令練習 好了,既然我們是要以文字接口來介紹 Linux ,那么自然就需要先談一談指令下達的方式啰!一般而言,指令下達的方式為:
實例:
以 ls 列出 /root 這個目錄中的隱藏文件與相關的屬性參數;
上面這兩個指令的下達方式是一模一樣的執行結果喔!為什么?請參考上面的說明吧!關于更詳細的文字模式使用方式,我們會在『Shell 與 Shell Scripts』篇幅中再來強調喔!此外,請特別留意,在 Linux 的環境中,『大小寫字母是不一樣的東西!』也就是說,在 Linux 底下, VBird 與 vbird 這兩個檔案是『完全不一樣的』檔案呢!所以,您在下達指令的時候千萬要注意到您的指令是大寫還是小寫。例如當您輸入底下這個指令的時候,看看有什么現象:
很好玩吧!不一樣的大小寫顯示的結果會有錯誤訊息發生呢!因此,請千萬記得這個狀態呦!好啰,底下我們來練習一下一些簡單的指令,好讓您可以了解指令下達方式的模式:
在上表當中,×××的字表示輸入的東西,而在每個黑體的字底下就是輸出的結果。咦!每個計算都還算正確,怎么 10/100 會變成 0 呢?這是因為 bc 預設僅輸出整數,如果要輸出小數點下位數,那么就必須要執行 scale=number ,那個 number 就是小數點位數,例如:
好了!就是這樣子啦!簡單的很吧!以后你可以輕輕松松的進行加減乘除啦!
所以說,系統上面可能并沒有 DATE 這個指令啰!就是這么簡單!那如果是底下的樣子呢?
呵呵!這下子換到 cal 警告你啦, illegal month value: use 1-12,看不懂英文?沒關系,又不是考試,趕快拿本英文字典在旁邊對照著看呀!意思是說『不合法的月份值,應該使用 1-12 之間的數字!』所以各位看倌您看看,跟著屏幕的錯誤訊息瞧,很容易知道問題的錯誤是什么吧!因此,以后如果出現了問題,屏幕上的訊息真的是很重要的呢!不要忽略了他呦!
先介紹這幾個指令讓您玩一玩先,更詳細的指令操作方法我們會在第三篇的時候再進行介紹!好了,萬一我在操作 date 這個指令的時候,手邊又沒有這本書,我要怎么知道要如何加參數,好讓輸出的結果符合我想要的輸出格式呢?嘿嘿!到下一節 VBird 告訴你怎么辦吧!
在線求助:man, info 哇! linux 還有在線求助系統啊!呵呵!這是『一定要的啦!』因為 Linux 是由所謂的『虛擬團隊』開發出來的,所以雖然他的功能很多,但是指令也是有點雜亂的!如果沒有在線說明文件的話,那么肯定會讓大家無所適從的!因此,不論任何人寫出了一個很好用的指令后,他也會同是附上這個指令的說明文件喔!你可以很輕松的就查詢到這個指令的使用方法呢!很不賴吧!底下說一下幾個在 Linux 上面很常用的求助指令喔!
正確的關機方式 OK!大概知道開機的方法,也知道基本的指令操作,而且還已經知道在線查詢了,好累呦!想去休息呢!那么如何關機呢?我想,很多朋友在 DOS 的年代已經有在玩計算機了!在當時我們關掉 DOS 的系統時,常常是直接關掉電源開關,而 Windows 在你不爽的時候,按著電源開關四秒也可以關機!但是在 Linux 則相當的不建議這么做! Why?在 Windows 系統中,由于是單人假多任務的情況,所以即使你的計算機關機,對于別人應該不會有影響才對!不過呢,在 Linux 底下,由于每個程序(或者說是服務)都是在在背景下執行的,因此,在你看不到的屏幕背后其實可能有相當多人同時在你的主機上面工作,例如瀏覽網頁啦、傳送信件啦以 FTP 傳送檔案啦等等的,如果你直接按下電源開關來關機時,則其它人的數據可能就此中斷!那可就傷腦筋了!此外,最大的問題是,若不正常關機,則可能造成檔案系統的毀損(因為來不及將數據回寫到檔案中,所以有些服務的檔案會有問題!)。正常情況下,要關機時需要注意底下幾件事:
開機過程遇到的問題解決 扇區錯亂:
在開機的過程中最容易遇到的問題就是硬盤可能有壞軌或扇區錯亂(數據損毀)的情況,這種情況雖然不容易發生在穩定的 Linux 系統下,不過由于不當的開關機還是可能會造成的,原因可能有:
忘記 root 密碼:
常常有些朋友在設定好了 Linux 之后,結果 root 密碼給他忘記去!要重新安裝嗎?!不需要的,你只要以單人維護模式登入即可更改你的 root 密碼喔!不過,目前的開機選單主要有 LILO 與 Grub 兩種,這兩種模式并不相同,有必要來說明一下:
?另外,您可能會遇到 Lilo 的開機問題,這個時候建議您先參考一下底下這一篇討論,未來還會再次提到 lilo 的設定問題!
關于 Lilo !
?再按下『 Enter 』確定之后,按下 b 就可以 boot 看看啦!關于 LILO 與 grub 我們會在后面繼續加以介紹,這里先有概念即可!不過,并非所有版本的 Linux 皆可使用此一方法!例如 OpenLinux 就無法進入單人維護模式,因為他的單人維護模式『仍然需要輸入 root 的密碼!』哇!真是可怕吶!這個時候怎么辦?呵呵!別擔心,現在你還不會,看完了后面幾個章節之后,您就一定會啦! ^_^
本章習題練習 ( 要看答案請將鼠標移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
2002/07/16:第一次完成吧?
2003/02/06:重新編排與加入 FAQ
2004/05/01:在 shutdown 的指令部分,修改 shutdown -k "messages" 成為 shutdown -k now "messages",很抱歉,這部份寫太快,寫錯了!
2002/ 02/14以來統計人數
Designed by VBird during 2001-2004.? Aerosol Lab.
開機、關機、在線求助與指令下達方式 最近更新日期:2004/05/01第一次登入系統與離開系統
圖形模式與文字模式的切換方式
指令下達方式與基礎指令練習
在線求助:man, info
正確的關機方式
開機過程的問題排解
本章習題練習
第一次登入系統與離開系統 登入系統有這么難嗎?呵呵!并不難,不過,雖然說是這樣說,然而很多人第一次登入 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 其它的工作是還是進行的!在后面我們再來提如何正確的關機,這里先建立起這個概念即可!
圖形模式與文字模式的切換方式
- 咦!萬一我在安裝的時候選擇的是圖形模式呢?怎么辦?我要如何跑到文字接口下面工作吶!?呵呵!沒有關系,
- 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 這個指令啰!就是這么簡單!那如果是底下的樣子呢?
| [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 <[email]bug-sh-utils@gnu.org[/email]>. 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 啦!所以說,其實,您只要到這個目錄底下,就會發現好多好多的說明文件檔啦!還不需要到網絡上面找數據呢!厲害吧! ^_^
正確的關機方式 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
忘記 root 密碼:
常常有些朋友在設定好了 Linux 之后,結果 root 密碼給他忘記去!要重新安裝嗎?!不需要的,你只要以單人維護模式登入即可更改你的 root 密碼喔!不過,目前的開機選單主要有 LILO 與 Grub 兩種,這兩種模式并不相同,有必要來說明一下:
- LILO:
您只要在出現 Lilo 選單的時候,輸入:(請注意,如果是 Red Hat 7.0 以后的版本,會出現圖形接口的 lilo ,這個時候請按下 [Ctrl] + x 即可進入純文字接口的 lilo 啰!)
?boot: linux -s
| boot: Red-Hat-2.4.7 -s?????? 或者是: boot: Red-Hat-2.4.7 single |
關于 Lilo !
- Grub:
grub 做為開機檔案,要進入單人維護模式就比較麻煩一些!請回到 上面的圖示 中查看一下,關于 grub 的圖標,看到該圖標的底下有些說明對不對!?對啦!這個時候,請按下『 e 』進入編輯畫面,這個時候,你的畫面會有點像底下的樣子:
?root?? (hd0,0)
kernel /boot/vmlinuz-2.4.19 root=/dev/hda1?
| kernel /boot/vmlinuz-2.4.19 root=/dev/hda1 single |
本章習題練習 ( 要看答案請將鼠標移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
- 請問如果我以文字模式登入 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",很抱歉,這部份寫太快,寫錯了!
2002/ 02/14以來統計人數
Designed by VBird during 2001-2004.? Aerosol Lab.
轉載于:https://blog.51cto.com/star2fire/30469
總結
以上是生活随笔為你收集整理的鸟哥的 Linux 私房菜7 -- 首次开机关机与基本指令执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《FLUENT 14流场分析自学手册》—
- 下一篇: mysql中char与varchar的区