1. 程式人生 > >Ubuntu完全教程,讓你成為Ubuntu高手!

Ubuntu完全教程,讓你成為Ubuntu高手!

Ubuntu的發音

Ubuntu,源於非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。瞭解發音是有意義的,您不是第一個為此困惑的人,當然,也不會是最後一個:)

大多數的美國人讀 ubuntu 時,將 u 作為母音發音,類似單詞 who 或者 boo ,重音在第二個音節即 u'buntu ,oo-boon-too 。

如果您喜歡撒哈拉,喜歡它令人窒息的溫柔、夢幻般的寂寥還有張揚恣肆的曠遠,您大可在第一個 u,後面帶些嗡嗡聲: oom-boon-too。

Ubuntu的中文發音大約為: 烏班圖

Ubuntu的涵義

Ubuntu這個單詞源自非洲,意謂“班圖精神”────誰都不是一座孤島,自成一體。每個人都包孕於人類,因他人存在而存在,因他人幸福而幸福。

Ubuntu當前版本

Ubuntu Linux v6.06 LTS (Dapper Drake)

LTS:Long Term Support

Dapper Drake:當前版本的開發代號

Ubuntu的特點

Ubuntu 完全基於 Linux 作業系統, 可以免費得到社群及專業機構的支援。龐大的社群是它成長的沃土,請向這片動人的熱忱敞開心扉。

Ubuntu 社群恪守 Ubuntu 理念:自由!軟體應是自由的,應尊重人類的自由意志,它與人類之間不應有任何隔膜。本地語種,功能限制,自主改進的權利……都不應成為使用的障礙或負擔。

自由,讓 Ubuntu 與傳統的私有軟體從根本上不同: 免費不能用來遮羞,您有權修正它,直到滿意為止。

Ubuntu 適合桌面和伺服器。當前 Ubuntu 釋出版支援 PC (Intel x86), 64-bit PC (AMD64) 和 PowerPC (Apple iBook 和 Powerbook, G4 和 G5) 架構。

Ubuntu 包涵了超過 16,000 種軟體, 核心的桌面系統卻只有一張光碟, Ubuntu 覆蓋了所有的桌面應用程式,

從文書處理,電子表格到 web 伺服器和開發設計環境一應俱全。 詳情檢視 Ubuntu 桌面 和 Ubuntu 伺服器的介紹。

Ubuntu相對其它Linux發行版的主要特點

基於Debian/Linux,使用 APT 包管理系統。

相對於Fedora Code: APT 包管理系統優雅地解決了依賴問題,並且可以從容的線上安裝升級

相對於Debian:軟體更新積極,而Debian較保守。

相對於Gentoo:基本無需編譯,省力、省時、省心。

基本操作

進入系統

在登入介面中輸入您的使用者名稱,然後系統將提問您的密碼

輸入您的密碼後,回車,稍事等待,您便可以進入Ubuntu系統

點選桌面左上角的圖示,您可以開啟一個選單(或者使用 Alt+F1 組合鍵)

如果您想退出系統,可以點選該圖示

在桌面上方啟動欄中,包含了一些常用程式的啟動圖示這些圖示也可以在開始選單中找到

現在點選FireFox圖示,您便可以使用FireFox瀏覽器衝浪

或者按下 Alt+F2 組合鍵,彈出一個執行命令對話方塊。輸入 firefox 後回車,同樣可以啟動FireFox

在選單中找到 終端

點選它便開啟了一個終端視窗,您可以在終端視窗中執行命令

也可以在控制檯中輸入命令。使用 Ctrl+Alt+[F1~F6] ,您可以切換到1~6號控制檯

使用 Ctrl+Alt+F7 可以返回圖形介面(您可以使用 Ctrl+Alt+BackSpace 將圖形介面關閉)

命令列提示符

[email protected]:~$ 為命令提示符, @ 之前的部分為當前使用者ID, @ 與 : 之間的部分,為您的主機名稱, : 與 $ 之間的部分,為當前的路徑。

退出系統

您可以點選這一個圖示來退出系統

也可以在終端或者控制檯中輸入命令

sudo halt

系統會提問您密碼,輸入正確密碼,便可以退出系統

在以後的章節中,如果我們提示您輸入命令,那麼您即可以在終端中輸入,也可以在控制檯中輸入。如果只是啟動應用程式,還可以使用 Alt+F2 組合鍵。

安裝

分割槽概念

首先我們需要知道,硬碟分割槽的存在,是由硬碟的物理特性決定的,並不會因為不同的作業系統而有所改變。(原始碼網教程下載,www.codepub.com)

請您把一塊硬碟想象為一本書……即便您不喜歡讀書,您也一定非常熟悉它,所有的書都是相同的,包括我們使用的課本……您肯定非常熟悉

一本完整的書,通常包括書名、索引和正文。

如果您需要Linux,您首先需要找到一本書名為《linux》的書,書名相當於硬碟中的MBR,也就是主引導紀錄。不同的是,MBR可以是幾個書名合在一起,類似於《XX合訂本》。這部分內容暫時還沒有什麼實用價值,您只需要大概的瞭解。

而正文,就是硬碟中紀錄的資料,這也非常容易理解,且對於安裝系統並沒有什麼影響,所以現在我們來了解索引

索引相當於硬碟中的分割槽表,書中的每一個章節,相當於硬碟中的一個分割槽,它起始和結束的頁次,都可以在索引中找到。試想,如果閱讀一本撕掉索引的書,您將很難找到您想閱讀的部分。同樣,如果沒有分割槽表,作業系統也不能夠在硬碟上定位資料的位置。

由於歷史的原因,硬碟中的分割槽表大小受到了限制,最多隻可以容納四個分割槽(主分割槽)。如果一本書,它的索引最多隻能有四個章節,那不是太可怕了麼?很多書的內容遠遠不止四個章節啊!

於是聰明的人們想到了一個變通的辦法,就是利用其中的一個章節,來儲存其它部分的索引。比如第一章是前言,第二章是其它部分的索引,我們翻到第二

章,呵呵,這裡是第二個索引,因為只有第一個索引受四個章節的限制,所以這個索引的內容可以非常的詳盡。第二個索引就是分割槽表中的擴充套件分割槽了,其中定義的

章節,就是硬碟中的邏輯分割槽,不是很難理解吧?

明白了這一點,我們來看看Linux和Windows對於分割槽不同的表示方法:

可能您已經很熟悉Windows了,它使用碟符來表示分割槽,比如 C: D: E:

,每一個分割槽使用一個碟符來標識,而且順序可以顛倒, D:

並不一定就是您系統中的第二個分割槽。(如果您給第二個分割槽分配最後一個硬碟碟符,把所有的碟符按順序排列好,並且重灌一次系統,您就會理解什麼叫作“頭

疼”了:)

而在Linux中,分割槽是這樣表示的

/dev/hda               /dev/hda1          /dev/hda2             /dev/hda5/            dev/sdb1

以 /dev/hda5 為例:

因為在Linux中,每一個裝置都是用 /dev/ 資料夾下的一個檔案來表示,所以 /dev/hda5 中, /dev/ 表示的是根目錄下的dev目錄,我們來看剩下的部分 hda5 。

前兩位的字母 hd 表示這是一塊IDE硬碟,如果是 sd ,則代表SATA硬碟,或者快閃記憶體等外設。

第三位的字母 a 表示這是該型別介面上的第一個裝置。同理, b、c、d…… 分別代表該型別介面上的第二三四……個裝置。例如 hdc 表示第二個IDE介面上的主硬碟(每個IDE介面上允許一個主裝置和一個從裝置)。

