OS by Salmon === :::danger 請愛惜共筆,勿進行惡意刪減 ::: :::info 【自己的電腦】 下載virtual box:https://www.virtualbox.org/wiki/Downloads GUI介面(密碼 31197021): https://drive.google.com/file/d/1ahcHq6ftetiRv-1TX3Ko-vszy8hYwlh2/view?usp=drive_link 【學校電腦】 檔案在Z槽 因容量不夠只能用CLI 登入: 帳號:nisra 密碼:nisra ::: ## 甚麼是作業系統(OS) 作業系統運作原理圖 ```mermaid graph LR U[user]--指令或動作-->S[shell]--syscall-->K[kernel] K--回傳-->S--印出-->U ``` ### 環境 Linux VirtualBox Ubuntu 22.04 ### What is Linux 1. Linux:Open-source 類UNIX 2. 起初是為了存取大學內的大型UNIX伺服器而開發的 #### 類 UNIX? UNIX:多人多工的作業系統 起計劃發展一個作業系統能成以下條件: 1. 多使用者(multi-user) 2. 多工(multo-processor) 3. 多層次(multi-level) ### Why Linux 1. 完全免費 2. 開放原始碼且更新快 3. 壞掉重新灌一次就好 4. 穩定性&高效性 5. 目錄結構明確固定 ### Filesystem 1. 跟目錄為起初 2. 樹狀目錄 ### 目錄結構 - `/`:根目錄 - `/bin`:系統必備執行檔 - `/home`:家目錄 - 別稱:`~` - 成功登入後就直接在這裡 - `/tmp`:放暫存檔 - `/boot` - 核心目錄檔案 - 跟開機有關的檔案 - `/usr`:系統程式資源 - `/var`:系統資訊、紀錄、暫存檔案 ## 入門 Command - `who`:查詢線上使用者 - `whoami`:查詢當前使用者 ### 查看與移動 - `pwd`:顯示當前工作目錄 - `ls`: 列出目錄中的文件和子目錄(可以任意混搭) - `-l`:以長格式查看文件和目錄 - `-a`:顯示隱藏的文件和目錄 - `-R`:遇到目錄要進行遞迴展開 - `-d`:只列出目錄,不列出其他內容 - `-S` / `-t`:按大小/時間排序 - `-r`:反向排序檔案 - `cd`:更換目錄 change directory - `cd <相對路徑>` - `cd <絕對路徑>` - `$cd .`:回到目前資料夾 - `$cd ..`:回到上一個資料夾 - `..`可以重複使用 !!路徑不要打大於小於!! #### 絕對路徑&相對路徑 絕對路徑:門牌號碼 相對路徑:鄰居關係 - `cat`:查看文件的內容 - `cat [選項] [檔案]` - 選項: - `-b, --number-nonblank`:從1開始對每一行編號,空白行跳過 - `-E, --show-ends`:在每一行末端加入$ - `-n, --number`:從1開始對每一行編號 ### 清空畫面 - `clear`:清空終端機屏幕上的內容 ### 目錄 & 檔案相關 - `mkdir`:創建目錄 - `mkdir <目錄名稱>` - `rmdir`:刪除空目錄 - `rmdir <目錄名稱>` - 僅限刪除空資料夾 - `touch`:創建一個空文件 - `touch <filename>` - `mv`:移動文件或重新命名文件 - `mv <old filename> <new filename>` - 重命名 - `mv <filename> <destination>` - 移動 - `rm`:刪除文件或目錄 - `rm <filename>` - `rm -r <directory name>` - 刪除有東西的目錄 - `cp`:用於複製文件或目錄 - `cp <source file> <destination>` - `cp -r <source file> <destination>` ### 權限相關 - `sudo`:以 root (最高權限使用者)權限執行指令 - `sudo <command to run>` - `chmod`(change mode):變更檔案或目錄權限 - `chmod <權限> <檔案(目錄)>` - `chown`(change owner):將檔案的所有權轉移給其他使用者 - `chown <使用者名稱> <檔案名稱>` - `apt`(advanced packaging tool):用於管理系統的安裝、更新、卸載等 - `sudo apt update` - `sudo apt upgrade` - `sudo apt install <軟體名稱>` ### Vim(文字編輯器) `$sudo apt install vim`:下載vim `$vim <filename>`:開啟檔案並且編輯 #### vim模式 - 一般模式 - 可以用來移動游標(j下 k上 h左 l右) - 刪除字元或整列(delete) - 編輯模式 - 輸入各種字元、insert mode - 進入編輯模式:在一般模式下輸入i, a, o其中一個 - 跳出編輯模式:按esc - 指令模式 - 在一般模式下輸入:可切換到指令模式 - `:q`:不儲存離開 - `:q!`:強制退出 - `:w`:存檔 - `wq`:存檔 + 離開 ### man - `man <指令>` - 用來查詢 "指令" 的 "指令" - 不知道指令要如何使用的時候用man查就對了 ## 總結 1. Linux非常之好用(免費+開源) 2. 各種玩法不受限(虛擬機壞掉頂多重灌)