Ubuntu教程

Ubuntu的發音html

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

大多數的美國人讀 ubuntu 時,將 u 做爲元音發音,相似單詞 who 或者 boo ,重音在第二個音節即 u’buntu ,oo-boon-too 。node

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

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

Ubuntu的涵義算法

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

Ubuntu當前版本數據庫

Ubuntu Linux v6.06 LTS (Dapper Drake)ubuntu

LTS:Long Term Supportvim

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 將圖形界面關閉)

命令行提示符

user@ubuntu:~ @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:passwd@ftp.ubuntu.org.cn: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+`) \M-@ 補全主機名(\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(ayer) -l(oop) (0)

-sh(uffle) -pl(aylist) (mp3_playlist)

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

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

mplayer -l

後,自動將參數補全爲 -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 查看系統中已安裝軟件包信息

dpkg-reconfigure xxx 從新配置軟件包

有些時候,您使用 dpkg 安裝一個軟件包,系統會提示您該軟件包依賴其它軟件包。這時,您先安裝其它軟件包,直到知足依賴關係爲止。或者同時安裝多個軟件包

dpkg -i aaa.deb bbb.deb ccc.deb

APT

若是一個軟件依賴關係過於複雜,使用 dpkg

來安裝它,並非一個明智的選擇,這個時候您就須要用到APT軟件包管理系統。APT能夠自動的檢查依賴關係,經過您預設的方式來得到相關軟件包,並自動

安裝配置它。事實上,在多數狀況下,咱們推薦您使用APT軟件包管理系統。

APT系統須要一個軟件信息數據庫和至少一個存放着大量deb包的軟件倉庫,咱們稱之爲 源 。 源 能夠是網絡服務器,安裝CD或者本地軟件倉庫。您須要修改 /etc/apt/sources.list 文件,使APT系統可以鏈接到 源。

從如下頁面中得到網絡安裝源的列表,而且根據您的網絡環境,選擇速度較快的源。

http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E……%97/DapperDrake

APT系統主要包括 apt-get 和 apt-cache 等命令。一般是複合命令,包含若干個子命令。

apt-get install xxx 安裝xxx

-d 僅下載 -f 強制安裝

apt-get remove xxx 卸載xxx

apt-get update 更新軟件信息數據庫

apt-get upgrade 進行系統升級

apt-cache search 搜索軟件包

說明:建議您常用 sudo apt-get update 命令來更新您的軟件信息數據庫

APT系統修復

因爲各類意外,APT系統可能會出現問題,使用以下命令,嘗試進行修復:apt-get -f install

源碼包

對於絕大多數軟件,咱們建議您使用APT系統來安裝它。在少數狀況下,例如某軟件沒有以deb包的格式發佈,或者須要定製適合本身的軟件,您能夠經過編譯源代碼的方式安裝它。

首先須要下載軟件的源碼包,而且將它解包爲一些源代碼文件。並了便於管理,建議將下載的源碼包移動到 /usr/local/src/ 目錄下,並在這裏解包。

sudo mv xxx.tar.gz /usr/local/src 移動源碼包

cd /usr/local/src 進入「/usr/local/src/」目錄

sudo tar -xzvf xxx.tar.gz 解包源碼

cd xxx_ver/ 進行解包後的源碼目錄

源碼目錄中一般有一個 configure 腳本,用來配置即將開始的編譯過程。您能夠執行它

sudo ./configure [–prefix=/usr/loca/xxx ……]

它會自動檢測軟件的編譯環境和依賴關係,而且生成 Makefile 文件。

使用帶參數的命令 ./configure –help ,或者閱讀 INSTALL 文件,查看該腳本容許的參數。例如使用

–prefix=/usr/local/xxx 參數,將軟件的安裝目錄設定爲 /usr/local/xxx/

。(若是必定要將軟件安裝在單獨目錄下,建議您安裝在這裏)

如今執行 make 命令,系統會根據 Makefile 文件中的設定,經過 make 工具調用編譯器和所需資源文件,將源代碼編譯成目標文件。

sudo make

執行 make install 命令, make 工具會自動鏈接目標文件和庫文件,將最終生成的文件拷貝到 Makefile 文件設定的路徑中,而且完成更改文件的屬性,刪除殘留文件等活動。

sudo make install

如今,編譯安裝已經完成,爲了更方便的使用它,須要給程序的可執行文件做一個符號連接。

sudo ln -sf /usr/local/xxx/可執行文件 /usr/local/bin/可執行文件

Tip:爲了順利的進行編譯,至少須要安裝 build-essential 軟件包。

sudo apt-get install build-essential

Xwindow簡介

Xwindow是工做站圖形系統的工業標準,它有多種不一樣的實現,Ubuntu系統中使用的爲Xorg。

(比較前衛的圖形界面系統XGL,實際代替X服務器的做用,另外還有與之配套的窗口管理器)

歷史

固然,Xwindow有悠久的歷史和傳統,不過那不在咱們討論的範圍。您要注意的有兩點:

  • Xwindow 和 Xbox 中的「X」本意是不一樣的, X 只是 W 後的一個字母,差很少應該這樣理解,Xwindow 是 Window 的接班人 (注意,Window不是Windows)

  • 一樣,也不要把 Xwindow 說成是 Xwindows,那是一種褻瀆!一切偉大的創造,都應獲得應有的理解和尊重。

架構及原理

Xwindow使用服務器-客戶端架構。不管本地圖形界面,仍是遠程圖形界面,都以一樣的流程工做。這樣便不須要分別進行設計和維護,極大的提升了網絡透明性。

本地X客戶端 ┐ ┌ 鍵盤

遠程X客戶端 ┼ X協議 ─ X服務器 ─ 硬件規範 ┼ 鼠標

遠程X客戶端 ┘ └ 顯示器

Xserver

Xwindow系統服務器端,經過驅動程序(硬件規範)來管理硬件資源。

例如:當咱們移動鼠標時,經過驅動程序,向 Xserver 發送信息:

「向右移動200點,向上移動100點」(向右上移動);「按下左鍵」……

Xserver做出以下響應:

一、上一次鼠標中止的座標爲600,500

二、向右200,向上100。如今鼠標位於座標800,600

三、座標800,600處,爲窗口Firefox的「關閉」按鈕

四、根據預設動做,將 「點擊Firefox窗口的關閉按鈕」 翻譯爲 「關閉窗口Firefox」

五、向X客戶端Firefox發送一個「退出」消息

六、Xserver經過顯示子系統(顯卡、顯示器),全程顯示鼠標的位置和移動

  • 事實上,向程序發送「退出」信號,一般窗口管理器完成……爲了描述方便,這裏暫不區分。稍後,咱們將向您介紹 窗口管理器 的其它一些細節。

大多數的鼠標不須要專門的驅動程序,由於它們符合某一硬件規範,例如:有四個移動方向和三個鍵

Xclient

Xwindow系統客戶端,經過X協議,實現與Xserver 的交互。

例如:

一、Xclient (假設Firefox) 接收Xserver的消息: 輸入焦點在地址欄的範圍內,「ubuntu.org.cn」,回車

二、Firefox根據預設動做,將這些消息識別爲 「打開連接 ubuntu.org.cn」

三、Firefox向域名服務器請求 連接 「ubuntu.org.cn」。域名服務器將這個請求轉換爲 「http://ubuntu.org.cn/」 和 IP地址211.148.131.7,發送回 Firefox

四、Firefox將 「http://ubuntu.org.cn/」顯示在地址欄(向Xserver發送請求,在地址欄位置顯示這個地址)

五、Firefox向地址 211.148.131.7 請示顯示頁面。

六、Firefox將服務器發送回的頁面顯示在主窗口中

Xprotocol

Xwindow系統協議,Xserver和Xclient之間進行通訊的規則

窗口管理器

Window Manager,一種特殊的Xclient。

使用窗口管理器時,Xserver並不直接與其它Xclient通訊,而是經過WM中轉,當一些消息被定義爲WM指令時,它們會被攔截。例如Alt+F4關閉窗口、拖動標題欄……

消息「打開連接 ubuntu.org.cn」,具體內容以下:

輸入焦點在地址欄的範圍內,「ubuntu.org.cn」,回車

Xserver並不能直接判斷焦點,而是這樣:

一、Xserver向WM發送位置和點擊的信息,WM根據當前的「焦點策略」肯定激活(最上層)的窗口爲Firefox

二、Xserver將Firefox顯示在最上層,高亮顯示它的標題欄

三、在窗口Firefox內點擊地址欄,或者 Ctrl+L,Xserver將位置信息發送給WM,WM再發送給Firefox

四、Firefox判斷當前焦點後,顯示一個閃動的文字輸入光標

五、Firefox將輸入光標經過WM發送給Xserver,Xserver在屏幕相應位置進行顯示

那麼,「窗口管理器」到底能做些什麼呢?其實它所做的一切都是管理窗口。例如:

1.最上層的窗口會把其它窗口擋住

2.它一般是一個「已激活窗口」,根據不一樣的「焦點策略」,窗口管理器肯定被激活的窗口。

激活窗口標題欄高亮顯示,接收大部分的鍵盤消息和窗口內的鼠標點擊消息。

3.爲了美觀和容易分辨,大多數窗口都要有標題欄和邊框。

爲了方便,標題欄上還要有一些按鈕,好比:最小化,最大化,關閉(這些按鈕是窗口管理器請求的小窗口)

4.一個窗口能夠在另外一個窗口旁邊顯示,而不必定徹底被遮擋。爲了實現這一點,就要控制窗口顯示的位置

5.爲了控制窗口的顯示位置,須要將整個屏幕用座標描述,最好的辦法是繪製一個填充整個屏幕的窗口,也就是根窗口。

6.由於根窗口是最大的,因此它能夠嚴嚴實實的遮擋任何窗口,爲了不這一點,根窗口永遠在最底層。

這很形象的說明了爲何它叫做「根窗口」 ……root

7.根窗口不必定只有一個,大多數的窗口管理器可使用 「工做區」 ,來切換顯示多個根窗口

8.根窗口固定位置上一般放置一些其它Xclient的窗口,例如底部面板,頂部面板,側面板,程序啓動圖標

9.面板上又能夠放一些其它的Xclient窗口,如任務條,啓動欄,菜單……

任務條能夠以圖標顯示正在運行的任務,還能夠做其它的雜活,像自動掛載USB設備……

啓動流程

咱們知道 init 是linux的根進程,是全部進程的父進程。一樣, xinit是全部Xwindow進程的根進程

Startx

startx 命令能夠在命令行下啓動圖形界面。執行startx 命令時,實際執行這一命令:

xinit /etc/X11/xinit/xinitrc – /etc/X11/xinit/xserverrc

根據腳本 /etc/X11/xinit/xserverrc 啓動Xserver,同時根據腳本 /etc/X11/xinit/xinitrc 啓動指定Xclient進程,例如窗口管理器

腳本 /etc/X11/xinit/xserverrc 以預設的參數運行程序 /usr/bin/X11/X

/etc/X11/xinit/xinitrc 腳本則指向 /etc/X11/Xsession ,依次啓動 /etc/X11/Xsession.d 目錄中的腳本

  • 您能夠在用戶配置文件 ~/.Xsession 中定義使用的WM,它的優先級高於全局配置文件(對於GDM會話不起做用)

  • startx啓動時,並不會再進行身份認證。由於它啓動的是 /etc/X11/Xsession.d/gnome-session ,而不是 GDM會話

GDM會話

Ubuntu系統啓動時自動進入圖形界面,不須要運行 startx 命令

在某些啓動級別中,包含了gdm的啓動腳本,例如 : /etc/rc2.d/S13gdm

  1. 指向 /etc/gdm/gdm-cdd.conf 文件,加載預設視覺主題,啓動 /usr/lib/gdm/gdmgreeter(登陸屏幕)

  2. 用戶身份認證完成後,啓動 /etc/X11/default-display-manager 這個文件中設定的默認窗口管理器 /usr/sbin/gdm

gdm在啓動時,會要求用戶名和密碼,也就是咱們看到的登陸屏幕(gdmgreeter)

  • /usr/share/xsessions 目錄下爲全部可用登陸會話的腳本

配置文件

X服務器

X服務器的主要配置文件爲 /etc/X11/xorg.conf

佈局

Section 「ServerLayout」

Identifier 「Default Layout」

Screen 「Default Screen」 0 0

InputDevice 「Generic Keyboard」

InputDevice 「Configured Mouse」

EndSection

  • 定義了 佈局標識 、 屏幕標識 、 鍵盤標識 、 鼠標標識

模塊

Section 「Module」

Load 「i2c」

Load 「bitmap」

Load 「ddc」

Load 「dri」

Load 「extmod」

Load 「freetype」

Load 「glx」

Load 「int10」

Load 「type1」

Load 「vbe」

EndSection

X核心字體路徑

Section 「Files」

FontPath 「/usr/share/X11/fonts/75dpi」

FontPath 「/usr/share/X11/fonts/100dpi」

FontPath 「/usr/share/X11/fonts/misc」

FontPath 「/usr/share/X11/fonts/cyrillic」

FontPath 「/usr/share/X11/fonts/100dpi/:unscaled」

FontPath 「/usr/share/X11/fonts/75dpi/:unscaled」

FontPath 「/usr/share/X11/fonts/Type1」

FontPath 「/usr/share/fonts/Chinese/wqy-bitmapfont」

EndSection

屏幕

Section 「Screen」

Identifier 「Default Screen」

Device 「ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]」

Monitor 「DELL E176FP」

DefaultDepth 24

SubSection 「Display」

Depth 1

Modes 「1280x1024」 「1152x864」 「1024x768」 「800x600」 「720x400」 「640x480」

………………

EndSubSection

EndSection

  • DefaultDepth 24 默認色深

  • SubSection 可用色深及分辨率

顯卡

Section 「Device」

Identifier 「ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]」

Driver 「fglrx」

Option 「KernelModuleParm」 「agplock=0」

VideoRam 131072

EndSection

  • Identifier 顯卡標識

  • Driver 顯卡驅動(如不一樣正常啓用圖形界面,首先嚐試」vesa」)

  • Option 顯卡參數

  • VideoRam 顯存大小

顯示器

Section 「Device」

Identifier 「ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]」

Driver 「fglrx」

Option 「KernelModuleParm」 「agplock=0」

VideoRam 131072

EndSection

配置文件內部結構

/

├/ 「ServerLayout」 佈局

│├ 「InputDevice」 keyboard 鍵盤

│├ 「InputDevice」 mouse 鼠標

││

│└/ 「Screen」 顯示子系統

│ ├ 「Monitor」 顯示器

│ ├ 「Device」 videocard 顯卡

├ 「Files」 字體

└ 「Module」 模塊

X客戶端

在 /etc/X11/Xsession 文件中能夠發現下列內容

OPTIONFILE=/etc/X11/Xsession.options

SYSRESOURCES=/etc/X11/Xresources

USRRESOURCES=$HOME/.Xresources

SYSSESSIONDIR=/etc/X11/Xsession.d

USERXSESSION=$HOME/.xsession

ALTUSERXSESSION=$HOME/.Xsession

ERRFILE=$HOME/.xsession-errors

  • OPTIONFILE=/etc/X11/Xsession.options 設定X進程的啓動參數。例如容許用戶進程allow-user-xsession

  • Xresources X資源文件。許多程序保留了X接口,容許X服務器管理一些視覺選項,例如窗口內的字體,配色等

  • xsession X進程。能夠設置一些啓動時自動運行的程序,也能夠用來設定本身的窗口管理器(窗口管理器和桌面環境或者登陸管理器是無關的)

字體

freetype渲染引擎

做爲Xorg服務器的一個模塊,freetype的功能包括讀取Truetype字體信息,如大小、分辨率、編碼等,並以之爲依據渲染字體 -

freetype2.x相對於freetype1.x 增長了抗鋸齒等功能 - ( /etc/X11/xorg/conf 的 Module

字段中,能夠選擇字體渲染模塊,建議使用默認的 freetype )

freetype只負責渲染字體。而查找字體,則能夠由X服務器、X客戶端或者字體服務器來完成。找到字體後,使用freetype引擎就地渲染

X核心字體

X服務器根據X客戶端的請求(字符編碼),查找字體並進行渲染,而後顯示,咱們稱之爲

Xft字體

X客戶端自行查找字體並進行渲染,X服務器只負責顯示

因爲Xft字體的渲染在客戶端完成,因此它能夠動態的加載,而不須要隨同X服務器一同啓動

字體服務器

另外還有一種字體服務器模式,例如 XFT字體:當客戶端請求字體時,X服務器將請求轉發到字體服務器,由字體服務器查找字體,並使用freetype引擎渲染,將結果傳回X服務器,X服務器進行顯示……

X核心字體

/etc/X11/xorg.conf 中能夠配置X核心字體的搜索路徑

Section 「Files」

FontPath 「/usr/X11R6/lib/X11/fonts/misc/」

FontPath 「/usr/X11R6/lib/X11/fonts/Type1/」

FontPath 「/usr/X11R6/lib/X11/fonts/Speedo/」

FontPath 「/usr/X11R6/lib/X11/fonts/100dpi/」

FontPath 「/usr/X11R6/lib/X11/fonts/75dpi/」

EndSection

*

當X客戶端向X服務器請求顯示文字的時候,X服務器會按上面列表的前後順序查找字體

例如顯示中文時,若是第一個路徑中的字體不包含中文,則查找下面的路徑,直到發現中文字體

*

請將您偏好的字體放在靠前的位置

要使安裝的字體可以做爲X核心字體使用,將字體的安裝路徑添加到上面的列表中,使用 mkfontscale 、 mkfontdir

掃瞄文件夾中的字體,並生成索引,就能夠了(建議使用 ttmkfdir 生成 fonts.scale ,將其複製爲 fonts.dir )

字體的選擇及顯示風格,能夠修改GTK1的配置文件,或者在Xresources文件中對程序單獨進行定義

事實上,在咱們的平常應用中,X核心字體環境並不常見,使用GTK1圖形庫的程序、某些類型的終端……

  • Emacs也是這樣一個老派的程序……不過Emacs23中剛剛加入了xft字體的支持

XFT字體

Xft字體相關選項在 /etc/fonts/fonts.conf 文件中配置

可使用 fc-cache 命令,遞歸掃瞄如下目錄中的字體(包括子文件夾中的字體),創建字體緩存

/usr/share/X11/fonts

/usr/share/fonts

/usr/local/share/fonts

~/.fonts

  • /etc/fonts/fonts.conf 文件的 字段

多數支持GTK2或者Qt圖形庫的X客戶端可以使用Xft字體渲染技術

  • GTK2爲Gnome使用的圖形庫,Qt爲KDE使用的圖形庫。相對來講,GTK2圖形庫在程序的GUI設計中更加通用

安裝字體,只要將字體拷貝到以上任意目錄, fc-cache -fv 刷新字體緩存便可 (參數: -f 強制刷新; -v 顯示過程)

使用命令 fc-list 列出全部可用字體

字體的選擇及顯示風格,能夠修改GTK2或者Qt的配置文件,建議使用圖形界面配置

  • 通常狀況下,桌面環境中附帶了相關程序,例如 gnome-font-properties

系統管理

一些細節

Linux是大小寫敏感的系統,全部的命令、路徑、參數、變量……都區分大小寫

使用 TAB 鍵補全命令,不管任什麼時候候,多按幾回TAB總會有所幫助

Shell的功能鍵可以協助您更高效的編輯命令,請熟悉其鍵綁定,儘可能使用它

命令由 命令名 、 分隔符 、 參數 、 操做對象 構成

命令名

標識命令的功能,例如cp(copy)、mv(move)、rm(remove)……

有些命令包含一些子命令,您能夠認爲它的命令名由兩個單詞構成,例如「apt」軟件包管理系統:

apt-get install 安裝一個軟件

apt-get remove 刪除一個軟件

分隔符

一般爲空格,多個連續的空格視爲一個空格,下面兩個命令相同:

cp a b

cp a b

有一些特殊符號也屬於分隔符,例如管道 | 、重定向 > 、 >> 、 < 、後臺運行 & 、序列執行 && 、 ; 。使用這些符號時,您不須要再使用空格做爲分隔符,例如:

ls -al|less

寫爲如下形式,是爲了讓您更容易的閱讀它:

ls -al | less

參數

精細調節命令的行爲,以 - 引導,一般爲參數名的首字母。許多軟件均可以使用 -h 參數來閱讀使用說明,例如:

apt-get -h

也可使用參數的全名,通常以 – 引導,例如:

apt-get –help

多數命令中,使用 - 引導多個字符,將會被視爲多個參數,例如:

apt-get -help

系統會解讀爲如下命令

apt-get -h -e -l -p

少數命令的參數,不須要以 - 引導,或者使用 - 引導參數全名,例如:

ps aux

/etc/init.d/gdm start

mplayer -loop xxx

須要對多個對象進行操做時,可使用空格分隔符將它們隔開:

touch 1 2 3 4 5 6

使用空格分隔的多個對象,視爲一個總體,做爲命令的一個操做對象:

mv 1 2 3 4 5 6 /home/

這個命令把「1 2 3 4 5 6」做爲一個操做對象,移動到另外一個操做對象,「/home/」目錄

遞歸 表示在子層次中重複相同操做。例如遞歸複製某目錄,不但複製當前目錄及其下的全部文件;並且對當前目錄的子目錄,也進行遞歸複製的操做。

格式約定

使用 [] 表示可選項,實際輸入爲方括號中的內容,例如

ls [-al]

ls是必須的,參數不須要以方括號括起來。

使用 <> 表示必需項,實際輸入爲尖括號中的內容

使用 | 表示 或 ,以 | 分隔的項目不能同時使用,例如

tar [-z|j c|x vf] <歸檔文件> [源文件]

參數一般緊跟命令名,除非必要,在命令格式中,咱們一般省略它們

系統信息

uptime

聯機信息-時間,顯示以下

11:27pm up 9 days, 7:12, 3 user, load average: 0.07, 0.12, 0.14

當前系統時間 系統運行時間 當前在線用戶數 系統負荷 1分鐘前 5分鐘前 15分鐘前

w

聯機信息-已登陸用戶,顯示以下

01:04:10 up 1:34, 2 users, load average: 0.25, 0.16, 0.11

uptime 信息

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

user tty1 192.168.0.1 23:30 1:33 0.14s 0.12s -bash

用戶名 登陸方式 來源地址 登陸時間 發呆時間 資源佔用 當前任務

Tip:w [用戶名稱] : 顯示某一用戶相關信息

who

聯機信息,經常使用參數

-r 運行級別

whoami

顯示當前用戶名

last

最近用戶登陸信息

-<數字> 使用數字做爲參數,控制顯示條目。例如

last -10 顯示10條紀錄

uname

系統信息

-s 內核名稱(默認參數) -a 所有 -p CPU信息 -n 主機名

-r 內核發行信息(版本號) -v 內核版本信息

date

顯示、設定系統時間

-u 顯示格林尼洛時間(UTC)

MMDDhhmm[[CC]YY][.ss] 設定時間,須要管理員權限。例如: date 12292359

MM 月份 DD 天數 hh 小時 mm 分鐘 CC 年份前兩位 YY 年份後兩位 ss 秒鐘

秒鐘、年份爲可選,例如: date 122923592006.59

+[%X]設定顯示格式,如下爲date默認輸出格式:

date +%Y年%m月%d日%A%H:%M:%S%Z

格式控制 %n 換行 %t 製表符

小時 %H(00~23) %I(01~12) %k(0~23) %l(1~12) %p(AM|PM)

分、秒 %M分鐘(00~59) %S秒(00..61) %T(hh:mm:ss) %r(hh:mm:ss [AM|PM])

%s 從1970年1月1日00:00:00 UTC到目前爲止的秒數 %X(%H:%M:%S) %Z時區

星期 %a(Sun~Sat) %A(Sunday~Saturday) %w : 一週中的第幾天 (0..6)

年份 %Y(0000~9999) %y(00~99)

月份 %m(01~12) %b %h(Jan~Dec) %B(January~December)

日期 %d(01~31) %j(001~366)

%x(本地格式mm/dd/yy) %D(mm/dd/yy) %c

一年中的第幾周

%U(00~53)以Sunday爲一週的第一天 %W(00~53)以Monday爲一週的第一天

cal

顯示日曆

文件管理

一些細節

/ 目錄爲文件系統根目錄,全部目錄都是它的子目錄

絕對路徑以 / 起始,相對路徑以當前所在目錄起始

目錄是一種特殊類型的文件,若是沒有特別指明, 文件 包括文件和目錄

.. 表示上一級目錄, . 表示當前目錄,它們是兩個特殊目錄

連接

爲當前文件創建在其它路徑中的訪問方法。例如將系統中其它位置的可執行文件,連接到 /usr/local/bin 目錄下,使用命令調用。

ls [路徑]

顯示當前目錄文件列表

–color 不一樣屬性以不一樣顏色顯示(默認參數)

-a 所有顯示 -i 顯示inode值 -l 詳細信息

-F 顯示文件類型後綴 目錄/ 連接@ 可執行文件* 端口文件= 管道文件| >

-A 顯示隱藏文件 -R 遞歸顯示子目錄文件列表 -S 按文件大小排序

-t 按修改時間排序 -u 按訪問時間排序 -d 只顯示目錄,不遞歸顯示目錄下的文件

cd [目錄路徑] | [特殊路徑]

切換目錄

目錄路徑可使用絕對路徑或者相對路徑特殊路徑:

~ $HOME目錄(默認值) - 上一次目錄 .. 上一級目錄 . 當前目錄

說明:您能夠經過修改 /etc/environment 文件,來定義 $CDPATH 變量,設定「cd」命令的搜索路徑。

pwd

顯示當前路徑

file <文件名>

顯示文件類型

-i 顯示mime類型

du [路徑]

計算文件或目錄空間佔用

-h 人性化顯示。自動以G、M、K爲單位顯示佔用空間大小 -l 重複計算硬連接文件大小

-L 計算符號連接文件大小 -a 顯示當前目錄子目錄中的文件 -c 顯示文件數

less <文件名>

瀏覽文件,使用VI和Emacs兩種風格的鍵綁定。如下爲VI風格鍵綁定

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

Ctrl+b(ackward) 向上翻一頁 Ctrl+u(p) 向上翻半頁 / 查找 q(uit) 退出

touch <目標文件>

觸碰,在不修改文件的前提下,更改其時間屬性。一般用來建立一個空文件

mkdir <文件夾>

建立文件夾

-p <多級目錄> 按路徑建立多級目錄 -m <數字權限值> 設定權限

cp <源文件> <目標目錄|文件>

將源文件複製爲目錄文件,或者將源文件複製到目標目錄。多個源文件使用空格分隔

cp <源目錄> <目標目錄>

將源目錄複製到目標目錄中,若是複製多個源目錄,須要使用 -R 參數

-a 至關於-dpr參數 -d 保留連接 -f 強制複製,覆蓋目標文件 -i 覆蓋時詢問用戶

-p 保留修改時間和訪問權限 -r -R 遞歸複製(目錄=>目錄) -l 建立連接

-v 顯示過程

rm <目標目錄|文件>

刪除

-r -R 遞歸刪除 -f 強制刪除(無需確認,直接刪除。慎用!) -i 交互式刪除(詢問用戶)

rmdir <目標目錄>

刪除目錄時,建議您使用「rm -r」命令

mv <源文件> <目標目錄|文件>

至關於cp後刪除源文件,也能夠做爲「重命名」使用。

mv <源目錄> <目標目錄>

-r -R 遞歸

ln <源文件> <連接>

連接

-s 符號連接 -f 強制連接,覆蓋目標文件 -i 覆蓋前詢問用戶

文件操做

nano

一個簡單輕便的文本編輯器,使用Emacs風格的鍵綁定。

split <源文件> [目標文件名前綴]

將源文件按必定規則分割成若干個目標文件。默認文件名前綴爲 x

-<行數> 按行數分割文件 -l <行數> 同上

-b <字節> 按大小分割文件。可使用b、k、m做單位,不指定單位的狀況下,默認單位爲b

-C <字節> 按大小分割文件,並儘可能保持每行的完整

示例:split -C 100k file.split x

cat <文件名>

輸出文件內容。用空格分隔多個文件名,能夠將多個文件內容鏈接到一塊兒輸出。使用重定向合併爲一個文件

-n 在輸出中添加行號 -b 在輸出中添加行號,空行不編號

-s 將兩行或以上的空行,合併爲一個空行

示例:cat xaa xab xac > file.split

sort [-o <輸出文件>] [-t <分隔字符>] [+<起始字段> - <結束字段>] [文件]

對文本內容排序

-m 合併文件 -c 檢查文件是否已按規則排序 -b 忽略行首空格字符

-u 忽略內容重複行 -f 忽略大小寫 -l 忽略非打印字符 -M 做爲月份比較

-d 按字典順序排序,按照字母、數字、空格、製表符排序 -r 逆序輸出

more

查看文件內容,咱們建議您使用 less

diff <文件名>

比較文件

cksum [文件名]

計算文件的CRC值。不指定文件名則從標準輸入設備讀入數據,例如:

echo xxx | cksum

md5sum [文件名] 計算文件的md5值。同上

權限管理

一些細節

一個文件主要包含下列屬性, ls -l

  • rwx rwx rwx user group date filename

111 101 101

其中,第一組爲歸屬用戶的權限,第二組爲歸屬羣組的權限,第三組爲其它用戶羣組的權限。user爲文件的歸屬用戶,group爲文件的歸屬羣組,date爲日期信息,filename爲文件名。

對於文件夾,必須擁有它的可執行權限,纔可以使用 cd 命令進入該文件夾;擁有可讀權限,纔可以使用 ls 命令查看該文件夾的文件列表。

root用戶擁有最高權限。

可使用3位的二進制數字來描述一組權限,某一權限對應的數字爲1,則表示具備該種權限,爲0,則不具備該種權限。

使用二進制數字來描述一組權限,雖然很是直觀,可是3組權限須要用9位數來表示,使用不夠方便。所以咱們將三組權限使用3位8進制數字來表示。它們的對應關係爲:

r 100 4

w 010 2

x 001 1

將這三位8進制數字相加的結果,就能夠表示該組權限的具體內容,例如:

7=4+2+1=rwx

5=4+1=rx

755=4+2+1 4+1 4+1=rwx r-x r-x

還可使用 a 、 u 、 g 、 o 表示歸屬關係,使用 = 、 + 、 - 表示權限變化,使用 r 、 w 、 x 表示權限內容,

a 全部用戶 u 歸屬用戶 g 歸屬羣組 o 其它用戶

= 具備權限 + 增長權限 - 去除權限

r 可讀權限 w 可寫權限 x 可執行權限

例如:

a+x 給全部用戶增長可執行權限

go-wx 將歸屬羣組和其它用戶的可寫、可執行權限去掉

u=rwx 歸屬用戶具備可讀、可寫、可執行權限

chmod <權限表達式> <文件|目錄>

更改文件的權限。權限的表達式可使用三位8進制數字表示,或者使用 augo +-= rxw-s 來表示

-R 遞歸

-v 顯示過程

-c 相似「-v」,僅顯示更改部分

–reference=<參考文件或目錄> 以指定文件爲參考更改權限

示例:

chmod -R a+x path

chmod -Rv 755 path

chown <歸屬用戶>[:歸屬羣組] <文件|目錄>

更改文件的歸屬用戶。可使用用戶名或者UID

-R 遞歸 -v 顯示過程 -c 相似 -v ,僅顯示更改部分

–reference=<參考文件或目錄> 以指定文件爲參考更改權限

示例:

chown user:admin path chown -R user.admin path chown user path

chgrp <歸屬羣組> <文件|目錄>

更改文件的歸屬羣組。可使用羣組名或者GID

參數同上

SUID、SGID、Sticky bit

某些狀況下,須要以可執行文件歸屬用戶的身份執行該文件,能夠爲該文件設置SUID。一樣,設置SGID可以以該文件歸屬羣組的身份執行它。

例如:用戶自行設定密碼。出於安全方面的考慮, /etc/shadow 只能由root用戶直接修改。

-rw——- root root /etc/shadow

這個時候,能夠爲程序 /usr/bin/passwd

設置SUID,當普通用戶執行「passwd」命令時,便可以以該程序歸屬用戶root的身份修改 /etc/shadow

文件。而「passwd」程序自身帶有身份驗證機制,不能經過驗證時拒絕執行,從而保證了安全。

ls -l /usr/bin/passwd

-r-s–x–x root root /usr/bin/passwd

咱們發現,歸屬用戶的可執行權限位使用 s ,表示SUID。一樣,歸屬羣組的可執行權限位使用 s ,表示SGID。任何用戶或羣組都擁有

其它用戶 的權限,因此不須要以 其它用戶 身份執行文件,其它用戶的可執行權限位便不會出現 s 。該權限位可能出現的屬性爲 t

,也就是粘着位Sticky bit。

ls -ld /tmp

drwxrwxrwt root root /tmp

粘着位表示任何用戶均可能具備寫權限,但只有該歸屬用戶或root用戶纔可以刪除

SUID、SGID、Sticky bit也能夠像權限同樣,使用一個八進制數表示,以下:

4 SUID

2 SGID

1 Sticky bit

經過在「chmod」命令中使用4個八進制數的表達式,如 4755 ,用第一位表示SUID、SGID、或Sticky bit,便可以爲文件設置這些特殊權限。示例:

chmod -R 4755 path

lsattr [路徑]

查看文件的特殊屬性

-a 所有顯示 -d 只顯示目錄 -R 遞歸

特殊屬性包括:

a:僅供附加用途 b:不更新最後存取時間 c:壓縮後存放 d:排除在傾倒操做以外

i:不得任意更動文件或目錄 s:保密性刪除文件或目錄 S:即時更新文件或目錄

u:預防之外刪除

chattr +|-|=<屬性> <路徑>

更改文件特殊屬性

-R 遞歸 -V 顯示過程

壓縮解壓

tar -c|x|u|r|t[z|j][v] -f <歸檔文件> [未打包文件]

將多個文件打包爲一個歸檔文件,能夠在打包的同時進行壓縮。支持的格式爲tar(歸檔)、gz(壓縮)、bz2(壓縮率更高,比較耗時)

-c 建立 -x 解包 -u 更新 -r 添加 -t 查看

-d 比較壓縮包內文件和文件 -A 將tar文件添加到歸檔文件中 -z 使用gz壓縮格式

-j 使用bz2壓縮格式 -v 顯示過程 -f <文件名> 歸檔文件的文件名

-C <解壓路徑> 將壓縮包中的文件解壓到指定目錄

[未打包文件] 建立、更新時必須填寫

示例:

tar -zcvf xxx.tar.gz xxx/ xxx1 xxx2 xxx3 多個待打包文件以空格分隔

tar -zcvf xxx.tar.gz /home/user/xxx/ 使用絕對路徑打包,解包也使用絕對路徑

tar -zxvf xxx.tar.gz 按相對路徑解包到當前目錄下,或按絕對路徑解包

tar -zcvf xxx.tar.gz xxx | split -b 1m 打包後,使用split分割爲1m大小的多個文件

其它參數

-P 使用絕對路徑壓縮時,保留根目錄「/」 -W 校驗 -p 還原文件權限

-w 詢問用戶 –totals 統計 -T <表達式> 處理符合條件的文件

-X <表達式> 排除符合條件的文件

zip [參數] <壓縮包> <源文件>

使用zip格式打包文件

-r 遞歸,將指定目錄下的全部文件和子目錄一併處理 -S 包含系統和隱藏文件

-y 直接保存符號鏈接,而非該鏈接所指向的文件 -X 不保存額外的文件屬性

-m 將文件壓縮並加入壓縮文件後,刪除源文件

-<壓縮級別> 1~9,數字越大,壓縮率越高

-F 嘗試修復已損壞的壓縮文件 -T 檢查備份文件內的每一個文件是否正確無誤

-q 不顯示指令執行過程 -g 將文件壓縮後附加在既有的壓縮文件以後,而非另行創建新的壓縮文件

-u 更新壓縮包內文件

-f 更新壓縮包內文件。若是符合條件的文件沒有包含在壓縮包中,則壓縮後添加

-$ 保存第一個被壓縮文件所在磁盤的卷標 -j 只保存文件名稱及其內容

-D 壓縮文件內不創建目錄名稱 -i <表達式> 壓縮目錄時,只壓縮符合條件的文件

-x <表達式> 排除符合條件的文件 -n <文件名後綴> 排除指定文件名後綴的文件

-b <緩存路徑> 指定臨時文件目錄 -d <表達式> 從壓縮文件內刪除指定的文件

-t <日期時間> 把壓縮文件的日期設成指定的日期

-o 以壓縮文件內擁有最新更改時間的文件爲準,將壓縮文件的更改時間設成和該文件相同

-A 調整可執行的自動解壓縮文件 -c 替每一個被壓縮的文件加上註釋

-z 替壓縮文件加上註釋 -k 使用MS-DOS兼容格式的文件名稱。

-l 壓縮文件時,把LF字符置換成LF+CR字符。 -ll 壓縮文件時,把LF+CR字符置換成LF字符。

unzip [參數] <壓縮文件> [壓縮包中將被釋放的文件]

解壓zip壓縮包文件

-P <密碼> zip壓縮包的密碼 -d <路徑> 指定解壓路徑 -n 解壓縮時不覆蓋原有文件

-f 覆蓋原有文件 -o 不經詢問,直接覆蓋原有文件

-u 覆蓋原有文件,並將壓縮文件中的其餘文件解壓縮到目錄中

-l 顯示壓縮文件內所包含的文件 -t 檢查壓縮文件是否正確 -z 顯示壓縮包註釋

-Z unzip -Z等於執行zipinfo指令 -j 不處理壓縮文件中原有的目錄路徑

-C 壓縮文件中的文件名稱區分大小寫 -L 將壓縮文件中的所有文件名改成小寫

-s 將文件名中的空格轉換下劃線 -X 解壓縮時保留文件原來的UID/GID

-q 執行時不顯示任何信息 -v 執行是時顯示詳細的信息

-c 將解壓縮的結果顯示到屏幕上,並對字符作適當的轉換

-p 與-c參數相似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換

-a 對文本文件進行必要的字符轉換 -b 不要對文本文件進行字符轉換

-x <表達式> 處理裏排除壓縮包中的指定文件 -M 將輸出結果送到more程序處理

7z|7za <子命令> [參數] <壓縮包> [文件]

子命令

a 添加 d 刪除 e 解壓 x 帶路徑解壓 l 列表查看 t 測試 u 更新

參數

-m<壓縮方式> -m0=<壓縮算法> 默認使用lzma -mx=<1~9> 壓縮級別

-mfb=64 number of fast bytes for LZMA = 64 -md=<字典大小> 設置字典大小,例如 -md=32m

-ms=

相關文章
相關標籤/搜索