Linux愛好者入門教程

我們首先應該知道電腦的基本情況。電腦,就是一堆金屬,半導體和塑料制品的總合,如果通上電源,就可以啓動,但是你什麽都不能做,因爲電腦只是一堆硬件,如果你不是拿來賣廢鐵,它即笨重又刺眼(如果你的電腦是一堆白色外殼的話)。可是爲什麽電腦那麽的吸引我們?因爲有了操作系統和應用軟件。
操作系統是一種特殊的軟件,用來讓計算機硬件和軟件協同工作,並且處理我們敲打鍵盤和移動鼠標這些動作。常見的操作系統有Windows,它有很多版本;MAC OS,蘋果電腦上就用它;UNIX,很多大型機都使用穩定的UNIX;Linux,就是我們今天的主角,一種功能強大,運行穩定,性能優異的公開源代碼的操作系統。
應用軟件,則實實在在的爲我們提供幫助,我們用網絡軟件IE上網,用聊天軟件QQ聊天,用下載軟件FlashGet下載我們需要的資源。正是因爲有了各種各樣的軟件,我們的電腦才變的豐富多彩。
但是請注意,我們剛才說的這些軟件全部只能在Windows操作系統下工作。可是Windows操作系統價格不扉,尤其是對于我們正在高舉鄧小平建設有中國特色社會主義偉大旗幟,緊密團結在以江澤民總書記爲核心的黨中央周圍,解放思想,實事求是,以江澤民總書記三個代表重要思想爲指導,建設新中國的大學生來說,上千元的價格讓我們望而卻步。于是出現了盜版。剛剛頒布的新的版權法規定,不僅銷售盜版電腦軟件違法,購買使用盜版軟件同樣是一種違法行爲。我們怎麽能置國家法律于不顧,挺而走險去購買盜版軟件呢?
但是,沒有Windows的世界同樣精彩。如果說電腦是一塊陸地,Windows就是上空的烏雲,只有剝開烏雲我們才能見到美麗的太陽。我們剝開這塊烏雲的工具就是Linux。

那麽到底什麽是Linux呢?
在很久很久以前,70年代吧,那時候Windows還沒有出現,UNIX是應用最廣泛的操作系統。但是UNIX同樣有著高昂的價格。于是有一個牛人(我記不得他的名字的具體拼寫,只好用牛人代替,畢竟,把別人的名字寫錯比用牛人這個名字更糟糕吧),這個牛人想要建立一個開放的系統,這個系統很龐大,龐大到非常龐大的地步。包含了操作系統(可以不止一個,事實上現在也不止一個,只是我們只討論Linux罷了),軟件,各種文檔,各種媒介的資料以及很多其他的東西。所有這些東西大都使用一個協議,就是我們常常說的GPL或則LGPL(這個協議簡單的說就是:公開所有源代碼,任何人可以免費獲得,也可以添加刪除和修改,甚至可以拿去賣錢,只要你保證你修改過以後得到的軟件和你銷售的軟件也使用GPL協議就可以)。牛人給這個龐大的開放系統一個響亮的名字(響亮嗎):GNU-GUN is Not Unix。
Linux就是GNU系統裏面發展的最好的一個操作系統。但是Linux只是一個核心,一個高尚的操作系統核心,一個純粹的操作系統核心。這個純粹的高尚的操作系統核心最早是由另一個牛人Linus開發出來的,當時這個芬蘭人不比咱大多少,說不定比俺還小呢,但是牛啊,真牛啊。Linux核心加上很多優秀的GNU系統中的應用軟件,就是我們現在所提起的Linux。

那麽什麽是Redhat Linux,什麽是Mandrake Linux呢?
在很近很近以前,90年代吧,Linux已經漸漸有了舍我齊誰的鋒芒。由于Linux屬于GNU系統,這個系統采用的GPL協議,保證了代碼的公開,于是有N那麽多公司蜂擁而至,在Linux內核源代碼的基礎上進行一些必要的修改加工,再開發一些配套的軟件,最後選擇一些優秀的軟件,把它們合在一起發布,形成自己公司的發布版Linux。美國的Redhat公司發行了Redhat Linux,法國的Mandrake公司發行Mandrake Linux,德國的SUSE公司發行SUSE Linux,咱們中國的N多公司也瘋似的發布自己所謂的中文Linux,但是到現在爲止,國産Linux還難蹬大雅之堂。Linux公司多如牛毛,Linux發行版也多如牛虱,在這裏我們不能不提到Debian GNU/Linux。

Debian GNU/Linux是一套非常特殊的Linux發行版,它不同于其他Linux發行版都是由商業公司開發並發行,Debian GNU/Linux是由另一個牛人發起的,這個牛人的名字以Ian開頭,那位牛太太的名字開頭三個字母是Deb,于是在愛情的力量下,他發起了Debian GNU/Linux組織,致力于開發一套非商業性的Linux發行版。愛情真偉大,他做到了。現在全世界有800多個工程師在致力于爲Debian GNU/Linux奉獻自己的業余時間。而且這個數字在不斷的增長。Debian GNU/Linux是Linux發行版中比較優秀的一款,我以後會詳悉的介紹。以後再提起Debian GNU/Linux,我用Debian代替。

關于內核版本和發行版版本不得不說的故事
既然Linux只是一個內核,Linux發行版是Linux內核以及各種應用軟件的集合,那麽Linux出現了兩種版本號。一種是內核版本,一種是發行版本號。Linux內核版本號的格式是x.y.zz-www,不同的數字代表不同的開發版本,有穩定的,也有測試中的。Linux發行版本號由各個發行公司或者組織制定,Redhat Linux有6.0, 6.2, 7.0, 7.2, 7.3等等,通常,內核版本序號是偶數表示是穩定的版本,奇數序號是不穩定的測試版本。其實Windows也是一樣,只不過我們不常聽說,比如Windows2000的內部版本號是2195,發行版本就是2000。不知道會不會有哪一個Linux發行版本使用2003的版本號,呵呵。

一些約定和一些網址
往後,我們用Linux指Linux發行版,用Kernel指Linux內核。用Debian指Debian GNU/Linux,用Redhat指Redhat Linux。
下面是一些常用的Linux官方網站:
http://www.kernel.org
http://linux.com
http://www.linux.org
http://www.linuxhelp.org
下面的是國內的優秀的Linux論壇:
http://www.linuxforum.net
http://www.linuxfans.org
http://www.linuxaid.com.cn
下面這個搜索引擎Google是我們大力推薦的最好的搜索引擎,我自從用過以後就沒有使用過其他的。
http://www.google.com
下面是幾個很好的自由軟件基地,不過有被中國電信封IP的危險,郁悶啊。
http://freshmeat.net
http://sourceforge.net
http://www.cosoft.org.cn

下一章我們要講述一些Linux的基本知識,其實也使一些基本的電腦常識。

第一章 Linux基礎知識

硬盤
硬盤是可以存儲大量信息資源的媒介。我們平時看到的硬盤是方方正正的一塊挺沈的鐵匣子,但是其實硬盤是圓的,加上一些控制電路以後,爲了便于攜帶而設計成爲方形外殼。但是硬盤真是圓的,不騙你,要不怎麽叫做盤呢?第二,你需要知道的是硬盤可以進行分區。可以把硬盤分區成爲很多個分區,看來分區即是一個名次也是一個動詞。什麽叫做名次的分區呢?現在的硬盤越來越大,存放的資源越來越多。爲了更合理的管理使用硬盤資源,更有效的提高查詢速度和訪問質量,我們可以把硬盤劃分爲很多分區,分別存放一些信息。當你需要讀取某一個資料的時候,系統會自動使用最近的磁頭去讀取,加快讀取速度。硬盤分區是從硬件的基礎上對資源進行合理管理的手段。
分區已經了解了,但是我們不能只有分區啊,我們得用一個方法來控制分區。Windows操作系統使用了盤符這個概念,用單一的字母來表示硬盤上的不同分區,比如,C盤,D盤等等。在Windows2000以前,C盤對應了第一個分區,D盤對應第二個分區,依此類推。到了Winows2000,這個對應關系可以自己調整了。
在Linux裏邊,我們沒有盤符這個概念,我們用目錄的形式進行管理。
爲了保證文章的完整性,簡單說說目錄吧,其實大家都很清楚的。如果我們把數以萬計的水果扔在一個籮筐裏面是不是很難找?但是如果我們把蘋果放在叫做蘋果的籮筐裏面,把梨放在叫做梨的籮筐裏面……這樣是不是大大簡化了我們尋找指定水果的速度?這些水果如果是我們的文件,那麽我們用的籮筐就叫目錄。新的問題出現了,即使把桃子扔在叫做桃子的籮筐中,我們仍然很難從好幾千個桃子裏面找出來自四川成都龍泉驿的桃子啊。聰明的你一定想到在桃子的籮筐中再放入很多叫做四川啊,河北啊,廣州啊這些名字的籮筐,把不同産地的桃子放進去。對!就這樣!我們在一個文件目錄下面可以再建立新的文件目錄,把文件進行非常細致的管理。到這裏你明白了什麽叫做目錄,還明白了目錄是可以嵌套的,這就可以了。目錄技術是從軟件的基礎上對資源進行管理的方法。
回到Linux對于硬盤的管理裏面來:在Linux裏邊,我們沒有盤符這個概念,我們用目錄的形式進行管理。把每一個分區和某一個目錄對應,以後對這個目錄的操作就是對這個分區的操作,這樣就實現了硬件管理手段和軟件目錄管理手段的統一。這個把分區和目錄對應的過程叫做挂載-mount。這種對應關系可以由用戶隨時中斷和改變。

SWAP交換分區
分區的知識大家已經熟習了,這裏需要提一下交換分區。我們如果沒有足夠的內存,也許就不能運行某些大型的軟件,解決的辦法是在硬盤上劃出一個區域來當作臨時的內存,好像內存變大了。Windows操作系統把這個區域叫做虛擬內存,Linux把它叫做交換分區swap。雖然隨著硬件價格的下降內存已經不大會限制我們了,但是交換分區這個概念卻保留下來,而且有繼續保留下去的原因,當然涉及到內核的問題,我們不多討論,我們要說明的是,安裝Linux時候建立交換分區時,如果你的內存只有64M或則128M,那麽交換分區最好設置成爲它的3倍,如果你的分區足夠大,有256M或則512M,那麽設置成爲相同大小就可以了。但是請注意,最好大小爲2的N次冪的數字。