第四位的數字 5,並不表示這是該硬碟中的第5個分割槽,而是第一個邏輯分割槽。因為在Linux中,為了避免不必要的混亂,分割槽的順序是不能改變的,分割槽標識則由它們在硬碟中的位置決定。系統又要為所有可能的主分割槽預留標識,所以 1-4 一定不會是邏輯分割槽, 5 則是第一個邏輯分割槽,以此類推。

安裝中的注意事項

在Ubuntu系統的安裝過程中,您需要選擇系統目錄的掛載點。

我們知道,安裝Windows時,我們可以選擇把系統安裝在哪一個分割槽,把系統掛載到分割槽上。而在buntu/Linux中則相反,我們要把分割槽掛載到系統中。當我們使用Windows的安裝方式,把系統掛載到分割槽上,我們就不可能把Windows目錄放在C盤,而把MyDocuments目錄放到其它分割槽。您或者出於習慣,或者出於資料安全方面的考慮,通常把文件放到其它分割槽中。但是Windows下很多軟體儲存檔案的預設目錄就是MyDocument目錄,這就比較不方便。

在系統安裝完成後,我們還是可以將MyDocuments目錄轉移到其它分割槽中,不過有點麻煩,可能許多朋友還不知道怎麼去作……而任何一種Linux系統時,當然包括Ubuntu,我們可以在系統安裝時就把分割槽掛載到目錄下, /home 目錄相當於Windows的MyDocuments ,我們可以把 /dev/hda5 掛載到此目錄下,這樣我們往 /home目錄裡存東西的時候,其實儲存在第一個擴充套件分割槽中。如果再一次安裝系統,只要把這個分割槽掛載到 /home目錄下,那麼進入新系統就像回家一樣,真是太棒了。

理論上來講,您可以將分割槽掛載到任何目錄下面,您可以自定義掛載的路徑。但是我們並不推薦您這麼作,因為那沒有任何意義。系統安裝程式向您建議的掛載目錄,通常也是我們向您建議的,現在我們來了解一下,這些目錄通常都是用來作什麼的:

/        根目錄,唯一必須掛載的目錄。不要有任何的猶豫,選一個分割槽,掛載它!(在絕大多數情況下,有2G的容量應該是夠用了。當然了,很多東西都是多多益善的:)

Swap         交換分割槽,可能不是必須的,不過按照傳統,並且照顧到您的安全感,還是掛載它吧。它的容量只要大於您的實體記憶體就可以了,如果超過了您實體記憶體兩倍的容量,那絕對是一種浪費。

/home        前面已經介紹過了,這是您的家目錄,通常您自己建立的檔案,都儲存在這裡,您最好給它分配一個分割槽

/usr   應用程式目錄。大部分的軟體都安裝在這裡。如果您計劃安裝許多軟體,建議您也給它分配一個分割槽

/var            如果您要作一些伺服器方面的應用,可以考慮給它分配一個較大的分割槽

/boot          如果您的硬碟不支援LBA模式(我想那不太可能:),您最好掛載它,如果掛載硬碟的第一個分割槽,應該比較穩妥。一般來說,掛載的分割槽只要100M大小就足夠了

在檔案系統這一環節中,我們建議您選擇: ReiserFS

也許您注意到了,Windows中,碟符既用於表示硬體(硬碟上的分割槽),又用於表示系統中的路徑。而Linux中,硬體就是硬體,路徑就是路徑,不會混淆在一起,簡單直接!

Linux基礎

Shell

可能您早已能夠熟練的使用GUI(圖形使用者介面),例如您可以使用滑鼠雙擊一個圖示,來開啟或者執行它。

我們來看這個過程: 您使用滑鼠定位桌面上的一個程式圖示,按下左鍵兩次。系統讀取滑鼠指標的位置,並且判斷該位置下圖示的涵義,根據預設的雙擊動作,執行程式或者開啟檔案。

這一套GUI系統,便是一種Shell,它的作用是實現人機互動。如果我們不能夠控制電腦,那麼電腦還不如電視機好玩,不是麼?電視機也可以選擇頻道(電視機的遙控器,也是一種人機互動的介面,不過相對於電腦,確實是相當簡單了:)

易於上手、介面直觀是GUI的優點,但是GUI為不意味著簡單!或許您有類似經歷: 桌面上有幾十個程式的啟動圖示,也知道它們的名字,但是翻出一個來,並不是一件輕鬆的事情。

我的Windows系統中,桌面上擺滿了各種圖示,每當啟動一個程式的時候,我都很是困擾。後來嘗試了 音速啟動 這類的程式啟動管理器,效果還是差強人意。

在我的不懈努力下,這個難道最終得到了解決: 將快捷方式名稱簡化,放到特定目錄下,使用 Win+R 組合鍵撥出 執行對話方塊,鍵入快捷方式的名稱來執行該程式。比如 反恐精英 的快捷方式為 cs ,我把它放在 Windows 目錄下; 執行 cs命令,就可以去維護世界和平了。

這麼多快捷方式,統統放到 Windows 目錄下,非常混亂。因此,我在D盤建立了一個名為 path的目錄,並把它的路徑加入到環境變數的 path 項中,快捷方式放在 D:\path目錄中。即便重灌系統,只要在環境變數中重新加入此路徑,原來的程式大多可以直接以命令來執行……我的許多朋友強烈要示我幫他們設定這種啟動方式,因為這確實很方便:)

其實在Linux下,所有的程式都可以通過命令執行。雖然Linux也有GUI,但是它並不比Windows的GUI更優秀!上面只是簡單的介紹了CLI(命令列介面)相對GUI的優越之處,使用CLI還有更多的好處,您會慢慢體會到的。

當然了,在您的印象中,CLI一定非常的不友善,缺少親和力,冷漠而拒人於千里之外……您和CLI之間甚至有代溝的存在:)

命令

坦白的說,冷不丁見到那麼老長的一串命令,誰都會毛骨悚然。

也許您使用過DOS,留下這種印象:命令先放一邊,光是正確的輸入目錄、檔名都夠瞧的。而且DOS不區分大小寫,要是像Linux一樣區分大小寫,那多恐怖啊!!!

其實Linux命令列具有補全功能,非常實用。假設有這樣一個命令:

command path/file

如果只有一個以 c 起始的命令,鍵入 c ,再按一次 tab 鍵,系統將自動補全該命令餘下的部分。 只要 c tab 兩次按鍵,就可以完成 command 的輸入。

如果不只一個 c 起始的命令,那麼您可以按兩次 tab 鍵,系統會列出所有符合條件的選項,也就是以 c 起始的所有命令。進一步輸入 o ,如果只有一個以 co 起始的命令(一直輸入,直到項符合條件的選項唯一),再按一次 tab ,命令就被補全完整。

路徑和檔名也可以通過 tab 鍵來補全。還有一種 遍歷補全 的方式,如果您的檔名是中文,而您不想切換輸入法;甚至您的檔名中出現亂碼,無法輸入,這時 遍歷補全 就可以大顯身手了。這部分內容我們稍後再談:)

現在我們來了解命令的語法結構,這一部分相當重要,您可得看仔細。

我們知道,任何語言都有特定的語法結構,以我們的中文為例:

我們鄭重地推薦您Ubuntu/Linux!

這個句子的語法儘管簡單,卻是大部分的命令列採用的句型。讓我們看一下,這個句子裡都有些什麼:

我們

主語,Linux命令的執行者只有一個,所以主語一概省略。

推薦

一個動詞,作為謂語而存在。Linux命令中,這一部分是必須的。這一部分也是不同命令之間最根本的區別方式,所以它通常作為命令名,寫在最前面。鍵入 date 命令,您可以檢視當前的時間日期。( 應用程式->附件->終端 )

鄭重的

狀語,用來修飾謂語。與之相對應,Linux命令可以使用引數來精細調節程式的行為。為了與命令的操作物件相區別,引數前通常要加 - 或者 -- 符號。原則上,在命令名之後,引數的位置可以隨意,但是為了養成一個良好的習慣,我們建議您在命令名後直接跟引數。

您 Ubuntu/linux

這兩個部分都是賓語,它們是命令的操作物件。大部分的命令只有一個操作物件,也有一些命令是雙賓語結構的,具有一個直接賓語和一個間接賓語。比如 拷貝 這個命令 cp (copy)

分隔符

我們的漢語是象形文字,沒有分隔符。但是所有的拼音文字中都有分隔符,來分隔單詞。Linux命令中同樣使用空格作分隔符。

cp a /home 表示把當前目錄下的 a 檔案,拷貝到 /home 目錄下。(命令的不同部分使用空格分隔,連續的空格視為一個空格)

上面的那句話,翻譯成Linux的命令,應該是這個樣子的:

推薦 --鄭重的 您 Ubuntu/Linux (按照傳統,“-”後跟簡寫為單個字母的引數,“--”後跟完整單詞的引數。不過也有例外:)

哈,Linux的命令也蠻簡單吧?

Linux程式、程序

或許您會這樣想,Linux命令的句型確實不難,但是那麼多命令,我怎麼知道它們都是作什麼的呢?而且不同的系統中,可以使用的命令似乎也不太一樣,這真讓人困惑……

其實Linux的命令,執行的是Linux系統中的程式。只要您已安裝了程式,您就可以通過命令來執行它,並且可以使用引數來精細的調整它的執行狀態。也可以通過點選啟動圖示來執行,不過啟動圖示不能夠方便的調整引數,並不是很方便。

舉一個例子:

mplayer -shuffle -loop 3 -playlist mymp3.list

可能您執行上面命令,系統會提示您 無法找到命令,那是因為您沒有安裝mplayer這個程式。mplayer是我見過的支援格式最多的播放器,幾乎任何已知格式的多媒體檔案,都可以使用mplayer來播放。它包含一個圖形介面的前端,您可以在選單中找到它,滑鼠點選執行;也可以通過執行命令來執行它的命令列版本。

如果您的系統中沒有mplayer播放器,我們建議您安裝一個。關於程式的安裝,請參閱 軟體安裝 。

上面命令中, mplayer 呼叫了mplayer播放器程式。引數 -shuffle 表示隨機播放, -loop 表示迴圈播放,後面的3 為迴圈的次數,如果為 0 ,則一直播放。 -playlist 表示播放列表中的曲目。我們可以把mp3的路徑放到 mymp3.list檔案中,讓mplayer來播放它們。

程序 為執行中的程式,是程式在記憶體中的映象。

好了,現在您已經瞭解了 Shell 、 命令 、 程式 、 程序 的概念,您基本上也就瞭解了Linux(Linux系統真是非常簡潔,而且容易理解:)。

但只知道這些,您並不能順暢使用。接下來的章節中,我們來進一步介紹它的細節。

Linux系統簡介

路徑

路徑分為絕對路徑和相對路徑。

絕對路徑的起始點為根目錄 / ,例如 /usr/local/bin 就是絕對路徑,它指向系統中一個絕對的位置,不受其它因素影響。

相對路徑的起始點為當前目錄,如果您現在位於 /usr 目錄,那麼相對路徑 local/bin 所指示的位置為 /usr/local/bin

也就是說,相對路徑所指示的位置,除了相對路徑本身,還受到當前位置的影響。例如Linux系統中常見的目錄 /bin 、 /usr/bin、 /usr/local/bin ,如果只有一個相對路徑 bin,那麼它指示的位置可能上面三個目錄中的任意一個,也可能是其它目錄。

如果我告訴您到 bin 目錄尋找一個檔案,您可能搞不清楚是哪一個 bin 目錄。只有當前位置確定,相對路徑指示的位置才能夠確定。

現在我說, /usr/local 目錄下,它的相對路徑 bin 中有某個檔案,這樣就比較明確了。

在相對路徑中 . 表示當前目錄, .. 表示當前目錄的上一級目錄。

假設您安裝了一個程式,它的主程式沒有被放置到上面三個 bin 目錄中的任何一個,或者其它系統能夠找到的地方,您就得告訴系統,它的可執行檔案在哪裡。

可以使用絕對路徑,例如: /home/user/bin/可執行檔案

或者定位到 /home/user/bin 目錄,使用相對目錄來定位它 ./可執行檔案

如果您定位到了它的子目錄,比如 /home/user/bin/gui,您可以使用 .. 來表示它的上級目錄 ../可執行檔案

路徑相關命令

cd (change directory) 更改目錄。

pwd (print working directory)顯示當前路徑。

ls (list) 顯示當前目錄中的檔案列表。

請嘗試以下操作:

cd /etc 進入“/etc”目錄,這裡使用的是絕對路徑

pwd 顯示當前路徑,這個命令返回結果“/etc”

cd init.d 進入“/etc”目錄的子目錄“init.d”,這裡使用的是相對路徑

cd .. 進入上一級目錄“/etc”

cd ../home “/etc” 目錄的上一級目錄為“/”,它的子目錄“home”為“/home”

cd - 回到上一次的目錄,我們在“/etc”目錄跳轉到“/home”目錄,所以這次是回到“/etc”目錄

cd ~ “~”代表當前使用者的“$HOME”目錄,也就是“/home/{使用者名稱}”目錄。

ls 在任何時候,您都可以使用“ls”命令,來了解當前目錄下都有哪些檔案。

遠端路徑:

遠端路徑的表示方法為 協議://使用者名稱:密碼@位置/路徑:埠

大多數的遠端路徑可以使用預設埠匿名訪問,由此使用者名稱、密碼、埠通常不需要填寫。例如:

http://www.ubuntu.org.cn/.../index.html

要求身份驗證的遠端路徑,您可以使用下面的方式訪問:

ftp://user:[email protected]:21

軟體

Linux中沒有登錄檔這個概念。安裝軟體,理論上講,只要拷貝所有相關檔案,並執行它的主程式就可以了。

按照傳統,一個軟體通常分別拷貝到同級目錄下的 bin、etc、lib、share等資料夾。

Bin            可執行檔案,程式的可執行檔案通常在這個目錄下。在環境變數中設定搜尋路徑,就可以直接執行,而不需要定位其路徑。

Etc             配置檔案,大部分系統程式的配置檔案保存於 /etc 目錄,便於集中修改。

Lib             庫檔案,集中在一起,方便共享給不同程式。相較不同的軟體單獨儲存庫檔案,能夠節約一些磁碟空間。

Share        程式執行所需要的其它資源,例如圖示、文字。這部分檔案是專有的,不需要共享;而且目錄結構相對複雜,混放在一起比較混亂,所以單獨存放。

還有一些軟體,佔用一個單獨的目錄,所有的資源都在這個目錄中。類似於Windows下的綠色軟體,不推薦在Linux系統下這樣作。

* 執行時,系統找不到可執行檔案(搜尋所有路徑,資源開銷過大,是不現實的),需要定位其位置,像這樣 /home/user/bin/可執行檔案 ,不夠方便。

* 許多系統軟體需要協作執行,配置檔案分別儲存,定位它們非常麻煩

* 如果程式使用的庫檔案,像圖形庫檔案,都單獨存放,那麼磁碟空間的浪費會非常嚴重。

