從Windows系統到Linux系統轉變的5大要點
當我在 Algoma (阿爾格瑪)大學開始我現在的工作,一個圖書系統管理員,我實在是對我的工作沒有什麼信心。儘管我在圖書信息技術上有十年經驗,對於我的第一個任務——協助開發和管理 Evergreen ——一個開源的圖書目錄系統,我還是有些忐忑。最大的問題在於:我從前基本上都是在 Windows 系統下工作的。
最開始我對情況還有些樂觀,畢竟我曾經也在很短的時間內學習掌握一項新的技能。但是三周後,我意識到我應該是遇到了難題。到底要怎樣從一個在 Windows 系統下工作的人轉變成一個合格的 Linux 系統管理員?更重要的是,我應該在工作中做些什麼?畢竟我的任務是完成工作,而不是學習一個新的操作系統。本來我每天晚上的時間是屬於私人的,但是自從我開始接受這個任務的四個月後,上級準備任命我為項目經理,於是我開始利用晚上的時間開始工作。最後我被正式任命為項目經理。以下內容是我經過這次工作獲得的經驗。
每個人都要知道的從 Windows 到 Linux 轉變所需要的知識
弄明白哪些知識是必須要知道的,並非毫無用處。我 Windows 的背景就有一些關於開發技巧的知識。儘管每種需要都有一些不同,我還是把目標,功能方法,基礎編程邏輯和一些需要轉換的概念放在我的桌面上。網路和資料庫很相似。這一點其實很重要,可以作為和老闆彙報的內容。這項技術能讓我達到一些低級目標,例如建一個我們圖書館的網站-這也是一個開源項目,當然兩個操作系統下相似的網頁技術也是讓開源圖書館這個項目得以很好的實現。讓我的老闆對這些早期的成果有良好的印象還是很關鍵的。
讓你的老闆支持你。我知道我在工作中學習到的知識遠遠比我在夜晚瞎逛學到的要多,所以學習也成為了我專業開發工作的一部分。結論很容易得到:學習 Linux 是一種投資。回報就是能夠使用免費的開源的軟體來管理圖書館。由於我出色的工作,我的老闆也對我更加地認可。他允許我用更多的時間去深入研究 Linux。
一直使用 Linux 。儘管 Linux 在網路和開發中的應用率很高,但是作為系統管理平台卻還沒能大範圍應用。唯一的改變這種狀況的方法就是多多使用 Linux 。雖然這樣子會使人望而生畏。我簡直為我的 Linux 文件系統的工作抓狂,但是還是必須得要完成。我嘗試過一些不同的方法想要 Windows 和 Linux 能同時使用,例如,在 Windows 系統下建立 Linux 系統的虛擬機,在 Linux 系統下建立 Windows 系統的虛擬機,在 Windows 下安裝 Ubuntu 系統( WIUB)——一種舊的工作站形式。這些方法各有優缺點,但是最後我決定了使用一個帶有完整圖形界面的 Linux 系統來建立我的工作站,並且在 Linux 系統下做一個遠程的伺服器。
我覺得使用 Windows 工作站是臨時性的,這樣子會讓我們不自覺地使用舊的方式,很容易就會去打開一個 Windows 系統的虛擬機,但是這樣子在一個缺點很多的虛擬系統下工作反而鼓勵了我不顧困難去鑽研 Linux 。這樣一個開始讓我有了一次完整的 Linux 體驗:學習如何連接印表機,如何在工作站端使用郵件系統,如何通過安全命令來通過一個伺服器來控制另一台主機端。還剩一個很重要的任務,如何獲得物品,並且使用命令行。
學習一些關鍵的指令會讓開發變得簡單。我第一次使用 EMACS (一種文本編輯器) 時,我必須用重新啟動的方式來關閉它。這樣子很不方便。如果你是一個有經驗的開源技術使用者,以下的指令你應該會覺得很熟悉,如果你是一個新手,並且你需要去查找指令手冊,這就證明你還得好好學習一下。5雖然人們都不喜歡查指令手冊,但是如果你真的知道怎麼查的話,這也是一個很有用的方法。我建議大家了解以下指令:
ls, cd, find
基本的操作文件系統的指令
sudo
對伺服器管理員非常重要
dhclient
這個指令對啟動工作站和連接網路非常重要
grep, tail, vim
這些是篩選日誌和代碼最基礎的指令
ssh, scp
這兩個指令在連接遠程伺服器和向它們安全地傳遞和接受文件中起關鍵作用
犯錯誤也是一種學習。即使你在學習的過程中犯了錯誤。我在我第一次更新IP 信息包過濾系統時學到了許多關於 Linux 服務的知識。當時在設置它的時候情況很混亂,我還忘記關閉了遠程伺服器端的網路適配器。遇到這種情況,你唯一能做的就是期望你有一個給力的工作夥伴。我就是這樣的幸運兒,遇到了開源社區的幾個樂於助人的朋友。