分區格式
今天說了好多的與硬盤有關的問題,現在還要補充一個,就是分區格式。硬盤只是一個用電磁的方式紀錄信息的媒介,我們可以通過不同的格式來管理。不同的操作系統選擇了不同的格式,同一種操作系統也可能支持多種格式。微軟的操作系統選擇了fat16格式作爲DOS的分區格式,往後windows95和windows98支持fat32格式,windowsNT使用NTFS4格式,windows2000以及XP支持NTFS5,也支持fat32,但是她們都不支持Linux上常見的分區格式。Linux是一個開放的操作系統,它最初使用ext2格式,後來使用ext3格式,但是它同時支持非常多的分區格式,包括很多大型機上UNIX使用的XFS格式,也包括微軟的那些fat以及NTFS格式。
在給硬盤分區時就需要指定使用的分區格式。

掌握Linux的目錄結構

既然目錄是用來方便文件管理的工具,那麽Linux下面不同的目錄到底保存了哪一類的文件呢?

目錄名稱 意義

/bin 該目錄中存放Linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。
/boot 該目錄下存放的都是系統啓動時要用到的程序,當用lilo引導Linux時,會用到這裏的一些信息
/dev 該目錄包含了Linux系統中使用的所有外部設備,它實際上是訪問這些外部設備的端口,你可以訪問這些外部設備,與訪問一個文件或一個目錄沒有區別。例如在系統中鍵入“cd /dev/cdrom”,就可以看到光驅中的文件;鍵入“cd /dev/mouse”即可看鼠標的相關文件。
/cdrom 該目錄在剛安裝系統時是空的,你可以將光驅文件系統挂在這個目錄下, 例如“mount /dev/cdrom /cdrom”
/etc 該目錄存放了系統管理時要用到的各種配置文件和子目錄,例如網絡配置文件、文件系統、X系統配置文件、設備配置信息、設置用戶信息等。
/sbin 該目錄用來存放系統管理員的系統管理程序。
/home 如果建立一個名爲“xx”的用戶,那麽在/home目錄下就有一個對應的“/home/xx”路徑,用來存放該用戶的主目錄。
/lib 該目錄用來存放系統動態連接共享庫,幾乎所有的應用程序都會用到該目錄下的共享庫
/lost+found 該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機後,有些文件就臨時存放在這裏。
/mnt 該目錄在一般情況下也是空的,你可以臨時將別的文件系統挂在該目錄下。
/proc 可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己産生的
/root 如果你是以超級用戶的身份登錄的,這個就是超級用戶的主目錄
/tmp 用來存放不同程序執行時産生的臨時文件
/usr 用戶的很多應用程序和文件都存放在該目錄下

Linux支持的硬件
總的來說,Linux對于硬件的支持有三句話概括:越新的硬件越難支持,越小的廠家的産品越難支持,越來越多的硬件被支持!
所以推薦大家使用著名廠家的成熟産品。

下一章我們要介紹Linux的安裝。我們選擇的Linux發行版是Redhat Linux 7.3,在安裝之前請大家一定熟習我們介紹的硬盤分區的知識。

第二章 Linux安裝

下面我們介紹Linux的安裝。各種Linux發行版本的安裝各有不同,但是卻大同小異。總的來說,除了國産的Linux以外,其他我們熟習的Linux都支持網絡在線安裝和硬盤安裝。但是我們國內的用戶使用寬帶的現在並不多,硬盤安裝方式又有一些麻煩,所以我們還是介紹光盤安裝的方式。
Redhat Linux是國內市場上較爲常見的Linux發行版本,甚至Redhat一度成爲國人腦海中Linux的代名詞。所以我選擇Redhat作爲第一次安裝Linux時候的教材。其實MandrakeLinux安裝界面比Redhat好看多了,不果似乎很難買到啊。往後的章節我還會詳悉介紹的是Debian Linux的安裝,不過那是後話了。

現在讓我們假設你的硬盤是20G的,Windows98系統已經把這20G全部用完,具體如下:
C:前5G D:接下來5G
E:接下來5G F:最後5G
我們計劃把Redhat安裝在原來的F:盤上,那麽現在請備份你的F:盤上的資料。

然後確定你的系統是由光盤引導的,如果不是,在電腦開機的時候按del鍵,進入主板BIOS設置,修改相關選項讓你的電腦從光盤引導。然後把Redhat的第一章安裝光盤放入光驅,開機。這時候你應該能夠看到一些啓動提示。相信大家都有大學英語的基本功,閱讀這些東西是不成問題的。現在,你可以直接按回車鍵,啓動圖形界面的安裝程序;也可以輸入text然後回車,這樣啓動字符界面的安裝。一般來說,圖形界面占用更多的內存,安裝程序會比字符界面下慢一些,但是圖形界面更友好,考慮到這是我們第一次安裝Linux,我們直接回車,進入圖形界面的安裝程序。

安裝的第一步是要你確認它的版權信息。當然同意啦!Linux和Windows都有這一步,但是你所同意的版權協議卻非常不同,具體的我們以後再說,總之你記住,Linux給你自由的世界,也許這個世界現在還有一些荒漠和戈壁;Windows卻給你無限美好和宜人的牢籠。

現在請正確的選擇你的鍵盤類型,一般pc104就可以了。好像在RedhatLinux下面還不支持win鍵。選擇鼠標稍微麻煩一點,如果你的鼠標只有兩個按鈕並且沒有滾輪,你一定要把那個“模擬三鍵鼠標”的選項選中,因爲在Linux下面,鼠標的第三鍵非常有用。

Redhat會訊問你是安裝Workstation還是Server還是Custom類型的系統,或者選擇update升級原有的Redhat。我們選擇Custom!

現在配置硬盤參數,也就是分區,我們不要選擇自動分區,那樣不安全,非常不安全,特別不安全。選擇手動分區吧,我會教你的。在繼續之前請確保你熟習了我在上一章裏面介紹的硬盤分區的基本知識,如果忘記了,快回去看看吧。注意:硬盤分區會清除掉你硬盤上相應分區以前保存的信息!

我相信你已經把F:盤上要備份的資料全部備份了。現在讓我們來看看你的每一個Windows的盤符對應什麽硬件設備。
一般來說,C盤對應/dev/hda1
D盤對應/dev/hda5
E盤對應/dev/hda6
F盤對應/dev/hda7
現在選中F盤對應的/dev/hda7,刪除它。然後在空閑的硬盤空間(應該有5G,因爲我們刪除了一個5G的F盤)上建立一個新的分區,選擇分區類型爲SWAP,也就是交換分區。它的大小應該按照上一章的方法選擇3倍于實際內存的大小或者適當的數字。但是請注意,最好大小爲2的N次冪的數字。
添加完成這個交換分區的設定,現在我們再添加一個分區,這個分區類型選擇爲ext3,然後有一個mount point之類的選項,也就是我們說的挂裝點,設置成“/”。把它的大小設置成爲剩下的所有空間的大小。這樣把整個硬盤空間都利用起來。
檢查一下是不是還有什麽沒有作對?如果發現有問題,現在修改還來得及,因爲我們所做的修改還沒有保存到硬盤裏面去。如果一切無誤,選擇下一步,現在硬盤的內容將按照我們設定的方式變化。
是不是有點激動?哈哈,說不定會搞砸呢?我以前第一次安裝Redhat用了7個小時才搞懂什麽叫做挂裝點。整個硬盤從頭到腳被分區無數次,安裝完成以後什麽資料都沒有,哈哈,說不定你剛才的某一步做錯了會和我一樣而可憐呢。不過如果不是切膚之痛,怎會記憶猶新?搞Linux就是需要大膽的嘗試,就象鄧小平同志說的,實踐是檢驗真理的唯一標准嘛!

看完這段文字,你的硬盤應該格式化完了,應該到了選擇安裝什麽軟件了。如果選擇全部安裝的話(在最下面有這個選項)你會得到一個巨大無比,巨慢無比的系統,大概2G吧。因爲完全安裝會安裝所有的服務器程序個無關緊要的所有的東西。除非你知道自己在幹什麽,千萬不要這麽作。看看吧,如果你有打印機,就把打印支持選上。一般默認的選項足夠了,但是我還是建議大家安裝Software Development和Kernel Development兩個選項,這樣方便以後安裝新的軟件。窗口管理器有很多,一個KDE,一個Gnome,還有一些比較小巧的比如WindowMaker(這是我的最愛)。KDE的外觀類似Windows,適合初學者上手,但是Gnome更漂亮,速度也更快。我很少使用KDE,也沒有什麽KDE的漢化經驗,所以我就教大家使用Gnome吧。以後我還會教大家使用WindowMaker的。

繼續下去似乎到了軟件安裝的過程,一般20到30分種吧,就可以安裝完所有的軟件。

這段時見不要休息,繼續看我下面的內容!!!呵呵

好像這時候Redhat會要求選擇啓動的方式是使用Grub還是Lilo,也許你現在很郁悶,都不懂,那麽我就告訴你,選擇grub吧,因爲……雖然我更熟習lilo,以後好講給你聽但是grub對于初學者來說不容易出錯,安裝grub的位置選擇MBR就可以。只有這樣才能保證你既能啓動Linux,又能啓動Windows。

我知道大家都很累了,所以我很快的說完下面的步驟:它會問你時區的問題,中國人當然選擇亞洲的上海,沒有北京的選項。如果你住在大西南,選擇重慶也不錯。下一步關鍵,如果你想得到正確的時間,看清楚,它會問你是不是把本機時間和GMT時間對應,千萬不要選啊!GMT實踐是格林威治時間的意思。繼續下去到了配置顯卡的地方,如果你的顯卡是ATI的顯卡或者常見的3dfx Banshee/Voodoo3+或者Matrox g200/g400或者SiS的話,那麽恭喜你,你的顯卡能夠被輕易的識別出來。如果Redhat沒有識別出你的顯卡,也不要著急,跳過這一步,我們安裝完成以後再來配置。
其實我的顯卡是ATI的顯卡,Redhat能夠自動識別,但是我還是喜歡跳過去,安裝完成以後再來搞它。
它還會問你啓動時候是用圖形界面啓動還是字符界面啓動,保險起見,選擇字符界面!
下一步聲卡也是一樣的,如果你的聲卡識別出來了,那麽沒什麽好說的,沒有的話,就跳過去,有辦法的。
如果你的電腦有網卡,比如寬帶或者ADSL,那麽你還應該配置網絡,但是網絡的情況太多了,1000個人也許就有1000種情況,後面再說,跳過!

咦,我好像忘了介紹設置root密碼的問題。什麽是root啊?root就是超級用戶,一定要細致的設定這個密碼,因爲一旦忘掉了,似乎只有重新安裝整個Linux。其他的選項,我沒有說到的,選擇默認值就可以了。

好了,大功告成。

電腦重新啓動,選擇Linux,經過一段時間的等待以後…………………

這部分非常枯燥,我都不想寫了,因爲我知道在這裏的大夥兒都不需要這一章的內容,但是我還是必需寫,因爲這是Linux的基本功,是入門者必需掌握的東西,也是保證我的入門教程完整性的必需章節。我講述的方法不是萬全按照命令的分類講解的,而是按照一個新人使用時候最希望作的事情的順序講的。高手是不用看的,但是一個新人完整的看了以後可以熟練的使用下面一些命令:ls,cd,mkdir,rm,pwd,mv,cp,man,nano,vi,cat,more。我想基本的操作是夠了。
關于Linux的命令的詳悉高級講解我會在大家關心的XWindow配置和聲卡配置完成以後講解。
在高級命令講解裏面會介紹包括通道在內的一些高級用法。

第三章 Linux 基本使用命令(基本篇)-(高級篇在後面會有,這一章從實用的角度出發介紹基本的操作)

現在請輸入你的用戶名和密碼,當然,我們輸入root,這樣獲得一切管理權限!

你一定非常希望立刻看到那些非常漂亮的圖形界面,但是也許我要讓你失望了。我建議在沒有使用圖形界面以前,首先熟練的掌握基本的Linux命令,這樣才是一個真正的Linuxer。從哪裏開始呢?

1. ls 列出文件和目錄的命令

你一定很想知道你的電腦裏面有哪些東西,現在執行命令ls,啊,怎麽什麽都沒有?當然啦,這是你第一次登錄到這個系統,你的默認位置是你的個人目錄,而不是系統根目錄。你還沒有在這個目錄裏面存放任何的個人文件,當然什麽都沒有啦。如果你是用root用戶登錄的話,你的個人目錄就是/root目錄;如果你是用普通用戶登錄,比如叫做kris,那麽kris的個人目錄是/kris。前面的/是什麽意思呢?就是“根”的意思,就是最前面的那個目錄,在根目錄下面建立有很多的子目錄,我們在第一章已經討論過了。

ls命令有很多的選項,常用的是:

-A 選項用來列出所有的文件,包括那些隱藏的文件。爲什麽我們要隱藏文件呢?道理和你爲什麽要把情書藏起來不讓爸媽發現是一樣的。就是爲了保密啊。現在執行ls -A看看?是不是有一個隱藏文件“.bashrc”被顯示出來啦?聰明的你一定奇怪的發現這個文件名前面有一個點,對!記住,只要文件名前面第一個字符是一個“.”,這個文件就是隱藏文件。一個目錄名前面的第一個字符如果是“.”這個目錄就是隱藏目錄。
-l 這個選項用來顯示一個列表,包含了這個目錄下面所有的文件的絕大部分屬性的列表。你可以每個文件的大小,所有者,你的權限還有修改日期等等。
-R R的意思就是recursive遞歸,明顯這個選項讓系統顯示出這個目錄下面的所有文件以外,還要顯示出所有子目錄下面的文件。也就是把我們那一大堆水果全部抖出來。
--color 這個選項特別有用,我估計大家的顯示器都是彩顯吧,什麽?你的顯示器還是黑白的?天哪!既然是彩顯,那麽我們可以讓ls命令用不同的眼色代表不同的文件類型。比如可執行文件用綠色,普通文件是白色,目錄是藍色。也許你會問,目錄也是文件嗎?對的,在Linux裏面一切都是文件,所有的硬件設備都用一個文件來代替,比如你的軟驅,就是用/dev/fd0來代替的。目錄也是一個文件。
--help 這個選項幾乎是每一個Linux命令都有的,用來顯示出該命令的幫助信息。

2. cd 和 mkdir 以及 rm 改變當然所在目錄,建立新目錄以及刪除目錄命令

趁熱打鐵的,剛才說了目錄,我們每一次登錄都有一個默認目錄就是我們的個人用戶目錄。我們怎麽才能到其他的目錄去呢?cd就是用來改變當前所在的目錄的。前面我們說過,“/”代表根目錄,那麽執行cd /就可以進入根目錄。不試一下嗎?
讓我們看看根目錄下面有哪些文件和子目錄吧,執行ls,我們發現,根目錄下面有一個目錄名子特別變態,叫做usr,進去看看,cd usr,看看這裏面有什麽?你會發現一個更psycho(變態)的目錄叫做src,進入src目錄看看?沒什麽好玩的。那麽我們現在回到剛才的usr目錄,怎麽做?是不是cd usr?執行試一下,好像不行,系統報告出錯 cd: usr: No such file or directory。這是怎麽搞的?問題在于我們現在所在的目錄是/usr/src下,我們執行cd usr的意思是進入/usr/src/usr目錄而不是/usr目錄。正確的方法是cd /usr。
就好比你在中華美食的籮筐裏面看到一個四川的籮筐,裏面有一個成都的小籮筐,現在你進入以後發現成都的小籮筐裏面有一種叫做“麻辣燙”的很辣的食品。你大飽口福以後想要吃一些甜點,于是准備去福州。你能站在成都的籮筐裏面去福州嗎?當然不行,福州並不在成都的籮筐裏面啊,你應該進入“/中華美食/福州”而不是“/中華美食/四川/成都/福州”對不對?
好的,一個問題出現了,難道我每一次進入一個目錄,都要用/usr/src...這麽複雜的方式來表示嗎?不一定。我們用“..”的方式來表示上一層目錄。如果你現在在/usr/src目錄下,進入/usr目錄有兩種辦法:cd /usr和cd ..他們是一樣的。

怎樣才能知道我現在在哪個目錄?用命令pwd,這個命令沒有什麽好說的,執行一次就知道了。

現在我想在我自己的個人目錄裏面建立一個目錄叫做LoveLetter。我應該首先回到我自己的目錄,這裏有一個簡單的方法,就是直接運行cd不帶任何參數,這樣就可以回到自己的目錄,當然也可以cd /root或者cd /home/kris,看你是用什麽用戶登錄的。
進入我自己的目錄以後,建立新目錄的命令是
mkdir 新目錄名
我執行 mkdir LoveLetter 就可以建立一個新的叫做LoveLetter的目錄。進入這個目錄看看?什麽都沒有。不著急,慢慢來。我都不著急你急什麽?
突然我想起這台電腦我的爸媽也要使用,他們看到我的情書目錄怎麽辦?你忘了剛才我說的可以用加一個點“.”在前面的方法來隱藏目錄和文件的?我們可以改變這個目錄的名字,但是這個命令我准備等會兒講,現在我們用一個很無聊的辦法來完成這個要求。這個辦法就是刪掉剛才建立的oveLetter目錄在新建一個.LoveLetter目錄,之所以說這個辦法很無聊,是因爲我們現在是在做實驗,如果來真的,你原意刪掉你的情書嗎?是不是另有新歡啦?哈哈。

刪除目錄的命令其實也可以刪除文件,就是rm。
rm 待刪除的文件名/目錄名
我記得Redhat會提示你是不是真的要刪除。按y就是確定,按n就是取消。如果Redhat沒有提示你,那麽等會請根據我說的方法修改一下系統讓它提示咱們。免得以後心痛。刪除一個文件很簡單。麻煩的是刪除一個目錄,如果一個目錄裏面已經有文件,rm是不讓直接刪除的,你必需先把目錄裏面的所有文件刪除,再刪除目錄。但是有一個參數可以改變一下,就是 -rf ,這個參數有一定的危險性,因爲即使系統本來要提醒一下是不是真的刪除目錄,加上這個參數也不會有提示了。執行rm 目錄 -rf會在一眨眼的時間裏面讓你的資料下課!
那麽我現在就刪除LoveLetter目錄了:rm LoveLetter -rf
建立一個新的目錄mkdir .LoveLetter
現在ls看看,是不是看不到LoveLetter目錄了?但是ls -A還是能看到的。所以這種隱藏方式只能偏偏自己,真正讓你的文件安全的方式還是以後再講吧。

3. mv 改變文件名和目錄名的命令
cp 複制文件和目錄命令
man 命令使用方法參考工具

mv 老文件名 新文件名
mv 老目錄名 新目錄名
就可以改變文件或者目錄的名字。
我現在想要把剛才的這個目錄.LoveLetter改名回去,因爲這種無聊的隱藏方式很變態,我們有更高級的方法來做這樣一件事情:就是不要告訴爸媽你的密碼!!!
mv .LoveLetter LoveLetter

cp命令用來把一個文件複制成爲一個新的文件,

cp 老文件名 新文件名

這個老文件明和新文件名如果在同一個目錄下面,那麽當然需要名字不一樣,很簡單的道理,如果文件名一樣何必建立兩個文件?如果新老文件在不同的目錄,我們就可以讓它們有相同的名子。下面的例子說明了這一點:

cp LoveLetter LoveLetter_yesterday 新的文件LoveLetter_yesterday和舊的LoveLetter在同一個目錄,所以名子不一樣。
cp LoveLetter /home/LoveLetter 新的文件在/home目錄下面,但是舊的文件LoveLetter在某一個用戶的個人目錄下面,當然兩者名子可以相同。

cp命令也可以複制整個目錄,但是現在我們暫時不講這麽複雜。其實cp還有rm以及ls這些命令不僅是整個Linux的基本命令,更包含了非常多的功能。如果大家有興趣,可以使用man

man 命令名字

比如man ls,這樣就可以看到所有ls命令和參數的詳悉解釋,尤其是一部分常用的命令的man幫助已經由志願者翻譯了,大家看起來更容易。

一點幽默

好了,說了好多東西了,我想休息一下,給大家說一個有趣的事情,我們說了好多命令和目錄的名子,你們是不是覺得有點奇怪。說實在話,我第一次看到usr這個目錄時也不知道是什麽意思,後來才發現以下對應關系:
usr -> user
ls -> list
mkdir -> make dir
rm -> remove
src -> source
mv -> move
cp -> copy

是不是很有趣,在UNIX世界,包括Linux世界,人們的想象力就是這麽無敵!簡寫居然能簡寫成這樣子。大家一般的想法是取一個單詞的前三個或者前四個字母作爲簡寫,可是UNIX的牛人就是喜歡把move簡寫成爲mv,真不知道他們怎麽想的。大家一起捉摸吧


