簡單來說就是跟電腦溝通,做出我們想要執行的動作。
有別於一般人習慣的圖形化介面 (GUI),其實可以實現一樣的動作,差別在於 GUI 是別人 設計規劃出容易理解的介面,像關閉檔案的按鈕大部分都是紅色 X 作為識別,通常是用滑鼠操作。
而 Command Line 則是 透過純文字 來操縱指定的動作。
推薦 Mac 用的 Command Line Tool - iTerm2
優點:
參考:
cmd + I
,但這樣好像是改 Session 的顏色,等於重開視窗就回復成預設樣式cmd + ,
,改掉預設樣式sudo
指令要輸入密碼,一開始沒發現輸入法是中文,一直進不了有點崩潰參考:
pwd
:印出目前所在位置ls
: 列出當前資料夾底下的所有檔案ls -al
:列出更詳細的資訊( 包括隱藏檔案 )cd
:切換當前資料夾cd ..
:回到上一層資料夾cd ~
: 回到根目錄cd 空格
時,按 tap
會幫你自動列出底下的資料夾列表( 等於是輸入 ls
)tap
會幫你自動補完資料夾名稱man
: 使用說明書( Windows 沒有 )man
來看說明。man ls
:會列出如何使用 ls
的規範文件Q
跳出說明clear
: 清空 Terminal 版面touch
新增檔案 or 修改檔案時間touch
一個現有的檔案,檔案時間會改變成當前時間rm
: 刪除檔案rmdir test
rm -r test
-r
:刪除資料夾及裡面所有檔案,謹慎使用!-f
:跳過確認訊息,直接刪除檔案
mkdir
: 新增資料夾mv
: 移動檔案 or 改檔名mv file foler
:把 file
這個檔案移到 folder
資料夾裡folder
分為 相對路徑 & 絕對路徑,假如我當前位置在桌面 Desktop
,但要移動到桌面底下的 folder
資料夾
Desktop
)
mv file foler
/
開頭
mv file /Users/yakim/Desktop/folder
mv file new_name
:把 file
這個檔案名稱改成 new_name
cp
: 複製檔案cp file file_2
:複製一個 file_2
檔案cp -r folder folder_2
:複製一個 folder_2
資料夾cat
: 快速查看檔案內容cat test
:另一個方法不用額外開啟其他文字編輯器,也可以快速查看檔案內容。
極度不友善但看起來很帥的文字編輯器,有分普通 & 輸入模式。
esc
:進普通模式
i
:進輸入模式
:q
:wq
grep
: 抓出並高亮關鍵字grep keyword file
wget
: 下載檔案brew install wget
curl
: 送出 requestwget
下載檔案
curl API_url
: 輸入 api 網址,會用 get 方式顯示出回應curl -I API_url
:顯示出更多資訊>
: 將指令的結果存到檔案內容ls > file
:將 ls
輸出的內容存到 file
檔案>
符號為 全部覆蓋,所以原本 file 的內容會被取代>>
代替。|
: 將左邊指令的輸出,變成右邊指令的輸入 ( 這句話聽了好多遍才聽懂啊 )無用題外話:一聽到 Pipe ,想說這詞怎麼這麼耳熟,原來是美劇「矽谷」裡面的公司名稱 Pied Pipe。( 很無用吧! )
echo
: 將資訊輸出到 螢幕 或 檔案 中參考資料: 維基 - echo (命令)
$ echo This is a test.
This is a test.
$ echo "This is a test." > test.txt
$ cat test.txt
This is a test.
隔天就開始學 Git ,但如果有任何的檔案改動機會,盡量都使用這一節學到的 Command Line 指令,不得不說是個很好的練習機會,跟學習語言一樣,派得上用場才會體現出價值。
例如當我想把資料夾 folder1/
搬到資料夾 folder2/
裡面,Huli 上一節有教到 移動檔案 的指令是 mv
,然而按照之前檔案跟資料夾關係的邏輯,開始亂試會不會 mvdir foler1 foler2
或是 mv -r foler1 foler2
,當然我每次這樣亂猜幾乎都不會成功啦哈哈哈哈,最後還是認命爬文比較實在。
(後來才發現貼心的 Termial 有高亮提示,錯誤的指令在還沒送出前就可以看出來了)
mv foler1/ folder2/
( 可惡,不能統一嗎? )mv folder new_name
( 以上內容大部分是 程式導師實驗計畫第三期 的學習筆記,如有錯誤歡迎糾正,非常感謝 🤓 )
Written on April 15th, 2019 by Yakim shu