作業系統(Operating System, OS):
管理電腦硬體與軟體資源的核心軟體
提供介面,使軟體(應用程式)能和硬體溝通
負責管理電腦的硬體資源(如CPU、記憶體、儲存裝置等)
常見的作業系統包括 Linux , macOS 和 Windows
開發公司:微軟(Microsoft)。
類型:封閉源代碼的專有作業系統。
歷史背景:Windows 是微軟公司於1985年發佈的作業系統,至今已經成為全球使用最廣泛的桌面操作系統之一。Windows 提供圖形使用者介面(GUI)並且主要面向一般家庭、辦公室和娛樂用途。
類型:開放源代碼作業系統。
歷史背景:Linux 由 Linus Torvalds 在1991年開發,起初是作為一個個人計畫,但隨著時間的推移,成為了廣泛使用的開放源代碼作業系統。Linux 通常被用於伺服器、嵌入式系統、雲計算以及開發環境中。
Windows的CLI有:Command Prompt, CMD
WSL(Windows Subsystem for Linux):
允許 Windows 用戶在其作業系統上原生運行 Linux 發行版
Shell是一個程式:
可以從鍵盤接收指令,然後交給系統去執行該指令
不同作業系統使用不同shell
在linux通常使用bash,macOS則是用zsh
為什麼要使用shell ?
定義:檔案是電腦裡存放資料的單位,可以是文字、圖片、程式、影片、配置設定等。
每個檔案都有 檔名(例如 report.txt)。
檔名通常有「副檔名」來表示類型(例如 .txt, .jpg, .sh)。
在 Unix/Linux 裡,一切皆檔案:不只文件,裝置、網路連線、甚至硬體也被抽象成檔案來操作。
定義:目錄就是用來存放檔案和其他目錄的「容器」。在 Windows 習慣叫「資料夾」,在 Unix/Linux/ macOS 則稱作「directory」。
特點:
可以包含「檔案」或「子目錄」。
目錄本身也是一種檔案(只是內容是「檔案清單」)。
/(root 根目錄):最頂層的目錄
/home → 存放使用者的目錄,又可以寫成 ~
Syntax: command [options] [arguments]
options: 用來調整指令的行為 通常以-開頭 arguments: 指令要處理的對象(例如檔案或目錄名稱)
pwd :代表 Print Working Directory
功能:顯示你目前所在的「工作目錄」
操作檔案時,會依照「目前所在的目錄」來決定路徑
ls = list
功能:列出目錄 (directory) 中的檔案與子目錄
$ ls
$ ls \
$ ls -l
在 Unix/Linux/macOS 中,檔案和目錄是 樹狀結構
各層目錄之間用 / 分隔
/home/alice/Documents/report.txt上面是一個完整的路徑
從根目錄 / 開始描述的位置稱為絕對路徑
絕對路徑不會改變
特殊符號:
. = 當前目錄
.. = 上一層目錄
~ = 使用者的家目錄
../bob 代表上一層目錄底下的bob
./代表當前目錄底下的bob
cd = change directory
功能:切換工作目錄
cd /
cd ..
..代表上一個目錄
../../ 呢 ?
mkdir = make directory
功能:建立新目錄 (資料夾)
$ mkdir projects
$ mkdir ~/projects2
功能:建立空檔案
$ touch notes.txt
nano = 簡單的終端文字編輯器
功能:適合快速編輯檔案
$ nano
$ nano f302.cpp
Ctrl+O = 存檔
Ctrl+X = 離開
cat = concatenate(連接)
功能:在終端機上 讀取檔案並輸出內容,或把多個檔案串接起來顯示 / 建立新檔
$ cat filename
cp = copy
功能:複製檔案或目錄
$ cp [選項] 來源檔案 目的地
$ cp file1.txt file2.txt
$ cp notes.txt ~/projects
複製目錄(要加 -r)
$ cp -r project/ project_backup/
mv = move
功能:
$ mv oldname.txt newname.txt
把 oldname.txt 改名成 newname.txt
$ mv notes.txt /home/projects
rm = remove
功能:刪除檔案或目錄
⚠️刪除的檔案無法還原
$ rm file1.txt file2.txt
刪除目錄(必須加 -r 遞迴刪除)
$ rm [選項] 檔案或目錄
$ rm -r old_folder
強制刪除(不詢問)
$ rm -f file.txt
⚠️ 超危險:rm -rf / 幾乎會清空整個系統
echo = 「回音」(重複輸出一次)
功能:在 終端機 (Terminal) 輸出文字或變數內容
$ echo "hello world"
$ echo -e "第一行\n第二行\t(縮排)"
$ echo [選項] 文字
$ g++ hello2.cpp -o hello2
$ g++ [選項] 原始碼檔案... -o 輸出檔案
原始程式碼檔案(hello2.cpp)
編譯成可執行的檔案(hello2)
-o(output 的縮寫)
$ ./hello2 可以執行
離開