# Linux & Git 新手魔法訓練營:從麻瓜到命令列大師 :::info - 上課用教材連結:https://drive.google.com/drive/folders/1Qam7X3cq9ngHuN6HNx5bUpQbVMoyco6e?usp=sharing - WSL2 安裝教學文章:https://hackmd.io/@billsun/BJByCIUHf ::: :::warning 上課講師聯絡方式: 姓名:吳運凱 Edward Wu Link: GitHub: https://github.com/bluehomewu Instagram: https://www.instagram.com/_920223/ HackMD: https://hackmd.io/@EdwardWu Twitter / X: https://twitter.com/EdwardWu0231291 LinkedIn: https://www.linkedin.com/in/edward-wu-56765a251 Email: bluehome.wu@gmail.com ::: 對於上課內容有任何問題,都可以聯絡我,向我諮詢。 ## 👋 歡迎來到課程! 你好!歡迎來到命令列的魔法世界! 這不是一堂充滿艱澀理論的課。我們的目標是透過大量的動手實作,讓你對 Linux 命令列和 Git 版本控制產生興趣,並建立扎實的基礎。 ### 🎓 在這堂課,你將學會: * 自信地在 Linux 環境下進行檔案操作與管理。 * 看懂並使用最核心的 Git 指令,為個人專案進行版本控制。 * 理解為什麼工程師們都熱愛這些工具,以及它們如何提升工作效率。 * 解鎖一項在科技領域中不可或缺的基礎技能。 準備好了嗎?讓我們開始吧! --- ## ⚙️ Part 0:建立你的魔法實驗室 (環境設定) 在學習魔法前,我們需要一個安全的實驗室。我們將在你的 Windows 電腦裡,蓋一間「模擬房間」,也就是**虛擬機 (Virtual Machine)**。 你在這個房間裡做任何實驗,都不會影響到外面的主屋(你自己的電腦)。 * **建築工具:** `VMware Workstation Pro` * **房間系統:** `Ubuntu 22.04 LTS` ### 📝 操作步驟 | 階段 | 主題 | 操作說明 | | :--- | :--- | :--- | | **1** | **取得安裝檔案** | 1. 從講師處取得本日課程所需的檔案,包含:<br> - VMware Workstation Pro 安裝檔 (`.exe`)<br> - Ubuntu 22.04 LTS 光碟映像檔 (`.iso`)<br>2. ✨ **好消息!** VMware Workstation Pro 現在已經**開放個人免費使用**。課後你仍可以合法地用它來學習和進行個人專案。 | | **2** | **安裝 VMware** | 1. 雙擊你取得的 VMware 安裝程式。<br>2. 安裝過程基本上一直點「下一步 (Next)」即可。<br>3. 因為是個人學習使用,**不需要輸入任何授權金鑰**。若看到相關選項,請選擇個人使用 (Personal Use)。<br>4. 安裝完畢後,可能需要重新啟動你的電腦。 | | **3** | **打造 Linux 電腦** | 1. 啟動 VMware 並選擇「**建立新的虛擬機 (Create a New Virtual Machine)**」。<br>2. 選擇「**標準 (Typical)**」安裝模式。<br>3. 選擇「**安裝程式光碟映像檔 (iso)**」,並點擊「瀏覽」,找到你取得的 `ubuntu-22.04-desktop-amd64.iso`。<br>4. **設定你的 Linux 帳號**:<br> - **全名 (Full name)**:你的名字<br> - **使用者名稱 (User name)**:你的帳號(**建議用全小寫英文**)<br> - **密碼 (Password)**:<br> > **⚠️ 注意:請務必牢記這個密碼!這是你進入 Linux 世界的唯一鑰匙!**<br>5. **命名與位置**:幫你的虛擬機取一個名字,例如 `My-Ubuntu-Lab`。<br>6. **磁碟大小**:建議設定為 `25GB`,並選擇「**將虛擬磁碟分割成多個檔案**」。 | | **4** | **硬體微調與啟動** | 1. 在最後一步,先**不要**按完成,點擊「**自訂硬體 (Customize Hardware...)**」。<br>2. **記憶體 (Memory)**:為了讓虛擬機跑得更順,建議至少分配 **4GB (4096MB)**。<br>3. **處理器 (Processors)**:建議分配 **2 個處理器核心**。<br>4. 關閉硬體設定,點擊「**完成 (Finish)**」。<br>5. 接下來 VMware 會自動安裝 Ubuntu,過程約 15-30 分鐘,可以休息一下。<br>6. 安裝完畢後,在登入畫面輸入你剛設定的密碼即可進入桌面。 | | **5** | **學會終極反悔咒:快照** | 1. 成功進入桌面後,我們要先建立一個完美的初始存檔。<br>2. 在 VMware 視窗最上方的功能表,點擊 **虛擬機 (VM) -> 快照 (Snapshot) -> 拍攝快照 (Take Snapshot...)**。<br>3. 將快照命名為「**全新乾淨的系統**」並儲存。<br>4. > 這就是你的安全網!未來不管你在 Linux 裡做了什麼錯誤操作,都可以回到這個完美狀態。請放膽去玩吧! | --- ## 🐧 Part 1:Linux 基礎 - 踏入命令列的魔法世界 恭喜你,實驗室蓋好了!現在,讓我們打開那個神秘的「黑盒子」——**終端機 (Terminal)**,開始學習真正的魔法咒語。 ### ✨ 神技提示 > 在輸入任何檔名或指令時,隨時可以按一下 `Tab` 鍵,系統會自動幫你補完!這能大幅減少打錯字的機率,請務必多加使用! ### 📜 常用指令 | 類別 | 指令與說明 | | :--- | :--- | | **初探** | **`echo "Hello World"`**<br>你的第一個指令!`echo` 的作用就像是回音,會把你後面的文字顯示出來。 | | **導航** | **`pwd`** (Print Working Directory)<br>就像地圖上的「您在這裡」,告訴你目前所在的路徑。<br><br>**`ls`** (List)<br>告訴你「這裡有什麼?」列出當前目錄下的所有檔案和資料夾。<br>常用變化型:`ls -l` (詳細資訊), `ls -a` (包含隱藏檔)。<br><br>**`cd <路徑>`** (Change Directory)<br>你的「傳送門」,用來切換到其他目錄。例如 `cd Desktop` 會移動到桌面。 | | **檔案操作** | **`mkdir <資料夾名稱>`** (Make Directory)<br>「蓋一間新房子」,建立一個新的資料夾。<br><br>**`touch <檔案名稱>`** (Touch)<br>「創造一張白紙」,建立一個新的空白檔案。<br><br>**`cat <檔案名稱>`** (Concatenate)<br>查看一個檔案的「全部內容」。<br><br>**`cp <來源> <目的地>`** (Copy)<br>複製檔案或資料夾。<br><br>**`mv <來源> <目的地>`** (Move)<br>移動或**重新命名**檔案、資料夾。<br><br>**`rm <檔案名稱>`** (Remove)<br>> **⚠️ 毀滅咒語!** 用來刪除檔案,**刪除後無法復原**,請謹慎使用。<br>> `rm -r <資料夾>` 用來刪除整個資料夾。 | | **工具** | **`nano <檔案名稱>`**<br>一個簡單的文字編輯器,就像 Windows 裡的「記事本」。進入後,按下 `Ctrl+X` 即可退出。<br><br>**`sudo <指令>`** (Superuser Do)<br>「借用管理員權限」,當你需要執行更高權限的指令時使用,會要求你輸入密碼。 | ### 🎯 綜合練習 1. 使用 `cd` 到你的家目錄 (`~`)。 2. 使用 `mkdir` 建立一個名為 `projects` 的資料夾。 3. `cd` 進入 `projects` 資料夾。 4. 在裡面 `touch` 一個名為 `readme.txt` 的檔案。 5. 使用 `nano readme.txt`,在裡面寫下 "Hello Linux!",然後儲存退出。 6. 使用 `cat readme.txt` 查看你寫的內容。 7. 使用 `cp readme.txt readme_backup.txt` 複製一個備份檔。 8. 最後使用 `ls -l` 查看你的成果。 --- ## 📦 Part 2:Git 版本控制 - 管理你的專案時間軸 你是否經歷過 `報告_final.docx`, `報告_final_v2.docx` 的惡夢?**Git** 就是解決這個問題的終極時光機! > Git 就像是遊戲裡的「存檔點」。你可以隨時為你的專案建立一個存檔,未來不管發生什麼事,都可以讀取任何一個過去的存檔。 ### 🚀 第一步:設定你的時光機 1. **安裝 Git** 在終端機輸入 `sudo apt update`,然後輸入 `sudo apt install git`。 2. **設定你的身份** (讓 Git 知道是誰建立了存檔點) `git config --global user.name "你的英文名字"` `git config --global user.email "你的Email"` 3. **啟動時光機** 在你的專案資料夾底下,輸入 `git init`,Git 就會開始追蹤這個資料夾。 ### 核心觀念:存檔三步驟 這是 Git 最重要的觀念!你的檔案有三個區域: 1. **工作區 (Working Directory)**:你正在編輯檔案的地方,就像你的書桌。 2. **暫存區 (Staging Area)**:準備要存檔的檔案清單,就像一個購物車。 3. **倉庫 (Repository)**:你的永久存檔區,就像儲藏室。 **存檔流程:** | 步驟 | 指令 | 說明 | | :--- | :--- | :--- | | **1. 加入** | **`git add <檔案名稱>`** | 將檔案從「書桌」放進「購物車」,準備存檔。 | | **2. 提交** | **`git commit -m "這次存檔的說明"`** | 將「購物車」裡的所有東西拿去「結帳存檔」,並附上一張收據,說明你這次修改了什麼。 | | **救星** | **`git status`** | **隨時使用!** Git 會清楚地告訴你目前每個檔案在哪個區域,以及下一步該做什麼。 | ### 🚀 第二步:與夥伴協作 (GitHub) > **GitHub** 是一個網站,可以把它想像成「**共享的雲端遊戲存檔伺服器**」。 為了安全地和 GitHub 溝通,我們不再使用密碼,而是用一把更安全的「魔法鑰匙 (SSH Key)」。這就像是你的電腦和 GitHub 之間的一個秘密握手,證明你的身份。 ### 🎯 綜合練習 #### A. 設定與 GitHub 的安全連線 (SSH Key) 1. **在本機產生你的魔法鑰匙** * 打開終端機,直接輸入以下指令: ```bash ssh-keygen ``` * 接著,終端機會問你幾個問題,**全部直接按 `Enter`** 接受預設值即可。 * `Enter file in which to save the key...`:直接按 `Enter`。 * `Enter passphrase...`:直接按 `Enter` (不需要密碼)。 * `Enter same passphrase again...`:再次按 `Enter`。 * 指令完成後,畫面上會告訴你公鑰儲存的路徑,例如 `/home/你的使用者名稱/.ssh/id_rsa.pub` 或 `id_ed25519.pub`。 2. **複製你的公開鑰匙** * 鑰匙有分公鑰(可以給別人)和私鑰(絕對要自己保管好)。我們要將「公鑰」複製到 GitHub。 * 在終端機輸入以下指令來顯示公鑰內容。**請注意**,檔名可能是 `id_rsa.pub` 或 `id_ed25519.pub`,這取決於系統預設值,兩個都可以。 ```bash # 請根據上一步驟提示的檔名,使用對應的指令 cat ~/.ssh/id_rsa.pub ``` * **完整複製**畫面上出現的所有內容,它應該是以 `ssh-rsa` 或 `ssh-ed25519` 開頭。 3. **將公鑰新增到 GitHub** * 前往 [GitHub](https://github.com) 網站,登入你的帳號。 * 點擊右上角的個人頭像,選擇 **Settings**。 * 在左邊的選單中,找到並點擊 **SSH and GPG keys**。 * 點擊綠色的 **New SSH key** 按鈕。 * **Title**:給這個鑰匙取一個好記的名字,例如 `My Ubuntu VM`。 * **Key**:將你剛剛複製的公鑰內容,完整地貼到這個欄位。 * 最後點擊 **Add SSH key**。 完成了!你的電腦和 GitHub 已經學會了秘密握手。 #### B. 建立你的第一個雲端專案 1. 前往 [GitHub](https://github.com) 網站,在你的首頁點擊綠色的 **Create a new repository** 按鈕。 2. **Repository name**:`my-first-repo`。 3. 保持其他設定預設,點擊 **Create repository**。 4. 在下一個頁面,找到 **SSH** 的選項並點擊它。複製那串看起來像 `git@github.com:你的使用者名稱/my-first-repo.git` 的 URL。 5. 回到你的 Linux 終端機,找一個喜歡的地方(例如 `~/projects`),輸入 `git clone <你複製的SSH URL>`。 ```bash git clone git@github.com:你的使用者名稱/my-first-repo.git ``` 6. `cd` 進入 `my-first-repo` 資料夾。 7. `touch hello.txt` 建立一個新檔案。 8. `git add hello.txt` 9. `git commit -m "Add hello.txt"` 10. `git push` (現在它會透過 SSH 安全地推送,不會再問你密碼!) 11. 回到你的 GitHub 網頁,重新整理,你會驚喜地發現 `hello.txt` 已經出現在雲端了! --- ## 🎉 恭喜你完成了所有課程! 你已經踏出了成為命令列大師的第一步。這些只是基礎,但卻是未來所有進階技術的基石。多練習,多使用,它們很快就會成為你強大的魔法! ## 延伸閱讀 [Git 番外篇:進階魔法 - 團隊合作的時間線魔法](https://hackmd.io/@GDSC-CYCU/git-advanced-topics)