有一些大型軟體,或者您佈署的重要應用,您可以將它們單獨安裝在一個資料夾下。(通常原始碼安裝支援這種方式,將在 軟體安裝 部分介紹)

配置方式

Linux下沒有類似 登錄檔 的系統,系統和軟體都可以通過純文字的配置檔案進行設定。

事實上,圖形介面的配置工具,通常就是以圖形介面的方式修改配置檔案,適合設定一些比較簡單的程式。如果軟體有幾千個可以配置的選項,全部作成選單,想象一下……開始發抖吧……

圖形介面的配置工具,可以看作特定配置檔案專用編輯器。您一樣可以使用通用文字編輯器來編輯配置檔案,比如 Nano、Gedit、Knote、Vim或者Emacs等等。不考慮閱讀、修改配置文字佔用的時間,直接修改配置檔案甚至更迅速。

如果只是要修改某一常用選項,而且時常修改,比如主機的IP地址。使用文字編輯器,您要找到相應的配置檔案,還要在配置檔案中找到相應的選項,會浪費掉您的時間和耐性。

圖形配置工具經常會受各種因素制約,比如網路伺服器中不提供圖形服務,圖形介面不夠穩定……這時,您可以使用命令列的配置工具來完成這些工作。

例如: 修改主機IP地址,可以使用ifconfig這個程式,執行下面的命令:

ifconfig eth0 192.168.0.1

在以後的章節中,如果我們提示您修改某一檔案,例如 /etc/fstab ,您可以使用任何順手的文字編輯器開啟它。

隱藏檔案

Linux下,名稱中第一個字元為 . 的檔案或者資料夾,系統預設情況下將它們隱藏起來,

您可以嘗試以下操作:

cd ~ 進入您的使用者目錄

ls 檢視當前目錄下的檔案列表

ls -a 檢視所有檔案的檔案列表(包括隱藏檔案)。

現在,您可以看到許多檔名以 . 起始的檔案或者檔案夾了吧?使用 ls 命令無法顯示它們

* 如果您只想檢視隱藏檔案,而不包括這兩個特殊目錄,您可以使用 ls 命令的引數 -A (ls -A)

* 每個目錄下都包含兩個特殊目錄 . 和 .. 。您也許猜到了, . 代表當前目錄, .. 代表上一級目錄。目錄是一種特殊型別的檔案!

檔案型別

Linux系統主要根據檔案頭資訊來判斷檔案型別,副檔名並非決定因素。

現在使用 ls -l 命令,檢視詳細資訊格式的檔案列表,您將會看到如下內容:

total 5

drwxr-x--- 4 user group 4096 Mar 10 00:37 filename

drwxr-xr-x 21 user group 4096 Mar 10 20:16 檔名

-rw------- 1 user group 524 Mar 10 00:40 a

-rw-r--r-- 1 user group 24 Jun 11 2000 b

drwx------ 2 user group 4096 Mar 9 11:06 c

共顯示了七列資訊,從左至右依次為:許可權、檔案數、歸屬使用者、歸屬群組、檔案大小、建立日期、檔名稱

其中要特別留意的是第一列:

drwxr-xr-x

一共有10個位置,可以分為4組:

d      rwx   r-x   r-x

第一組只有一個字元:

* d 資料夾         * - 普通檔案               * l 連結              * b 塊裝置檔案          * c 字元裝置檔案。

剩下的3組分別為歸屬使用者、歸屬群組、其它使用者或群組對於該檔案的許可權。我們看它的格式

rwx rwx   rwx

* r 可讀             * w 可寫            * x 可執行

它們的順便不能顛倒,某一位置為空(-),則表示不具有相應的許可權。

說明:Linux下的可執行檔案並不是由副檔名(例如 .exe )決定的,而是由其可執行許可權位決定。

許可權

我們已經知道了,檔案的許可權分為 r (可讀)、 w (可寫)、 x (可執行)三種類型,而一個檔案可以針對歸屬使用者,歸屬群組,其它使用者使用者或群組分別設定許可權。

這種許可權管理的方式靈活、簡單、嚴密、明晰。儘管如此,在最初的階段,可能會有一點小小的不適。因為它無所不在,而您習慣了的Windows的許可權管理卻不是這樣(非常混亂,大多數時間形同虛設,偶爾用到卻讓人傷透腦筋)。

使用 chmod 命令更改檔案的許可權,使用 chown 來更改檔案的歸屬。例如:

chmod 755 xxx

chmod a+x xxx

chown user:group xxx 用來更改檔案的歸屬使用者,也可以同時更改其歸屬群組

chgrp group xxx 用來更改檔案的歸屬群組

上面命令中的 755 和 a+x 是兩種型別的表示式

我們將後面章節中詳細介紹 許可權管理 使用者管理

執行命令的許可權

有一些命令,普通使用者也可以執行,但是隻有root使用者才能執行成功,這是為什麼呢?

例如在系統中增加一個新使用者 useradd

ls -l /usr/sbin/useradd

可以看到:

-rwxr-xr-x 1 root root 56156 2006-04-03 21:37 /usr/sbin/useradd

明明所有的使用者都可以執行嘛?

這是因為, useradd 命令是修改 /etc/passwd 檔案的一個工具,來看看這個檔案:

ls -l /etc/passwd

-rw-r--r-- 1 root root 1835 2006-06-24 17:58 /etc/passwd

原來只有root使用者才能寫入修改結果,非root使用者執行 useradd 命令當然不會有結果。

執行命令的身份

預設情況下,您的命令提示符末位為 $ ,這表示您將以普通使用者的身份執行命令。

您可以使用 su (switch user)這個命令來切換其它使用者。

例如 su root ,切換到root使用者,如果 su 命令後面沒有切換目標,那麼這個命令預設切換到root使用者。

現在您執行 su 這個命令,系統會提示您輸入密碼,請輸入管理員的密碼。這個時候,您會發現命令提示符末位變成了 # ,您將以root使用者的身份執行命令。

Ubuntu系統預設會隨機設定系統的root密碼,這樣會更安全一些,這個時候您可以執行“sudo”命令,輸入當前使用者密碼後,暫時以root

使用者的身份執行命令。(前提是sudoer列表中要包含您的ID。您在安裝Ubuntu系統時建立的使用者,預設具有“sudo”許可權)

如果您能夠執行“sudo”命令,那麼您也就擁有了root許可權。在後面的章節中,如果我們提到了“root許可權”,那麼您可以通過以上兩種方式來實現

命令列

Shell、Console、Terminal

在前面的章節中,我們曾提到,電視機的遙控器,也是一種人機互動的介面,算是一種Shell。

但是這個概念並不準確,遙控器只是向Shell傳送指令的工具,Shell接收到遙控器發出指令後,將指令轉換為系統命令,由系統來執行。

例如我們按的遙控器上的 數字鍵1 ,遙控器將 切換為1頻道 的指令傳送到Shell,Shell將指令轉換為系統可以識別的 頻道1 ,系統執行它,您就可以觀看1頻道的電視節目了。

通常每臺電視機只有一種Shell,比如有的電視機系統具有“畫中畫”的功能,那麼Shell中便有相應的功能定義,您可以通過遙控器上的“畫中畫”功能鍵來開啟它。假設您的電視機沒有此功能,Shell中也就沒有相應的功能定義。擁有一個帶“畫中畫”功能控制鍵的遙控器,即便訊號相容,您還是不能夠使用這一功能:)

不用遙控器也可以控制電視機,假設您的遙控器丟了,您還可以走到電視機前,使用機身上的控制面板來控制它(相當於使用Linux的控制檯)。但是您一定不喜歡這種方式,除非您想鍛鍊身體:)

