[week 1] Command Line 入門 & 基本指令
- 發佈時間
本篇為 [CMD101] Command Line 超新手入門和 [CS101] 初心者的計概與 coding 火球術 這兩門課程的學習筆記。
已複製!學習目標: 說得出程式如何執行 理解寫程式的本質只是一行行的指令 了解前端與後端的區別 能說出從發出一個 request 到接收 response 中間發生的事 了解不同載具的差異在哪(Desktop、Mobile、Web) 了瞭解基本的 command line 指令
關於寫程式這件事#
就是對電腦下指令(程式碼),讓電腦執行我們想要的動作(解決問題)。
條列式的重要性#
試著用「程式化思考」將解法以標準化的格式呈現。
範例:「給你一串文字,問你裡面有沒有 p」
已複製!1. 假設 n 是 1,length 是字串長度, A 設成 -1 代表找到的位置,p 是要找到的字 //字串不會有負數,若小於零代表找不到 2. 看第 n 個字是不是 p,是的話 A=n //把 A 設成 n 的值,若 n=3,即在第 3 個數找到 p 3. 把 n+1,如果 n+1 大於 length 的話,就跳到第 5 步 //條件機制 4. 跳回第 2 步 //迴圈的概念 5. 如果 A < 0,代表沒出現過;否則 A 就是答案
Command Line 是什麼?#
- 操控電腦的方法大致上分兩種類型:
- GUI(Graphical User Interface,圖形化介面):一般習慣使用的電腦操作介面,透過設計出的「圖形」來下指令。
- CLI(Command Line Interface,命令列介面):透過「純文字」來達成指定動作。
- 兩種都可以用來和電腦溝通;但有些伺服器可能沒有 GUI (例如 database),這種情況就只能使用 CLI 來進行操作。
環境設置#
- 要執行 Command Line 指令,必須先根據作業系統安裝 Command Line Tool:
- 或是使用 JSLinux (以 JavaScript 寫成的 Linux 模擬器)來統一環境,即可在瀏覽器介面進行測試。
基本指令介紹#
所謂的「指令」其實也是由程式寫成,我們藉由輸入指令來執行程式。
pwd
(Print Working Directory):印出目前所在位置#
ls
(List):印出當前位置檔案清單#
ls-l
:長格式(long),顯示有關檔案的詳細資訊ls-a
:列出所有檔案(包括隱藏檔)
cd
(Change Directory) 切換目前資料夾#
cd ..
:回到上一層資料夾cd ~
:回到 home 目錄(我的文件)cd /
:回到根目錄- 絕對路徑:「一定由根目錄 / 寫起」
cd /Users/share/data
- 相對路徑:「不是由 / 寫起」
cd test
- 絕對路徑:「一定由根目錄 / 寫起」
- 範例:「若要從 /downloads/test/data 到 /downloads/test/media 底下時」
可以寫
cd ../media
:先回到上一層,再進入 media 資料夾 也可寫cd ~/downloads/test/media
:直接用絕對路徑進入
小技巧:直接把圖形介面的資料夾拖到 CLI 裡,就會自動輸入那個資料夾的絕對路徑。可節省打字時間。
clear
:清空螢幕#
touch
:碰一下#
- 作用 1:touch 現有的檔案,會修改檔案時間成當前時間
- 作用 2:若檔案不存在,則會新增檔案
mkdir
:MaKe DIRectory 新增資料夾#
rm
:ReMove 刪除檔案(註:有關刪除指令需慎用)#
rmdir
:刪除資料夾#
- 也可用
rm -r
指令來刪除檔案或資料夾
cp
:CoPy 複製#
- 範例 1.
cp data data_2
:複製出一個 data_2 檔案 - 範例 2.
cp -r deep deep2
:複製出一個 deep2 資料夾
mv
:MoVe 移動檔案 or 更改檔名#
- 作用 1:當找到該資料夾時,檔案會移到資料夾裡
- 範例:
mv data folder
:將 data 檔案移到 folder 資料夾裡
- 範例:
- 作用 2:當找不到該資料夾,則會更改檔案名稱
- 範例:
mv data test
:將 data 檔案名稱更改為 test
- 範例:
vim
:進入文字編輯器#
本來想說沒問題,結果還真的卡很久無法回到上層介面 Orz 需按下 [ESC] 按鍵回到一般指令模式,才能下
:wq
指令存檔(write)並離開 (quit)。
參考 vim 介紹:#
可分為普通模式跟編輯模式:
- 按鍵 i:進入編輯模式
- 按鍵 Esc:進入普通模式
:q
退出:wq
存檔(write)後退出(quit):q!
不存檔直接退出
參考資料:
更多常用指令#
date
:印出當前日期#
top
(Table Of Processes):印出所有 Process,可持續偵測程序運作的狀態(按 q 鍵離開)#
cat
(CATenate):查看檔案內容#
less
:分頁式印出檔案#
grep
:抓取特定關鍵字#
echo
:印出字串#
|
(pipe):把前面的輸入「變成」後面的輸出#
- 範例:
cat file.txt | grep hi
:從印出的 file.txt 內容中,抓取字串 hi 並輸出
>
(redirect):將輸入或輸出重新導向#
- 範例 1:
date > time.txt
:將date
輸出到time.txt
再輸入cat time.txt
,會顯示出Sun May 31 20:29:57 UTC 2020
- 範例 2:
echo "123" > 123.txt
:印出 123 到 123.txt 1. 若輸入echo "456" > 123.txt
:顯示 456,檔案會被全部覆蓋 2. 若輸入echo "456" >> 123.txt
:顯示 123456,兩個>
會新增內容在最後
wget
:下載檔案#
- 範例:輸入
wget https://www.google.com.tw/
,即可下載 Google 首頁的網頁原始碼(index.html)
curl
:送出 request,可用來測試 API#
補充:檔案格式#
- 內容是一回事,如何解讀是另一回事
- 在電腦裡的任何檔案,其實都是以純文字組成,可用不同格式進行解析
- 可以透過設定副檔名(如:文件.pdf、圖片.jpg)幫助電腦辨別格式
參考資料: