Skip to content

JW-Albert/Learn-Linux-Debian

Repository files navigation

Learn-Linux-Debian

這是一個關於 Linux 的學習資料庫,著重於 Debian 派系(Debian、Ubuntu 等)的系統管理和操作教學。

簡介

本學習資料庫提供完整的 Linux 系統管理教學,從基礎概念到進階應用,涵蓋:

  • 系統基礎:Linux 架構、發行版介紹
  • 套件管理:APT 套件管理工具
  • 權限管理:使用者、群組、檔案權限控制
  • Shell 操作:命令列操作、腳本撰寫、路徑概念
  • 文字編輯器:Nano、Vim 使用教學
  • 系統管理:資源監控、程序管理、服務管理、時間管理、Systemd
  • 版本控制:Git 完整教學
  • 網路與安全:SSH、防火牆(UFW)、網路設定
  • 網路服務:Web 伺服器、資料庫、郵件服務配置
  • 開發環境:C/C++/Python 編譯環境設定

學習路徑

初學者路徑

  1. Linux 簡介 - 了解 Linux 基本概念和系統架構
  2. APT 套件管理 - 學習安裝和管理軟體套件
  3. Shell 介紹 - 認識命令列介面
  4. 常用指令 - 掌握基本 Linux 指令
  5. 文字編輯器 - 學習使用 Nano 或 Vim
  6. 路徑概念 - 理解檔案系統路徑

進階路徑

  1. 權限管理 - 深入理解檔案權限和使用者管理
  2. 使用者與群組 - 管理系統使用者帳號
  3. Shell 腳本 - 撰寫自動化腳本
  4. 資源管理 - 監控和管理系統資源
  5. Git 版本控制 - 學習程式碼版本管理
  6. SSH 遠端連線 - 遠端管理伺服器
  7. 防火牆設定 - 保護系統安全
  8. 網路設定 - 配置網路連線
  9. 時間管理 - 系統時間與時區設定
  10. Systemd 管理 - 服務管理與系統初始化
  11. 網路服務配置 - Web、資料庫等服務設定
  12. 編譯環境 - C/C++/Python 開發環境

目錄導航

基礎概念

  • 00. Linux
    • Linux 簡介
    • 主流發行版分支
    • 系統架構分層

套件管理

  • 01. APT
    • 套件安裝與更新
    • 套件搜尋與管理
    • 套件來源設定

權限與使用者

  • 02. Permission

    • Root 與 Sudo
    • 檔案權限設定
    • 特殊權限(SUID、SGID、Sticky Bit)
  • 03. User

    • 使用者帳號管理
    • 群組管理
    • 系統檔案說明

Shell 與命令列

  • 04. Shell

    • Shell 介紹與種類
    • Shell 設定檔
    • 基本操作技巧
  • 04. Shell/Command

    • 檔案與目錄操作
    • 檔案內容查看
    • 系統資訊指令
    • 文字處理工具
  • 04. Shell/Route

    • 絕對路徑與相對路徑
    • 路徑符號(~、.、..)
    • 路徑操作指令
  • 04. Shell/Scrip

    • 變數與資料類型
    • 條件判斷與迴圈
    • 函式與錯誤處理

文字編輯器

系統管理

  • 06. Resource
    • CPU、記憶體、磁碟監控
    • 程序管理
    • 系統服務管理
    • 工作排程(Cron)

版本控制

網路與安全

  • 08. SSH

    • SSH 連線設定
    • 金鑰認證
    • 埠轉發
    • 檔案傳輸(SCP、SFTP)
  • 09. UFW

    • 防火牆基本操作
    • 規則設定
    • ICMP 封包控制
    • 應用程式配置
  • 10. Network

    • 網路基本概念
    • IP 位址設定
    • 路由管理
    • DNS 配置
    • 網路工具使用

系統管理進階

  • 11. Time

    • 系統時間設定
    • 時區配置
    • NTP 時間同步
    • 硬體時間管理
  • 12. Systemd

    • Systemd 基本概念
    • 服務管理(systemctl)
    • 單元檔案編寫
    • Timer 定時器
    • 日誌管理(journalctl)
  • 13. Services

    • 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/

學習建議

  1. 循序漸進:按照學習路徑順序學習,先掌握基礎再學習進階內容
  2. 實際操作:在 Linux 系統上實際練習每個指令和操作
  3. 查閱手冊:使用 man 指令查看詳細說明文件
  4. 記錄筆記:記錄常用指令和設定,建立個人知識庫
  5. 解決問題:遇到問題時,先查看相關章節,再查閱官方文件

適用對象

  • Linux 初學者
  • 系統管理員
  • 開發者
  • 想要學習 Debian 系列系統的使用者

授權

本專案採用開源授權,詳見 LICENSE 檔案。

貢獻

歡迎提出建議和改進,讓這份學習資料更加完善。


開始學習:建議從 Linux 簡介 開始,建立對 Linux 系統的基本認識。

About

這是一個關於Liunx的學習資料,並著重於Debian派系。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published