隨著linux應用的擴充套件許多朋友開始接觸linux,根據學習windwos的經驗往往有一些茫然的感覺:不知從何處開始學起。作為乙個 linux系統管理員,我看了許多有關linux的文件和書籍,並為學習linux付出了許多艱苦的努力。當真正獲得了乙份正式的linux系統管理工作後,我更加深刻地理解了linux的靈魂:服務與多使用者。linux系統知識是非常廣博的,但是只要掌握了重點知識,管理它並沒有想象中的那麼可怕。在下面我會將作為系統管理員的一些工作心得和總結出來的經驗系統地介紹給大家。
一、 學習的目的
通過linux的學習掌握unix的目的想必不用多說了,在這個網路人才身價倍增的年代,想靠技術吃飯又不想掌握網路和程式設計技術是不明智的。當一人第一次聽說linux並躍躍欲試的時候,總會提出幾個?,它是什麼(what)? 為什麼要用它(why)?怎樣學習它(how)?做為開放原始碼運動的主要組成部分,linux的應用越來越廣泛,從我們平時的娛樂、學習,到商業、**辦公,再到大規模計算的應用。為了滿足人們的需求,各種各樣的、基於linux的應用軟體層出不窮。只要具備了linux的基本功,並具有了自學的能力之後,都可以通過長期的學習將專項內容予以掌握。
二、 從命令開始從基礎開始
常常有些朋友一接觸linux就是希望構架**,根本沒有想到要先了解一下linux的基礎。這是相當困難的。雖然linux桌面應用發展很快,但是命令在linux中依然有很強的生命力。linux是乙個命令列組成的作業系統,精髓在命令列,無論圖形介面發展到什麼水平這個原理是不會變的,linux命令有許多強大的功能:從簡單的磁碟操作、檔案訪問、到進行複雜的多**圖象和流**檔案的製作。這裡筆者把它們中比較重要的和使用頻率最多的命令,按照它們在系統中的作用分成幾個部分介紹給大家,通過這些基礎命令的學習我們可以進一步理解 linux系統:
●安裝和登入命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
●檔案處理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
●系統管理相關命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
●網路操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
三、 選擇一本好的linux書籍
無論在論壇還是讀者反饋中,我們看到最多的問題往往是某個新手,在安裝或使用linux的過程中遇到乙個具體的問題就開始提問,很多都是重複性的問題,甚至有不少人連基本的問題描述都不是很清楚。這說明很多初學linux的人還沒有掌握基本功。怎樣才能快速提高掌握linux的基本功呢?最有效的方法莫過於學習權威的linux工具書,工具書對於學習者而言是相當重要的。一本錯誤觀念的工具書卻會讓新手整個誤入歧途。目前國內關於 linux的書籍有很多不過精品的不多,筆者強烈建議閱讀影印本的「o'reilly原版linux圖書」,而且出版社還提供了乙個非常好的路線圖:見圖-1。
四 、養成在命令列下工作
一定要養成在命令列下工作的習慣,要知道x-window只是執行在命令列模式下的乙個應用程式。在命令列下學習雖然一開始進度較慢,但是熟悉後,您未來的學習之路將是以指數增加的方式增長的。從網管員來說,命令列實際上就是規則,它總是有效的,同時也是靈活的。即使是通過一條緩慢的數據機線路,它也能操縱幾千公里以外地遠端系統。
五、用unix思維思考linux
由於linux是參照unix的思想來設計的,理解和掌握它就必須以unix的思維來進行,而不能以windows思維。不可否認,windows在市場上的成功很大一部分在於技術思想的獨到之處。可是這個創新是在面對個人使用者的前提下進行的,而面對著企業級的服務應用,它還是有些力不從心。多年來在計算機作業系統領域一直是二者獨大:unix在伺服器領域,windows在個人使用者領域。由此可見,使用者需求決定了所採用的作業系統。不管什麼原因,如果要學習linux,那麼首先要將思維從windows的「這個小河」 中拖出來,放入unix的海洋。
六 、學習shell
對於shell(中文名稱殼),習慣windows的讀者肯定是非常陌生的,因為windows只有乙個「shell」(如果可以說是shell的話),那就是windows自己。用一句話容易理解的解釋就是,shell是使用者輸入命令與系統解釋命令之間的中介。最直觀的說法,一種shell有一套自己的命令。舉乙個容易理解的例子,linux的標準shel是bash shel;solaris的shell是b shell;linux的shell是以命令列的方式表現出來的。讀者可能會不理解,windows從命令列「進化」到了圖形介面,那麼linux現在還使用命令列豈不是一種倒退?
當初我剛剛接觸linux時就曾有過這種想法。可是後來發現,如果使用圖形介面,那麼分配給應用軟體的資源就少了,在**昂貴的伺服器上,能夠以較低的硬體配置實現同樣的功能是非常重要的。
下面舉例說明,一台伺服器有1gb記憶體,假設其中512mb用於處理圖形介面,若要安裝乙個需要784mb記憶體的資料庫軟體,惟一的辦法就是擴大記憶體。但是如果使用命令列,系統可能只需要64mb記憶體,其它的記憶體就可以供資料庫軟體使用了。使用命令列,不僅是記憶體,而且cpu及硬碟等資源的占用都要節省很多。所以,作為伺服器使用命令列是優點而不是缺點。既然shell有這麼多優點,就必須要學習它。
七、勤於實踐
要增加自己linux的技能,只有通過實踐來實現了。所以,趕快找一部計算機,趕快安裝乙個 linux發行版本,然後進入精彩的linux世界。相信對於你自己的 linux能力必然大有斬獲。此外,人腦不像計算機的硬碟一樣,除非硬碟壞掉了或者是資料被你抹掉了,否則儲存的資料將永遠而且立刻的記憶在硬碟中。在人類記憶的曲線中,你必須要不斷的重複練習才會將一件事情記得比較熟。
同樣的,學習 linux也一樣,如果你無法經常學習的話,學了後面的,前面的忘了。你對linux命令熟悉後你可以開始搭建乙個小的linux網路,這是最好的實踐方法。 linux是網路的代名詞,linux網路服務功能非常強大,不論是郵件伺服器、web伺服器、dns伺服器等都非常完善。當然你不需搭建所有服務,可以慢慢來。需要說明的是這個linux網路對於初學者有兩三颱計算機即可。自己多動手,不要非要等著別人幫你解決問題。
八、學會使用文件
和私有作業系統不同,各個linux的發行版本的技術支援時間都較短,這對於linux初學者是往往不夠的。其實當你安裝了乙個完整的linux系統後其中已經包含了乙個強大的幫助,只是可能你還沒有發現和使用它們的技巧。主流linux發行版都自帶非常詳細的文件(包括手冊頁和faq),從系統安裝到系統安全,針對不同層次的人的詳盡文件,仔細閱讀文件後40%問題都可在此解決。查閱經典工具書和howto,特別是howto是全球數以萬計的 linux、unix的經驗總結非常有參考價值通常40%的問題同樣可以解決。安裝乙個新的軟體時先看readme,再看install然後看faq,最後才動手安裝,這樣遇到問題就知道為什麼。如果說明文件不看,結果出了問題再去論壇來找答案反而浪費時間。
當查詢文件時, 一定要看文件是在何種版本、何種環境及何種狀態下出現的何種結果。對於文件的有效性, 一時還無法在操作前就知道結論如何,那麼對某個專題或問題,閱讀相關的多篇文章將會節省大量的時間,還可以保證盡量「乾淨」的環境,有效避免因為不同操作所造成的更多問題。操作時要仔細核對各個步驟及輸出的結果,盡量保持與文件一致。
九、在linux論壇獲取幫助
如果上面的措施沒有解決問題,此時你就需要linux社群的幫助了。需要說明的是你要有周全的思考,準備好你的問題,不要草率的發問,否則只會得到到草率的回答或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能得到實質性的幫助。最好先搜尋一下論壇是否有您需要的文章。這樣可以獲得事半功倍的效果。
十、學習專業英文
如果你想深入學習linux,看不懂因為文件實在是太難了。寫的最好的,最全面的文件都是英語寫的,最先發布的技術資訊也都是用英語寫的。即便是非英語國家的人發布技術文件,也都首先翻譯成英語在國際學術雜誌和網路上發表。
十
一、在社群共享你的經驗
隨著linux應用的擴充套件,出現了不少linux社群。其中有一些非常優秀的社群:水木清華、其中有一些非常優秀的社群:www.linuxforum.net(國內最高水平gnu站點)、http://www.chinaunix.net/(中國最大的unix技術社群),隨著知識的不斷積累,就可以把自己動手解決一些前人沒有遇到的問題寫出文件在網路上共享給其他讀者。這個時候,也就成為了一名「高手」。linux的使用者一般都是專業人士,他們有著很好的電腦背景且願意協助他人,linux高手更具有鼓勵新手的文化精神。
最後是乙個筆者的linux學習的路線圖(roadmap):
●了解linux的基礎知識,這些包含了使用者管理、群組的概念、許可權的觀念等;
●掌握至少50個以上的常用命令;
●掌握.tgz、.rpm等軟體包的常用安裝方法
●學習新增外設,安裝裝置驅動程式(比如網絡卡)
●熟悉linux檔案系統 和目錄結構。
●掌握vi,gcc,gdb等常用編輯器,編譯器,偵錯程式 。
●理解shell別名、管道、i/o重定向、輸入和輸出以及shell指令碼程式設計。
linux solaris自動掛載
啟動時自動掛載 bash 3.00 cat etc vfstab device device mount fs fsck mount mount to mount to fsck point type pass at boot options fd dev fd fd no proc proc pr...
SAP BASIS系統管理
系統監控 1 sm51 2 sm50 3 sm66 系統日誌 1 sm21 sap ccms 1 rz20 2 st06 作業系統監視器 operating system monitor 用於分析整個sap技術棧的效能 4 ssaa 用於執行常規的日 周和月的系統管理功能。5 smlg 用於監控sa...
Oracle 系統管理
oracle 系統管理 1.oracle的啟動和關閉 說明 這裡所說的啟動和關閉是對於 oracle 例項而言,而不是對於 oracle 服務而言。如果 oracleserviceorcl 服務未開啟,則會報 ora 12560 tns 協議介面卡錯誤 而且啟動和關閉需要有 dba許可權才能操作,否...