Linux
Basic Command
作業系統
作業系統(Operating System, OS):
管理電腦硬體與軟體資源的核心軟體
提供介面,使軟體(應用程式)能和硬體溝通
負責管理電腦的硬體資源(如CPU、記憶體、儲存裝置等)
常見的作業系統包括 Linux , macOS 和 Windows
Windows
-
開發公司:微軟(Microsoft)。
-
類型:封閉源代碼的專有作業系統。
-
歷史背景:Windows 是微軟公司於1985年發佈的作業系統,至今已經成為全球使用最廣泛的桌面操作系統之一。Windows 提供圖形使用者介面(GUI)並且主要面向一般家庭、辦公室和娛樂用途。
Linux
- 開發者:Linus Torvalds 和全球開源社群。
-
類型:開放源代碼作業系統。
-
歷史背景:Linux 由 Linus Torvalds 在1991年開發,起初是作為一個個人計畫,但隨著時間的推移,成為了廣泛使用的開放源代碼作業系統。Linux 通常被用於伺服器、嵌入式系統、雲計算以及開發環境中。
GUI V.S. CLI
-
圖形化界面(Graphical User Interface, GUI):
- 圖形用戶界面,適合一般用戶操作。幾乎所有的操作都可以通過點擊圖標和選單來完成
-
命令行界面(Command Line Interface, CLI):
- 是一種通過文字命令與計算機系統交互的方式,CLI 提供了一種更高效且靈活的方式來執行操作,特別適用於高級用戶、系統管理員和開發者。
Why Linux ?
- 免費且開放源代碼:Linux 是開放源代碼的作業系統,這意味著任何人都可以自由地使用、修改和分發它。這不僅減少了授權費用,還允許用戶根據需求自訂操作系統
- 命令行操作強大:Linux 提供了一個功能強大的命令行介面(CLI),使得高級用戶和開發者能夠以更精確、高效的方式控制系統。CLI 支援強大的腳本編程能力,並且許多任務可以自動化,提升了操作效率。
WSL
Windows的CLI有:Command Prompt, CMD
WSL(Windows Subsystem for Linux):
允許 Windows 用戶在其作業系統上原生運行 Linux 發行版
Shell
Shell是一個程式:
可以從鍵盤接收指令,然後交給系統去執行該指令
不同作業系統使用不同shell
在linux通常使用bash,macOS則是用zsh
CLI of Linux
Shell
為什麼要使用shell ?
- 看起來比較牛逼
- 資源需求低、效率高
- 操作快速
- 能直接跟系統核心或工具對話
- 可以寫 Shell script,把一連串命令自動化。
- 還能跨越數十年的電腦世代持續使用
File(檔案)
定義:檔案是電腦裡存放資料的單位,可以是文字、圖片、程式、影片、配置設定等。
-
每個檔案都有 檔名(例如
report.txt)。 -
檔名通常有「副檔名」來表示類型(例如
.txt,.jpg,.sh)。 -
在 Unix/Linux 裡,一切皆檔案:不只文件,裝置、網路連線、甚至硬體也被抽象成檔案來操作。
Directory(目錄,資料夾)
-
定義:目錄就是用來存放檔案和其他目錄的「容器」。在 Windows 習慣叫「資料夾」,在 Unix/Linux/ macOS 則稱作「directory」。
-
特點:
-
可以包含「檔案」或「子目錄」。
-
目錄本身也是一種檔案(只是內容是「檔案清單」)。
-
Directory Structure

/(root 根目錄):最頂層的目錄
/home → 存放使用者的目錄,又可以寫成 ~
Basic command
- pwd
- ls
- cd
- mkdir
- nano
Syntax: command [options] [arguments]
- rm
- cp
- mv
- echo
- touch
options: 用來調整指令的行為 通常以-開頭 arguments: 指令要處理的對象(例如檔案或目錄名稱)
pwd
pwd :代表 Print Working Directory
功能:顯示你目前所在的「工作目錄」
操作檔案時,會依照「目前所在的目錄」來決定路徑
ls
ls = list
功能:列出目錄 (directory) 中的檔案與子目錄
$ ls
$ ls \
$ ls -l
絕對路徑
在 Unix/Linux/macOS 中,檔案和目錄是 樹狀結構
各層目錄之間用 / 分隔
/home/alice/Documents/report.txt上面是一個完整的路徑
從根目錄 / 開始描述的位置稱為絕對路徑
絕對路徑不會改變
相對路徑
- 從「目前所在目錄 (working directory)」開始描述
特殊符號:
. = 當前目錄
.. = 上一層目錄
~ = 使用者的家目錄
../bob 代表上一層目錄底下的bob
./代表當前目錄底下的bob
cd
cd = change directory
功能:切換工作目錄
cd /
cd ..
..代表上一個目錄
../../ 呢 ?
mkdir
mkdir = make directory
功能:建立新目錄 (資料夾)
$ mkdir projects
$ mkdir ~/projects2
touch
功能:建立空檔案
$ touch notes.txt
nano
nano = 簡單的終端文字編輯器
功能:適合快速編輯檔案
$ nano
$ nano f302.cpp
Ctrl+O = 存檔
Ctrl+X = 離開
cat
cat = concatenate(連接)
功能:在終端機上 讀取檔案並輸出內容,或把多個檔案串接起來顯示 / 建立新檔
$ cat filename
cp
cp = copy
功能:複製檔案或目錄
$ cp [選項] 來源檔案 目的地
$ cp file1.txt file2.txt
$ cp notes.txt ~/projects
複製目錄(要加 -r)
$ cp -r project/ project_backup/
mv
mv = move
功能:
- 移動檔案或目錄 到新的位置
- 重新命名檔案或目錄
$ mv oldname.txt newname.txt
把 oldname.txt 改名成 newname.txt
$ mv notes.txt /home/projects
rm
rm = remove
功能:刪除檔案或目錄
⚠️刪除的檔案無法還原
$ rm file1.txt file2.txt
刪除目錄(必須加 -r 遞迴刪除)
$ rm [選項] 檔案或目錄
$ rm -r old_folder
強制刪除(不詢問)
$ rm -f file.txt
-
⚠️ 超危險:
rm -rf /幾乎會清空整個系統
echo
echo = 「回音」(重複輸出一次)
功能:在 終端機 (Terminal) 輸出文字或變數內容
$ echo "hello world"
$ echo -e "第一行\n第二行\t(縮排)"
$ echo [選項] 文字
C++ 編譯
$ g++ hello2.cpp -o hello2
$ g++ [選項] 原始碼檔案... -o 輸出檔案
原始程式碼檔案(hello2.cpp)
編譯成可執行的檔案(hello2)
-o(output 的縮寫)
$ ./hello2 可以執行
exit
離開
Linux
By ernestii26
Linux
- 18