Skip to content
坑坑洞洞
Github

初學 Command Line

程式導師計劃, coding 筆記8 min read

上了 Huli 的程式導師計畫第四期,希望半年內可以轉職成工程師。 GOGO~

Command line 是什麼?

我們一般看到的視窗叫「圖形化介面」(Graphical User Interface,簡稱 GUI)。但早期還沒有圖形化界面之前,是透過一個文字視窗和電腦溝通,就是 Commend Line Interface ,簡稱 CLI ,其實就是用另一種方式對電腦下指令而已。

那我們為什麼要學 CLI?

因為有些功能只能用 CLI ,而且有時用用文字比較快。 不用把 CLI 想得太難,我們其實很習慣用文字溝通了。例如在臉書還沒有「哈」的表情符號可以按之前,我們就會使用 XD 來表示笑臉了。

在 windows 上使用 Command Line

推薦使用 Git 附加的 Git Bash,可在官網下載:https://git-scm.com/ (點進 Download 後就會自動下載,之後一直按 Next 即可安裝好) 第二選擇是 Cmder。 另外也可以用 這個網站 模擬 Commit Line 結果。

基本指令

以下所有指令其實都是程式,可以在電腦內找到對應的檔案。

指令功能指令功能
pwd印出所在位置ls印出現在位置下檔案
cd切換資料夾clear清除頁面上所有資料
man使用說明書

pwd

Print Working Directory,印出所在位置。

如上圖,我現在所下的指令是在「/c/Users/asus zenbook」這個路徑底下。

ls

LiSt,印出現在資料夾底下檔案。 ls 後方可加參數,例如ls -al, a 就是「列出所有檔案,包含隱藏檔」, l 是用列表形式呈現檔案細部資料。

cd

Change Directory,切換資料夾。

cd Videos 表示移動到現在位置下的資料夾 Videos, cd .. 是指回到上一層(就像在解壓縮檔裡面看到的點點)。另外資料夾前面的 ~/c/Users/asus zenbook/ 的簡寫。

clear

把頁面上所有紀錄清空。

man

MANual,使用說明書。 後面加上指令名稱就會顯示詳細用法。

但若用 windows 系統(如圖),因為沒有這個指令,就會顯示不存在。

和檔案相關的指令

指令功能指令功能
touch建立檔案或更改時間rm移除檔案
mkdir建立資料夾rmdir移除資料夾
mv移動檔案或改名cp複製檔案

touch

功能:建立檔案或是更改時間

如上圖,對已經使用的檔案使用 touch ,會更改檔案最後更改時間。

如上圖,若本來沒有這個檔案,touch 會建立一個。

rm

ReMove,移除檔案。

如圖,刪除 abc.txt 。 其他相關的指令:

rmdir //刪除資料夾。
rm -r //刪除資料夾及其底下的東西。
rm -f //強制刪除(忽略有些檔案的保護),要小心使用。

mkdir

MaKeDIRrctory,建立資料夾。 **小訣竅:**只打檔案前幾個字再使用 tab ,可以不用打完全名。

mv

MoVe,移動檔案或改名。

$ mv 欲移動檔案 移動目的地

**絕對路徑:**從 root 開始存取的路徑,也就是對檔案內容中的「位置」欄。 **相對路徑:**從現在所在的位置開始存取的路徑。 當 mv 的目的地不存在時,就會創造出新的檔案並將欲移動檔案移過去,也就是將檔案重新命名,可以理解為:

$ mv 欲改名檔案 新名稱

cp

CoPy,複製檔案。

$ cp 欲複製檔案 複製後名稱

cp -r:複製的對象是資料夾時。 **小訣竅:**當操作對象是資料夾時,在指令後方直接加 dir -r

vim

vim 是大部分系統都會內建的文件編輯器,進入編輯器的語法如下:

$ vim 欲開啟檔案

一般模式:進到檔案後預設的模式。 編輯模式:在一般模式按 i 進入,之後按 esc 離開。這個模式可以自由編輯文件中的文字。 指令模式:在一般模式輸入 : 進入,之後按 esc 離開。可以對文件下指令,例如 w 為寫入 q 為離開 vim。

其他指令

指令功能指令功能
cat連接文件less分頁印出檔案
grep搜尋關鍵字wget下載檔案
curl顯示 responsetop顯示 process
date顯示現在時間echo在檔案上印出內容

cat

$ cat 欲連接檔案1 欲連接檔案2
$ cat 欲印出檔案

cat 功能為連接兩個文件,若後方只有一個檔案,則可用來檢視文件內容。

less

若檔案內容太多,也可使用 less 分頁印出檔案。

$ less 欲分頁印出檔案

grep

$ grep 關鍵字 目標文件

如上圖,會顯示目標文件 abc 中有關鍵字 w 的那行。 (有些系統似乎會將關鍵字標成不同顏色)

wget

$ wget 欲下載的檔案網址

curl

$ curl API網址

會顯示 response。

top

Table Of Process,印出所有 process ,可用於看電腦狀況。

date

顯示今天日期和時間

echo

印出內容的指令,常見的搭配是:

$ echo "欲輸入內容" > 目標檔案

如此一來可以不用進入 vim 就改動檔案內容。

組合技

redirection

作為重新導向 input 和 output 之用,例如:

$ ls -al > list_result

是將 ls -al 的結果輸出成一個叫 list_result的檔案。值得注意的是,> 後方檔案若原本有內容,會被全部覆蓋掉。若不想被覆蓋,可使用 >>,新的內容會出現在原本內容後。

pipe

pipe 其實就是|這個符號。其功能是將左邊的輸入作為右邊輸入,例如:

其中 cat abc | grep w 的意思是將前面 cat abc 的結果輸入 grep w,因此會顯示出和 grep w abc 一樣的結果。

心得

其實都是很基本的東西,就記錄著作為以後忘記回頭查的參考吧。