### GDSC NYUST x 資訊創客社 <br> ### 軟體開發工具入門讀書會 #### Linux課程 <br> #### 2023/10/11 ( Wed ) 19:00 - 21:00 #### 講師:蘇祐民 #### 本次課程影片: <img src="https://hackmd.io/_uploads/SJ0nq4mMp.png" height="200px"> --- # Linux基礎入門 *YoMin Su* --- ## 課程介紹 ---- ### Linux 是什麼? ---- > 一言以蔽之:作業系統 常見於各種你可能用過或沒有用過的裝置上 ---- ### 你可能曾看過的那隻企鵝:Tux ![Tux](https://files.cults3d.com/uploaders/15154189/illustration-file/1e797e71-20bf-479e-9bc3-88c27aaac6ca/tux_solo.png =450x) ---- ### 用在哪裡? <br /> - 伺服器 - 嵌入式系統 - 移動裝置 - 超級電腦(TOP500) > 也可以是你的電腦! ---- ### 為什麼會用? <br /> - 穩定性 - 安全性 - 自定義性 ---- ### 有誰在用? <br /> - Google - Facebook - Amazon - Microsoft - etc... ---- ### 本日目標 <br /> 1. Linux概觀 2. 安裝系統 3. 基本操作 --- ## Linux概觀 ---- ## 起源 Linus Torvalds 在芬蘭的赫爾辛基大學求學過程中所設計的一套作業系統。Linux基於Unix操作系統,其核心概念包括多用戶環境、文件系統、進程(Process)管理和安全性。 > 初始發布時間:1991年8月25日 ---- ### 第一版發布 在Torvalds畢業之前,Linux的1.0版本就已經發佈,也是在這時,Rad Hat出現了,將客戶會使用到的套件打包起來,並提供商業支援的Linux發行版! > v1.0發佈時間:1994年3月14日 ---- ### 難用的版本管理工具 在Linux開發了相當長一段時間後,Torvalds覺得,是該導入版本管理的時候了,在2002年時選擇了BitKeeper來使用,但由於該軟體是專有軟體,且在2005年時,該公司不再繼續無償提供授權,使Torvalds決定自行開發新的管理工具,最終花費了10天完成第一版的Git! > Git發布日期:2005年4月7日 ---- ### 基金會成立 在2007年1月時,自由標準組織與開放原始碼發展實驗室合併,合併後改名為Linux基金會,主要的目標是提供薪水與各項協助,讓Torvalds可以無後顧之憂,持續投入Linux的功能開發。 ---- ### 各種不同的發行版 在Linux中,Linux是泛指系統的核心(Kernel),要讓核心可以良好的工作,通常會連帶把多個不同的軟體一起安裝好,並製作成發行版(Distro),每個發行版都會有其特色,端看使用者的需要去選擇! ---- ### 常見的發行版 <!-- .slide: data-background="White" --> <br /> | | Debian(Ubuntu) | RHEL(CentOS) | | -------- | -------------- | ------------ | | 套件管理 | apt | yum / dnf | | 適用情況 | 任何機器 | 伺服器為主 | | Logo | ![Debian](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Debian-OpenLogo.svg/160px-Debian-OpenLogo.svg.png =100x) ![Ubuntu](https://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Ubuntu-logo-2022.svg/2880px-Ubuntu-logo-2022.svg.png =200x) | ![RHEL](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Red_Hat_Enterprise_Linux_logo.svg/2880px-Red_Hat_Enterprise_Linux_logo.svg.png =150x) ![CentOS](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Centos-logo-light.svg/2880px-Centos-logo-light.svg.png =150x)| --- ## 安裝Linux ---- ### 安裝選項 | | VM Based | Container Based | | ------- | ------------------- | ------------------------- | | Windows | VirtualBox / VMware | Docker Desktop / WSL | | macOS | UTM / VMware Fusion | Docker Desktop / OrbStack | ---- ### WSL 啟用系統功能 ```shell= dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 確認系統版本(Win10 Only) ```shell= winver #需要大於18362.1049 ``` ---- ### WSL 安裝更好用的終端機 ```shell= winget install Microsoft.WindowsTerminal ``` 更新WSL核心與修改預設版本 ```shell= wsl --update wsl --set-default-version 2 ``` ---- ### WSL 安裝想嘗試的版本 ![](https://hackmd.io/_uploads/HJiPIgE-p.png) ---- ### WSL ```shell= wsl --list --online wsl --install <Distro Name> # 新版可能需要使用wsl --install -d <Distro Name> ``` ---- ### WSL ![](https://hackmd.io/_uploads/HJv2FyE-6.png) 當出現如圖的畫面時,表示要設定自己想使用的帳號與密碼,要記下來歐! ---- ### WSL ![](https://hackmd.io/_uploads/SkldjkV-a.png) 初始設定完成後,就會像圖片中的這樣,隨時可以使用! ---- ### WSL 若你有安裝多個Distro要選擇開啟哪一個時: ```shell= wsl -d <Distro Name> ``` 若你已經使用完,不需要它在背景跑時: ```shell= wsl --shutdown ``` ---- ### OrbStack 這是相對於VM,更偏向容器的工具,但優點是速度快,資源使用也低,相當推薦 > [官方網站](https://orbstack.dev/download) ---- ### OrbStack 下載完成後,開啟該dmg檔案,並將OrbStack拖入『應用程式』資料夾中 ![](https://hackmd.io/_uploads/rJkyj1NZa.png =700x) ---- ### OrbStack 從你的終端機中建立一個可以執行指令的Ubuntu環境 ```shell= docker run -it ubuntu:22.04 bash ``` ---- ### OrbStack ![](https://hackmd.io/_uploads/BJXlp1NWa.png) --- ## Linux基本操作 ---- ### 基本操作的部分 ```shell= ls #列出該資料夾的內容 cd <PATH> #切換資料夾 pwd #印出目前路徑 ``` > 請善用 Tab的自動補完功能 ---- ### 還是基本操作 ```shell= mv <src> <dst> #移動檔案 cp <src> <dst> #複製檔案 ``` > 這裡更適合用 Tab補完目錄 ---- ### 新建與刪除很重要 ```shell= mkdir <dir> #新建資料夾,可以一次輸入多個 rm <file> #刪除檔案 rm -r <dir> #刪除資料夾,不加參數會掛掉 ``` > 用不到的東西砍掉很正常吧~ ---- ### stdout是啥?可以吃嗎? ```shell= cat <file> #印出檔案內容 echo "String" #印出你打的東西 ``` > 廢話,當然不能吃,但很重要 ---- ### 背景程式好多喔,真礙眼 ```shell= ps #列出背景執行的程式,加上 -aux 可以列出全部 kill <PID> #砍掉該執行中的程式 ``` > 沒事別亂砍,別亂砍沒事 ---- ### 所以我說編輯檔案呢? ```shell= nano #比較符合直覺的編輯器 vim #快速鍵組成的編輯器 sed #看都不看就改下去的部分 ``` > 別急別急,以後有的是時間編 ---- ### 捷徑什麼的,該不會沒有吧? ```shell= ln <TARGET> #硬連結,殺了一個我,還有千千萬萬個我 ln -s <TARGET> #軟連結,算我怕你吧,別動我真身 ``` > 有是有,但你真的想聽? ---- ### 萬般皆下品,唯有權限高 ```shell= su <User> #切換使用者,要該使用者的密碼 sudo #取得管理員權限,需要自己的密碼(且帳號在sudo群組) ``` > 沒sudo真滴難辦事... ---- ### 是大於小於欸,跟+<><有關嗎? ```shell= (src) > (dst) #將src放入dst中 (src) >> (dst) #將src加入dst中 (src) < (dst) #將dst送入src中 (src) << (dst) #將dst加入src中 ``` > 好像哪裡怪怪的... --- ## Linux學習資源 ---- ### 沒錯,還是我們偉大的鳥哥 > [鳥哥的Linux私房菜](https://linux.vbird.org/) ---- ### 或是,最近很紅的ChatGPT > [ChatGPT](https://chat.openai.com) ---- ### --- ## 問題和討論 --- ## 課後測驗 [🔗Classroom加入連結](https://discord.com/channels/1013400815484022805/1155092569680785408/1168222449305927790) :point_up_2:需要先加入Classroom才能作答) :link: [Linux 課程 - 課後測驗](https://classroom.google.com/u/0/c/NjM2MTkzNTMxMTU5/a/NjM1MjM1NjU5Mjcz/details) --- ## 下一次課程 > Git & GitHub 版本控管、金鑰交換、遠端備份... --- ## See you next time! ![](https://hackmd.io/_uploads/SJQxkxVZ6.png)
{"title":"Linux課程","description":"<img src=\"https://hackmd.io/_uploads/ryyGo9pka.png\" height=\"200px\">","slideOptions":"{\"transition\":\"concave\",\"allottedMinutes\":100}","contributors":"[{\"id\":\"f8142aa2-66aa-4867-821d-2f1ffff7a7ba\",\"add\":5535,\"del\":56}]"}
    541 views
   Owned this note