:::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>