不要害怕命令行——Mac OS 篇
接納你電腦上最有用的工具。
你應該在電影中見到過,儘管從沒在自己電腦上調出來:一個空白屏幕,帶有一些簡單文字提示和一個游標,等著你去輸入幾個神秘的命令,就會聽你的吩咐。
這就是命令行。它是基於字元的介面,它比現在人們都熟悉的主流操作系統(包括Windows到Mac OS X和Linux)上的窗口,圖標和瓦片 tiles都要早。
命令行是一個使用你電腦基本功能的超級強大的工具。對於大多數人來說,它也是一個讓人困惑的,難以理解的,看上去無關緊要的東西。但是其實不是這樣的。
在你的命令控制下的電腦
輸入字元指令再敲下回車來讓電腦做點事情,和在移動設備的觸摸界面上滑動點擊比較,聽起來像是退了一大步。即使是剛學走路的小孩都可以用iPad,對吧?不過,如果你知道怎麼用的話,命令可以節省你的時間,減少煩惱。
如果你很認真想學習編程-或者想理解計算機技術-你完全有必要掌握命令行。
深入到命令行里,將教會你很多關於電腦如何工作以及管理信息的。你也許會發現有些平常使用滑鼠操作的功能,當改為敲一兩個命令後,實際上會更快。
更重要的是,你會更容易理解像Python那樣的編程語言和像Git那樣的軟體,需要有一點命令行基礎。在熟悉了命令行以後,你就可以打破過去阻止你學習編程的障礙了。
所以在這裡介紹一點關於命令行的快速的、基礎的指導。它主要專註於Mac OS X的類Unix環境,只是因為這是我比較熟悉的。Linux用戶應該已經很熟悉命令行了,不過新手也許還是會覺得這些小竅門有點用。如果你用的是Chromebook,Google對如何打開它自帶的命令行工具已經給出了有用的指導,它和Mac或Linux系統有點類似。對於Windows用戶,很不幸,受限於從MS-DOS衍生出的命令語言,它和Unix只有一點點交集,所以這篇指導對你沒什麼用;不過可以去看下dosprompt.info網站里的資料。
如何開始
你需要做的第一件事是搞清楚如何進入命令行,通常這是通過一個叫「shell」的軟體來做的。在任意一台運行OS X的Mac上,需要啟動終端應用。你可以通過Finder來打開(它是在應用程序下的實用工具目錄里),或者點擊屏幕右上角的放大鏡然後輸入「terminal」,然後在下拉列表裡選擇。
你進來了,但是所有你看到的只是一個有輸入空間的空白盒子。這就是命令行!讓我們來更好地了解一下這個窗口。
輸入pwd,它的意思是列印當前工作目錄。在計算機語言里,「列印」什麼和紙沒一點關係。它實際上只是意味著吐點東西到屏幕上。這個命令運行的結果是讓計算機返回你當前正處在的目錄路徑。(LCTT 譯註,「列印」源於早期計算機的輸出設備不是顯示器,而是行式印表機,所以輸出就是「列印」;在後期,有了顯示器之後,在啞終端上操作遠程主機時,輸出才是「回顯 echo」)
實際上,/Users/laurenorsini是我的主目錄。高級提示:你可以使用波浪符(~)作為自己主目錄的簡寫 - 它和/Users/你的用戶名是一樣的。比如,你可以像~/Downloads這樣引用你的下載目錄。(如果你仔細看前面的命令提示,你會發現那裡有一個波浪符。這說明我當前正在自己的主目錄下。)
我們肯定不希望我們的命令行試驗把自己的主目錄弄的一團糟,所以讓我通過mkdir命令來創建一個新目錄。這和在桌面操作系統里創建一個新目錄是一樣的。讓我們把它叫做「experiments」:
現在我們有一個新目錄了。如果使用圖形界面的話,我們可以用自己的眼睛判斷我們已經創建了一個新目錄。當然,如果我打開Finder然後進入我的主目錄(用一個小房子圖標標記的)就會看到一個叫「experiments」的目錄。我通過命令行實現的!(反過來:你可以在桌面系統里建立一個文件夾,然後在命令行下去查看。這只是同一套系統的兩種不同表現方式。)
現在我需要通過cd(改變路徑)命令改變路徑進入到~/experiments目錄中
我的命令提示是系統默認設定,所以它自動顯示我當前的工作目錄。但是如果你的看起來不一樣的話,這樣可以讓你確定「experiments」是當前工作目錄:再一次輸入pwd。它應該會告訴你當前工作目錄是「experiments」。
建立存檔
在寫代碼的每一天里我都通過命令行創建和編輯文件。它比使用圖形用戶界面更快是因為我可以在編輯完後馬上就在命令行里測試我的程序。如果我正好同時需要推送到GitHub的話,好吧,那就更方便了。
現在你有一個新目錄(也可以叫做倉庫或文件夾)在你電腦上用來折騰。讓我們從創建一個包含「你好世界」這句話的文件開始吧。有很多種方式,在這裡我用了echo命令。
哦不!我拼錯「newfile」了。這經常會碰到。讓我們用兩個步驟來改正它。首先,我將創建一個拼寫正確的文件...(LCTT 譯註:完全不必創建新文件,直接 mv 即可,相當於改名。)
然後,我講使用mv(移動)命令把拼寫錯誤的就文件替換成我的新文件。通常都是這樣,「mv 舊文件 新文件」。
關於mv要注意的:跟大多數命令一樣,它是一個容易誤導的強大命令。當我們「移動」newfil.txt到newfile.txt的時候,實際上會把第一個文件完全覆蓋到第二個文件上。這樣我寫到newfile.txt里的內容將徹底消失,替換成我寫到newfil.txt里的內容。
為了證明我的目錄下只有一個文件,可以使用ls,清單命令,來獲得目錄下的所有文件清單。
看到了沒?只有一個。然後如果我在圖形界面下看下這個目錄的話,也可以看到這個文件。
但是,它只是個空白文本文件(LCTT 譯註,不是空白的,其內容是「Hello World」)。讓我們用文本編輯器來輸入點內容進去。在命令行下,我喜歡用nano編輯器,因為它很簡單而且幾乎在所有類型電腦上都可以使用。(LCTT 譯註,作為 Linux 黨,那肯定是要用 vi 的,不過 vi 對於初學者來說有一點點難。)
這會在你的命令行窗口中馬上打開編輯屏幕。一些基本的命令都為你列出來了。
寫下你想說的話,然後通過CTRL + X退出。在它問你是否保存的時候,當然鍵入"Y"。
你也許已經猜到了,也可以在操作系統中用滑鼠找到newfile.txt文件看到這些改動。這裡你可以用任意喜歡的文本編輯器打開編輯這個你創建的文件。
如果你想永遠刪除這個文件,可以用rm(移除)命令:
注意一下,rm命令非常強大!在黑客論壇里有個常用伎倆就是說服一個命令行新手輸入rm -rf /,然後他就把自己整個電腦上的所有文件都刪掉了。命令里的「/」意思是電腦的最高級根目錄-所有一切都在它之下。千萬不要輸入那行命令!(LCTT 譯註:希望你在看完這句話之前沒有真的輸入了 rm -rf / !!!)
延伸閱讀
這只是無限可能的命令行的一個開始。你可以使用這個工具控制電腦的每一個方面,這也使得它強大的同時也很危險。保證在使用它們之前先看一下命令行提示,然後永遠不要盲目輸入任何陌生人推薦給你的語句。
我已經大概介紹了平時敲代碼時常用的幾個命令,但是有比這更多的理由去掌握命令行。如果你想更徹底地了解,也許可以試試:
命令行速成教程。一套免費的擴展課程,涵蓋了命令行應用的基礎。
命令行初學者啟蒙。Lifehacker收藏的一些適合初學者的很有用的命令。
Mac OS X 命令行入門。在線教育網站Treehouse極盡詳細地介紹了命令行的基礎。
現在文章看完了,你就更容易理解我之前寫的那些代碼教程了,因為如果不敲幾個命令根本沒法完成。如果你準備好了,我建議你去看看ReadWrite的Git教程,它使用命令行來向你介紹協同編程。計算與你同在!
題圖來自Jason Scott;其他屏幕截圖由Lauren Orsini提供給ReadWrite
via: http://readwrite.com/2014/07/18/command-line-tutorial-intro
作者:Lauren Orsini 譯者:zpl1025 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive