Ubuntu入门
目錄章節:
- 一、Ubuntu的發音
- 二、Ubuntu的涵義
- 三、Ubuntu的特點
- 四、Ubuntu相對其它Linux發行版的主要特點
- 五、基本操作
-
- 1. 進入系統
- 2. 命令行提示符
- 3. 退出系統
- 六、安裝
-
- 1. 分區概念
- 2. 安裝中的注意事項
- 七、Linux基礎
-
- 1. Shell
- 2. 命令
- 3. Linux程序、進程
- 八、Linux系統簡介
-
- 1. 路徑
- 2. 路徑相關命令
- 3. 軟件
- 4. 隱藏文件
- 5. 文件類型
- 6. 權限
- 7. 執行命令的權限
- 8. 執行命令的身份
- 九、命令行
-
- 1. Shell、Console、Terminal
- 2. rxvt-unicode
- 3. 在線幫助系統
- 4. bash
- 5. 中止正在運行的程序
- 6. Ctrl+s
- 7. 鍵綁定
- 8. 自定義鍵綁定
- 9. 通配符
- 10. 任務管理
- 11. 管道、重定向
- 12. 脫字符
- 13. Fish
- 14. 設定您的默認Shell
- 15. 設定命令的搜索路徑
- 十、Ubuntu系統簡介
-
- 1. Ubuntu 系統目錄結構
- 2. 啟動流程
- 3. 更改運行級別
- 4. 服務管理
-
- 4.1 更改啟動服務
- 4.2 手動控制服務
- 4.3 常用系統服務
- 4.4 重要配置文件
- 4.5 全局配置文件
- 4.6 用戶配置文件
一、Ubuntu的發音
Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意義的,您不是第一個為此困惑的人,當然,也不會是最后一個:)
大多數的美國人讀 Ubuntu 時,將 u 作為元音發音,類似單詞 who 或者 boo ,重音在第二個音節即 u’buntu ,oo-boon-too 。
如果您喜歡撒哈拉,喜歡它令人窒息的溫柔、夢幻般的寂寥還有張揚恣肆的曠遠,您大可在第一個 u,后面帶些嗡嗡聲: oom-boon-too。
Ubuntu的中文發音大約為: 烏班圖
二、Ubuntu的涵義
Ubuntu這個單詞源自非洲,意謂“班圖精神”────誰都不是一座孤島,自成一體。每個人都包孕于人類,因他人存在而存在,因他人幸福而幸福。
三、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:基本無需編譯,省力、省時、省心。
五、基本操作
1. 進入系統
在登錄界面中輸入您的用戶名,然后系統將提問您的密碼
輸入您的密碼后,回車,稍事等待,您便可以進入Ubuntu系統
點擊桌面左上角的圖標,您可以打開一個菜單(或者使用 Alt+F1 組合鍵)
如果您想退出系統,可以點擊該圖標
在桌面上方啟動欄中,包含了一些常用程序的啟動圖標這些圖標也可以在開始菜單中找到
現在點擊FireFox圖標,您便可以使用FireFox瀏覽器沖浪
或者按下 Alt+F2 組合鍵,彈出一個運行命令對話框。輸入 firefox 后回車,同樣可以啟動FireFox
在菜單中找到 終端
點擊它便開啟了一個終端窗口,您可以在終端窗口中運行命令
也可以在控制臺中輸入命令。使用 Ctrl+Alt+[F1F6],您可以切換到16號控制臺
使用 Ctrl+Alt+F7 可以返回圖形界面(您可以使用 Ctrl+Alt+BackSpace 將圖形界面關閉)
2. 命令行提示符
user@**Ubuntu**:~$ 為命令提示符, @ 之前的部分為當前用戶ID, @ 與 : 之間的部分,為您的主機名稱,: 與 $ 之間的部分,為當前的路徑。
3. 退出系統
您可以點擊這一個圖標來退出系統
也可以在終端或者控制臺中輸入命令
sudo halt
系統會提問您密碼,輸入正確密碼,便可以退出系統
在以后的章節中,如果我們提示您輸入命令,那么您即可以在終端中輸入,也可以在控制臺中輸入。如果只是啟動應用程序,還可以使用 Alt+F2 組合鍵。
六、安裝
1. 分區概念
首先我們需要知道,硬盤分區的存在,是由硬盤的物理特性決定的,并不會因為不同的操作系統而有所改變。
請您把一塊硬盤想象為一本書……即便您不喜歡讀書,您也一定非常熟悉它,所有的書都是相同的,包括我們使用的課本……您肯定非常熟悉
一本完整的書,通常包括書名、索引和正文。
如果您需要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 則是第一個邏輯分區,以此類推。
2. 安裝中的注意事項
在Ubuntu系統的安裝過程中,您需要選擇系統目錄的掛載點。
我們知道,安裝Windows時,我們可以選擇把系統安裝在哪一個分區,把系統掛載到分區上。而在ubuntu/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基礎
1. 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之間甚至有代溝的存在:)
2. 命令
坦白的說,冷不丁見到那么老長的一串命令,誰都會毛骨悚然。
也許您使用過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的命令也蠻簡單吧?
3. 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系統簡介
1. 路徑
路徑分為絕對路徑和相對路徑。
絕對路徑的起始點為根目錄 / ,例如 /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,您可以使用 … 來表示它的上級目錄 …/可執行文件
2. 路徑相關命令
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:passwd@ftp.**Ubuntu**.org.cn:21
3. 軟件
Linux中沒有注冊表這個概念。安裝軟件,理論上講,只要拷貝所有相關文件,并運行它的主程序就可以了。
按照傳統,一個軟件通常分別拷貝到同級目錄下的 bin、etc、lib、share等文件夾。
bin 可執行文件,程序的可執行文件通常在這個目錄下。在環境變量中設定搜索路徑,就可以直接執行,而不需要定位其路徑。
etc 配置文件,大部分系統程序的配置文件保存于 /etc 目錄,便于集中修改。
lib 庫文件,集中在一起,方便共享給不同程序。相較不同的軟件單獨保存庫文件,能夠節約一些磁盤空間。
share 程序運行所需要的其它資源,例如圖標、文本。這部分文件是專有的,不需要共享;而且目錄結構相對復雜,混放在一起比較混亂,所以單獨存放。
還有一些軟件,占用一個單獨的目錄,所有的資源都在這個目錄中。類似于Windows下的綠色軟件,不推薦在Linux系統下這樣作。
- 執行時,系統找不到可執行文件(搜索所有路徑,資源開銷過大,是不現實的),需要定位其位置,像這樣 /home/user/bin/可執行文件 ,不夠方便。
- 許多系統軟件需要協作運行,配置文件分別保存,定位它們非常麻煩
- 如果程序使用的庫文件,像圖形庫文件,都單獨存放,那么磁盤空間的浪費會非常嚴重。
有一些大型軟件,或者您布署的重要應用,您可以將它們單獨安裝在一個文件夾下。(通常源碼安裝支持這種方式,將在 軟件安裝 部分介紹)
##4. 配置方式
Linux下沒有類似 注冊表 的系統,系統和軟件都可以通過純文本的配置文件進行設置。
事實上,圖形界面的配置工具,通常就是以圖形界面的方式修改配置文件,適合設置一些比較簡單的程序。如果軟件有幾千個可以配置的選項,全部作成菜單,想象一下……開始發抖吧……
圖形界面的配置工具,可以看作特定配置文件專用編輯器。您一樣可以使用通用文本編輯器來編輯配置文件,比如 Nano、Gedit、Knote、Vim或者Emacs等等。不考慮閱讀、修改配置文本占用的時間,直接修改配置文件甚至更迅速。
如果只是要修改某一常用選項,而且時常修改,比如主機的IP地址。使用文本編輯器,您要找到相應的配置文件,還要在配置文件中找到相應的選項,會浪費掉您的時間和耐性。
圖形配置工具經常會受各種因素制約,比如網絡服務器中不提供圖形服務,圖形界面不夠穩定……這時,您可以使用命令行的配置工具來完成這些工作。
例如: 修改主機IP地址,可以使用ifconfig這個程序,執行下面的命令:
ifconfig eth0 192.168.0.1
在以后的章節中,如果我們提示您修改某一文件,例如 /etc/fstab ,您可以使用任何順手的文本編輯器打開它。
4. 隱藏文件
Linux下,名稱中第一個字符為 . 的文件或者文件夾,系統默認情況下將它們隱藏起來,
您可以嘗試以下操作:
cd ~ 進入您的用戶目錄
ls 查看當前目錄下的文件列表
ls -a 查看所有文件的文件列表(包括隱藏文件)。
現在,您可以看到許多文件名以 . 起始的文件或者文件夾了吧?使用 ls 命令無法顯示它們
- 如果您只想查看隱藏文件,而不包括這兩個特殊目錄,您可以使用 ls 命令的參數 -A (ls -A)
- 每個目錄下都包含兩個特殊目錄 . 和 … 。您也許猜到了, . 代表當前目錄, … 代表上一級目錄。目錄是一種特殊類型的文件!
5. 文件類型
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 )決定的,而是由其可執行權限位決定。
6. 權限
我們已經知道了,文件的權限分為 r (可讀)、 w (可寫)、 x (可執行)三種類型,而一個文件可以針對歸屬用戶,歸屬群組,其它用戶用戶或群組分別設定權限。
這種權限管理的方式靈活、簡單、嚴密、明晰。盡管如此,在最初的階段,可能會有一點小小的不適。因為它無所不在,而您習慣了的Windows的權限管理卻不是這樣(非常混亂,大多數時間形同虛設,偶爾用到卻讓人傷透腦筋)。
使用 chmod 命令更改文件的權限,使用 chown 來更改文件的歸屬。例如:
chmod 755 xxx
chmod a+x xxx
chown user:group xxx 用來更改文件的歸屬用戶,也可以同時更改其歸屬群組
chgrp group xxx 用來更改文件的歸屬群組
上面命令中的 755 和 a+x 是兩種類型的表達式
我們將后面章節中詳細介紹 權限管理 用戶管理
7. 執行命令的權限
有一些命令,普通用戶也可以執行,但是只有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 命令當然不會有結果。
8. 執行命令的身份
默認情況下,您的命令提示符末位為 $ ,這表示您將以普通用戶的身份執行命令。
您可以使用 su (switch user)這個命令來切換其它用戶。
例如 su root ,切換到root用戶,如果 su 命令后面沒有切換目標,那么這個命令默認切換到root用戶。
現在您執行 su 這個命令,系統會提示您輸入密碼,請輸入管理員的密碼。這個時候,您會發現命令提示符末位變成了 # ,您將以root用戶的身份執行命令。
Ubuntu系統默認會隨機設定系統的root密碼,這樣會更安全一些,這個時候您可以執行“sudo”命令,輸入當前用戶密碼后,暫時以root
用戶的身份執行命令。(前提是sudoer列表中要包含您的ID。您在安裝Ubuntu系統時創建的用戶,默認具有“sudo”權限)
如果您能夠執行“sudo”命令,那么您也就擁有了root權限。在后面的章節中,如果我們提到了“root權限”,那么您可以通過以上兩種方式來實現
九、命令行
1. Shell、Console、Terminal
在前面的章節中,我們曾提到,電視機的遙控器,也是一種人機交互的界面,算是一種Shell。
但是這個概念并不準確,遙控器只是向Shell發送指令的工具,Shell接收到遙控器發出指令后,將指令轉換為系統命令,由系統來執行。
例如我們按的遙控器上的 數字鍵1 ,遙控器將 切換為1頻道 的指令發送到Shell,Shell將指令轉換為系統可以識別的 頻道1 ,系統執行它,您就可以觀看1頻道的電視節目了。
通常每臺電視機只有一種Shell,比如有的電視機系統具有“畫中畫”的功能,那么Shell中便有相應的功能定義,您可以通過遙控器上的“畫中畫”功能鍵來開啟它。假設您的電視機沒有此功能,Shell中也就沒有相應的功能定義。擁有一個帶“畫中畫”功能控制鍵的遙控器,即便信號兼容,您還是不能夠使用這一功能:)
不用遙控器也可以控制電視機,假設您的遙控器丟了,您還可以走到電視機前,使用機身上的控制面板來控制它(相當于使用Linux的控制臺)。但是您一定不喜歡這種方式,除非您想鍛煉身體:)
在Linux系統中,由于圖形界面和控制臺的分辨率通常不一致,所以切換時要有一個延時。對于我們中文用戶來講,控制臺下中文的顯示也比較麻煩。而且控制臺顯示內容通常不如終端顯示的全面。
所以我們推薦您使用終端來執行命令,它使用起來感覺很像遙控器:)
2. rxvt-unicode
通常情況下,您買一臺電視機,只能獲得一個遙控器。雖然它為您的電視機量身定作,能夠最大限度發揮電視機的能力,但您卻不一定喜歡它。說不定這個遙控器體形太大,持握不方便;或者它體形太小,容易失蹤;又或者它的按鍵要么太硬,要么太軟;它的鍵盤要么太大,要么太小……您一般也可以容忍,畢竟遙控器使用頻率并不算高:)
如果您的終端有些地方不討您喜歡,比如說響應太慢,或者不能正常顯示中文……那就難以忍受了,您應該換一個其它的試試。
在前面的章節,我們介紹您使用的終端為Gnome-Terminal,它是系統默認使用的終端,顯示中文不錯,不過響應比較慢,您可能已經處于水深火熱之中了。。。
我們推薦您使用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:右鍵點擊啟動欄, 添加自啟動器 , 自定義程序 ,便可以在添加自己的啟動圖標。
3. 在線幫助系統
您可以使用命令 man 或者 info 來閱讀Linux命令的在線文檔。命令的格式非常簡單:
man xxx
大部分命令手冊為英文版,如果您的英文不太好,或許有些困難。在后面的 系統管理 章節中,我們會盡力向您介紹命令的使用方法。
說明:在使用“man”瀏覽器的時候,一些快捷鍵您可能會用到:
Ctrl+f(orward) 向下翻一頁 Ctrl+d(own) 向下翻半頁
Ctrl+b(ackward) 向上翻一頁 Ctrl+u(p) 向上翻半頁
/ 查找 q(uit) 退出
以上為VI風格的鍵綁定。您也可以使用Emacs風格的鍵綁定
4. 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的圖形界面中,鼠標中鍵通常執行“粘貼”的操作,如果您的鼠標沒有中鍵,您可以左右鍵同時按下。
5. 中止正在運行的程序
如果一個命令持續時間很長,以致于不能夠進行其它操作,可以使用 Ctrl+c 來強行中止它。
6. Ctrl+s
出于意外,有時您會按下 Ctrl+s 這個組合鍵,Shell便被凍結。嘗試使用 Ctrl+q 組合鍵,看能否恢復正常。
7. 鍵綁定
等等,有必要記這么多快捷鍵么?都這么復雜!
我們強烈建議您記住,以大幅度的提高操作效率。而且這是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+`) \M-@ 補全主機名(\A+\S+2)
\M-$ 補全變量(\A+\S+4) \M-_ 補全歷史紀錄中的紀錄(\A+\S+-)
\M-* 將所有可能選項放到命令行中(\A+\S+8)
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
9. 通配符
使用 ? 代表任意單個字符。例如 ???lo ,表示 lo 前有三個字符,它可以匹配 Hello
使用 * 代表隨意幾個任意字符。例如 *.iso ,代表所有iso格式的文件。
說明:您可以將遍歷補全和通配符結合使用,以提高效率。
例如:
cd */ 則遍歷補全只補全文件夾
chmview *.chm 則遍歷補全只補全chm文件
10. 任務管理
& 在命令的末尾加上一個 & 符號,表示背景任務,例如:
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
11. 管道、重定向
> 重定向符號,它的作用是將命令的輸出重定向到一個文件中。比如我們想把命令 ls 的結果保存為 FileList 文件,作一個清單,我們可以使用重定向符號來完成它:
ls -l > FileList
>> 作用與 > 基本相同,不同點在于, >> 以追加的方式,將命令的輸出寫入文件的末尾。
< 是從文件到命令的重定向,將文件的內容作為命令的輸入。
| 為管道符號,它的作用是將前一個命令的輸出,作為下一個命令的輸入。假設一個目錄下的文件太多,使用 ls命令不能夠在屏幕中完全顯示,這個時候您可以將 ls 命令的輸出,通過管道符號,作為瀏覽器 less 的輸入。就可以使用瀏覽器的功能翻頁、查找:ls -al | less
說明: less 瀏覽器的鍵綁定幾乎與 man 相同,請參閱 在線幫助系統
12. 脫字符
Shell中的一些功能是通過特殊符號作為控制字符來實現的,上面已經介紹了很多了。這產生一個問題,如果一個文件名中,剛好包含了這些字符,比如 ; . 就很難對它進行操作。使用 less 瀏覽這個文件
less ;xxx
less 會很快返回一個錯誤信息,因為并沒有一個文件名作為操作對象。接著,Shell會報告,系統中沒有 xxx 這個命令。
這是因為Shell將文件名中的 ; 解析為按順序執行命令。
或者您的文件名以空白起始,而在Shell中,無論多少個空格,都將被解析為一個分隔符。您甚至不是使用命令重命名此文件。
這個時候就要用到脫字符 \ 了,它能夠將一個具有特殊涵義的字符轉換普通字符。上面的兩個任務,可以在文件名中每個特殊字符前加一個 \ ,像這樣
less \;xxx
less \ \xxx
less \;\ \&\xxx
說明:也可以使用 " 將文件名括起來,例如less "; &xxx" ,在很多情況下,這樣甚至更方便。
脫字符在Shell中也可以作為換行符,在一個命令的末尾添加一個 \ ,然后回車,在下一行繼續輸入命令剩余的部分,將一個命令拆分為多行且不影響它的執行(如果執行一個很長的命令,請將它拆分為多行以便于閱讀)
事實上換行符也符合脫字符的定義。回車鍵有兩個涵義,一個是 執行 (Enter),另一個 換行 (折線箭頭)。在Shell中它作為控制字符 執行 ,使用脫字符后,它便代表排版字符 換行 了。
13. Fish
Fish (the friendly interactive shell)
正如它的名字,Fish是一款非常友好的Shell,大力推薦!使用命令 sudo apt-get install fish 安裝它。完成后,運行命令 fish 切換到fish, exit 返回bash。
簡單介紹一下它的優點:
- 自動補全、語法高亮
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) {花括號中為青色文字}
它的語法高亮功能十分有用,如果你輸入的命令是正確的,則用青色顯示,正確的參數用白色顯示,錯誤的則一律用紅色。
-
方便的歷史紀錄搜索
還是上面的那個命令
mplayer -loop 0 -shuffle -playlist mp3_playlist
用上翻配合下翻瀏覽命令歷史,直到找到這個命令,當然那樣太慢了。
還可以輸入以上命令中的某一部分,如 uffle 只要翻一次就可以找到了
(還可以META+上翻在已輸入部分中插入某一歷史單詞) -
文件夾歷史紀錄
dirh (dir history)就可以顯示當前會話中進入的文件夾紀錄
使用 prevd 和 nextd 跳轉
假如曾進入過1 2 3 4 5 這幾個文件夾, prevd 4 可以讓你在 5 中直接跳到 1 -
其它的功能
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為向下查找,非常的方便。
14. 設定您的默認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 程序的安裝位置,詳見搜索
15. 設定命令的搜索路徑
使用 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系統簡介
1. 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/ 磁盤修復文件
2. 啟動流程
Linux系統主要通過以下步驟啟動:
-
讀取MBR的信息,啟動Boot Manager
Windows使用NTLDR作為Boot
Manager,如果您的系統中安裝多個版本的Windows,您就需要在NTLDR中選擇您要進入的系統。
Linux通常使用功能強大,配置靈活的GRUB作為Boot Manager,我們將在啟動管理章節中向您介紹它的使用方式。 -
加載系統內核,啟動init進程
init進程是Linux的根進程,所有的系統進程都是它的子進程。 -
init進程讀取
/etc/inittab文件中的信息,并進入預設的運行級別,按順序運行該運行級別對應文件夾下的腳本。腳本通常以 start 參數啟動,并指向一個系統中的程序。
通常情況下,/etc/rcS.d/目錄下的啟動腳本首先被執行,然后是/etc/rcN.d/目錄。例如您設定的運行級別為3,那么它對應的啟動目錄為 /etc/rc3.d/ 。 -
根據 /etc/rcS.d/ 文件夾中對應的腳本啟動Xwindow服務器 xorg
Xwindow為Linux下的圖形用戶界面系統。 -
啟動登錄管理器,等待用戶登錄
Ubuntu系統默認使用GDM作為登錄管理器,您在登錄管理器界面中輸入用戶名和密碼后,便可以登錄系統。(您可以在 /etc/rc3.d/ 文件夾中找到一個名為 S13gdm 的鏈接)
3. 更改運行級別
在 /etc/inittab 文件中找到如下內容:
\# The default runlevel.
id:2:initdefault:
這一行中的數字 2 ,為系統的運行級別,默認的運行級別涵義如下:
0 關機 1 單用戶維護模式 2~5 多用戶模式 6 重啟
4. 服務管理
4.1 更改啟動服務
在運行級別對應的文件夾中,您可以看到許多文件名以 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 。
4.2 手動控制服務
您也可以手動運行帶有以下參數的啟動腳本,來控制系統服務。
- start 啟動 - stop 停止 - restart 重啟
例如:
/etc/rc2.d/K20powernowd start
有時您并不清楚當前運行級別,該運行級別下未必有相應腳本;而且此類腳本的前三位字符并不固定,不便于記憶。這時,可以直接使用
/etc/init.d/ 文件夾中的啟動腳本( /etc/rcX.d/ 中的啟動腳本鏈接到 /etc/init.d/
文件夾下相應腳本),這也是推薦的方式。
例如:
/etc/init.d/powernowd start
Note:以上命令的位置并沒有包含在環境變量的搜索路徑中,所以要輸入完整路徑。
4.3 常用系統服務
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超級守護程序
4.4 重要配置文件
!無論任何情況下,修改配置文件之前,先備份它!
建議使用這個命令: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 的格式了
4.5 全局配置文件
系統初始化
/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 網卡配置文件
4.6 用戶配置文件
/etc/ 目錄下的文件,只有root用戶才有權修改。應用軟件的全局配置文件,通常普通用戶也不能夠修改,如果要通過配置軟件,來適應特殊需求,您可以修改用戶配置文件。
用戶配置文件通常為全局配置文件的同名隱藏文件,放在$HOME目錄下,例如:
/etc/inputrc /home/user/.inputrc
/etc/vim/vimrc /home/user/.vim/vimrc
也有少數例外,通常是系統程序
總結
- 上一篇: jboss7.0.2_JBoss AS
- 下一篇: ES常见查询示例