---
# System prepended metadata

title: OS by nickel
tags: [2025 NISRA Enlightened]

---

:::info
# OS
講師：nickel
時間：8/28 10:00~12:00
課程簡報: https://docs.google.com/presentation/d/1J33p1MqdRMEVU-zdTPmdUeO_aGSRpDxca1VwB5ONYf0/edit?usp=sharing
:::

## 簡介
- OS是什麼?
    - OS = Operating System = 作業系統
    - 是使用者和電腦間的媒介
    - 負責分配資源及控制執行程式
- 環境
    - 虛擬機VM : VMware
    - 作業系統 : Linux
    - 發行版 distro : Kali
- Linux
    - 開放原始碼架構
    - 類Unix (Unix-like)
- 為何使用Kali
    - 免費、開源
    - 多人共同維護、更新快速
    - 有非常多工具
    - 有中文

## 基本指令
- 查詢指令用法
    - 進入手冊
        - man man
    - 查詢某個指令 (ex. ls)
        - man ls
- 使用者
    - 確認目前身分
        - whoami
    - 切換使用者
        - su
    - 查在線使用者有誰
        - who
- 檔案系統
    - 樹狀結構
    - 根目錄為起始點
    - Linux 中所有東西皆為檔案

- 目錄結構
    - /
        - 根目錄
    - /bin
        - 系統必備執行檔
    - /boot
        - 核心檔案目錄
        - 開機相關檔案
    - /home
        - 一般使用者們的家目錄
        - ex: 以nisra登入，路徑會是 /home/nisra
    - /root
        - 系統管理者的家目錄
    - /temp
        - 放暫存檔
    - /var
        - 放變數或記錄檔
    - /lib
        - 系統和核心函式庫
    - /usr
        - 系統相關軟體
    - /etc
        - 系統設定檔
        - **系統管理者才能修改**
- 查看目錄
    - 顯示所在目錄
        - pwd
    - 查看檔案及子目錄
        - ls
    - 列出詳細目錄
        - ls -l
    - 顯示隱藏目錄
        - ls -a
    - 合用
        - ls -la
    - 查看特定目錄
        - ls -la (目錄名稱)
- 路徑
    - 絕對路徑
        - 從根目錄"/"開始，一層層寫出檔案或目錄的**完整位置**
        - 不因當前的工作目錄而改變
    - 相對路徑
        - 從**當前的工作目錄**開始描述檔案或目錄的位置
        - 短且方便
        - 會因當前工作目錄而改變
- 變換目錄
    - 進入目錄
        - cd (目錄名稱)
        - cd (目錄名稱)/(子目錄名稱)
    - 回到上一層目錄
        - cd
        - cd ../..
- 清理畫面
    - clear

### Lab 1
在眾多目錄中找到指定檔案

- 創建/找尋檔案
    - 找尋特定檔案
        - find ./ -name "*(檔案名稱)*"
    - 創建**單一**目錄
        - mkdir (目錄名稱)
    - 創建**多個**目錄
        - mkdir (目錄名稱1) (目錄名稱2)......
    - 創建**多層**目錄
        - mkdir -p (目錄名稱)/(子目錄名稱)
    - 創建**一個**空檔案
        - touch (檔案名稱)
    - 創建**多個**空檔案
        - touch (檔案1名稱) (檔案2名稱)......
- 檔案操作
    - 複製檔案
        - cp (來源檔案) (目的地目錄)
    - 複製整個目錄
        - cp -r (來源目錄) (目的地)
    - 重新命名檔案
        - mv (原檔案名稱) (新檔案名稱)
    - 重新命名目錄
        - mv (原目錄名稱) (新目錄名稱)
    - 移動檔案
        - mv (檔案名稱) (目的地目錄)
    - 移動目錄
        - mv (目錄名稱) (目的地目錄)
- 刪除
    - 刪除一個空目錄
        - rmdir (目錄名稱)
    - 刪除多個空目錄
        - rmdir (目錄1名稱) (目錄2名稱) .......
    - 刪除檔案
        - rm (檔案名稱)
    - 刪除多個檔案
        - rm (檔案1名稱) (檔案2名稱) ......
    - 刪除目錄
        - rm -r (目錄名稱)
    - 刪除目錄下的所有檔案
        - rm -rf (目錄名稱)
    - 依序刪除目錄下的所有檔案，且刪除前詢問是否刪除
        - rm -ri (目錄名稱)
