WSL & Linux指令I
專案建置[1]
講師:溫室蔡、乘一、田鼠
Windows不適合寫程式

Windows不適合寫程式
cmd 指令難用
工具都是為 Unix 設計
沒有套件管理員

你跟我說這個我有什麼辦法

裝 WSL!
W
S
L
裝 WSL!
W
S
L
indows
ubsystem for
inux
由微軟自己開發
讓你在 Windows 上
跑 Linux 的黑科技
WSL 安裝步驟
1. 打開 cmd
2. 輸入 wsl --install
3. 設定 Linux 帳密

與 VS Code 整合
1. 安裝 WSL 延伸模組

與 VS Code 整合
2. 可以從左下角的藍色按鈕
進入 WSL 環境


與 VS Code 整合
3. 按 Ctrl + Shift + `
打開整合終端機

與 VS Code 整合
4. 也可以先打開終端機
再透過 code 指令開啟檔案
$ code filename.cpp
WSL 環境設置完成
以後寫程式就都在 WSL 下寫就好了
順帶一題
你原本裝在 Windows 上的
MinGW、Python
都用不到惹QQ
Linux指令(1)
簡報風格突變
為甚麼要學文字shell
酷
通用
速度快
方便管理
不需要滑鼠
都已經有那麼多方便的圖形化介面了?
怎麼輸入指令
用手
username@hostname:位置$ 指令 [-選項] 參數1 參數2
指令 (command) : 你想使用的指令名稱
選項 (options) : 使用選項時,前面會帶-號,若為全名則帶--號,如: -h, --help
參數 (arguments) : 各種想使用的參數
終於要來學指令了~
pwd : "print working directory"的縮寫,顯示目前所在位置的絕對路徑
pwd

看看這裡有什麼
ls : "list"的縮寫,列出某位置下的檔案
-a : 列出所有檔案,包含以 . 開頭的隱藏檔
-l : 將檔案以長格式表示,包含檔案屬性
ls [-options] [file]

創ㄍ資料夾
mkdir : "make directory"的縮寫,建立資料夾
-m : 設定檔案的權限
-p : 遞迴一次建立一堆資料夾
mkdir

怎麼到處亂跑
cd : "change directory"的縮寫,變換自身位置~ : home,家目錄
.. : 回到上一層目錄
- : 回到剛剛在的目錄
cd
rice
cd

絕對路徑?相對路徑?
絕對路徑 : 由根目錄/開始寫起的
相對路徑 : 相對於目前位置的路徑寫法
./ : 代表當前的位置
../ : 代表上一層的位置
基本的創建檔案
touch : 更改檔案時間,創建空文件
-c : 僅更改檔案時間,如無檔案不會新建立一個
-d : 更改檔案日期
-t : 更改檔案時間,MMDDhhmm
touch [-options] filename

覺得畫面太亂?
clear : 清空螢幕
clear


如果忘記指令ㄉ話
man : "manual" 的縮寫,說明手冊
跳出後面東西的詳細說明文件
指令 --help : 指令的簡要說明
man command
把不要的東西刪掉
rm 檔案名稱
rm : "remove" 的縮寫,刪除文件
-f : force,強制刪除,不會跳出警告
-i : 在刪除前跳出警告訊息
-r : 遞迴刪除資料夾

警告:這個指令,會把你的電腦刪掉
當個搬運工
mv 檔案名稱 位址
mv : "move" 的縮寫,移動文件
-f : force,強制搬移,不會跳出警告
-i : 如果有同名檔案,在搬移前跳出警告訊息

還是搬運
mv 檔案名稱 檔案名稱
mv : "move" 的縮寫,移動文件、改名

複製咚咚
cp 來源檔案 目標位址
cp : "copy" 的縮寫,複製文件
-f : force,強制複製,不會跳出警告
-i : 如果有同名檔案,在複製前跳出警告訊息
-r : 遞迴複製,複製一整個資料夾

怎麼顯示文字ㄋ
cat 、 echo
cat : "concatenate" 的縮寫,輸出檔案內容
echo : 輸出字串

蛤? 你說這兩個指令很沒用?
來學組合技吧~
>、>>
> : 將>左邊的輸出覆寫進右邊的檔案
>> : 將>>左邊的輸出接到右邊檔案的後面

今天的課就到這邊
其實這些東西也不一定要記起來
忘記再查就好了