什麼是 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 | 建立資料夾 | make directory | ||
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 | 存取網路資源 進行 HTTP Request |
command line URL | 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 自學分享文章,之後有空可以來研究研究。