[DAY4] 初學Command Line


Posted by 生菜 on 2020-06-16

上了 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 顯示 response top 顯示 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 一樣的結果。

心得

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










Related Posts

讓 Jest 幫你的 code 做測試

讓 Jest 幫你的 code 做測試

渲染 & 爬蟲

渲染 & 爬蟲

Web開發學習筆記05 — for Loop、while Loop & 遍歷陣列、物件

Web開發學習筆記05 — for Loop、while Loop & 遍歷陣列、物件


Comments