在Linux系統中,由於圖形介面和控制檯的解析度通常不一致,所以切換時要有一個延時。對於我們中文使用者來講,控制檯下中文的顯示也比較麻煩。而且控制檯顯示內容通常不如終端顯示的全面。

所以我們推薦您使用終端來執行命令,它使用起來感覺很像遙控器:)

rxvt-unicode

通常情況下,您買一臺電視機,只能獲得一個遙控器。雖然它為您的電視機量身定作,能夠最大限度發揮電視機的能力,但您卻不一定喜歡它。說不定這個遙控器體形太大,持握不方便;或者它體形太小,容易失蹤;又或者它的按鍵要麼太硬,要麼太軟;它的鍵盤要麼太大,要麼太小……您一般也可以容忍,畢竟遙控器使用頻率並不算高:)

如果您的終端有些地方不討您喜歡,比如說響應太慢,或者不能正常顯示中文……那就難以忍受了,您應該換一個其它的試試。

在前面的章節,我們介紹您使用的終端為Gnome-Termianl,它是系統預設使用的終端,顯示中文不錯,不過響應比較慢,您可能已經處於水深火熱之中了。。。

我們推薦您使用urxvt(mlterm也是不錯的選擇)

您可以使用 sudo apt-get install rxvt-unicode 命令來安裝它。

urxvt 啟動它 (urxvt不支援控制檯,您得在圖形介面下啟動它。終端、Alt+F2,建議您在啟動欄裡新建一個啟動圖示)

rxvt-unicode還支援“伺服器/客戶端”的執行模式:

urxvtd 啟動一個守護程序daemon(支援控制檯)

urxvtc 啟動客戶端client。多個客戶端可以同時連線到一個urxvtd,以達到節省系統資源的目的。

或許您對rxvt的預設設定不滿意,您可以修改使用者配置檔案 ~/.Xresources 來設定它。修改全域性配置檔案 /etc/X11/Xresources/Xresources ,則對所有使用者生效,只有root才可以修改此檔案。

這裡有一些簡單的選項:(以 ! 起始的行是註釋,您可以直接拷貝此檔案的內容)

!!=============================================================================

!! RXVT-unicode setting

!!=============================================================================

!設定字型解析度

Xft.dpi:96

!視窗大小

Rxvt.geometry: 80x40+80+80

!顏色

Rxvt.background:#333333

Rxvt.foreground:antiquewhite

Rxvt.inheritPixmap:False

Rxvt.colorBD:yellow

Rxvt.colorUL:antiquewhite

!滾動條

Rxvt.scrollBar:True

Rxvt.scrollBar_left:True

Rxvt.scrollBar_floating:False

Rxvt.scrollstyle:next

Rxvt.scrollColor:#999999

!螢幕緩衝

Rxvt.saveLines:30000

Rxvt.color12:DodgerBlue

Rxvt.font:7x14,xft:AR PL New Sung

!輸入法一般設定為xim

!inputMethod:xim;Scim除外

!輸入法樣式可選:Root(置底) OverTheSpot(跟隨) OffTheSpot OnTheSpot,後兩種不是所有的都支援

Rxvt.preeditType:Root

Tip:右鍵點選啟動欄, 新增自啟動器 , 自定義程式 ,便可以在新增自己的啟動圖示。

線上幫助系統

您可以使用命令 man 或者 info 來閱讀Linux命令的線上文件。命令的格式非常簡單:

man xxx

大部分命令手冊為英文版,如果您的英文不太好,或許有些困難。在後面的 系統管理 章節中,我們會盡力向您介紹命令的使用方法。

說明:在使用“man”瀏覽器的時候,一些快捷鍵您可能會用到:

Ctrl+f(orward) 向下翻一頁 Ctrl+d(own) 向下翻半頁

Ctrl+b(ackward) 向上翻一頁 Ctrl+u(p) 向上翻半頁

/ 查詢 q(uit) 退出

以上為VI風格的鍵繫結。您也可以使用Emacs風格的鍵繫結

bash

好了,現在我們換了一個遙控器,感覺順手多了。現在來操練一下,下載一首mp3:

我們使用 wget 這個程式,它非常可靠,完全值得您信賴。

首先找到一個可以下載的地址,複製連結,在終端視窗內點選滑鼠中鍵,把它貼上進去。

現在終端中大概是這種情形:

http://www.download.net/xxx.mp3

按下 Ctrl+a 組合鍵,我們發現游標移動到了行首。輸入 wget 和 空格

wget http://www.download.net/xxx.mp3

回車後,終端中出現一些資訊,不一會兒工夫,mp3便下載完成。

使用 Ctrl+a 組合鍵,我們就不需要使用方向鍵來移動游標,方向鍵每次只能移動一個字元,沒有效率

您還可以使用 Ctrl+f 向前移動游標, Ctrl+b 向後移動游標, Ctrl+e 將游標移動到行末……………… (鍵繫結)

Note

Linux的圖形介面中,滑鼠中鍵通常執行“貼上”的操作,如果您的滑鼠沒有中鍵,您可以左右鍵同時按下。

中止正在執行的程式

如果一個命令持續時間很長,以致於不能夠進行其它操作,可以使用 Ctrl+c 來強行中止它。

Ctrl+s

出於意外,有時您會按下 Ctrl+s 這個組合鍵,Shell便被凍結。嘗試使用 Ctrl+q 組合鍵,看能否恢復正常。

鍵繫結

等等,有必要記這麼多快捷鍵麼?都這麼複雜!

我們強烈建議您記住,以大幅度的提高操作效率。而且這是readline控制元件的鍵繫結,在任何使用readline控制元件的程式中,您都可以使用它們。例如bash、lftp、gdb等程式;同時,Linux下最著名的Emacs編輯器,也是這種風格的鍵繫結(其實是readline使用了Emacs風格的鍵繫結才對),甚至FireFox中,也可以使用類似風格的快捷鍵!(Linux下主要有兩種風格的鍵繫結,一種是VI風格,另一種是Emacs風格,我們會在 簡明VIM教程中介紹)

現在列舉一些ReadLine的鍵繫結,您可以自行嘗試。(執行 man readline 命令,來檢視ReadLine手冊)

先來了解一些約定:

\C-a 表示 Ctrl+a

\M-a 表示 Meta+a Meta鍵在PC中通常為ALT鍵

A 表示 Shift+a

(下面括號中的\A代表Alt,\S代表Shift)

移動命令:

\C-a 移動到行首 Aheah               \C-e 移動到行末 End                   \C-f 向前移動一個字元 Forward

\C-b 向後移動一個字元 Backward               \M-f 向前移動一個單詞               \M-b 向後移動一個單詞

\C-l 清空螢幕 cLear           這兩個命令也可以理解為移動命令               \C-p 上翻,前一條命令 Previous

\C-n 下翻,後一條命令 Next               編輯命令:

\C-d 刪除游標後的一個字元 \M-d 刪除游標後的一個單詞 Delete

\BackSpace 刪除游標前的一個字元 \M-BackSpace 刪除游標前的一個單詞

\C-k 刪除游標至行末的部分 Kill                  \C-u 刪除游標至行首的部分 Unix-line-discard

\C-w 刪除游標前的一個單詞 Word              \C-y 貼上(最後刪除的物件) Yank            \C-- 撤消

搜尋歷史紀錄:

\C-r 連續使用 ``C-r`` 可以查詢下一個                \M-p           \M-n

補全:

\Tab 使用頻率最高的功能!                \C-o 遍歷補全 (未定義)

\M-? M-= 列出所有可能選項,相當於按兩次Tab鍵(M-? 實際按鍵為\A+\S+/)