4. nano 和 vi編輯文件的命令 和 cat 以及 more顯示文本文件

nano是一個小巧自由,並且友好的編輯器,我認爲nano更適合初學Linux的朋友使用。我們現在只學習怎樣編輯一個文件以及怎樣保存。

nano 文件名

如果你寫的文件名已經存在,那麽就打開並且編輯,否則就建立一個新的文件。編輯的方法還用說嗎?呵呵,當你想要退出的時候,按ctrl+x,nano會問你是不是保存編輯的文件。按Y就是保存,按N就不保存。

nano最大好處在于用戶可以不用記憶太多的操作鍵,大部分常用的功能的操作方法都在屏幕下放列出了。新手需要注意的是“^X”就是按住ctrl鍵不放再按X的意思。

下面簡單的介紹vi。vi是一個非常強大的編輯軟件。它太龐大了,足夠寫一本書專門來講解。我們這裏從使用的角度出發,講一下vi的用法。
vi有兩種模式,一種是命令模式,一種是編輯模式。進入vi以後,默認處于命令模式。

現在我們執行vi LoveLetter。進入以後,按一下鍵盤上的Insert功能鍵或者i鍵可以進入編輯狀態,可以插入字符,再按一下Insert變成複蓋模式,這兩種模式的區別很容易體現,大家嘗試一下就可以了。上下左右四個方向鍵可以移動光標。基本的編輯命令和Windows裏面沒有區別。是不是很容易呢?當你把需要的內容輸入完成以後,我們要保存,這時候按一下ESC鍵從編輯模式回到命令模式,首先輸入一個冒號“:”,也就是按住SHIFT鍵不放再按分號“;”這樣首先輸入一個“:”,然後,輸入w,回車,就可以保存我們編輯的內容到LoveLetter文件。現在我們按一下Insert就可以繼續編輯。再按ESC,輸入“:”,再按w又可以保存。可是現在我們不需要保存,我們想要不保存就退出,怎麽做呢?當我們輸入w的時候是write的意思,保存,那麽我們輸入q就是quit退出的意思。好,輸入q,回車,vi提示我們剛才進行的修改還沒有保存,所以記住!一旦需要放棄我們的修改,不能直接用q命令退出,而需要用“q!”命令。輸入q!,好了,退出了。
我們想看看我們剛才編輯的LoveLetter是不是真的保存好了,再vi LoveLetter,ok,看到了吧?現在我們想要直接退出,就可以只輸入“:q”就可以了,不用輸入那個“!”因爲我們沒有修改文件內容。如果我們修改一下這篇文章,我們在退出的時候可以輸入“ESC : wq”就可以了。不需要把w和q分成兩次輸入。

vi的最最基本用法說到這裏差不多了,要是你還想多了解一些vi的知識,在進入vi以後直接按F1就可以了,有詳悉的幫助和教學。

其實剛才我們想要看一下編輯的LoveLetter是不是保存好了,不用再vi進去的,只需要用命令

cat LoveLetter

就可以了。cat就是用來顯示文本文件內容的命令。如果我們的文本文件很長,一個屏幕顯示不完,cat是不會自動分頁的。我們可以換用命令

more LoveLetter

more命令顯示文本文件時,如果內容過多,會自動的在每一頁結束時暫停下來,等到用戶按一下空格鍵再繼續。

5. 最重要的命令:halt reboot 關機和重新啓動命令

在Linux裏面,不能夠直接用電源按鈕關機,也不能直接用reset按鈕重新啓動,這對系統,尤其是硬盤有比較大的影響。關機命令是halt,重啓動命令是reboot。其實還有shutdown命令完成類似功能,需要的話,請用今天學會的man命令學習使用。


好不容易寫完這一章,希望新人能夠好好的看完,這對你們有幫助。下面將要介紹XWindow的配置。這是所有人都關心的話題。

第四章 X的配置

雖然文章寫得不好,但是我還是希望我的文章爲公社的朋友提供幫助,和以前一樣的,這個系列教程的文章我只在公社發表,希望大家捧場。

我的文章耽誤了很久了,很抱歉。前段時間因爲我一直忙著找工作,又生病一場,所以文章的事情一推再推,現在終于可以奉獻給大家了。

這一章我主要介紹X系統用的主要配置文件XF86Config-4,我采用了對照的方法介紹,一邊貼出我的XF86Config-4文件,一邊介紹具體的內容。這篇文章對于大家沒有什麽立杆見影的幫助,不果可以讓你對于X的只是有一個基本的了解。

XF86Config-4文件是X系統的主要配置文件。在Redhat 8以前版本中都叫做XF86Config-4這個名字,Redhat 8已經不再叫做這個名字。

編輯這個文件需要小心謹慎一點,因爲一點錯誤,你的X將不能啓動。不果沒關系啦,改回來就是了學習Linux最好的辦法當然還是求助于男人(man),大家有什麽問題盡管看看man的幫助就是了。如果你要刪除文件中的內容,最好不要直接的刪除,而應該在前面加上#符號把它變成注釋。

在Redhat 8以前的版本中,X的配置工具是Xconfigurator,在Debian中X的配種方法是:
dpkg-reconfigure xserver-xfree86
當然你都得用root的身份來運行。

在/usr/share/doc/xfree86-common/FAQ.gz文件中你可以看到具體的技巧。


第一段是Files段,這個部分用來配置X系統說能夠使用的字體,每一行都代表一個目錄,保存了具體的字體和字體的配置信息。
代碼:

Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/xp"
FontPath "/usr/X11R6/lib/X11/fonts/XChinese"
FontPath "unix/:7100" # 這是本地字體服務器
# 如果本地字體服務器出了問題,我們可以使用下面的配置
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi" #這兩個字體是每一個X
FontPath "/usr/lib/X11/fonts/75dpi" #系統都必需安裝的英文字體
EndSection


下面的是模塊段,用來配置X系統加載的模塊。
代碼:

Section "Module"
Load "xtt" #gtk1使用的字體引擎,效果好,速度稍慢
Load "GLcore" #如果你是用的是Nvidia的顯卡,似乎一定要注消掉這一行
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
# Load "freetype" #如果你使用了xtt模塊,那麽freetype模塊就需要注消掉
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection


下面的段是用來配置你的鍵盤的,屬于“輸入設備”
代碼:

Section "InputDevice"
Identifier "Generic Keyboard" #這是你的鍵盤的名字,隨便你啦
Driver "keyboard" #鍵盤的驅動…哇,鍵盤也有驅動
Option "CoreKeyboard" #如果你有多個鍵盤,那麽你需要在這裏指定哪一個鍵盤是主要的鍵盤
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104" #鍵盤的分布格式,一般來說
Option "XkbLayout" "us" #美國104鍵盤是大家通用的。
EndSection


這裏配置你的鼠標,當然你可以配置兩個鼠標,如果你有的話
代碼:

Section "InputDevice"
Identifier "Configured Mouse" #鼠標的名字
Driver "mouse" #鼠標的驅動
Option "CorePointer"
Option "Device" "/dev/input/mice"
#注意,這裏很重要,這是鼠標的設備文件
#我的鼠標是光電鼠標,用的USB接口,對應的鼠標文件是/dev/input/mice
#如果你的鼠標是普通的滾輪鼠標,用的是PS2接口,那麽你應該使用
#/dev/mouse或者/dev/psaux或者/dev/ttys0這個設備
Option "Protocol" "ImPS/2"
#這是鼠標的類型,如果不是是滾輪鼠標,那麽使用PS/2
Option "Emulate3Buttons" "true"
#在Linux系統中,鼠標的第三個鍵非常有用,
#如果你的鼠標沒有第三個鍵,那麽我們應該允許使用雙鍵同時點擊來模擬
Option "ZAxisMapping" "4 5"
EndSection


下面的設備是顯卡,這是最頭痛的設備了,如果你的顯卡太新潮,很有可能不能支持哦。Nvidia的GForce2顯卡就必需自己編譯顯卡的驅動程序才能使用
代碼:

Section "Device"
Identifier "Generic Video Card"
Driver "ati" #如果你是Nivida的顯卡,這裏應該是"nvidia"
EndSection



這個設備是顯示器。
代碼:

Section "Monitor"
Identifier "Generic Monitor" #顯示器的名字
HorizSync 30-60 #顯示器的頻率,一半來說你的顯示器
VertRefresh 50-75 #應該可以達到我的這個水平
#因爲我的顯示器是15"的老顯示器了
#大家的電腦都比我的好吧?
Option "DPMS"
EndSection


下面是綜合以上你的配置的設備的各種顯示效果
代碼:

Section "Screen"
Identifier "Default Screen" #效果的名字
Device "Generic Video Card" #你可以指定你的顯卡的名字
Monitor "Generic Monitor" #指定你的顯示器的名字
DefaultDepth 24 #默認的顔色深度
SubSection "Display"
Depth 1
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" #在這裏你可以指定掃描頻率例如
#"1024x768 @ 85"就是用85mhz的頻率
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection



最終你必需定義下面的段用來告訴X服務器你使用的配置
代碼:

Section "ServerLayout"
Identifier "Default Layout" #剛才我們給我們的配置取的名字
Screen "Default Screen" #給我們的效果取的名字
InputDevice "Generic Keyboard" #我們的鍵盤的名字
InputDevice "Configured Mouse" #我們的鼠標的名字
#這些名字一定要在前面的配置中已經定義
EndSection

Section "DRI"
Mode 0666
EndSection



一般來說我們X啓動時候會遇到的問題是:
1:no screen found
這有可能是你沒有正確的定義所需要的效果,也有可能是你的其他部分定義出錯倒置你的效果不能實現
2:xtt和freetype的沖突,注消一個就可以了
3:驅動沒有找到,如果你的顯卡非常的新潮,那麽多半是這個錯誤了,編譯你的驅動吧…
_________________


第五章 Linux命令和技巧

1. mount umount 命令

在Linux裏面想要使用你的軟盤和光盤可不是像在Windows裏面那麽的危險。
想想看如果你在Windows裏面安裝一個光盤裏面的軟件或者玩遊戲的時候,你的女朋友,甭管是第幾個女朋友,因爲對你每天打遊戲而不做晚飯,乃至于別人做了晚飯你居然沒時間吃,而氣急敗壞的按了一下光盤的Eject按鈕……哈哈,害怕了?放心,在Linux裏面這種事情絕對不用你操心。

