一.為什么要學(xué)linux?
當(dāng)然最重要是愛(ài)好和興趣!如果你這種必要學(xué),或者根本不喜歡,請(qǐng)不要浪費(fèi)時(shí)間,你學(xué)也學(xué)不好!
二.起步
你應(yīng)該為自己創(chuàng)造一個(gè)學(xué)習(xí)linux的環(huán)境--在電腦上裝一個(gè)linux或unix 問(wèn)題1:版本的選擇
北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術(shù)最先進(jìn)的linux 開(kāi)發(fā)人員中用debian的最多,其次是redhat,從全球linux各應(yīng)用領(lǐng)域市場(chǎng)份額來(lái)看 無(wú)疑redhat是最多的,此外還有很多出名的發(fā)行版本,不再列舉。 對(duì)于初學(xué)linux的人來(lái)說(shuō),我建議是使用redhat,原因如下: 1)現(xiàn)在很多書(shū)都是以redhat為例講的,為了與書(shū)本協(xié)調(diào)一致 2)周?chē)娜硕加胷edhat,交流比較方便 3)redhat應(yīng)用范圍廣,有典型性和代表性 4)它易于使用和安裝,我們沒(méi)有必要把時(shí)間浪費(fèi)在“裝系統(tǒng)”上 而應(yīng)集中精力學(xué)習(xí)最有用的東西。
//注:現(xiàn)在覺(jué)得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裝到你的硬盤(pán)上, 你必須學(xué)會(huì)獨(dú)立安裝linux系統(tǒng)的技能,對(duì)于現(xiàn)在的版本來(lái)說(shuō),其實(shí)跟裝WinXP一樣簡(jiǎn)單
從此現(xiàn)在開(kāi)始,請(qǐng)不要以windows的工作方式來(lái)考慮問(wèn)題, 應(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)固有目錄的名稱(chēng)及公用 學(xué)會(huì)用mount命令訪問(wèn)其他文件系統(tǒng) 了解vi,gcc,gdb等常用編輯器,編譯器,調(diào)試器 學(xué)習(xí)linux環(huán)境下的簡(jiǎn)單組網(wǎng)
建議:買(mǎi)一本不需要太厚的linux教材,大致可以滿(mǎn)足要求 //現(xiàn)在的書(shū)越來(lái)越多了,還帶很多圖,我當(dāng)時(shí)可沒(méi)這么多書(shū):)
四.高級(jí)應(yīng)用
澄清一些概念: linux的普通操作與真正的系統(tǒng)管理不能相提并論,后者需要很多知識(shí)
我個(gè)人認(rèn)為比較重要幾種linux語(yǔ)言 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ì)拉開(kāi)和別人的差距
2.shell[sed/awk] shell是命令解釋器,是內(nèi)核與用戶(hù)界面交流通道,shell寫(xiě)的小腳本有點(diǎn)類(lèi)似于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寫(xiě)的
5.ASM 系統(tǒng)底層及內(nèi)核,硬件,設(shè)備驅(qū)動(dòng)程序,嵌入式開(kāi)發(fā)都需要 //走核心路線(xiàn)的話(huà),才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之類(lèi)的 學(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)用解決方案 熟悉多用戶(hù)管理,數(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)管理技能
我覺(jué)得,如果在此基礎(chǔ)上再掌握路由/交換設(shè)備便是一個(gè)不錯(cuò)的系統(tǒng)管理員
各種基于linux的解決方案可參考相關(guān)書(shū)籍和文獻(xiàn),必要時(shí)用google或各大linux站點(diǎn)站內(nèi) 搜索引擎尋找最新文檔,以避免錯(cuò)誤和漏洞 有幾本技術(shù)大全和技術(shù)內(nèi)幕我認(rèn)為都是這方面不錯(cuò)的書(shū)
*深入學(xué)習(xí)linux
我個(gè)人理解的讀linux內(nèi)核需要的基礎(chǔ): 在此之前,希望先把應(yīng)用層的東西學(xué)一下,那樣會(huì)比較好理解 1.C 如果學(xué)過(guò)潭浩強(qiáng)的大學(xué)教科書(shū)(除了編幾個(gè)數(shù)學(xué)模型好像什么也做不了的那種), 建議再看一下 《The C Programming Language》Second Edition這本圣經(jīng) /*如果想學(xué)緩沖區(qū)溢出,這點(diǎn)C的功力可能是不夠的*/ 還有,,, 反正經(jīng)典書(shū)看多了是沒(méi)有壞處的
2.asm (AT&T語(yǔ)法,保護(hù)模式) 保護(hù)模式下的比較復(fù)雜,基本上每本講內(nèi)核的書(shū)都會(huì)有介紹 有80x86 Intel語(yǔ)法的基礎(chǔ)就行, 有興趣可以看看Intel的官方****
3.數(shù)據(jù)結(jié)構(gòu)(離散數(shù)學(xué)) 計(jì)算機(jī)專(zhuān)業(yè)的核心課程,重要性我就不說(shuō)了
4.操作系統(tǒng)原理 看懂這個(gè)再去讀linux吧
5.微機(jī)原理/組成原理(數(shù)字電路) 底層直接和硬件打交道,所以這個(gè)也要
6.了解linux/unix 我想至少你要會(huì)操作吧,了解unix的API
7.軟件工程/編譯原理
這方面的經(jīng)典書(shū)去www.可以搜到很多 我覺(jué)得APUE這種書(shū)不適合初學(xué)者,還是先看看UPE之類(lèi)的吧
APUE: 《advanced programming in the unix environment》 《unix環(huán)境高級(jí)編程》 作者:W.Richard.Stevens共有6本經(jīng)典書(shū),尊為“圣經(jīng)” 他的書(shū)為全世界黑客所拜讀!
UPE:《unix programming environment》 《unix編程環(huán)境》比較適合初學(xué)者的,深入淺出, 其中有一些比較重要的思想 另外,介紹linux下應(yīng)用層編程的書(shū)也有很多,比如 ,redhat,redflag出的書(shū)........... 經(jīng)典書(shū)還有很多很多...... 操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn) //交大的考研參考書(shū)目,講Minix的 unix操作系統(tǒng)設(shè)計(jì) 4.4BSD操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 昂萊氏unix源代碼分析 ulk:understanding the linux kernel (2nd)深入理解linux內(nèi)核 linux設(shè)備驅(qū)動(dòng)程序 (2nd) linux內(nèi)核源代碼情景分析 保護(hù)方式下的80386及其編程(次書(shū)已絕版,只有超星的電子版,如果誰(shuí)能搞到紙書(shū),清一定告訴我一下,非常感激!!!)
在這里你能明白"黑客"及"haching"一詞所代表的真正意義 希望我寫(xiě)的這篇文章能造就更多的黑客,而不是駭客
五.一些資源 www. //國(guó)內(nèi)最高水平GNU站點(diǎn) www. //unix、系統(tǒng)管理的不錯(cuò) www. //下載軟件不錯(cuò) www. www.
其實(shí)還有很多,包括國(guó)外的。 |
|
|