Linux系統(tǒng)管理入門必須經(jīng)歷的三步
我們常常會看到這樣的問題:面對 Linux 系統(tǒng)管理這個龐大的世界,應(yīng)該從哪里開始?說實話,我覺得這個問題不存在一個清晰明確的答案。Linux 認證并非最理想的選擇。你可以去參加一些培訓(xùn)課程,比如 RHCE.但是,如果沒有任何背景信息而去參加培訓(xùn),你可能無法享受到培訓(xùn)帶來的好處,因為所有課程都有一個前提假設(shè):你已經(jīng)掌握了一些基本知識。
熟悉Linux以及發(fā)行版
一個開始系統(tǒng)管理員學(xué)習的方法是抓起一本相關(guān)主題的書來看(編輯推薦:51CTO讀書頻道的Linux版塊有很多相關(guān)圖書的樣章)。然后安裝幾個 Linux 版本(參考:幾個比較知名的發(fā)行版),然后在你喜歡的版本上搞一些 VM 設(shè)置(參考:Linux下三大免費桌面虛擬機評測)。從一個版本開始,然后繼續(xù)使用這個版本,至少用上幾個月。但是,一旦熟悉了那些基礎(chǔ)知識,你就要轉(zhuǎn)向其他發(fā)行版本,看看其他版本是如何工作的,這一點也非常重要。無論使用哪個版本,不同之處僅僅在于一些設(shè)計和平臺常見通訊。最根本的操作系統(tǒng)還是 Linux,這一點不會改變。
使用一個新的平臺時,有一點非常重要:你必須真正地投入進去。對此,有一個簡單的方法:看看你現(xiàn)在正在做的事情,無論使用哪個平臺,試著在這臺 Linux 計算機上使用相同的方式去做系統(tǒng)的事情。掌握了那些基礎(chǔ)的知識和操作之后,以后你就應(yīng)該將這個 Linux 版本作為常用的工作平臺。從低等級管理能力方面來看,這種方式并不會讓你學(xué)到太多;不過,它可以讓你學(xué)會從用戶的角度來思考問題。
我一直都認為,最優(yōu)秀的管理員一定是從用戶的角度,從開發(fā)者的角度,然后從平臺(和管理員)的角度,對問題進行思考。最后我們還要記住,計算機是用來工作的,而管理員的角色就是確保計算機能夠充分發(fā)揮能力來完成工作。不要迷失了方向:目標仍然是做某件工作。
熟悉相關(guān)的應(yīng)用程序/服務(wù)
我最初接觸 Linux 的那段時間,常常會感覺很難與其他人的應(yīng)用程序建立一種關(guān)聯(lián),很難弄清楚他們?nèi)绾问褂盟麄兊挠嬎銠C和網(wǎng)絡(luò)。之所以很困難,因為我沒有處于他們所在的位置,甚至連跟上最新的情況都很困難。在尋找那種親身體驗的機會時,我認識到,和一個應(yīng)用程序建立關(guān)聯(lián)的最好方式就是加入他們的郵件列表。這樣,你就可以看到其他人遇到的問題,你也可以提出自己的問題,比如為什么那個事情要用那種特別的方式來解決,你還可以查看其他人貼出的 bug 報告。這些信息都清楚了展示了在“真實世界”中人們是如何使用這個應(yīng)用程序的,這將為提供一個很好的根基。大約 14 年之后,我仍然認為特定程序的用戶小組是學(xué)習一個應(yīng)用程序的最好場所,你可以了解到如何對它進行管理,最好的部署方式,還有開發(fā)者/用戶如何看待這個應(yīng)用程序的角度。
編寫代碼
最后,編程和實際寫代碼的能力也是有益的。不要相信那種到處流傳的說法:管理員無需寫代碼。和周圍優(yōu)秀的系統(tǒng)管理員聊聊(有很多這樣的人),你會發(fā)現(xiàn),幾乎每個人都會告訴你,他們 40-60% 時間用于編寫腳本,處理應(yīng)用程序,而腳本的開發(fā)知識是有幫助的。我不是說你需要搞一個 Java 認證,但是你要對 bash 的基本編程有很好理解,至少能夠使用 python、perl 和 ruby 中的一門語言(必要)。需要了解 unix/c 的傳統(tǒng)想法仍然存在,不過現(xiàn)在,并不是有很多系統(tǒng)管理員需要深入到驅(qū)動程序開發(fā)那個層次,他們需要了解的大多數(shù)函數(shù)代碼可以利用 bash、ruby、perl 或 python 進行很好的處理。