要使用光盤,首先把光盤安放好以後,執行以下命令:

mount -t iso9660 /dev/cdrom /mnt/cdom 把光驅挂裝到/mnt/cdrom目錄

-t參數是指定光盤的文件系統類型,一般來說,光盤都是用的iso9660標准的格式。接下來的/dev/cdrom是你的光驅對應的設備文件,我們前面說過每一個硬件設備都對應了一個標准的設備文件。最後一個/mnt/cdrom目錄是你的一個本地硬盤上的目錄,在使用以前如果發現沒有這個目錄,可以建立一個。當然也不一定非要使用這個目錄,你甚至可以很變態的使用mount /dev/cdrom /root命令把你的光驅挂裝到你的的/root目錄,這樣一來你的/root的內容將不再是原來的內容,直到你取消挂載。

下面的命令取消挂載:

umount /mnt/cdrom 或 umount /dev/cdrom

這兩個命令都可以把剛才挂裝上去的光盤取消挂載,只有這樣你的光盤才能取出。不行的話,你再執行一次挂裝命令,然後按一下光驅上的Eject按鈕,看看有沒有什麽反應啊?沒有,對不對?這就是Linux的一個優點,雖然操作起來有點麻煩的感覺,但是想想看,非常安全和稍微的複雜,你選哪一個?

使用軟盤的方法也很類似:

mount /dev/fd0 /mnt/floppy

/dev/fd0是你的軟盤對應的設備文件,後面的自然是你的挂裝目錄。但是如果這個時候你想要嘗試能不能在沒有取消軟盤的挂裝就推出軟盤,你就是一個非常BT的人了。有沒有搞錯?軟盤的退出是機械的操作,你硬要按出來,我有什麽辦法?那麽取消軟盤挂載的方法也是很類似的:

umount /dev/fd0 或 umount /mnt/floppy

其實挂裝時候第一個參數-t,可以省略,因爲系統會自動的判斷應該用什麽樣的格式來識別。不過知道了我們用的軟盤或者光盤的格式,對于挂裝一個ISO文件有幫助。

mount -t iso9660 -o loop /home/kris/somewhat.iso /mnt/cdrom

我們都知道現在網上有很多的ISO文件,就是把光盤的所有內容打包成爲一個文件,方便網上的傳送。我們獲得這樣的文件以後不一定非要用刻錄機把它刻錄成爲光盤,我們只要用上面的命令就可以把光盤的ISO文件挂載到/mnt/cdrom目錄了。第一個參數-t iso9660就是光盤使用的文件系統格式,第二個參數是loopback的意思。

取消挂裝:umount /mnt/cdrom

2. 管道命令

管道命令是Linux系統的一個很重要的內容,這裏我們只介紹一些簡單的。

首先我們已經學過一個命令cat,用來顯示一個文件的內容,但是你有沒有遇到一個文件很長,一頁顯示不完的情況?如果你需要把一個很長的文件分頁顯示,每當你按一個鍵才顯示下一頁的話,你可以用more命令:

more LoveLetter
這樣,LoveLetter的內容顯示在屏幕上,沒到一頁就自動停下來,等待你的按鍵,然後才繼續顯示下面一頁。

可是如果我們用ls命令顯示一個目錄的所有文件的時候遇到一頁不能顯示完的情況該怎麽辦?這就需要一個管道符號“|”,就是“/”按鈕上面的字符:

ls /dev | more

下面,我們遇到一個新的問題,我們不僅僅想要看看/dev目錄下面有哪些文件,我們還希望用一個文件來紀錄剛才ls的命令顯示的所有結果,難道需要用手工輸入?不需要,我們介紹兩個管道符號:“>”“>>”,也就是大于符號啦。

ls /dev > filenames.txt

還有一個管道符號是由兩個大于號組成的“>>”,它和剛才“>”的區別在于一個大于符號的管道是用來創建一個新的文件filenames.txt,如果已經有了同名的文件就複蓋掉以前的內容;而兩個大于符號的管道是用來在已經存在的文件後面追加新的內容,如果沒有這個文件就創建它。

現在我們vi filenames.txt看看一共有多少行,是不是1000多行啊?我們運行

ls /dev >> filenames.txt

再來vi filenames.txt看看,是不是一共2000多行啦?

其實這兩個管道符號很容易記憶,向左邊的箭頭意思就是把前面命令的內容輸入到後面的文件中去,剛才那個“|”管道符號是用來把前面命令的輸出結果當作後面一個命令的輸入數據。下面我們看一個和剛才“>>”剛剛相反的管道符號“> friends a
> b
> c
> EOF
運行第一行以後,意思就是把我們接下來的輸入內容保存到friends文件裏面,當我們輸入“EOF”的時候結束。“”是系統自動産生的提示符號。第四行輸入“EOF”系統就保存剛才輸入的a b c三行到一個叫做friends的文件裏面去。
現在我們cat friends看看是不是剛才的輸入成功的保存了。怎麽樣,同樣的命令,使用不同的管道符號,即可以顯示文件內容,也可以用來創建文件,這就是管道符號的強大

3. Linux使用技巧(沒有整理完成,有待大家的幫助)

Linux中有太多的使用技巧,這裏慢慢的總結:
4. 基本命令總結

1) ls

ls --color=never *.txt > report 不顯示文字顔色,將所有txt文件記錄到report文件中

2) cd
cd ../ 到上一級目錄
cd ../.. 到上二級目錄
cd ~ 進入用戶的個人目錄,root用戶就是/root目錄,kris用戶就是/home/kris目錄

3) rm
rm -fr 目錄名 直接刪除一個目錄和裏面的所有目錄,沒有任何提示

4) cp
cp 源目錄 目標位置 -R 複制原目錄裏面所有的文件和子目錄的內容

5) echo
echo message “我愛你” 在字符界面下面顯示一些內容,這裏是“我愛你”

6) export
export LC_ALL= 定義一個變量LC_ALL並且設置爲空NULL
export LANG=zh_CN.gb2312 定義一個變量LANG的值是zh_CN.gb2312
export http_proxy="http://xxx.xxx.xxx.xxx:port"
定義http代理服務器

7) find
find -iname [目錄] 文件名 在指定目錄裏面(如果不指定目錄就是當前目錄)查找指定文件名的文件

grep
ps -A | grep some_command

用ps命令加上-A參數顯示所有的當前運行的進程,用管道符號“|”加上grep命令檢索是否有我們指定的some_command運行

9) lynx
lynx www.google.com

字符界面的網絡浏覽器,我們這裏用來浏覽www.google.com,因爲沒有圖片,所以非常快
lilo.conf-lilo的配置文件。
描述
本文件,缺省位置爲etc/lilo.conf,由引導裝入程序的安裝程序
LILO 讀取。
其表現可能如下:

boot=/dev/hda
delay=40
compact
vga=normal
root=/dev/hda1
read-only
image=/zImage-2.5.99
label=try
image=/zImage-1.0.9
label=1.0.9
image=/tamu/vmlinuz
label=tamu
root=/dev/hdba
vga=ask
other=/dev/hda3
label=dos
table=/dev/hda

本配置文件指定 LILO 使用在/dev/hda路徑上的主引導記錄。(關于使
用 LILO 的不同方式以及其與其他操作系統間交互作用,參見 LILO 文檔中
的 USER.TEX)

啓動時,引導裝入程序會等待 4 秒的時間(40 deciseconds)讓你按
SHIFT 鍵。如果未按,則上述提及的第一核心映象(zImage-1.5.99,可能
你5分鍾之前才裝上的)將被啓動。如果按下了SHIFT鍵則引導裝入程序就會
問你要啓動哪一個映象。 萬一你忘了該選擇啓動哪個映象, 按[TAB](或
[?]如果你有一個美國標准語鍵盤的話)就會有個菜單給你選擇。你在這時
可以選定或者啓動這個全新的內核,或者啓動一個原來可靠的內核,或一個
在其他根文件系統上的內核 (當你在自己常用的根文件系統上做了什麽傻
事),或者啓動一個不同的操作系統。在 LILO.CONF 中提及的映象可多達
16 個。

由上可見,一個配置文件以一系列的全局選項開始(如例子中的開始的
6 行),隨之是不同映象選項的描述。在映象描述中的選項將會覆蓋全局選
項所設定的內容。

全局選項部分

其有許多可能的關鍵詞。下面的描述幾乎是照抄于 USER.TEX(僅有少許
縮略)

backup=backup-file

將原引導扇區拷貝到備份文件(其也有可能是一個設備,如/dev/null)
而非/boot/boot.NNNN

boot=boot-device

設定包含引導扇區的設備的名稱(如一個硬盤的分區)。如果未指定該
關鍵字引導扇區將從當前作爲根文件系統安裝的設備中讀取(或者可能
也會寫入)。

change-rules

定義引導時對分區類型數的改變('hiding')。詳細資料請參看
user.tex 中“分區類型改變規則“一節。

compact

試圖將相鄰扇區的多次讀取請求合並成一次讀取請求。這樣就大幅度地
減少了讀取時間,並使系統描述(MAP)更小。
在從軟驅進行讀取時尤其要使用 'compact' 選項。

default=name

使用特別指定的映象作爲默認的啓動映象。如果未設置 'defaul' 選項,
則將使用在該配置文件中最早出現的那個映象作爲啓動映象。

delay=tsecs

指定引導裝入程序在啓動第一個映象之前應等待的時間爲多少個 10 分
之一秒。這對于在鍵盤可用後立即從硬盤上啓動系統很有用。如果未設
置 'delay' 選項或設爲 0,則引導裝入程序就不會等待。

disc=device-name

定義特定硬盤的非標准參數。具體細節參見 USER.TEXT 中的硬盤分區結
構一章。其對于定義 'BIOS=' 參數尤其有用。若你的硬盤的 BIOS 數據
是 0x80 ,0x81(十六進制)等等,將無法判斷哪一塊 Linux 磁盤與哪
一塊 BIOS 磁盤相對應(因爲這決定于 BIOS 的設置和 BIOS 的類型)。
因此若你采用的是非一般的安裝,那你就需要說明 LINUX 磁盤和 BIOS
磁盤間的對應關系。比如:

desk=/dev/sda
bios=0x80
disk=/dev/hda
bios=0x81

就會說明你的 SCSI 盤是第一個 BIOS 盤,而你的(主硬盤)IDE盤是第
二個 BIOS 盤。

