找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 667|回复: 0

淺談如何學習linux

[复制链接]

735

主题

1102

回帖

3076

牛毛

二级牛人

积分
3096
QQ
发表于 2009-7-18 16:48:10 | 显示全部楼层 |阅读模式 来自 山东省威海市
淺談如何學習linux
 一.爲什麽要學linux?
  當然最重要是愛好和興趣!如果你這種必要學,或者根本不喜歡,請不要浪費時間,你學也學不好!
  二.起步
  你應該爲自己創造一個學習linux的環境--在電腦上裝一個linux或unix
  如何選擇版本:北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術最先進的linux開發人員中用debian的最多,其次是redhat,從全球linux各應用領域市場份額來看無疑redhat是最多的,此外還有很多出名的發行版本,不再列舉。
  對于初學linux的人來說,我建議是使用redhat,原因如下:
  1)現在很多書都是以redhat爲例講的,爲了與書本協調一緻
  2)周圍的人都用redhat,交流比較方便
  3)redhat應用範圍廣,有典型性和代表性
  4)它易于使用和安裝,我們沒有必要把時間浪費在“裝系統”上而應集中精力學習最有用的東西。
  【注】現在覺得RH很死闆,AS,ES等用在服務器上或許不錯,Personal desktop用mandrake,debian,suse都不錯,筆者現在用Mandrake,因爲她長得漂亮:)
  如果你并不打算深入學習linux,而是有諸如适應北京市政府辦公平台遷移到linux上這種需要,那麽中軟,紅旗等中文linux是不錯的選擇
  我強烈建議:自己親自動手把linux裝到你的硬盤上,你必須學會獨立安裝linux系統的技能,對于現在的版本來說,其實跟裝WinXP一樣簡單
  從此現在開始,請不要以windows的工作方式來考慮問題,應該嘗試挖掘linux身上的“天才unix”的氣質。
  三.進階
  掌握至少50個以上的常用命令
  理解shell管道"|",文件流重定向">"及追加">>"等
  熟悉Gnome/KDE等X-windows桌面環境操作
  掌握.tgz.rpm.biz等軟件包的常用安裝方法
  學習添加外設,安裝設備驅動程序(比如modem)
  熟悉Grub/Lilo引導器及簡單的修複操作
  熟悉系統固有目錄的名稱及公用
  學會用mount命令訪問其他文件系統
  了解vi,gcc,gdb等常用編輯器,編譯器,調試器
  學習linux環境下的簡單組網
  建議:買一本不需要太厚的linux教材,大緻可以滿足要求(現在的書越來越多了,還帶很多圖,我當時可沒這麽多書)
  四.高級應用
  澄清一些概念:linux的普通操作與真正的系統管理不能相提并論,後者需要很多知識
  1.英語
  即使你不學linux,我也強烈建議你學好英文[U.S.english]。因爲實質上計算機語言就是英文和字符,所謂的多國語言隻是外部包裝。你必須能無障礙的閱讀大量的英文技術文檔在搜索引擎找到的英文網站和網頁中熟練的檢索最好能有用英文直接交流的能力,擺脫了這個障礙,你的學習和理解速度就能快很多,你就有機會拉開和别人的差距。
  2.shell[sed/awk]
  shell是命令解釋器,是内核與用戶界面交流通道,shell寫的小腳本有點類似于win下的.bat但shell比.bat強大的多,shell不隻是解釋命令,更是一種編程語言,有時候幾百行的c用shell幾十行就能代替完成工作,因爲shell的工作方式建立在系統已有的衆多應用程序之上
  這也是CS中的一個重要思想。此外,shell可以實現工作自動化,這個概念也比較重要sed,awk用來處理文本,曆來很常用。
  3.Perl/PHP
  漂亮的腳本, CGI的首選,比ASP好,應用面很廣
  4.C\C++
  C、C++是linux/unix的核心語言,系統代碼都是C寫的
  5.ASM
  系統底層及内核,硬件,設備驅動程序,嵌入式開發都需要。//走核心路線的話,c\c++,asm最重要
  6.Java,Python,Tcl,XML
  五、系統管理篇
  在熟悉linux的基礎上還需要掌握至少一種unix。我首推Solaris,其次是FreeBSD比如運營級系統一般是Solaris+Oracle/DB2之類的學習apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各種應用服務器的構架及電子商務的應用熟悉TCP/IP協議族,學習諸如apache+php+proftp+mysql+quota的實現以及大型局域網,分布式集群等各種企業級應用解決方案熟悉多用戶管理,數據庫理,文件系統,邏輯存儲管理,日志分析,備份與災難數據修複系統補丁,内核升級,以及在此基礎上的防火牆構架等以保障系統安全在内的各種系統管理技能。
  我覺得,如果在此基礎上再掌握路由/交換設備便是一個不錯的系統管理員
  各種基于linux的解決方案可參考相關書籍和文獻,必要時用google或各大linux站點站内搜索引擎尋找最新文檔,以避免錯誤和漏洞有幾本技術大全和技術内幕我認爲都是這方面不錯的書
  六、深入學習linux
  我個人理解的讀linux内核需要的基礎:在此之前,希望先把應用層的東西學一下,那樣會比較好理解
  1.C
  如果學過潭浩強的大學教科書(除了編幾個數學模型好像什麽也做不了的那種),建議再看一下《The C Programming Language》Second Edition這本聖經(如果想學緩沖區溢出,這點C的功力可能是不夠的,還有<C陷阱與缺陷>,<C專家編程>,<C\C++深層探索>,反正經典書看多了是沒有壞處的)
  2.asm (AT&T語法,保護模式)
  保護模式下的比較複雜,基本上每本講内核的書都會有介紹有80x86 Intel語法的基礎就行,
  有興趣可以看看Intel的官方網站
  3.數據結構(離散數學)
  計算機專業的核心課程,重要性我就不說了
  4.操作系統原理
  看懂這個再去讀linux吧
  5.微機原理/組成原理(數字電路)
  底層直接和硬件打交道,所以這個也要
  6.了解linux/unix
  我想至少你要會操作吧,了解unix的API
  7.軟件工程/編譯原理
  這方面的經典書去www.china-pub.com可以搜到很多我覺得APUE這種書不适合初學者,還是先看看UPE之類的吧。
  APUE: 《advanced programming in the unix environment》,中文名《unix環境高級編程》,作者:W.Richard.Stevens(共有6本經典),尊爲“聖經”。他的書爲全世界黑客所拜讀!
  UPE:《unix programming environment》,中文名《unix編程環境》比較适合初學者的,深入淺出,其中有一些比較重要的思想。
  另外,介紹linux下應用層編程的書也有很多,比如<GNU\Linux編程指南>,redhat,redflag出的書...........
  經典書還有很多很多......
  《操作系統:設計與實現》(交大的考研參考書目,講Minix的unix操作系統設計)、4.4BSD操作系統設計與實現、昂萊氏unix源代碼分析、Understanding the linux kernel (2nd)深入理解linux内核、linux設備驅動程序 (2nd)、linux内核源代碼情景分析及《保護方式下的80386及其編程》(次書已絕版,隻有超星的電子版,如果誰能搞到紙書,清一定告訴我一下,非常感激!!!)
  在這裏你能明白"黑客"及"haching"一詞所代表的真正意義.希望我寫的這篇文章能造就更多的黑客,而不是駭客
  七、一些資源
  www.linuxforum.net // 國内最高水平GNU站點
  www.chinaunix.net  // unix、系統管理的不錯
  www.linuxeden.com  // 下載軟件不錯
  www.linuxaid.com.cn
  www.linuxsir.org
  其實還有很多,包括國外的
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-26 13:13 , Processed in 0.281897 second(s), 35 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表