此篇為在程式導師實驗計畫中第一週作業,再稍加修改及加上課程中提到的 command line 基本使用與指令紀錄
首先,一起來認識 command line
command line interface (命令列介面或命令行介面,簡稱 CLI) 相對於 graphical user interface(圖形使用者介面,可以簡稱 GUI),聽起來很複雜,不過其實 GUI 就是我們平常使用電腦時,用滑鼠點擊資料夾,再點擊其中檔案,就可以把這個檔案打開,像是想要建立一個 「wifi」 資料夾,就可以直接在桌面按右鍵,此時會出現新增資料夾的選項,點選後就新增一個新資料夾了,點一下名稱改成「wifi」,就完成建立這個 wifi 資料夾
像這樣用滑鼠在電腦畫面上點選選,執行想做的動作,這就是使用 GUI,而剛剛說 command line interface 相對於 GUI,因為他並不是在一個畫面上,有各種圖示化的選項可以執行想做的動作,他是一個只能用純文字來操作電腦的介面,由於只能用文字,因此會有各種指令,比如:pwd,這樣短短的指令,去和電腦溝通
安裝 command line
大概知道 command line 的用途後,就可以開始使用了,不過在這之前要先確定你的電腦上有 command line,如果你是 mac 系統的話,內建就有 terminal,只要按 command + 空白鍵,然後在搜尋框輸入 terminal,開啟後就可以使用 command line,如果不想使用內建的,也可以搜尋 iterm2 ,在官網下載即可
如果你是 windows 系統,會建議你下載 git bash 來操作 conmmand line,到 Git 官網,點選 download 後就一直下一步就可以安裝完成,安裝完成後找到「Git Bash」開啟,這個就是你的 command line 了,可以在上面輸入指令操作電腦
windows 系統還有另一種可以下載 : Cmder,一樣下載後解壓縮就可以使用,git bash 和 cmder 擇一就好
開始使用 command line !
安裝完成後就可以開始使用了,先介紹最基本的四個指令:
pwd
: print working directory,印出現在資料夾位置ls
: list 列出資料夾內所有檔案,ls -al 會列出更詳細的檔案資訊,ls 後面要記得空白cd
: change directory ,切換資料夾,比如cd ..
,就會回到上一層資料夾,~
是 /user/xxx 的簡寫,~download
,就會到路徑 /user/xxx/downloadman
: manual 使用說明手冊,以及clear
把全部的畫面清空 ,ls -a
會找出檔案名稱是 . 開頭的檔案,也就是隱藏檔案,如果沒有用快捷鍵command + shift + .(dot)
切換就看不到,ls -l
就是以較長的格式顯示檔案,因此ls -al
就會印出所有檔案與隱藏檔案並以較長格式顯示
檔案操作相關指令
再來介紹檔案操作相關的指令:如何建立資料夾,首先要選定想要新增資料夾的地方,假如是想建在桌面,就要先使用指令 cd desktop
,指向要新增資料夾的地方,cd
是切換檔案路徑用的指令
接下來就可以新增資料夾,指令是
mkdir wifi(資料夾名稱)
輸入後 enter 就可以看到桌面上多一個名稱是 wifi 的資料夾,記得先 cd 切換到新建的 wifi 資料夾,接著就可以在裡面新增檔案,新增檔案的指令是
touch afu.js(要新增的檔案名稱)
touch
這個指令顧名思義就是去觸碰一下檔案,這個指令可以用來更改已存在的檔案的最後修改時間,除此之外也可以用來新增檔案,如果 touch 後面接的是不存在的檔案名,就會直接幫你新增此名稱的檔案!
如果想刪除檔案,可以輸入
rm <檔案名稱>
rm
就是 remove 的意思,如果想刪除的是資料夾,可以使用 rmdir
,也可以輸入 rm -r <要刪除的檔案>
, 補充:指令中的 -f
會強制執行,有些檔案會有保護機制,要執行動作時會確認兩次,若加上 -f
就不會確認,-r
會把要刪除的資料夾以及裡面的檔案都刪除
mv
:move ,移動檔案或更改檔案名,移動時可以輸入絕對路徑或相對路徑,絕對路徑就是有 /
,例如 /user/xxx/download
,相對路徑就是直接輸入資料夾名,或 …
回到上層也是相對路徑,當輸入 mv <要移動的檔案> <不存在的檔案名>
,就會將檔案名稱改成那個原本不存在的檔案名稱,因此 mv 也可以用來更改檔案名
cp
:copy 檔案,如果是複製資料夾的話可以使用 cp -r <要複製的檔案> <複製的檔案名>
其他好用指令
grep
: 抓取關鍵字,可以用於較多內容時快速找到想找的地方,grep <關鍵字> <檔案名>
wget
: 內建沒有因此必須另外下載,我自己是到 Homebrew 下載,輸入brew install wget
後開始安裝,不過有碰到錯誤訊息Error: Permission denied @ apply2files - /usr/local/lib/node_modules/gulp/node_modules/extglob/lib/.DS_Store
,雖然看起來有錯誤沒安裝成功,不過後來測試指令都有執行成功,不確定錯誤訊息是什麼意思 XD (有重複的檔案衝到(?))redirection
: 重新導向>
,例如:ls-al > test.txt
,印出檔案詳細資訊並把它導向(儲存)到 test.txt 這個檔案去,或是echo '123' > test.txt
,就會先在 cmd line 印出 123 ,再存到 test.txt 這個檔案裡,這時候如果再執行echo "456" > test.txt
,就會直接覆蓋剛剛的 123 的內容,如果是要增加內容,就要使用echo "456" >> test.txt
,這樣才會新增內容並保有原內容- pipe
|
:可以連續執行超過一個指令,像水管一樣連接指令,例如:cat index.html | grep header | > header.txt
,就是瀏覽 index.html 並抓出有 header 的行數並儲存到 header.txt 檔案中
在 command line 上輸入的指令都是一個個程式,寫好在裡面,因此輸入指令就是呼叫這個程式執行動作 ,也可以建立自己的指令就可以在 command line 使用自己的指令
總結
最後再複習一次 command line 是什麼,要如何使用,達成想要執行的動作
- command line 是一個用純文字下指令操作電腦的一個視窗(工具)
- 若是 mac 系統內建就有(不想用內建的也可以下載 iterm2),windows 系統可以選擇下載 git,就會有 git bash 這個應用程式,或是選擇下載 cmder 也可以,擇一下載即可
- 基本四指令:
pwd
:印出目前所在位置、ls
:列出資料夾中所有檔案、cd
:切換到要前往的資料夾、man
: 查詢指令功能說明 - 檔案操作:
cd desktop
,切換到想新增資料夾的地方(這裡假設資料夾新增在桌面),mkdir wifi
,新增名稱為 wifi 的資料夾,touch afu.js
,新增名為 afu 的 js 檔 - 其他檔案操作:刪除檔案:
rm
、移動/修改檔案:mv
、複製檔案:cp
- 其他好用指令:
grep
:搜尋關鍵字、wget
:下載檔案、重新導向:>
、連接指令:|