這是一個關於 Linux 的學習資料庫,著重於 Debian 派系(Debian、Ubuntu 等)的系統管理和操作教學。
本學習資料庫提供完整的 Linux 系統管理教學,從基礎概念到進階應用,涵蓋:
- 系統基礎:Linux 架構、發行版介紹
- 套件管理:APT 套件管理工具
- 權限管理:使用者、群組、檔案權限控制
- Shell 操作:命令列操作、腳本撰寫、路徑概念
- 文字編輯器:Nano、Vim 使用教學
- 系統管理:資源監控、程序管理、服務管理、時間管理、Systemd
- 版本控制:Git 完整教學
- 網路與安全:SSH、防火牆(UFW)、網路設定
- 網路服務:Web 伺服器、資料庫、郵件服務配置
- 開發環境:C/C++/Python 編譯環境設定
- Linux 簡介 - 了解 Linux 基本概念和系統架構
- APT 套件管理 - 學習安裝和管理軟體套件
- Shell 介紹 - 認識命令列介面
- 常用指令 - 掌握基本 Linux 指令
- 文字編輯器 - 學習使用 Nano 或 Vim
- 路徑概念 - 理解檔案系統路徑
- 權限管理 - 深入理解檔案權限和使用者管理
- 使用者與群組 - 管理系統使用者帳號
- Shell 腳本 - 撰寫自動化腳本
- 資源管理 - 監控和管理系統資源
- Git 版本控制 - 學習程式碼版本管理
- SSH 遠端連線 - 遠端管理伺服器
- 防火牆設定 - 保護系統安全
- 網路設定 - 配置網路連線
- 時間管理 - 系統時間與時區設定
- Systemd 管理 - 服務管理與系統初始化
- 網路服務配置 - Web、資料庫等服務設定
- 編譯環境 - C/C++/Python 開發環境
- 00. Linux
- Linux 簡介
- 主流發行版分支
- 系統架構分層
- 01. APT
- 套件安裝與更新
- 套件搜尋與管理
- 套件來源設定
-
- Root 與 Sudo
- 檔案權限設定
- 特殊權限(SUID、SGID、Sticky Bit)
-
- 使用者帳號管理
- 群組管理
- 系統檔案說明
-
- Shell 介紹與種類
- Shell 設定檔
- 基本操作技巧
-
- 檔案與目錄操作
- 檔案內容查看
- 系統資訊指令
- 文字處理工具
-
- 絕對路徑與相對路徑
- 路徑符號(~、.、..)
- 路徑操作指令
-
- 變數與資料類型
- 條件判斷與迴圈
- 函式與錯誤處理
-
- 編輯器選擇建議
- 基本操作概念
-
- Nano 完整教學
- 快捷鍵參考
-
- Vim 模式介紹
- 進階編輯技巧
- 設定檔配置
- 06. Resource
- CPU、記憶體、磁碟監控
- 程序管理
- 系統服務管理
- 工作排程(Cron)
-
- Git 基本概念
- 學習路徑指引
-
- 基本操作(init、add、commit)
- 查看歷史與變更
- 撤銷操作
-
- 遠端倉庫操作
- push、pull、fetch
- 遠端管理
-
- 分支建立與切換
- 合併與解決衝突
- 分支管理策略
-
- 暫存變更(stash)
- 標籤管理
- 重置與還原
- 進階功能
-
- SSH 連線設定
- 金鑰認證
- 埠轉發
- 檔案傳輸(SCP、SFTP)
-
- 防火牆基本操作
- 規則設定
- ICMP 封包控制
- 應用程式配置
-
- 網路基本概念
- IP 位址設定
- 路由管理
- DNS 配置
- 網路工具使用
-
- 系統時間設定
- 時區配置
- NTP 時間同步
- 硬體時間管理
-
- Systemd 基本概念
- 服務管理(systemctl)
- 單元檔案編寫
- Timer 定時器
- 日誌管理(journalctl)
-
- Web 伺服器(Nginx、Apache)
- 資料庫服務(MySQL、PostgreSQL)
- 郵件服務(Postfix)
- 檔案共享(Samba、NFS)
- DNS 伺服器(BIND9)
- FTP 伺服器(vsftpd)
- 14. Compile
- C/C++ 編譯環境(GCC)
- Makefile 與 CMake
- Python 開發環境
- 虛擬環境管理
- 開發工具使用
# 套件管理
sudo apt update && sudo apt upgrade
sudo apt install <套件名稱>
sudo apt remove <套件名稱>
# 檔案權限
chmod 755 file.txt
chown user:group file.txt
# 使用者管理
sudo useradd -m username
sudo passwd username
# 系統資訊
uname -a
df -h
free -h
ps aux
# 網路
ip addr show
ping google.com
ss -tulpn
# 時間管理
timedatectl
sudo timedatectl set-timezone Asia/Taipei
sudo timedatectl set-ntp true
# Systemd
sudo systemctl start service-name
sudo systemctl status service-name
sudo journalctl -u service-name
# 編譯
gcc file.c -o program
make
python3 -m venv venv- 套件來源:
/etc/apt/sources.list - 使用者資訊:
/etc/passwd - 群組資訊:
/etc/group - 網路設定:
/etc/netplan/或/etc/network/interfaces - DNS 設定:
/etc/resolv.conf - SSH 設定:
~/.ssh/config、/etc/ssh/sshd_config - UFW 設定:
/etc/ufw/ - 時區設定:
/etc/localtime、/etc/timezone - Systemd 單元:
/etc/systemd/system/ - Nginx 設定:
/etc/nginx/ - MySQL 設定:
/etc/mysql/
- 循序漸進:按照學習路徑順序學習,先掌握基礎再學習進階內容
- 實際操作:在 Linux 系統上實際練習每個指令和操作
- 查閱手冊:使用
man指令查看詳細說明文件 - 記錄筆記:記錄常用指令和設定,建立個人知識庫
- 解決問題:遇到問題時,先查看相關章節,再查閱官方文件
- Linux 初學者
- 系統管理員
- 開發者
- 想要學習 Debian 系列系統的使用者
本專案採用開源授權,詳見 LICENSE 檔案。
歡迎提出建議和改進,讓這份學習資料更加完善。
開始學習:建議從 Linux 簡介 開始,建立對 Linux 系統的基本認識。