← Quay lại Blog
Bash & Shell

Lộ trình Tự học Bash & Shell Scripting từ cơ bản đến DevOps

Lộ trình toàn diện từ cơ bản terminal, biến, luồng điều khiển, xử lý text, quản lý process đến automation DevOps.

Chào mừng bạn đến với chuỗi bài học tự học Bash & Shell Scripting. Bash là ngôn ngữ scripting mặc định trên hầu hết hệ thống Unix/Linux/macOS, là công cụ không thể thiếu cho bất kỳ lập trình viên hay DevOps engineer nào. Từ việc điều hướng filesystem, tự động hóa tác vụ lặp đi lặp lại, đến xây dựng pipeline CI/CD — thành thạo Bash sẽ giúp bạn làm việc hiệu quả gấp nhiều lần trên dòng lệnh.

Dưới đây là lộ trình 11 bài học được thiết kế chi tiết nhằm giúp bạn từng bước làm chủ Bash & Shell Scripting:

Trước khi bắt đầu

Cần biết trước. Biết mở terminal và chạy một lệnh. Không cần kinh nghiệm quản trị hệ thống. Series viết cho Linux và macOS; người dùng Windows chạy được qua WSL.

Series này không dạy. Không dạy quản trị hệ thống, Docker hay Kubernetes. Cũng không cố biến Bash thành ngôn ngữ vạn năng — có hẳn một mục nói rõ khi nào nên dừng viết Bash và chuyển sang Python.

Học xong bạn làm được gì. Viết được script tự động hoá dùng thật chứ không phải script mẫu; hiểu vì sao rm -rf "$dir/" thiếu dấu ngoặc kép là một lỗi nguy hiểm; xử lý được tín hiệu và dọn dẹp đúng cách khi script bị ngắt; và dựng được pipeline grep/sed/awk thay cho việc mở file bằng tay.

Vì sao thứ tự này. Bài 1–3 xây phản xạ terminal, bài 4–6 chuyển từ gõ lệnh sang viết chương trình thật (hàm, tiến trình, tín hiệu), rồi bài 7–11 mới là các kịch bản thực chiến: backup, CI/CD, defensive scripting, lập lịch. Phần phòng thủ đặt gần cuối vì bạn chỉ thấy nó cần thiết sau khi đã tự làm hỏng một script của chính mình.

11 bài · 24 câu trắc nghiệm · 11 script tải về chạy được ngay

01

Bài 1: Làm Quen Terminal — Filesystem, Lệnh Cơ Bản & Permissions

Hiểu cấu trúc lệnh Unix, điều hướng filesystem (cd, ls, pwd, mkdir), quản lý file (cp, mv, rm), phân quyền chmod/chown và cách đọc man pages.

02

Bài 2: Biến, Chuỗi & Mảng — Parameter Expansion & Arithmetic

Khai báo biến, phân biệt quoting (' vs "), parameter expansion (${var:-default}), arrays, arithmetic $((...)), biến môi trường vs biến cục bộ.

03

Bài 3: Luồng Điều Khiển — Điều Kiện, Vòng Lặp & Exit Codes

if/elif/else, test/[[ ]], case, vòng lặp for/while/until, break/continue, exit codes $? và cách xử lý lỗi cơ bản.

04

Bài 4: Functions & Scripts — Viết Script Chuyên Nghiệp Đầu Tiên

Shebang #!/bin/bash, tạo function với local/return, xử lý arguments ($1, $@, getopts), source vs ./ và best practices khi viết script.

05

Bài 5: Xử Lý Text — Pipeline, grep, sed, awk & Redirection

Pipeline |, redirection (>, >>, 2>&1), grep regex, sed stream editing, awk field processing, cut/sort/uniq/xargs và process substitution.

06

Bài 6: Process & Signals — Quản Lý Tiến Trình & trap

Foreground/background (&, fg, bg), jobs, nohup, trap signals, subshells (), wait, các biến đặc biệt $$/$!/PIPESTATUS.

07

Bài 7: Thực Chiến — Backup, Monitor & Deploy Scripts

Viết backup script có logging, health check monitor, batch file renamer, .env parser, deploy script. Error handling với set -euo pipefail.

08

Bài 8: DevOps & Automation — Git Hooks, CI/CD & Docker

Git hooks, CI/CD scripting, Docker entrypoint, cron jobs, SSH automation (scp, rsync), Makefile basics và linting với shellcheck.

09

Bài 9: Điều Hướng I/O Nâng Cao & File Descriptors

Tìm hiểu chuyên sâu File Descriptors (0, 1, 2), mở/đóng FD tùy ý với exec, truyền thông song song bằng Named Pipes (FIFOs), và kết nối mạng thô qua /dev/tcp socket.

10

Bài 10: Defensive Bash — Phòng Thủ, Gỡ Lỗi & Bảo Mật Script

Xây dựng script an toàn bằng cờ set -euo pipefail, xử lý bẫy tín hiệu (trap EXIT/ERR) để tự động dọn dẹp tài nguyên, phòng chống Shell Injection và sử dụng ShellCheck.

11

Bài 11: System Automation — Lập Lịch Tự Động & Giám Sát Hệ Thống

Viết script giám sát đĩa cứng, RAM và gửi cảnh báo tự động qua Slack/Telegram. So sánh Cron Jobs vs Systemd Timers và tự động quản lý xoay vòng logs bằng logrotate.