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