什麼是 Comamand Line?
Command Line 通常被稱為命令行或命令行介面(Command Line Interface,CLI),相較於圖形使用者介面(Graphical User Interface,GUI),這是一個以文字為主的應用程式,可以單純使用文字指令來對電腦進行操作。
為什麼要學 Comamand Line?
因為可以模仿駭客耍酷因為方便又快速
某些時候直接對電腦下指令比操作 GUI 介面來的更加便捷,更別說使用者可能還得先熟悉圖形介面該如何操作。
比如我想把 downloads 資料夾以及資料夾內的所有檔案都刪除,通常我們會找到該資料夾 -> delete 或滑鼠右鍵刪除;而使用 Command Line 只需要下一行rm -r downloads
就解決了。若在難以用肉眼找到目標資料夾的情況下(ex. 資料夾太多),使用 GLI 的效率更是顯而易見。
因為沒有 GUI 可以使用在安裝特定程式套件或操作 Server 時,就可能會需要使用 CLI 來進行。
常用基礎指令
以下介紹一些在使用 Command Line 時,較常使用到的基礎指令。
因為我使用的是 Windows 系統,因此以 Git-Bash 在 Windows 上的操作指令為主。
pwd 印出目前所在位置print working directory
cd 切換資料夾(change directory)cd 同層其它資料夾名稱
cd 絕對路徑
cd ..
回到上一層cd /
移動到根目錄
ls 列出現在位置所有檔案( list)ls -a
列出隱藏檔案ls -l
列出詳細資訊ls -al
列出所有檔案包括詳細資訊
clear
清空畫面
touch
建立 / 修改檔案 檔案不存在則建立檔案;檔案存在則更改最後修改時間
rm 刪除(remove)rm -r
刪除資料夾rm -f
強制刪除
rmdir
刪除資料夾 僅能刪除空資料夾mkdir
建立資料夾
mv 移動檔案或改名(move)mv 檔名 路徑位置
mv 原檔名 新檔名
help 指令使用說明指令 --help
如 mv --help
vim 文字編輯器i
進入 insert 編輯模式esc
結束 insert 模式:q
quit 退出:w
write 存檔:wq
存檔並退出cat
連接檔案 顯示檔案內容(catenate)
less
分頁式顯示檔案內容 q
退出檢視模式
grep 抓取關鍵字(global regular expression print)grep 關鍵字串 檔案名稱
curl 存取網路資源(command line URL)
進行 HTTP Request
curl command 指令
date
現在時間
echo
印出字串
> 重新導向 redirection內容 > 檔名
注意會覆蓋原內容,新增內容但不覆蓋可用 >>
(append)
| 組合指令 pipe|
左邊指令的輸出等於右邊指令的輸入。
可以想成先執行完左邊指令得到一個結果,在將此結果丟入右邊指令中執行。
Windows 內建似乎無法使用這些指令
因為我使用 Windows 無法實作這些指令,所以暫時將他們歸類在這個標題內。
man 指令使用說明(manual)man 指令名稱
cp 複製檔案(copy)cp 欲複製檔名 複製後檔案的檔名
對資料夾操作一樣加上 -r
wget 下載檔案(非內建,需安裝)wget 位址
可用 open
或 cat
檢視下載好的檔案
補充
上課前一直以為 Git-Bash 和 Windows 內建的 CMD 會是差不多的東西,用著用著才發現,咦?原來他們使用的是不同系統的語法。
Git Bash 是 Windows 版的 Git 模擬器,可使用 Linux 指令操作 Window 的檔案系統。
參考自 小狐狸事務所 - Git 學習筆記 (二) : Git Bash 基本操作
查了資料才發現他是基於 Linux 指令去操作的,所以和 Windows 指令還是有些不同,詳細內容可以參考引文連結。另外,在 ss64.com 可以查到各個作業系統的 Command Line 指令。
因為不了解作業系統,也先找了篇 Linux 自學分享文章,之後有空可以來研究研究。