disktab=disktab-file

指定磁盤參數表的名稱。若未指定“disktab”選項,則磁盤描述(Map)
裝入程序會尋找 /etc/disktab 文件。並不提倡disktab選項使用。

fix-table

這個選項使得 LILO 可對分區表上的 3D 地址進行調整。 每個分區表入口
包含有該分區的最前和最後一個扇區的 3D 地址(扇區/磁頭/柱面 以及線
性地址。 如果一個分區不是以磁道號定位的, 且某個其他操做系統 (如
PC/MS-DOS 或 OS/2 ) 正在使用同一磁盤,他們就有可能導致 3D 地址的
改變。僅當分區的兩個地址類型相一致時 LILO 才能保存其啓動扇區。 如
果設定了 'fix-table' 選項,lilo 就可重新調整錯誤的 3D 地址。

警告:這並不能保證其他的操做系統以後就不會試圖重設該地址。也可能
這種變化有其他不可預料的副作用。正確的修改方式是用可以軌道
定位分區的程序來重新對磁盤驅動器分區。並且,對一些磁盤來說
如一些可進行地址轉換的大的EIDE磁盤),在某些情況下, 會不
可避免的出現分區表入口相沖突的現象。

force-backup=backup-file

與 'backup' 類似,但若有舊的備份文件存在則會將其覆蓋。

ignore-table
ignore-table

告知LILO忽略作廢的分區表。

install=boot-file

將指定的文件作爲新的引導扇區來安裝。若未設置 'install' 選項,則將
boot/boot.b作爲默認缺省值使用。

linear

産生線性扇區地址而非“扇區/磁頭/柱面”地址。線性地址不依賴于磁盤的
分區結構,且在運行時被翻譯。注意如果使了'linear'選項則可能使啓動
盤不能被移植,這是因爲BIOS中用于決定磁盤分區結構的服務對軟盤的作
用不穩定。在對大硬盤使用'linear'選項時,由于3D扇區地址在啓動前是
未知的,故 /sbin/lilo 可能會産生對不可訪問的磁盤區域的一個參考。

lock

允許自動記錄引導命令行,作爲以後啓動的默認缺省值。這樣,在手工取
消之前lilo會鎖定一個選項。

map=map-file
map=map-file

定位磁盤描述(MAP)文件。若未指定 'map' 選項,就會使用 /boot/map
文件。

message=message-file

指定一個含有在運行啓動提示符前顯示的信息的文件。在顯示出 'LILO' 後
等待按鍵的時間裏不會有信息顯示。在信息中,用FF字符([Ctrl + L])
清空本地顯示器。信息文件的大小限制在65535字節以內。如果信息文件被
改動或取消則必須重建磁盤描述(Map)文件。

nowarn

使關于以後可能危害的警告失效。

optional

使單一映象選項 'optional' (見後)應用于所有映象。

password=password

使單一映象選項 'password=...' (見後)應用于所有映象。

prompt forces

不等待任何的按鍵事件發生就直接進入啓動提示符模式。如設定了 'promp'
選項而沒設定 'timeout' 選項,則不能自行啓動。

restricted

使單一映象選項'restricted'(見後)應用于所有映象。

serial=parameters

允許使用來自串行口的控制。指定的串行口將會被初始化,引導裝入程序就
會從該串行口及PC鍵盤接受輸入。在串行線上發送暫停(break)指令和按
下鍵盤上的 SHIFT 鍵的效果是一致的,都會引起引導裝入程序的注意。如
果串行線比鍵盤輸入更不安全,如該線與 MODEM 相連時,則所有啓動映象
都應設密碼加以保護。參數串的格式如下:

[,[[]]]

:表串行口的數目,最小爲0。
0對應于COM1並指定爲/dev/ttyS0,等等。
所有四個端口均可用(如果可以使用的話)。

:串行口的比特率。
以下比特率可被支持:110,150,300,600,1200,2400,4800
及9600bps。
默認值是2400bps。

:表在串行口上使用的奇偶效驗。引導裝入程序忽略輸入的奇偶效
驗位,並除去第八位。以下字符可用來描述奇偶效驗:
n表示無相同,e表示偶數的相同,o表示奇數的相同。

:在一個字符中的位的數目。僅支持7或8位。
若奇偶效驗是 'none' 則默認是8,
若奇偶效驗是'even'或'odd',則默認是7。

若設定了'serial'選項,則'delay'的值就自動上升爲20。
例如:serial=0,2400n8就會用缺省值參數來安裝COM1。

timeout=tsecs

爲鍵盤輸入設定一個超時選項(以10分之一秒爲單位)。若在指定的時間
內沒有按鍵則第一個映象就會被自動啓動。同樣,如過用戶停頓過長則密
碼輸入就會被取消。默認的超時值是無限。

verbose=level

用以打開大量的進程報告。數目越大則給出的冗長輸出越多。如果在 LILO
命令行中附加參數 -v,則冗長標准也相應增加。最大的冗長標准是5。

另外,內核配置參數 append,ramdisk,read-only,read-write,root以
及vga都可在全局選項中被設定。如果在相應的核心映象的配置欄中沒對其加以
指定,該設定值其就會被用做默認的缺省值。

單一映象部分

一個單一映象或者以一行
image=pathname
開始(以提示含有一個LINUX內核的啓動映象的文件或設備),或以一行
other=pathname
開始以提示啓動其他獨立的系統。

在前一例中,如果一個映象行指定是從一個設備啓動,則必須用
range=start-end
提示被描述的扇區範圍。

在後一例中,有3個選項可供選擇。

laoder=chain-loader

該參數指定了將使用的連鎖裝入程序。使用默認缺省/boot/chain.b。
如果是從其他設備而非第一硬盤或軟盤啓動則必須指定連鎖裝入程序。

table=device

其指定含有分區表的設備。若未指定該參數,引導裝入程序就不會把分
區信息傳送到已啓動的操做系統。(一些操做系統有其他的方式來決定
從哪個分區來啓動。如,MS-DOS將其的啓動盤分區結構或分區保存到引
導扇區裏)。應注意若一個已定位且引用了 'table' 選項的分區表被
修改則必須重新運行/sbin/lilo文件程序。s

unsafe

在創立磁盤描述(Map)時不要訪問啓動扇區。 這將取消一些正確性檢
查,包括分區表檢查。如果啓動扇區是在一個固定格式化的軟盤驅動器
上,則在運行定位裝載程序時使用 unsafe 選項就不需插入可讀取的磁
盤到驅動器裏。

以下選項在這兩例中均可運用。

label=name

引導裝入程序使用每個映像說明的主文件名(不包含路徑)來標識該映像。
通過設定變量'label'可使用不同的名稱。

alias=name

通過指定一個別名可對同一個目錄使用第二名稱。

lock(見前)

optional

刪去在磁盤描述表創立時不可用的映像。這對于在指明測試並不總是可用的
內核很有用。
password=password

用密碼保護映像。


restricted

若是在命令行被指定各參數則只在啓動映像使需要輸入密碼。

內核選項部分

如果被啓動的映像是一個LINUX內核,則可以將命令行參數傳送到該內核。

append=string

將指定的各選項增加到傳送于內核的參數行。其典型的運用于指定不能完全
自檢或徹查對其有危害的硬盤的參數。比如:
append="hd=64,32,202"

literal=string

與 'append' 類似,但會取消所有其他選項(如根驅動器的設定)。由于用
'literal' 選項可在無意之間刪掉重要的選項,故該選項不能設在全局選項
中。

ramdisk=size


該選項指定了任選RAM磁盤的大小。0 表示不應創立任何RAM磁盤。若不指定
該參數,則使用在根文件系統中建立的RAM磁盤大小。

read-only

該參數指定根文件系統應該以只讀的形式裝載。典型的是,該系統的起始程
序稍後將以可讀寫方式重新裝載根文件系統。

read-write

其指定根文件系統應以可讀寫方式裝載。

root=root-device

該參數指定應作爲根文件系統裝載的設備。如果目前使用的是指定的名稱,
則根驅動器就設在根文件系統目前所在的設備上。如果根設備被 -r 參數所
修改,則使用相應的設備。若未指定 'root' 參數,則使用包含核心映象的
根設備設置(該設置是編譯內核時在內核的 Makefile 文件中用 ROOT_DEV
變量設定的,並稍後可用 rdev(8)程序修改)

vga=mode


其指定在啓動時應選擇的 VGA 文本模式。 下列數值可被識別 (忽略大小
寫):
normal:選擇普通 80x25 文本模式。

extent(或ext):選擇 80x50 文本模式。

ask:停止並要求用戶的輸入(在啓動時)

:使用相應的文本模式。在啓動時用vga=ask選項或按

[Enter]都可獲得一個可用模式的列表。

若未指定該參數,則使用在核心映像中獲得的 VGA 文本環境。(該設置是
編譯內核時在內核的 makefile 文件中用 SVGA_MODE 變量設定的,稍後可
用 rdev(8)程序修改)

參見

lilo,rdev(8)。
lilo的發布版本來源于廣泛的文件,以上部分只是這些文件的選錄。

Samba使用大全
-samba服務器
Samba協議基礎
  在NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網絡文件/打印服務系統,這個系統基于NetBIOS設定了一套文件共享協議,Microsoft稱之爲SMB(Server Message Block)協議。這個協議被Microsoft用于它們Lan Manager和Windows NT服務器系統中,實現不同計算機之間共享打印機、串行口和通訊抽象(如命名管道、郵件插槽等)。
  隨著Internet的流行,Microsoft希望將這個協議擴展到Internet上去,成爲Inter net上計算機之間相互共享數據的一種標准。因此它將原有的幾乎沒有多少技術文檔的SMB協議進行整理,重新命名爲 CIFS(Common Internet File System),並打算將它與NetBIOS相脫離,試圖使它成爲Internet上的一個標准協議。
