結論1:首先要明白他的
(1)設計理念是緣自Unix的“把任務分解成一小塊一小塊完成”,建議你可以看這本電子書<< The Art of Unix Programming>>。是由Eric Steven Raymond寫的,在google上很容易找到。這本書編重於編程,可以根據自已的興趣選相應章節。我也沒有全看完,也在研習中:-)
從使用著手,自已裝個系統。建議你從Redhat開始。現在Redhat的安裝基本上都是學習MS的做法,很圖形化了。只要按照圖形的指示,很容易讓一個系統跑起來。我覺得初學者應該從這個入手,這樣會快很多。因為Linux上的軟體包都是由不同的Team Dev做的,所以一般人不知道如果安裝,redhat公司做的事情就是把這些東西組織起來,然後把這些軟體賣給大家。因為他對這一行非常的精通,所以賣軟體是其次,賣服務是主業。現在 redhat已停止出個人版的了,改成專做企業的了,版本發行最近有些變動。現在最後一個版本好象是RH9.1。
裝好系統後從使用應用軟體開始,建議你先
學(2)BASH SHELL編程。因為你將業想往Oracl DBA發展的話,精通SHELL可以在管理上給你帶來很大的便利。同時對於理解Linux系統的啟動和一些軟體的安裝很有協助。比如說你可以很清楚的瞭解Linux的整個啟動過程,繼而知道為什麼要做那一步做了這個動作,對你將來處理實際碰到的問題至少可以明白知道問題出在哪。象很多我們日常在Unix/Linux的管理和指令碼都是分不開的,精通BASH是我們需要完成的第一步。我指的是精通,不是一般的瞭解,因為你只有精通了,用的時間越長,你會發現script可以幫我們很方便的幹很多事情。這裡有一本電子書提供參考,是我至今見到寫BASH最全,最好的一本。名叫《Advanced Bash Scripting Guide》,你可以在www.linuxdoc.org裡找到。
這裡也提一下www.linuxdoc.org裡的文章是你學習Linux的良師益友,裡面的很多文章都是非常不錯的教材。主要分為幾類: 1、FAQ 2、HOWTO 3、Guider 4、man手冊。其中的Guider有幾本都是非常不錯的入門書,你基本上可以不用去買本,美國出的印刷書都奇貴,你把那裡的幾本書看完就差不多了。插一句,現在P2P很流行,我基本上都不買專業的書了,大部分都可以找到電子版的下載。裡面的HOWTO主要講的一些具體的問題如何處理,門類也很多很雜,你可以根據自已現在的需求去看相應的文章。有空的時候可以多看看,這裡面有些很好的solution,說不定什麼時候就可以用上。FAQ的文章不多,建議挑些重要的看下。對於man手冊,一般系統上都有,不過那裡應該是最近的,平時用的不多。
結論2:自已裝個Redhat,學好shell。
你用Unix/Linux時候,熟悉一個編輯器是必不可少的。用兩種建議選擇Emacs&VIM。Emacs比較大些,要花些空間,功能具強,以前用過一段時間但沒有深入下去,所以瞭解也是通過大師們文章中反覆提到這個關鍵字和一些資訊知道的,用好了功能具強,相當於一個MS下的IDE開發環境;vim比較小些,功能也很強,是vi的增強版,我現在主要是用她來編輯東西。vim支援多種文法,可以用來編指令碼、C、Java,功能足夠我們用,學好需要一定的時間實踐。因為我們用Unix/Linux,免不了有時要用console來控制,如果用慣了MS的編輯的話,你會非常痛苦,建議如果以後想長時間使用unix/linux環境的話,學好一種這環境下的編輯器。vim也有windows的版本,開始用起來會覺得不方便,便很快你會發現用VIM可以解決很多MS下編輯器不能解決的問題,不信你可以試試看。:-)
結論3:學會一種Unix/Linux下編輯器Emacs或Vim,建議Vim(因為我在用,可以給你些指導 )
akane:
(3)熟練使用VIM文字編輯器
學習Linux有幾種常用的服務軟體需要會用,1) apache(http) 2) bind(dns) 3) pro-ftp (ftp) 4)samba(file share) 。需要掌握這些軟體的安裝和簡單配置,這些軟體在網上都有很詳細的文檔。至少apache要會安裝和管理,因為這是最基本的WEB服務,今天在哪裡都能用到。對於這些常用服務軟體根據自已興趣和環境要求做出選擇,不一定要很精,但要會,建議精通。
結論4:(4)學會常用服務軟體的安裝和配置,至少掌握apache
在Linux中還有很多小工具 + 生產力也需要掌握,這對你今後診斷問題和做相應的系統管理有很大協助。如配置網卡地址的工具ifconfig,尋找檔案的工具find,行編輯的命令sed、awk,網路狀態檢查netstat、ping、nc等。這些工具可以在實踐中慢慢學習。
結論5:在實踐中學習一些(5)常用小工具,如ifconfig netstat route等
掌握一到兩種Opensource的資料庫,如現在流行的兩種資料庫MySQL和PostgreSQL。MySQL用的人多些也比較簡單,速度又快,做一些簡單的資料庫應用很多都用他做backend databaes server。如果你自已想學Oracle的話,可以直接學 oracle。Oracle的東西多且全,基本上所用的功能都能在Oracle找到。但如果你想更深一層學習DB的話,你可以考慮學 PostgreSQL,他有來源程式而且支援交易處理(trans-action)、子查詢(sub-select),過程(procedure)、自訂函數(function)、游標(cursor),支援了大部份SQL92和99的標準。他的文檔也比較全。
結論6:建議掌握一種Opensource的DB,如MySQL
akane:(6)學習使用oracle資料庫或mysql
建議對TCP/IP協議層深入瞭解,我想你們上研究生時應該講的很深。但我還是建議你再多複習相關的知識點,很多時候網路上的問題可以通對你對TCP/IP的瞭解找到問題所在。建議你買那個steven的書叫(7)<<tcp/ip詳解>>,同時經常在身邊準備好那幾種狀態切換的圖,勞記在心,出問題的時候就可以知道是哪邊網路不通,還是應用程度出了什麼問題了。
結論7:建議再深入瞭解TCP/IP protocol
建議除了bash外,再學多一種在(8)Unix環境下的RAD指令碼語言python。我也正在學python,通過這段時間的瞭解發現,這個東東有很多功能而且在開發上可以比c/c++提高至少5倍效率。有時候偏向做系統管理,但掌握一本這種編程形的指令碼對工作協助很大,可以迅速的處理一些問題。BASH是側重於人機交複的指令碼,有些事情用BASH是無法完成的。Python在很多Internet應用上有很多module& package,你可以很方便的使用已有的功能,比如說自已做個小的WEB SERVER,做測試載入器,做資料庫查詢等等。
結論8:建議學下Python