1. 程式人生 > >為什麼每個程式設計師都應該學習使用命令列

為什麼每個程式設計師都應該學習使用命令列

大學畢業以後我就成了一名JAVA程式設計師,在之後的很長一段時間裡,我每天上班的流程基本都是一樣的:

早上來到公司 -> 開啟電腦(啟動Windows) -> 開啟Eclipse(我是一名JAVA程式設計師) -> 寫一天程式碼(期間我通過IDE整合的Tomcat伺服器來除錯我的應用)-> 下班前通過Eclispe的外掛把修改過的程式碼提交到SVN程式碼倉庫中 ->下班回家.

在我的印象中,很少需要用命令列去完成什麼工作的。這種情況一直持續了很久,以至於我下意識地認為任何軟體工具都是應該有一個圖形介面的。但最近幾年這種情況發生了改變,幾乎所有的工具軟體都不約而同地變得更加簡單而純粹,它們精簡了那些不必要的功能,不再一味追求大而全,而是更加註重使用者的感受和使用效率。其中一些非常優秀的軟體工具更是拋棄了圖形介面,要求使用者通過命令列直接進行操作。這一改變當然也對我的工作流程產生了影響,它變成了現在這個樣子:

開啟電腦,啟動Mac作業系統 -> 開啟Sublime和Eclipse -> 通過命令列輸入三條命令 mongod;redis-server;grunt serve啟動我的本地除錯環境 ->開發->通過命令列git commit ;git push提交我一天的工作程式碼 -> 結束工作。

通過上面的對比,你應該已經能夠發現命令列已經成為了現代程式設計師所必須具備的一項基礎技能,而其原因最明顯地體現在以下三個方面:

你可以更有效地控制你的作業系統

控制作業系統,這可能是學習命令列最直接的一個原因了。即使你不是一個程式設計師,也可以通過學習命令列,使你的工作效率得到顯著的提升。比如:一些簡單的命令能夠幫助我們快速搜尋或檢視檔案,而通過對那些簡單命令進行組合,就可以完成更加複雜的任務。


以前,我要啟動一套本地的開發環境,我總是需要手工地一個個去點選那些服務逐一啟動Web伺服器、資料庫伺服器、並開啟IDE等等。這看起來每次只需要花2、3分鐘時間,但這是每天都需要進行的操作,而且由於除錯需要,一天裡經常需要重複啟動好幾次。一個月下來我光花在啟動環境上的時間就花去了2,3個小時。後來,我便學著寫了一個Shell指令碼,其實非常簡單,就是按順序去一個個掉用那些啟動服務的命令,這樣我每次只要點一下執行那個指令碼,整個環境就自動啟動好了。之後,我又進行了一些改進,讓它能夠根據我輸入的引數執行不同的任務,這又進一步提升了我的工作效率,開發的心情也頓時好了許多。

有了這個小小的成功經歷之後,我又寫了好幾個Shell指令碼,將那些原來需要重複操作的工作都讓指令碼去完成了。正因為得到了這些好處,我也經常鼓勵身邊的程式設計師們去編寫自動化指令碼,讓他們從重複性的工作中解脫出來。

你需要用Git來做版本控制

Git已經成為最被推薦的版本控制工具。幾乎所有的開源軟體都使用Git來做版本控制,即使是那些大型軟體企業也在越來越多地使用Git。因此,作為程式設計師,你必須掌握Git。

但Git最早是用來維護Linux核心程式碼的,它的所有操作也都是基於命令列的。雖然GitHub也提供了Mac和Windows上的客戶端,但它們的使用效率完全無法跟直接用命令列相比。而且,我想告訴你,如果你參與過開源專案的話,你會發現幾乎沒有程式設計師喜歡使用客戶端,他們都能夠非常熟練地使用命令列進行操作。

不過,Git確實有些難於掌握,特別是它獨特的分支操作。你可以通過一些線上教程來進行學習,關於命令列,你也可以參考我之前寫的【簡明教程】Git 來熟悉那些命令的用法。

另一個好的辦法是通過實踐掌握這些命令,這裡我推薦Try Git這個網站,你能在這裡根據它的教程練習Git命令,15分鐘內,你就能夠掌握那些最常用的基本命令了。


前端開發依賴於命令列工具

前端因為它最貼近使用者,因此在這個比以往任何時候都更重視使用者體驗的時代,正變得越來越重要。而針對前端的優秀工具也如雨後春筍般層出不窮。以前我們做前端時,如果需要用到依賴的第三方庫,總是需要到相應的網站上去下載,然後引入到自己的工程裡。而現在這一切都有相應的工具或庫幫你完成。

  • 你可以使用NPM (Node Package Manager) 來安裝幾乎所有的前端第三方工具或開源庫
  • 你可以使用SASS,LESS這樣的預處理工具,來大大減輕CSS編寫的難度,並使程式碼更加易於維護
  • 你還可以使用GRUNT,GULP這樣基於任務的處理工具,來進行從程式碼、測試到部署的整套自動化流程。
  • 還有其他很多優秀的工具或庫如Jade,CoffeeScript,Express.js,它們都能在某個領域為你提供極大的幫助。

但以上這些工具,都需要通過命令列來進行安裝,因此,如果你想成為一名前端工程師的話,你也必須學習命令列


既然學習命令列對於程式設計師來說那麼重要,我們又應該如何學習呢?

其實,我們大多數人排斥使用命令列是因為我們對使用命令列沒有信心,認為很難像電影裡那些黑客那樣非常熟練地使用命令列。而當我們嘗試去學習時,也總是會看到包含大量命令說明的書籍或教程,一下子我們可能就畏懼了。其實,對於初學者來說,你根本不需要去看那些書,因為它們大部分是為系統管理員寫的。而對於一個普通程式設計師,你只需要從熟悉那些最常用的基本命令開始,比如 ls,cd,pwd,cp等(我在網上找到一篇不錯的部落格:linux常用基本命令),並嘗試反覆使用它,當你習慣並適應使用這些命令以後,便可以更進一步,嘗試寫一些自動化指令碼來幫助你完成一些工作。相信我,到那個時候,你一定會喜歡上命令列,而且會並被大家認為是一個高手的。當然,如果你已經是一個命令列達人了,也不妨在評論中分享你的使用心得哦 ^_^