每天都在學(xué) linux,有一些心得體會(huì)和大家分享。
創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)互聯(lián)產(chǎn)品、成都營(yíng)銷網(wǎng)站建設(shè)服務(wù)為核心業(yè)務(wù)。十載網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
首先是,學(xué) linux 光靠看書是沒用的。由于linux的內(nèi)核和軟件更新太快,書上介紹的軟件配置方法往往不太適用(多半是版本沖突或者不兼容),加上自己機(jī)器的硬件和軟件配置和書上所用的機(jī)器的不一樣,也可能引起安裝軟件的失敗。相比較之下,網(wǎng)上的很多文章都很新,在解決實(shí)際問題的時(shí)候比書要好很多。但是,書有書的好處,書上介紹的很全面,對(duì)一個(gè)命令或者一個(gè)軟件的配置都分析了很多,而網(wǎng)上的大多數(shù)文章都是針對(duì)性比較強(qiáng)的。所以,要書和網(wǎng)絡(luò)結(jié)合,通過書來(lái)學(xué)習(xí)原理,實(shí)際問題解決不了的時(shí)候多百度一下或者google一下。
還有就是,雖然大家都比較喜歡漂亮的mm,但是在學(xué) linux 的過程中,還是要多和“男人”接觸一下:P 遇到問題的時(shí)候,出來(lái)看說和上網(wǎng)查之外,就是要多用 linux 下的 man 命令找找?guī)椭?/p>
最后要說的就是,雖然apt-get或者yum(郁悶)很方便,但是裝軟件的時(shí)候,最好還是下載源碼包安裝,實(shí)在裝不上了在用apt-get一個(gè),因?yàn)榧热滑F(xiàn)在是在學(xué) linux 那盡量就學(xué)復(fù)雜一點(diǎn)的東西,等到以后要實(shí)際運(yùn)用的時(shí)候再走捷徑。并且,configure 時(shí)候盡量多試試各種參數(shù),并制定自己的--prefix路徑。還有就是不要怕裝軟件把系統(tǒng)弄得很亂,亂了或者系統(tǒng)崩潰了就重裝一次,多裝幾次就 linux 就入門了。(我曾經(jīng)1天裝了4、5次系統(tǒng))裝系統(tǒng)的時(shí)候盡量多試幾種發(fā)行版的 linux。linux的發(fā)行版很多,他們?cè)诤芏嗟胤蕉疾灰粯樱饬?xí)慣一種其他的都不知道不行。比如我原來(lái)用red hat,習(xí)慣于它的 inittab 設(shè)置啟動(dòng),當(dāng)用 ubuntu 的時(shí)候發(fā)現(xiàn) inittab 沒有了,取而代之的是 events/ 并且啟動(dòng)級(jí)別也不是rh的3是終端5是圖形了,ubuntu 的 2--5都一樣,還有很多地方不一樣(下一篇 blog 我會(huì)進(jìn)行簡(jiǎn)單介紹rh 和 ubuntu 的不同)。
總之,我覺得,要是想娛樂,用 windows 比較方便,但如果你是想用電腦來(lái)工作(編程、做服務(wù)器等),那還是用 linux 把。要想學(xué)好 linux,一個(gè)是多看書多實(shí)踐,還有就是計(jì)算機(jī)的基礎(chǔ)知識(shí)一定要扎實(shí)。如果基礎(chǔ)不扎實(shí),那就借這個(gè)機(jī)會(huì)好好補(bǔ)補(bǔ)吧。
LINUX跟DOS差不多就是大概了解一下LINUX的結(jié)構(gòu)之后記命令就行了???================================不可誤人子弟,,,記得以前也在知道里回答過類似的問題,=======================================================================我個(gè)人在這里說一下在學(xué)習(xí)linux的這幾年的一點(diǎn)心得,不敢說有什么成功的經(jīng)驗(yàn),但是有很多失敗的教訓(xùn)。第一點(diǎn):我學(xué)習(xí)linux是在大二的時(shí)候。那時(shí)候裝的發(fā)行版本是redhat??墒莿倓傞_始的時(shí)候聲卡的驅(qū)動(dòng)裝不上,其它比如說顯卡,網(wǎng)卡都弄好。但是由于沒有聲音所以就沒堅(jiān)持用下去。幾年后再次弄那個(gè)聲卡的時(shí)候還是弄不上,可是這次的決心比較大,所以查了n多的資料;請(qǐng)教了很多人。終于被我弄好了。---------總結(jié):無(wú)論是學(xué)習(xí)linux還是其它,決心是要擺在很重要的位置的。第二點(diǎn):前兩年的時(shí)候,對(duì)linux以及gnu的很多開源的東西產(chǎn)生了濃厚的興趣;所以就開始深入的研究linux。甚至使用linux不久就開始閱讀內(nèi)核代碼。可是到今天我還沒真正意義上理解內(nèi)核的結(jié)構(gòu),以及很多模塊的功能,及實(shí)現(xiàn)原理。----------總結(jié):不要在錯(cuò)誤的時(shí)間做錯(cuò)誤的事情。具體的講有那么幾層意思:a》不要?jiǎng)硬粍?dòng)就去讀kernel代碼;b》不要太高估自己的能力;c》千萬(wàn)要在有一定知識(shí)積累的時(shí)候才能去研究更深層次的東西;d》要帶的問題去學(xué)習(xí),而不是空洞地進(jìn)行技術(shù)研究;研究技術(shù)本身是學(xué)院派的作風(fēng)。第三點(diǎn):linux上面的開源的軟件,和linux所包含的開放的精神,文化和內(nèi)涵;它們是比linux內(nèi)核更有價(jià)值的。--------總結(jié):選擇了linux其實(shí)也是選擇了一種文化,選擇了一種信仰;既然把這個(gè)選擇上升到那么高的層次,那么任何的比較(與其它系統(tǒng))都是不明智的;至少是不會(huì)有很大價(jià)值的。第四點(diǎn):回到問題本身,如何去學(xué)習(xí)它?我個(gè)人認(rèn)為應(yīng)該遵循以下的順序:接觸(安裝一個(gè)發(fā)行版本)=》認(rèn)識(shí)(至少了解它能做什么)=》熟悉(用它來(lái)完成一些日常的工作)=》理解(在長(zhǎng)時(shí)間的使用過程中了解為什么linux是這樣解決問題的)=》創(chuàng)造(在前面幾步的基礎(chǔ)上做一些改進(jìn),創(chuàng)新)。當(dāng)然在這樣一個(gè)過程中有很多的“功課”要做,操作系統(tǒng)方面的知識(shí)當(dāng)然是很重要的;但是不是很急迫,所以可以在后來(lái)有基礎(chǔ)了再去了解;至于象保護(hù)模式也是一樣。我個(gè)人做了這樣一個(gè)學(xué)習(xí)的等級(jí)劃分:1。重要,緊急:熟悉目錄結(jié)構(gòu),熟悉基本操作命令(注意是基本),文本編輯器的使用(使用vi或者emacs但是不建議都學(xué),因?yàn)楸救水?dāng)初就是想都精通,后來(lái)惹了不必要的麻煩;現(xiàn)在專心用vi)。2。重要,不緊急:正則表達(dá)式,grep,sed,awk,perl,gcc,gdb(其實(shí)這些東西的學(xué)習(xí)是需要很長(zhǎng)的過程,但是它的使用又是貫穿整個(gè)系統(tǒng);之所以重要是因?yàn)樗鼈兒芎玫伢w現(xiàn)了linux的精神;之所以不緊急并不是真的不緊急,是因?yàn)樗鼈儽旧砭褪且粋€(gè)很偉大很復(fù)雜的軟件需要慢慢消化吸收而不是囫圇吞棗)。3。不重要,緊急:一個(gè)絢麗的桌面,一些幽雅的桌面小插件(linux的強(qiáng)大事實(shí)上并不在其桌面環(huán)境,雖然gnome和kde都非常的幽雅;之所以不重要是相對(duì)于其它更重要的東西而言的,而之所以緊急是因?yàn)檫@些東西會(huì)在很短的時(shí)間內(nèi)catch住你的心,你的興趣;而興趣是支撐你接下去學(xué)習(xí)過程的最最重要的東西---這一點(diǎn)請(qǐng)相信)。4。不重要,不緊急:將windows上常用的東西移到linux上,比如要在wine上玩wow或者cs(原因是顯而易見的,開航母去釣魚肯定沒有劃著小船來(lái)的有情調(diào))最后我個(gè)人的建議是:了解操作系統(tǒng)的組成,工作原理要從了解它上面運(yùn)行的應(yīng)用軟件開始。了解它上面的應(yīng)用軟件則要通過日復(fù)一日地使用它。我不覺得哪一本書能達(dá)到你期望的那種效果;但是如果在你堅(jiān)持使用linux的過程中總是不斷地去總結(jié)和接受新的東西,那么不要過很久你會(huì)發(fā)現(xiàn)linux是你的一個(gè)很好的助手。
一.為什么要學(xué)linux?
當(dāng)然最重要是愛好和興趣!如果你這種必要學(xué),或者根本不喜歡,請(qǐng)不要浪費(fèi)時(shí)間,你學(xué)也學(xué)不好!
二.起步
你應(yīng)該為自己創(chuàng)造一個(gè)學(xué)習(xí)linux的環(huán)境--在電腦上裝一個(gè)linux或unix
如何選擇版本:北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術(shù)最先進(jìn)的linux開發(fā)人員中用debian的最多,其次是redhat,從全球linux各應(yīng)用領(lǐng)域市場(chǎng)份額來(lái)看無(wú)疑redhat是最多的,此外還有很多出名的發(fā)行版本,不再列舉。
對(duì)于初學(xué)linux的人來(lái)說,我建議是使用redhat,原因如下:
1)現(xiàn)在很多書都是以redhat為例講的,為了與書本協(xié)調(diào)一致
2)周圍的人都用redhat,交流比較方便
3)redhat應(yīng)用范圍廣,有典型性和代表性
4)它易于使用和安裝,我們沒有必要把時(shí)間浪費(fèi)在“裝系統(tǒng)”上而應(yīng)集中精力學(xué)習(xí)最有用的東西。
【注】現(xiàn)在覺得RH很死板,AS,ES等用在服務(wù)器上或許不錯(cuò),Personal desktop用mandrake,debian,suse都不錯(cuò),筆者現(xiàn)在用Mandrake,因?yàn)樗L(zhǎng)得漂亮:)
如果你并不打算深入學(xué)習(xí)linux,而是有諸如適應(yīng)北京市政府辦公平臺(tái)遷移到linux上這種需要,那么中軟,紅旗等中文linux是不錯(cuò)的選擇
我強(qiáng)烈建議:自己親自動(dòng)手把linux裝到你的硬盤上,你必須學(xué)會(huì)獨(dú)立安裝linux系統(tǒng)的技能,對(duì)于現(xiàn)在的版本來(lái)說,其實(shí)跟裝WinXP一樣簡(jiǎn)單
從此現(xiàn)在開始,請(qǐng)不要以windows的工作方式來(lái)考慮問題,應(yīng)該嘗試挖掘linux身上的“天才unix”的氣質(zhì)。
三.進(jìn)階
掌握至少50個(gè)以上的常用命令
理解shell管道"|",文件流重定向""及追加""等
熟悉Gnome/KDE等X-windows桌面環(huán)境操作
掌握.tgz.rpm.biz等軟件包的常用安裝方法
學(xué)習(xí)添加外設(shè),安裝設(shè)備驅(qū)動(dòng)程序(比如modem)
熟悉Grub/Lilo引導(dǎo)器及簡(jiǎn)單的修復(fù)操作
熟悉系統(tǒng)固有目錄的名稱及公用
學(xué)會(huì)用mount命令訪問其他文件系統(tǒng)
了解vi,gcc,gdb等常用編輯器,編譯器,調(diào)試器
學(xué)習(xí)linux環(huán)境下的簡(jiǎn)單組網(wǎng)
建議:買一本不需要太厚的linux教材,大致可以滿足要求(現(xiàn)在的書越來(lái)越多了,還帶很多圖,我當(dāng)時(shí)可沒這么多書)
四.高級(jí)應(yīng)用
澄清一些概念:linux的普通操作與真正的系統(tǒng)管理不能相提并論,后者需要很多知識(shí)
1.英語(yǔ)
即使你不學(xué)linux,我也強(qiáng)烈建議你學(xué)好英文[U.S.english]。因?yàn)閷?shí)質(zhì)上計(jì)算機(jī)語(yǔ)言就是英文和字符,所謂的多國(guó)語(yǔ)言只是外部包裝。你必須能無(wú)障礙的閱讀大量的英文技術(shù)文檔在搜索引擎找到的英文網(wǎng)站和網(wǎng)頁(yè)中熟練的檢索最好能有用英文直接交流的能力,擺脫了這個(gè)障礙,你的學(xué)習(xí)和理解速度就能快很多,你就有機(jī)會(huì)拉開和別人的差距。
2.shell[sed/awk]
shell是命令解釋器,是內(nèi)核與用戶界面交流通道,shell寫的小腳本有點(diǎn)類似于win下的.bat但shell比.bat強(qiáng)大的多,shell不只是解釋命令,更是一種編程語(yǔ)言,有時(shí)候幾百行的c用shell幾十行就能代替完成工作,因?yàn)閟hell的工作方式建立在系統(tǒng)已有的眾多應(yīng)用程序之上
這也是CS中的一個(gè)重要思想。此外,shell可以實(shí)現(xiàn)工作自動(dòng)化,這個(gè)概念也比較重要sed,awk用來(lái)處理文本,歷來(lái)很常用。
3.Perl/PHP
漂亮的腳本, CGI的首選,比ASP好,應(yīng)用面很廣
4.C\C++
C、C++是linux/unix的核心語(yǔ)言,系統(tǒng)代碼都是C寫的
5.ASM
系統(tǒng)底層及內(nèi)核,硬件,設(shè)備驅(qū)動(dòng)程序,嵌入式開發(fā)都需要。//走核心路線的話,c\c++,asm最重要
6.Java,Python,Tcl,XML
五、系統(tǒng)管理篇
在熟悉linux的基礎(chǔ)上還需要掌握至少一種unix。我首推Solaris,其次是FreeBSD比如運(yùn)營(yíng)級(jí)系統(tǒng)一般是Solaris+Oracle/DB2之類的學(xué)習(xí)apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各種應(yīng)用服務(wù)器的構(gòu)架及電子商務(wù)的應(yīng)用熟悉TCP/IP協(xié)議族,學(xué)習(xí)諸如apache+php+proftp+mysql+quota的實(shí)現(xiàn)以及大型局域網(wǎng),分布式集群等各種企業(yè)級(jí)應(yīng)用解決方案熟悉多用戶管理,數(shù)據(jù)庫(kù)管理,文件系統(tǒng),邏輯存儲(chǔ)管理,日志分析,備份與災(zāi)難數(shù)據(jù)修復(fù)系統(tǒng)補(bǔ)丁,內(nèi)核升級(jí),以及在此基礎(chǔ)上的防火墻構(gòu)架等以保障系統(tǒng)安全在內(nèi)的各種系統(tǒng)管理技能。
我覺得,如果在此基礎(chǔ)上再掌握路由/交換設(shè)備便是一個(gè)不錯(cuò)的系統(tǒng)管理員
各種基于linux的解決方案可參考相關(guān)書籍和文獻(xiàn),必要時(shí)用google或各大linux站點(diǎn)站內(nèi)搜索引擎尋找最新文檔,以避免錯(cuò)誤和漏洞有幾本技術(shù)大全和技術(shù)內(nèi)幕我認(rèn)為都是這方面不錯(cuò)的書
六、深入學(xué)習(xí)linux
我個(gè)人理解的讀linux內(nèi)核需要的基礎(chǔ):在此之前,希望先把應(yīng)用層的東西學(xué)一下,那樣會(huì)比較好理解
1.C
如果學(xué)過潭浩強(qiáng)的大學(xué)教科書(除了編幾個(gè)數(shù)學(xué)模型好像什么也做不了的那種),建議再看一下《The C Programming Language》Second Edition這本圣經(jīng)(如果想學(xué)緩沖區(qū)溢出,這點(diǎn)C的功力可能是不夠的,還有C陷阱與缺陷,C專家編程,C\C++深層探索,反正經(jīng)典書看多了是沒有壞處的)
2.asm (ATT語(yǔ)法,保護(hù)模式)
保護(hù)模式下的比較復(fù)雜,基本上每本講內(nèi)核的書都會(huì)有介紹有80x86 Intel語(yǔ)法的基礎(chǔ)就行,
有興趣可以看看Intel的官方網(wǎng)站
3.數(shù)據(jù)結(jié)構(gòu)(離散數(shù)學(xué))
計(jì)算機(jī)專業(yè)的核心課程,重要性我就不說了
4.操作系統(tǒng)原理
看懂這個(gè)再去讀linux吧
5.微機(jī)原理/組成原理(數(shù)字電路)
底層直接和硬件打交道,所以這個(gè)也要
6.了解linux/unix
我想至少你要會(huì)操作吧,了解unix的API
7.軟件工程/編譯原理
這方面的經(jīng)典書去可以搜到很多我覺得APUE這種書不適合初學(xué)者,還是先看看UPE