- 內容
    - 印出檔案內容
        - cat (檔案名稱)
    - 過濾並印出檔案內容
        - cat (檔案名稱) | grep (欲過濾的關鍵字)
        - 管道指令 pipe
            - 透過 | 連結前項指令的**輸出**與後項指令的**輸入**

### Lab 2
從檔案中過濾出需要的內容


## 權限
- 檔案權限
    - 三種身分
        - u:擁有者 Owner/User
        - g:群組 Group
        - o:其他(除以上二者外的使用者) Others
    - 實際使用Linux時會有很多使用者，因此**群線設定十分重要**
    - 可用指令 ls -l 查看擁有者及群組是誰


|   權限   | 數值(十進位) | 數值(二進位) |
| -------- | -------- | -------- |
| r (讀)   |  4        |  100     |
| w (寫)   |  2        |  010     |
| x (執行) |  1        |  001     |

- 變更權限
    - 數字變更
        - chmod (數值) (檔案名稱)
        - 每個身分個別計算
        - 按照身分排序(user,group,others)
    - 文字變更
        - chmod 身分,動作,權限 (檔案名稱)
        - 身分
            - u:擁有者,g:群組,o:其他,a:全部(u+g+o)
        - 動作
            - +:增加,-:移除,=:重設為...
        - 權限
            - r:讀,w:寫,x:執行
    - 轉移所有權
        - chown (新擁有者) (檔案名稱)
- 以root權限執行指令
    - sudo (指令名稱)
- 檔案執行
    - ./(檔案名稱)  => 執行當前目錄下的檔案
    - 執行檔案時預設不包含當前目錄，以避免執行惡意檔案
- 系統安裝、更新、卸載
    - 軟體套件管理軟體 apt
    - 安裝應用軟體
        - sudo apt install (軟體名稱)
    - 卸載應用軟體
        - sudo apt remove (軟體名稱)
    - 更新軟體庫
        - sudo apt update
    - 升級系統軟體
        - sudo apt upgrade

### Lab 3
更改權限後執行檔案輸出內容

## 編輯器
- Vim
    - 大部分系統都有內建的編輯器
    - 開啟和編輯的速度快
    - 可以只用鍵盤就能完成所有的操作
    - 模式 : 
        - 一般 normal
            - 刪除、複製、貼上
        - 編輯 insert
            - 輸入字元
        - 可視 visual
            - 選擇區域highlight以進行一般模式的操作
        - 指令 command-line
            - 儲存、離開、搜尋文本
    - 移動游標
        - 上 : ↑,k
        - 下： ↓, j
        - 左： ←, h
        - 右： →, l
    - 復原、回復
        - 復原
            - 在一般模式下按u
            - 快速將當前狀態輝悟道進入時的狀態:按u
        - 回復 (取消復原)
            - 在一般模式下按 ctrl + r
    - 編輯模式
        - 輸入字元
        - 不同鍵進入
            - i:在游標**前**插入文字
            - a:在游標**後**插入文字
            - o:在下一行開新一行，並插入文字
            - r:替換游標上的字元
    - 可視模式
        - 小v進入 : 逐字選取
        - 大V進入 : 整行選取
        - ctrl + v : 選取舉行區域
    - 圈選並剪下、複製、貼上
        - 圈選
            - 按v,V,ctrl+v進入可視模式並移動游標
        - 剪下
            - 圈選並按**d**
            - 快速剪下整行 : 按**兩次**d
        - 複製
            - 圈選並按**y**
        - 貼上
            - 進行完剪下或複製後按**p**
    - 指令模式
        - 以":"進入:輸入命令
        - 以"/"進入:從游標位置往**下**搜尋
        - 以"?"進入:從游標位置往**上**搜尋
    - 儲存、離開
        - 按":"並輸入命令
        - 常用命令
            - w:儲存
            - wq:儲存並離開
            - q:離開
            - q!:強制離開
        - 搜尋
            - 按/,?並輸入想尋找的文字
            - 找下一個搜尋結果
                - n:**同方向**搜尋
                - N:**反方向**搜尋
            - 忽略大小寫搜尋
                - 先輸入":set ignorecase"命令再搜尋
### Lab 4
用 vim 更改檔案錯誤，執行得到flag












---
###### tags: `2025 NISRA Enlightened`
<style>
.navbar-brand::after { content: " × NISRA"; }
</style>