因此,爲了讓Windows和Unix計算機相集成,最好的辦法即是在Unix計算機中安裝支持SMB/CIFS協議的軟件,這樣Windows客戶就不需要更改設置,就能如同使用Windows NT服務器一樣,使用Unix計算機上的資源了。Samba是用來實現SMB的一種軟件,它的工作原理是,讓NETBIOS(Windows95網絡鄰居的通訊協議)和SMB(Server Message Block)這兩個協議運行于TCP/IP通信協議之上,並且使用Windows的NETBEUI協議讓Unix計算機可以在網絡鄰居上被Windows計算機看到。它的功能有:
1.共享Linux磁盤給Win95/NT
2.共享Win95/NT磁盤給Linux機器
3.共享Linux打印機給win95/NT
4.共享win95/NT打印機給Linux機器。
同時它的文件服務功能比NT系統還高,而且在Windows2000之前就提供了用戶磁盤空間限制的功能。
Samba的配置
在我寫這篇文章的時候,Samba的版本已經到了2.2.2了,需要的可以通過ftp://samba.org/pub/samba/Binary_Pa...011013.i386.rpm得到最新的rpm安裝包。然後執行rpm -Uvh samba-2.2.2-20011013.i386.rpm來安裝或者升級它。安裝完後,可以看見/etc/samba這麽一個目錄,裏面存放和Samba相關的一些文件,最主要的是smb.conf,現在根據配置文件講講它的配置選項:
全局設置:
workgroup = MYGROUP
定義該Samba服務器所在的工作組或者域(如果下面的security=domain的話)。
server string = MY Samba Server
設定機器的描述,當我們通過網絡鄰居訪問的時候可以在備注裏面看見這個內容,而且還可以使用samba設定的變量。這裏說一下samba定義的變量:
%S = 當前服務名(如果有的話)
%P = 當前服務的根目錄(如果有的話)
%u = 當前服務的用戶名(如果有的話)
%g = 當前用戶說在的主工作組
%U = 當前對話的用戶名
%G = 當前對話的用戶的主工作組
%H = 當前服務的用戶的Home目錄
%v = Samba服務的版本號。
%h = 運行Samba服務機器的主機名
%m = 客戶機的NETBIOS名稱
%L = 服務器的NETBIOS名稱
%M = 客戶機的主機名
%N = NIS服務器名
%p = NIS服務的Home目錄
%R = 說采用的協議等級(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 當前服務進程的ID
%a = 客戶機的結構(只能識別幾項:Samba,WfWg,WinNT,Win95)
%I = 客戶機的IP
%T = 當前日期和時間
hosts allow = 網絡或者主機
這裏可以設置允許訪問的網絡和主機IP,比如允許192.168.1.0/24和192.168.2.1/32訪問,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(網絡注意後面加”.”號,各個項目間用空格隔開,記得把本機也加進去)
printcap name = printcapFile
到printcapFile(一般是/etc/printcap)這個文件中取得打印機的描述信息
load printers = yes|no
設定是否自動共享打印機而不用設置下面的[printer]一節的相關東西
printing = PrintSystemType
定義打印系統的類型,缺省是lprng,可選項有:bsd, sysv, plp, lprng, aix, hpux, qnx。
guest account = pcguest
定義遊客帳號,而且需要把這個帳號加入/etc/passwd,不然它就用缺省的nobody
log file = LogFileName
定義記錄文件的位置LogFileName(一般是用/var/log/samba/%m.log)
max log size = size
定義記錄文件的大小size(單位是KB,如果是0的話就不限大小)
security = security_level
定義Samba的安全級別,按從低到高分爲四級:share,user,server,domain。它們對應的驗證方式如下:
share:沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問服務器上的資源。
user:samba的默認配置,要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。
server:和user安全級別類似,但用戶名和密碼是遞交到另外一個服務器去驗證,比如遞交給一台NT服務器。如果遞交失敗,就退到user安全級。
domain:這個安全級別要求網絡上存在一台Windows的主域控制器,samba把用戶名和密碼遞交給它去驗證。
後面三種安全級都要求用戶在本Linux機器上也要系統帳戶。否則是不能訪問的。
password server =
當前面的security設定爲server或者domain的時候才有必要設定它。
password level = n
這是設定針對一些SMB客戶像OS/2之類而設的,這樣的系統在發送用戶密碼的時候,會把密碼轉換成大寫再發送,這樣就和samba的密碼不一致,這個參數可以設定密碼裏允許的大寫字母個數,這樣samba就根據這個數目對接收到的密碼進行大小寫重組,以重組過的密碼嘗試驗證密碼的正確性。n越大,組合的次數就越多,驗證時間就越長,安全性也會因此變得越低。例如n=2,用戶的密碼是abcd,但發送出去其實是ABCD,samba就會把這個ABCD進行大小寫重組,組合後的結果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。
所以如果沒有必要,就把n定爲是零。這樣的話samba只嘗試兩次,一個是接收到的密碼,另一個嘗試的是這個密碼都是小寫的情況。
username level = n
這個是對于用戶名的情況,說明和上面一項類似。
encrypt passwords = yes|no
設置是否對密碼進行加密,samba本身有一個密碼文件/etc/samba/smbpasswd,如果不對密碼進行加密則在驗證會話期間客戶機和服務器之間傳遞的是明文密碼,samba直接把這個密碼和Linux裏的/etc/samba/smbpasswd密碼文件進行驗證。但是在Windows 95 OS/R2以後的版本和Windows NT SP3以後的版本缺省都不傳送明文密碼,要讓這些系統能傳送明文密碼必須在其注冊表裏更改,比較麻煩,好的方法就是把這裏的這個開關設置爲yes。
smb passwd file = smbPasswordFile
設置存放samba用戶密碼的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。
ssl CA certFile = sslFile
當samba編譯的時候支持SSL的時候,需要指定SSL的證書的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。
unix password sync = yes|no
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n
*ReType*new*UNIX*password* %n
*passwd:*all*authentication*tokens*updated*successfully*
這三項設置能否從windows的應用程序修改unix系統的用戶密碼
username map = UsermapFile
指定用戶映射文件(一般是/etc/samba/smbusers),當我們在這個文件裏面指定一行root = administrator admin的時候,客戶機的用戶是admin或者administrator連接時會被當作用戶root看待。
include = MachineConfFile
指定對不同機器的連接采用不同的配置文件MachineConfFile(一般爲了靈活管理使用/etc/samba/smb.conf.%m,由于采用了samba的變量,把配置文件和客戶機的NETBIOS名稱關聯起來,能很容易地控制這些客戶機的權限和設置)。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
這個是網絡socket方面的一些參數,能實現最好的文件傳輸性能。相關的選項還有SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),帶*號的要指定數值。一般如果在本地網絡,就只用IPTOS_LOWDELAY,如果是有一個本地網絡的,就用IPTOS_LOWDELAY TCP_NODELAY,如果是廣域網絡,就試試IPTOS_THROUGHPUT。
interfaces = interface1 interface2
如果有多個網絡接口,就必須在這裏指定。如interface = 192.168.12.2/24 192.168.13.2/24
remote browse sync = host(subnet)
這裏指定浏覽列表同步信息從哪裏取得, 如果用host(比如192.168.3.25)或者整個子網(192.168.5.255)。
★這裏說明一下什麽是浏覽(Browse):
在SMB協議中,計算機爲了訪問網絡資源,就需要了解網絡上存在的資源列表(例如在Windows下使用網絡鄰居查看可以訪問的計算機),這個機制就被稱爲浏覽(Browse)。雖然SMB協議中經常使用廣播的方式,但如果每次都使用廣播的方式了解當前的網絡資源(包括提供服務的計算機和各個計算機上的服務資源),就需要消耗大量的網絡資源和浪費較長的查找時間,因此最好在網絡中維護一個網絡資源的列表,以方便查找網絡資源。只有必要的時候,才重新查找資源,例如使用Windows下的查找計算機功能。
  但沒有必要每個計算機都維護整個資源列表,維護網絡中當前資源列表的任務由網絡上的幾個特殊計算機完成的,這些計算機被稱爲Browser,這些Browser通過記錄廣播數據或查詢名字服務器來記錄網絡上的各種資源。
