Linux愛好者入門教程(轉)

BSDLite發表於2007-08-15
Linux愛好者入門教程(轉)[@more@]最近在學習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官方網站:




下面的是國內的優秀的Linux論壇:



下面這個搜尋引擎Google是我們大力推薦的最好的搜尋引擎,我自從用過以後就沒有使用過其他的。

下面是幾個很好的自由軟體基地,不過有被中國電信封IP的危險,鬱悶啊。




下一章我們要講述一些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的第一章安裝光碟放入光碟機,開機。這時候你應該能夠看到一些啟動提示。相信大家都有大學英語的基本功,閱讀這些東西是不成問題的。現在,你可以直接按Enter鍵,啟動圖形介面的安裝程式;也可以輸入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 "rotocol" "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多行啦?

其實這兩個管道符號很容易記憶,向左邊的箭頭意思就是把前面命令的內容輸入到後面的檔案中去,剛才那個“|”管道符號是用來把前面命令的輸出結果當作後面一個命令的輸入資料。下面我們看一個和剛才“>;>;”剛剛相反的管道符號“<
cat >;>; friends << "EOF"
>; a
>; b
>; c
>; EOF
執行第一行以後,意思就是把我們接下來的輸入內容儲存到friends檔案裡面,當我們輸入“EOF”的時候結束。“<中間我象徵性的輸入了a b c三行,每一行前面的“>;”是系統自動產生的提示符號。第四行輸入“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代理伺服器

7) find
find -iname [目錄] 檔名 在指定目錄裡面(如果不指定目錄就是當前目錄)查詢指定檔名的檔案

grep
ps -A | grep some_command

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

9) lynx
lynx

字元介面的網路瀏覽器,我們這裡用來瀏覽,因為沒有圖片,所以非常快

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[[]][[]]-*
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 ... pkg

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960119/,如需轉載,請註明出處,否則將追究法律責任。

相關文章