\M-# 註釋掉當前命令,用於將當前命令暫存於歷史紀錄列表(\A+\S+3)

\M-! 補全命令,通常用來補全子命令,例如 ``sudo`` 的子命令(\A+\S+1)

\M-~ 補全使用者名稱(\A+\S+`)              \[email protected] 補全主機名(\A+\S+2)

\M-$ 補全變數(\A+\S+4)                  \M-_ 補全歷史紀錄中的紀錄(\A+\S+-)

\M-* 將所有可能選項放到命令列中(\A+\S+8)

自定義鍵繫結

通過修改 /etc/inputrc 檔案,可以更改鍵繫結。建議您使用預設的鍵繫結,以避免不必要的煩惱。當然了,Emacs風格的鍵繫結是通用的,隨時都有可能用到。

在檔案中新增該行,可以將ReadLine的鍵繫結設為VI風格。(Bash、Lftp等使用ReadLine的軟體同時生效)

set editing-mode vi

找到這一行:

$if mode=emacs

在它的下面新增如下內容

"\C-o": menu-complete

###這兩行不是必須的,視情況而定###

"\c-p": non-incremental-reverse-search-history

"\c-n": non-incremental-forward-search-history

重新登入Shell,您就可以使用 \C-o (Ctrl+o)來遍歷補全。假如您的檔名為中文,或者出現亂碼時,您可以使用 \M-*

將所有檔名放入命令列,再刪除多餘的,這真是麻煩極了!所以您可以使用 \C-o 遍歷補全,將所有可能的選項輪流放入命令列。

或者使用Vim編輯器編輯 /etc/inputrc 檔案,在插入模式下使用 Ctrl+v 組合鍵。按下 Ctrl+o ,這時編輯區新增一個 ^O 字元,等價於 \C-o

萬用字元

使用 ? 代表任意單個字元。例如 ???lo ,表示 lo 前有三個字元,它可以匹配 Hello

使用 * 代表隨意幾個任意字元。例如 *.iso ,代表所有iso格式的檔案。

說明:您可以將遍歷補全和萬用字元結合使用,以提高效率。

例如:

cd */ 則遍歷補全只補全資料夾

chmview *.chm 則遍歷補全只補全chm檔案

任務管理

&--------------------------------在命令的末尾加上一個 & 符號,表示背景任務,例如:

wget http://www.download.net/xxx/mp3 &

;----------------------------------使用 ; 將多個命令連結起來,則表示任務按順序執行

&&------------------------------使用 && 將多個命令連結起來,則表示只有前面的命令執行成功,後面的命令才能得以執行

``-----------------------------------`<命令>` ,如果一個命令中包含以 `` (Esc鍵下方的按鍵)括起來的子命令,那麼子命令將被優先執行,執行結果被代入上一級命令繼續執行,例如建立一個以當前時間命名的檔案:

touch `date +%m.%d_%H:%M:%S`

touch 命令能夠建立一個檔案,它的操作物件,為 date +%m%d%H%M%S 命令的輸出 06.06_06:06:60

這樣,我們建立了一個名為 06.06_06:06:60 的檔案(六月六日六時六分剛過六十秒-_-!)

Ctrl+z

將當前Shell中的任務掛起

這個時候任務的狀態為

[1]+ Stopped xxx

Bg-------------------------------------------------將掛起的任務背景執行。這時它的狀態為[1]+ xxx &

Fg-------------------------------------------------將背景任務調到前臺執行jobs

方括號中的數字為命令的任務編號,您可以使用 jobs 命令來檢視所有背景任務

如果後臺執行多個任務,您可以在 bg 或者 fg 後跟任務編號,作為操作物件,例如:bg 2

管道、重定向

>-----------------------重定向符號,它的作用是將命令的輸出重定向到一個檔案中。比如我們想把命令 ls 的結果儲存為 FileList 檔案,作一個清單,我們可以使用重定向符號來完成它:

ls -l > FileList

>>----------------------作用與 > 基本相同,不同點在於, >> 以追加的方式,將命令的輸出寫入檔案的末尾。

<-----------------------是從檔案到命令的重定向,將檔案的內容作為命令的輸入。

|------------------------為管道符號,它的作用是將前一個命令的輸出,作為下一個命令的輸入。假設一個目錄下的檔案太多,使用 ls命令不能夠在螢幕中完全顯示,這個時候您可以將 ls 命令的輸出,通過管道符號,作為瀏覽器 less 的輸入。就可以使用瀏覽器的功能翻頁、查詢:ls -al | less

說明: less 瀏覽器的鍵繫結幾乎與 man 相同,請參閱 線上幫助系統

脫字元

Shell中的一些功能是通過特殊符號作為控制字元來實現的,上面已經介紹了很多了。這產生一個問題,如果一個檔名中,剛好包含了這些字元,比如 ; ,就很難對它進行操作。使用 less 瀏覽這個檔案

less ;xxx

less 會很快返回一個錯誤資訊,因為並沒有一個檔名作為操作物件。接著,Shell會報告,系統中沒有 xxx 這個命令。

這是因為Shell將檔名中的 ; 解析為按順序執行命令。

或者您的檔名以空白起始,而在Shell中,無論多少個空格,都將被解析為一個分隔符。您甚至不是使用命令重新命名此檔案。

這個時候就要用到脫字元 \ 了,它能夠將一個具有特殊涵義的字元轉換普通字元。上面的兩個任務,可以在檔名中每個特殊字元前加一個 \ ,像這樣

less \;xxx

less \ \xxx

less \;\ \&\xxx

說明:也可以使用 " 將檔名括起來,例如 less "; &xxx" ,在很多情況下,這樣甚至更方便。

脫字元在Shell中也可以作為換行符,在一個命令的末尾新增一個 \ ,然後回車,在下一行繼續輸入命令剩餘的部分,將一個命令拆分為多行且不影響它的執行(如果執行一個很長的命令,請將它拆分為多行以便於閱讀)

事實上換行符也符合脫字元的定義。回車鍵有兩個涵義,一個是 執行 (Enter),另一個 換行 (折線箭頭)。在Shell中它作為控制字元 執行 ,使用脫字元後,它便代表排版字元 換行 了。

Fish

the friendly interactive shell

正如它的名字,Fish是一款非常友好的Shell,大力推薦!使用命令 sudo apt-get install fish 安裝它。完成後,執行命令 fish 切換到fish, exit 返回bash。

簡單介紹一下它的優點:

1.自動補全、語法高亮

bash的自動補全預設只是補全命令、路徑,如果想補全變數、引數等,通常需要使用複雜的組合鍵(見上面bash的介紹),即便您能夠記住它們,快

速準確的按下這些組合鍵,也是一種嚴峻的考驗。而FISH的自動補全可以自動識別語法,補全正確的內容。並且具有語法高亮的功能,比如用MPLAYER放

MP3:

mpl<tab>(ayer) -l<tab>(oop) <tab>(0)

-sh<tab>(uffle) -pl<tab>(aylist) <tab>(mp3_playlist)

一陣猛按 <tab> 鍵,一個蠻長的命令就完成了。

補全結果不唯一時給出的提示中含有簡短的說明,這樣通常也不用看幫助了:)比如:

mplayer -l

<tab> 後,自動將引數補全為 -lo 然後給出提示

-{lo}adidx (Load index from file) -{lo}op (Loop playback) {花括號中為青色文字}

它的語法高亮功能十分有用,如果你輸入的命令是正確的,則用青色顯示,正確的引數用白色顯示,錯誤的則一律用紅色。

2.方便的歷史紀錄搜尋

還是上面的那個命令

mplayer -loop 0 -shuffle -playlist mp3_playlist

用上翻配合下翻瀏覽命令歷史,直到找到這個命令,當然那樣太慢了。

還可以輸入以上命令中的某一部分,如 uffle 只要翻一次就可以找到了

(還可以META+上翻在已輸入部分中插入某一歷史單詞)

3.資料夾歷史紀錄

dirh (dir history)就可以顯示當前會話中進入的資料夾紀錄

使用 prevd 和 nextd 跳轉

假如曾進入過1 2 3 4 5 這幾個資料夾, prevd 4 可以讓你在 5 中直接跳到 1

4.其它的功能

fish基本是相容bash的。鍵繫結也非常的相似,少數的鍵繫結不盡一致,例如:

\C-h 刪除游標前的一個字元(bash為退格鍵,不方便)

修改 /etc/fish_inputrc 這個檔案,增加以下行:

"\C-n": history-search-forward

"\C-p": history-search-backward

現在使用Ctrl+p上翻,使用Ctrl+n下翻。如果已經在命令列中輸入字元,那麼Ctrl+p就是在歷史紀錄向上查詢您輸入的字元,Ctrl+n為向下查詢,非常的方便。

設定您的預設Shell

如果能夠擁有root許可權,可以直接修改 /etc/passwd 檔案。找到您使用者ID起始的行

user:x:1000:112:user,,,:/home/user:/bin/bash

最後一個欄位為登入後的預設Shell, /bin/bash 是程式 bash 的主程式路徑。 fish 主程式的路徑通常為 /usr/bin/fish 。

/etc/shells 中列出系統中所有可用Shell( /bin/false 代表禁用Shell)

也可以使用如下命令更改您的預設Shell

chsh -s /usr/bin/fish

(需要輸入您的密碼)

Tip:可以使用 whereis xxx 命令,來查詢 xxx 程式的安裝位置,詳見搜尋

設定命令的搜尋路徑

使用 echo $PATH ,可以顯示 $PATH 變數,輸出如下:

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/bin/X11 /usr/games /usr/X11R6/bin

它是一個環境變數,代表執行命令時,Shell的搜尋路徑。

執行一個命令時,Shell會到 $PATH 變數定義的路徑去搜索,並執行與命令同名的可執行檔案。如果程式、指令碼等可執行檔案並不在上面的路徑中,就必須使用絕對路徑或者相對路徑定位可執行檔案。

例如:

/usr/local/mplayer -menu xxx.rmvb

/etc/init.d/powernowd start

cd /usr/local/ && ./mplayer -menu xxx.rmvb

可以修改 /etc/environment 檔案來設定您的命令搜尋路徑,找到 PATH 起始的行

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"

在雙引號中新增您的自定義路徑,並以 : 分隔。

Ubuntu系統簡介

Ubuntu系統目錄結構

以下為Ubuntu目錄的主要目錄結構,您稍微瞭解它們都包含了哪些檔案就可以了,不需要記憶。

/ 根目錄

├boot/ 啟動檔案。所有與系統啟動有關的檔案都儲存在這裡

│ └grub/ Grub引導器相關的檔案

├dev/ 裝置檔案

├proc/ 核心與程序映象

├mnt/ 臨時掛載

├media/ 掛載媒體裝置

├root/ root使用者的$HOME目錄

├home/

│ ├user/ 普通使用者的$HOME目錄

│ └.../

├bin/ 系統程式

├sbin/ 管理員系統程式

├lib/ 系統程式庫檔案

├etc/ 系統程式和大部分應用程式的全域性配置檔案

│ ├init.d/ SystemV風格的啟動指令碼

│ ├rcX.d/ 啟動指令碼的連結,定義執行級別

│ ├network/ 網路配置檔案

│ ├X11/ 圖形介面配置檔案

├usr/

│ ├bin/ 應用程式

│ ├sbin/ 管理員應用程式

│ ├lib/ 應用程式庫檔案

│ ├share/ 應用程式資原始檔

│ ├src/ 應用程式原始碼

│ ├local/

│ │ ├soft/ 使用者程式

│ │ └.../ 通常使用單獨資料夾

│ ├X11R6/ 圖形介面系統

├var/ 動態資料

├temp/ 臨時檔案

├lost+found/ 磁碟修復檔案

啟動流程

Linux系統主要通過以下步驟啟動:

1.讀取MBR的資訊,啟動Boot Manager

Windows使用NTLDR作為Boot

Manager,如果您的系統中安裝多個版本的Windows,您就需要在NTLDR中選擇您要進入的系統。

Linux通常使用功能強大,配置靈活的GRUB作為Boot Manager,我們將在啟動管理章節中向您介紹它的使用方式。

2.載入系統核心,啟動init程序

init程序是Linux的根程序,所有的系統程序都是它的子程序。

3.init程序讀取 /etc/inittab 檔案中的資訊,並進入預設的執行級別,按順序執行該執行級別對應資料夾下的指令碼。指令碼通常以 start 引數啟動,並指向一個系統中的程式。

通常情況下, /etc/rcS.d/ 目錄下的啟動指令碼首先被執行,然後是 /etc/rcN.d/ 目錄。例如您設定的執行級別為3,那麼它對應的啟動目錄為 /etc/rc3.d/ 。

4.根據 /etc/rcS.d/ 資料夾中對應的指令碼啟動Xwindow伺服器 xorg

Xwindow為Linux下的圖形使用者介面系統。

5.啟動登入管理器,等待使用者登入

Ubuntu系統預設使用GDM作為登入管理器,您在登入管理器介面中輸入使用者名稱和密碼後,便可以登入系統。(您可以在 /etc/rc3.d/ 資料夾中找到一個名為 S13gdm 的連結)

更改執行級別

在 /etc/inittab 檔案中找到如下內容:

# The default runlevel.

id:2:initdefault:

這一行中的數字 2 ,為系統的執行級別,預設的執行級別涵義如下:

0 關機       1 單使用者維護模式         2~5 多使用者模式         6 重啟

服務管理

更改啟動服務

在執行級別對應的資料夾中,您可以看到許多檔名以 S## 和 K## 起始的啟動指令碼連結。例如:

/etc/rcS.d/S35mountall.sh 掛載檔案系統

/etc/rcS.d/S40networking 啟用網路支援

/etc/rc2.d/S13gdm 啟動登入管理器

/etc/rc2.d/S20makedev 建立裝置檔案

/etc/rc2.d/S23xinetd 啟動超級程序

init程序將以 start 為引數,按檔名順序執行所有以 S## 起始的指令碼。指令碼名稱中的數字越小,它將被越早執行。例如在

/etc/rc2.d/ 資料夾中, S13gdm 檔名中的數字小於 S23xinetd , S13gdm 將比 S23xinetd 先執行。

如果一個指令碼連結,以 K## 起始,表示它將以 stop 引數被執行。如果相應服務沒有啟動,則不執行該指令碼。例如:

/etc/rc2.d/K20powernowd 針對某種硬體的電源管理支援

如果您想禁止某一服務在啟動時自動執行,您可以將相應執行級別中的指令碼由 S##xxx 重新命名為 K##xxx 。

手動控制服務

您也可以手動執行帶有以下引數的啟動指令碼,來控制系統服務。

 - start 啟動      - stop 停止      - restart 重啟

例如:

/etc/rc2.d/K20powernowd start

有時您並不清楚當前執行級別,該執行級別下未必有相應指令碼;而且此類指令碼的前三位字元並不固定,不便於記憶。這時,可以直接使用

/etc/init.d/ 資料夾中的啟動指令碼( /etc/rcX.d/ 中的啟動指令碼連結到 /etc/init.d/

資料夾下相應指令碼),這也是推薦的方式。

例如:

/etc/init.d/powernowd start

Note:以上命令的位置並沒有包含在環境變數的搜尋路徑中,所以要輸入完整路徑。

常用系統服務

acpi-support 高階電源管理支援          acpid acpi守護程式.這兩個用於電源管理,非常重要

alsa 聲音子系統                   alsa-utils

anacron cron的子系統,將系統關閉期間的計劃任務,在下一次系統執行時執行。

apmd acpi的擴充套件                 atd 類似於cron的任務排程系統。建議關閉

binfmt-support 核心支援其他二進位制的檔案格式。建議開啟                  bluez-utiles 藍芽裝置支援

bootlogd 啟動日誌。開啟它                 cron 任務排程系統,建議開啟

cupsys 印表機子系統。              dbus 訊息匯流排系統(message bus system)。非常重要

dns-clean 使用撥號連線時,清除dns資訊。                

evms 企業卷管理系統(Enterprise Volumn Management system)

fetchmail 郵件使用者代理守護程序,用於收取郵件                  gdm gnome登入和桌面管理器。

Gdomap              gpm 終端中的滑鼠支援。           halt 別動它。

hdparm 調整硬碟的指令碼,配置檔案為 /etc/hdparm.conf。             hibernate 系統休眠

hotkey-setup 筆記本功能鍵支援。支援型別包括: HP, Acer, ASUS, Sony, Dell, 和IBM

hotplug and hotplug-net 即插即用支援,比較複雜,建議不要動它

hplip HP印表機和圖形子系統             ifrename 網路介面重新命名指令碼。如果您有十塊網絡卡,您應該開啟它

inetd 在檔案 /etc/inetd.conf 中,註釋掉所有你不需要的服務。如果該檔案不包含任何服務,那關閉它是很安全的。              klogd 重要。

linux-restricted-modules-common 受限模組支援。 /lib/linux-restricted-modules/ 資料夾中的模組為受限模組。例如某些驅動程式,如果您沒有使用受限模組,就不需要開啟它。

lvm 邏輯卷管理系統支援。                 makedev 建立裝置檔案,非常重要。           mdamd 磁碟陣列

module-init-tools 從/etc/modules載入擴充套件模組,建議開啟。

networking 網路支援。按 /etc/network/interfaces 檔案預設啟用網路,非常重要。

ntpdate 時間同步服務,建議關閉。            pcmcia pcmcia裝置支援。           powernowd 移動CPU節能支援

ppp and ppp-dns 撥號連線                   readahead 預載入庫檔案。          reboot 別動它            

resolvconf 自動配置DNS            rmnologin 清除nologin                 rsync rsync守護程式

sendsigs 在重啟和關機期間傳送訊號           single 啟用單使用者模式                 ssh ssh守護程式。建議開啟

stop-bootlogd 在2,3,4,5執行級別中停止bootlogd服務                   sudo 檢查sudo狀態。重要

sysklogd 系統日誌              udev & udev-mab 使用者空間dev檔案系統(userspace dev filesystem)。重要

umountfs 解除安裝檔案系統               urandom 隨機數生成器                usplash 開機畫面支援

vbesave 顯示卡BIOS配置工具。儲存顯示卡的狀態            xorg-common 設定X服務ICE socket。

adjtimex 調整核心時鐘的工具              dirmngr 證書列表管理工具,和gnupg一起工作。

hwtools irqs優化工具                   libpam-devperm 系統崩潰之後,用於修理裝置檔案許可的守護程式。

lm-sensors 板載感測器支援                  mdadm-raid 磁碟陳列管理器               

screen-cleanup 清除開機螢幕的指令碼             xinetd 管理其他守護程序的一個inetd超級守護程式

重要配置檔案

!無論任何情況下,修改配置檔案之前,先備份它!

建議使用這個命令: sudo cp xxx xxx_`date +%y%m%d_%H:%M` 。

當然這很麻煩,您可以新建一個名為 bak 的檔案,內容如下:

#!/bin/bash

sudo cp $1 $1_`date +%y%m%d_%H:%M`

把它放在您能夠記住的目錄下,比如 /home ,執行命令 sh /home/bak xxx ,就可以將當前資料夾下的檔案 xxx 另存為 xxx_yymmdd_HH:MM 的格式了

全域性配置檔案

系統初始化

/etc/inittab 執行級別、控制檯數量                /etc/timezone 時區               /etc/inetd.conf 超級程序

檔案系統

/etc/fstab 開機時掛載的檔案系統                  /etc/mtab 當前掛載的檔案系統

使用者系統

/etc/passwd 使用者資訊                   /etc/shadow 使用者密碼                   /etc/group 群組資訊

/etc/gshadow 群組密碼                 /etc/sudoers Sudoer列表(請使用“visudo”命令修改此檔案,而不要直接編輯)

Shell

/etc/shell 可用Shell列表              /etc/inputrc ReadLine控制元件設定              /etc/profile 使用者首選項

/etc/bash.bashrc bash配置檔案

系統環境

/etc/environment 環境變數           /etc/updatedb.conf 檔案檢索資料庫配置資訊                  /etc/issue 發行資訊

/etc/issue.net                 /etc/screenrc 螢幕設定                 

網路

/etc/iftab 網絡卡MAC地址繫結              /etc/hosts 主機列表             /etc/hostname 主機名

/etc/resolv.conf 域名解析伺服器地址             /etc/network/interfaces 網絡卡配置檔案

使用者配置檔案

/etc/ 目錄下的檔案,只有root使用者才有權修改。應用軟體的全域性配置檔案,通常普通使用者也不能夠修改,如果要通過配置軟體,來適應特殊需求,您可以修改使用者配置檔案。

使用者配置檔案通常為全域性配置檔案的同名隱藏檔案,放在$HOME目錄下,例如:

/etc/inputrc /home/user/.inputrc

/etc/vim/vimrc /home/user/.vim/vimrc

也有少數例外,通常是系統程式

軟體安裝

DPKG

Linux系統中,軟體通常以原始碼或者預編譯包的形式提供。

軟體原始碼需要編譯為二進位制的機器程式碼才能夠使用,安裝比較耗時,不過您可以自行調節編譯選項,決定需要的功能或元件,或者針對硬體平臺作一些優化。

預編譯的軟體包,通常是由軟體的釋出者進行編譯,您只要將軟體拷貝到系統中就可以了。考慮到預編譯軟體包的適用性,預編譯軟體包通常不會針對某種硬體平臺優化。它所包含的功能和元件也是通用的組合。

Ubuntu系統中,軟體通常以 deb 格式的包檔案釋出,它是一種預編譯軟體包。deb包中除了包含已編譯的軟體,通常還包括軟體的拷貝路徑、對其它軟體包的依賴關係紀錄、比較通用的配置檔案以及軟體的描述、版本、作者、類別、佔用空間等資訊。

deb軟體包命令遵行如下約定:

soft_ver-rev_arch.deb

soft軟體包名稱           ver軟體版本號           revUbuntu修訂版本號        arch目標架構名稱

例如: azureus_2.4.0.2-0ubuntu2_all.deb

您需要使用 dpkg 命令來管理deb軟體包:

dpkg -i | --install xxx.deb 安裝deb軟體包

dpkg -r | --remove xxx.deb 刪除軟體包

dpkg -r -P | --purge xxx.deb 連同配置檔案一起刪除

dpkg -I | -info xxx.deb 檢視軟體包資訊

dpkg -L xxx.deb 檢視包內檔案

dpkg -l 檢