Browser並不是事先指定的計算機,而是在普通計算機之間通過自動進行的推舉産生的。不同的計算機可以按照其提供服務的能力,設置在推舉時具備的不同權重。爲了保證一個Browser停機時網絡浏覽仍然正常,網絡中常常存在多個Browser,一個爲主Browser(Master Browser),其他的爲備份Browser。★
remote announce = host(subnet)
指定這些機器向網絡宣告自己,而不是有Browser得到。
local master = yes|no
這個參數指定nmbd是否試圖成爲本地主浏覽器,默認值是yes,如果設爲no則samba服務器就永遠都不會成爲本地主浏覽器。但即使設置了yes,也不等于samba服務器就會成爲本地主浏覽器。只是參與本地主浏覽器選擇。
os level = n
n的值是個整數,決定了nmbd是否有機會成爲本地廣播區域的工作組裏的本地主浏覽器,默認值是零,零則意味著nmbd失去浏覽選擇。如果要nmbd更有機會成爲本地主浏覽器的話,可以設爲65。
domain master = yes|no
這個參數讓nmbd成爲一個域浏覽器,取得各本地主浏覽器的浏覽列表,並將整個域的浏覽列表遞交給各本地主浏覽器。
preferred master = yes|no
這個參數指定nmbd是否是工作組裏的首要的主浏覽器,如果指定爲yes,nmbd在啓動的時候就強制一個浏覽選擇。
★Domain master和local master
工作組和域這兩個概念在進行浏覽時具備同樣的用處,都是用于區分並維護同一組浏覽數據的多個計算機。事實上他們的不同在于認證方式上,工作組中每台計算機都基本上是獨立的,獨立對客戶訪問進行認證,而域中將存在一個(或幾個)域控制器,保存對整個域中都有效的認證信息,包括用戶的認證信息以及域內成員計算機的認證信息。浏覽數據的時候,並不需要認證信息,Microsoft將工作組擴展爲域,只是爲了形成一種分級的目錄結構,將原有的浏覽和目錄服務相結合,以擴大Mircrosoft網絡服務範圍的一種策略。
工作組和域都可以跨越多個子網,因此網絡中就存在兩種Browser,一種爲Domain Master Browser ,用于維護整個工作組或域內的浏覽數據,另一種爲Local Master Browser,用于維護本子網內的浏覽數據,它和Domain Master Browser通信以獲得所有的可浏覽數據。劃分這兩種Browser 主要是由于浏覽數據依賴于本地網廣播來獲得資源列表,不同子網之間只能通過浏覽器之間的交流能力,才能互相交換資源列表。
但是,爲了浏覽多個子網的資源,必須使用NBNS名字服務器的解析方式,沒有NBNS的幫助,計算機將不能獲得子網外計算機的NetBIOS名字。Local Master Browser也需要查詢NetBIOS名字服務器以獲得Domain Master Browser的名字,以相互交換網絡資源信息。
由于域控制器在域內的特殊性,因此域控制器傾向于被用做Browser,主域控制器應該被用作Domain Master Browser,他們在推舉時設置的權重較大。★
preserve case = yes|no
short preserve case = yes|no
指定拷貝DOS文件的時候保持大小寫,缺省是no
default case = lower|upper
所有的DOS文件的缺省是大寫還是小寫
case sensitive = yes|no
大小寫敏感,一般是no,不然會出現一些問題。
共享設置:
★共享資源:
每個SMB服務器能對外提供文件或打印服務,每個共享資源需要被給予一個共享名,這個名字將顯示在這個服務器的資源列表中。如果一個資源的名字的最後一個字母爲$,則這個共享名就爲隱藏共享,不能直接表現在浏覽列表中,而只能通過直接訪問這個名字來進行訪問。在SMB協議中,爲了獲得服務器提供的資源列表,必須使用一個隱藏的資源名字IPC$來訪問服務器,否則客戶無法獲得系統資源的列表。★
共享設置中有個比較奇怪的段:
[homes],在smb.conf文件中一般沒有對這個目錄的設定特定內容比如路徑等。當客戶機發出服務請求時,就在smb.conf文件的其它部分查找友特定內容的服務。如果沒有發現這些服務,並且提供了homes段時,那麽就搜索密碼文件得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home目錄並使之共享。下面是這個段的最基本的幾個設置。
[homes]
comment=Home Directory
browseable=no
writable=yes
比較正常的共享的配置如下例:
[MyShare]
comment = grind’s file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
delete readonly = yes|no
其中[]裏面的MyShare指定共享名,一般就是網絡鄰居裏面可以看見的文件夾的名字。
comment指的是對改共享的備注。
path指定共享的路徑,其中可以配合samba變量使用。比如你可以指定path=/data/%m,這樣如果一台機器的NETBIOS名字是grind,它訪問MyShare這個共享的時候就是進入/data/grind目錄,而對于NETBIOS名是glass的機器,則進入/data/glass目錄。
allow hosts和deny hosts和前面的全局設置的方法一樣這裏不再提及。
writeable指定了這個目錄缺省是否可寫,也可以用readonly = no來設置可寫。
user設置所有可能使用該共享資源的用戶,也可以用@group代表group這個組的所有成員,不同的項目之間用空格或者逗號隔開。
valid users指定能夠使用該共享資源的用戶和組。
invalid users指定不能夠使用該共享資源的用戶和組。
read list 指定只能讀取該共享資源的用戶和組。
write list指定能讀取和寫該共享資源的用戶和組。
admin list指定能管理該共享資源(包括讀寫和權限賦予等)的用戶和組。
public指明該共享資源是否能給遊客帳號訪問,這個開關有時候也叫guest ok,所以有的配置文件中出現guest ok = yes其實和public = yes是一樣的。
hide dot files指明是不是像unix那樣隱藏以“.”號開頭的文件。
create mode指明新建立的文件的屬性,一般是0755。
directory mode指明新建立的目錄的屬性,一般是0755。
sync always指明對該共享資源進行寫操作後是否進行同步操作。
short preserve case指明不管文件名大小寫。
preserve case指明保持大小寫。
case sensitive指明是否對大小寫敏感,一般選no,不然可能引起錯誤。
mangle case指明混合大小寫。
default case指明缺省的文件名是全部大寫還是小寫。
force user強制把建立文件的屬主是誰。如果我有一個目錄,讓guest可以寫,那麽guest就可以刪除,如果我用force user= grind強制建立文件的屬主是grind,同時限制create mask = 0755,這樣guest就不能刪除了。
wide links指明是否允許共享外符號連接,比如共享資源裏面有個連接指向非共享資源裏面的文件或者目錄,如果設置wide links = no將使該連接不可用。
max connections = n設定同時連接數是n。
delete readonly指明能否刪除共享資源裏面已經被定義爲只讀的文件。
有兩類特殊的共享,分別是光驅和打印機
光驅的共享設置:
[cdrom]
comment = grind’s cdrom
path = /mnt/cdrom
public = yes
browseable = yes
root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
這裏root preexec指明了連接時用root的身份運行mount命令,而root postexec則指明了斷開時用root身份運行umount,有效實現了對光驅的共享。
打印機共享的設置:
[printers]
path = /var/spool/samba
writeable = no
guest ok = yes
printable = yes
printer driver = HP LaserJet 5L
這裏printable指明該打印機可以打印, guest ok說明遊客也能打印,path指明打印的文件隊列暫時放到/var/spool/samba目錄下。printer driver的作用是指明該打印機的類型,這樣我們在安裝網絡打印機的時候可以直接自動安裝驅動而不必選擇。
添加用戶:
samba添加用戶比較方便,一般是用smbadduser,用法是smbadduser unixid:netid,舉個例子:如果你的本機有個叫grind的用戶,你用smbadduser grind:grind,這樣從網上鄰居訪問的時候用戶名就用grind,而如果你用了smbadduser grind:glass的話,網上鄰居訪問的時候提供的用戶名就是glass而不是grind了。
關于samba服務端的設置基本就是這些,我想一般應用中所要使用的上面幾乎都覆蓋到了,所以有些不重要的就省略了,如果要更加詳細的信息可以用man smb.conf參考。/dev/null
3.mf_wrapper是一個magic filter文件,是相關的一些過濾規則。內容是:
MF_RULE_DIR='/usr/share/printconf/mf_rules'
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX`' 'exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE
if [ -n "$DEBUG" ]; then
case "$DEBUG" in
2)
DEBUGSTRING="--debug --debug"
;;
3)
DEBUGSTRING="--debug --debug --debug"
;; 4)
DEBUGSTRING="--debug --debug --debug --debug"
;;
5)
DEBUGSTRING="--debug --debug --debug --debug --debug"
;;
*)
DEBUGSTRING="--debug"
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $*
接下來的操作和ftp的時候命令一樣,用get下載文件而用put上傳文件,命令可以用help查看。
還有一種方法是用文件系統的方式(這種方式要確定你的內核支持smbfs,如果沒有支持的話,編譯內核的時候必須選中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名稱/共享資源名 /本地挂接點 [-o option]
常用的的option有username=,password=,guest(指定爲用guest訪問,不用提供密碼,前面的即使用username=guest參數的話也會要求輸入密碼),ro(有時候爲了系統安全要指定爲只讀模式),rw,同時多個option的話用逗號隔開。
或者可以用mount -t smbfs [-o option] //IP或者NETBIOS名稱/共享資源名 /本地挂接點來實現同樣的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount -t smbfs -o guest //glass/littlep /test,然後就能通過訪問/test來使用網絡上的資源了。
如果不需要使用的時候,可以簡單地使用smbumount /test或者umount /test來解除這個挂接。
關于samba的功能(共享Linux磁盤給Win95/NT、共享Linux打印機給win95/NT、共享win95/NT打印機給Linux機器。、共享Win95/NT磁盤給Linux機器),前面兩個屬于samba服務器的內容而後兩個屬于samba客戶段的內容,在我的兩篇文章中都有介紹了他們的實現方法,但是samba實在是一個強大的工具,無法十分詳細地介紹它地全部功能,而且限于筆者的知識有限,有不到之處請各位指出,還望各位多多交流。

RPM命令手冊
一、安裝

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名

詳細選項:

-h (or --hash) 安裝時輸出hash記號 (``#'')
--test 只對安裝進行測試,並不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬于其它軟件包的文件
--force 忽略軟件包及文件的沖突
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作爲 FTP代理
--ftpport 指定FTP的端口號爲

通用選項

-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安
裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM 資料庫存所在的路徑爲

二、刪除

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

參數

pkg1 ... pkgN :要刪除的軟件包

詳細選項

--test 只執行刪除的測試
--noscripts 不運行預安裝和後安裝腳本程序
--nodeps 不檢查依賴性

通用選項

-vv 顯示調試信息
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安裝
程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM 資料庫存所在的路徑爲

三、升級

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

參數

file1.rpm ... fileN.rpm 軟件包的名字

詳細選項

-h (or --hash) 安裝時輸出hash記號 (``#'')
--oldpackage 允許"升級"到一個老版本
--test 只進行升級測試
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬于其它軟件包的文件
--force 忽略軟件包及文件的沖突
--percent 以百分比的形式輸出安裝的進度。
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作爲 FTP代理
--ftpport 指定FTP的端口號爲

通用選項

-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM 資料庫存所在的路徑爲

四、查詢

命令格式:

rpm -q ( or --query) options

參數:

pkg1 ... pkgN :查詢已安裝的軟件包

詳細選項

-p (or ``-'') 查詢軟件包的文件
-f 查詢屬于哪個軟件包
-a 查詢所有安裝的軟件包
--whatprovides 查詢提供了 功能的軟件包
-g 查詢屬于 組的軟件包
--whatrequires 查詢所有需要 功能的軟件包

信息選項

顯示軟件包的全部標識
-i 顯示軟件包的概要信息
-l 顯示軟件包中的文件列表
-c 顯示配置文件列表
-d 顯示文檔文件列表
-s 顯示軟件包中文件列表並顯示每個文件的狀態
--scripts 顯示安裝、卸載、校驗腳本
--queryformat (or --qf) 以用戶指定的方式顯示查詢信息
--dump 顯示每個文件的所有已校驗信息
--provides 顯示軟件包提供的功能
--requires (or -R) 顯示軟件包所需的功能

通用選項

-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM 資料庫存所在的路徑爲

五、校驗已安裝的軟件包

命令格式:

rpm -V ( or --verify, or -y) options

參數

pkg1 ... pkgN 將要校驗的軟件包名

軟件包選項

-p Verify against package file
-f 校驗所屬的軟件包
-a Verify 校驗所有的軟件包
-g 校驗所有屬于組 的軟件包

詳細選項

--noscripts 不運行校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗文件屬性

通用選項

-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM 資料庫存所在的路徑爲

六、校驗軟件包中的文件

語法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 軟件包的文件名

Checksig--詳細選項

--nopgp 不校驗PGP簽名

通用選項

-v 顯示附加信息
-vv 顯示調試信息
--rcfile 設置rpmrc文件爲


七、其它RPM選項

--rebuilddb 重建RPM資料庫
--initdb 創建一個新的RPM資料庫
--quiet 盡可能的減少輸出
--help 顯示幫助文件
--version 顯示RPM的當前版本
 

你可能感兴趣的:(Linux)