Học Linux từ đầu: lộ trình từ lệnh đầu tiên đến quản trị máy chủ
Học Linux từ đầu hiệu quả nhất là đi theo từng lớp: trước hết terminal và hệ thống tệp, sau đó người dùng và quyền truy cập, Bash script, gói phần mềm, tiến trình và systemd, rồi đến ổ đĩa, nhật ký, mạng, SSH và bảo mật máy chủ. Ở mỗi giai đoạn cần thực hành trên máy ảo hoặc VPS giá rẻ, và kết quả cuối cùng là một máy chủ tự dựng và bảo mật với dịch vụ đang chạy.
Học Linux từ đầu không khó như người ta nghĩ, nếu đi đúng thứ tự và thực hành ngay. Sai lầm lớn nhất của người mới là đọc về lệnh mà không gõ, hoặc nhảy sang Docker và Kubernetes khi chưa hiểu tiến trình và quyền truy cập là gì. Dưới đây là lộ trình gồm chín giai đoạn: nên học gì, thực hành gì và làm sao biết mình đã qua giai đoạn.
Thời gian tham khảo là từ hai đến bốn tháng, học mỗi ngày một giờ, nhưng tốc độ mỗi người mỗi khác. Quan trọng hơn tốc độ là sau mỗi giai đoạn bạn có thể tự tay làm được điều gì đó.
Giai đoạn 0. Chuẩn bị môi trường
Học Linux trên Linux. Có vài lựa chọn, từ đơn giản đến sát thực tế:
- WSL2 trên Windows — terminal Ubuntu chỉ trong vài phút. Tốt cho lệnh và script, nhưng systemd và mạng không hoạt động giống như trên máy chủ.
- Máy ảo (VirtualBox, VMware, UTM trên Mac) với Ubuntu Server hoặc Debian. Có thể phá hỏng mà không ảnh hưởng gì và quay lại snapshot.
- VPS giá rẻ của nhà cung cấp đám mây. Một máy chủ thật với IP công khai là sân tập tốt nhất cho các giai đoạn về mạng và bảo mật.
Để bắt đầu, nên chọn Ubuntu Server hoặc Debian: có nhiều tài liệu và câu trả lời nhất. Không cần giao diện đồ họa: máy chủ được quản trị qua terminal, hãy làm quen từ ngày đầu.
Giai đoạn 1. Terminal và hệ thống tệp
Mục tiêu là tự tin di chuyển trong hệ thống và làm việc với tệp mà không cần chuột.
- Điều hướng:
pwd,ls -la,cd, đường dẫn tuyệt đối và tương đối,~,.và... - Tệp:
cp,mv,rm,mkdir -p,touch, xem bằngcat,less,head,tail -f. - Tìm kiếm:
find,which,locate. - Trợ giúp:
man,--help. Biết đọc man là kỹ năng dùng cả đời. - Cấu trúc thư mục: những gì nằm trong
/etc,/var/log,/home,/usr,/proc,/dev; gắn ổ đĩa và inode là gì. - Trình soạn thảo trong terminal: dùng
nanolúc đầu, sau đó học các lệnh cơ bản củavim— gần như máy chủ nào cũng có.
Thực hành: tìm mọi tệp .conf trong /etc được sửa trong tuần qua (find /etc -name "*.conf" -mtime -7). Mở /etc/os-release và xem phiên bản hệ thống. Xem hệ thống ghi gì vào /var/log.
Giai đoạn 2. Người dùng, nhóm và quyền truy cập
Quyền truy cập là nền tảng bảo mật của Linux và là nguồn của phần lớn lỗi "Permission denied".
- Đọc đầu ra của
ls -l: kiểu, quyền, chủ sở hữu, nhóm. chmodở dạng ký hiệu và dạng số,chown,umask.- Các bit đặc biệt: SUID, SGID, sticky bit — và vì sao
/tmpcho phép mọi người ghi nhưng không xóa được tệp của người khác. - Người dùng và nhóm:
useradd,usermod -aG,passwd, các tệp/etc/passwd,/etc/shadow,/etc/group. sudo, quy tắc trong sudoers và chỉnh sửa quavisudo.
Thực hành: tạo hai người dùng và một thư mục dự án chung, nơi cả hai đều tạo được tệp, còn người khác không thấy gì. Gợi ý: nhóm, chmod 2770 và SGID để kế thừa nhóm.
Giai đoạn 3. Bash và các tiện ích văn bản
Quản trị phần lớn là xử lý văn bản: nhật ký, cấu hình, kết quả lệnh. Ở giai đoạn này, terminal chuyển từ tập hợp lệnh thành một công cụ thực sự.
- Chuyển hướng và đường ống:
>,>>,2>&1,|,xargs. - Bộ lọc:
grep(với biểu thức chính quy),sort,uniq -c,wc,cut,sed,awk. - JSON và HTTP từ dòng lệnh:
curlvàjq. - Script: shebang, biến, dấu nháy, điều kiện
ifvà[[ ]], vòng lặp, hàm, mã thoát,set -euo pipefail.
Thực hành: bằng một dòng lệnh, đếm mười địa chỉ IP gửi nhiều yêu cầu nhất trong nhật ký web server:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Sau đó viết script sao lưu một thư mục thành kho nén có ngày trong tên, xóa các bản cũ hơn bảy ngày và trả về mã khác không khi có lỗi.
Giai đoạn 4. Gói phần mềm, môi trường và lập lịch
- Trình quản lý gói:
apt update,apt install,apt remove,apt search,dpkg -l. Trên các hệ thống họ RHEL —dnf. Hiểu kho gói là gì và khóa ký dùng để làm gì. - Biến môi trường:
env,export,PATH, các tệp~/.bashrc,~/.profile,/etc/environment— và tệp nào được đọc khi nào. - Lịch chạy:
crontab -e, cú pháp năm trường, vì sao lệnh chạy được trong terminal lại "không chạy" trong cron (khác môi trường vàPATH).
Thực hành: cài nginx từ kho, thêm thư mục chứa script của bạn vào PATH, và đặt script sao lưu ở giai đoạn 3 chạy mỗi đêm qua cron, ghi đầu ra vào nhật ký.
Giai đoạn 5. Tiến trình và systemd
Ở đây bạn bắt đầu hiểu thực sự chuyện gì đang xảy ra trong hệ thống.
- Tiến trình:
ps aux,top/htop, PID và PPID, trạng thái, độ ưu tiên (nice), tín hiệu vàkill. - Tải hệ thống: load average, bộ nhớ và swap (
free -h), ý nghĩa của tiến trình ở trạng thái D. - Gỡ lỗi:
lsof— tiến trình mở tệp và cổng nào;strace— tiến trình gọi những lời gọi hệ thống nào và bị treo ở đâu. - systemd: unit,
systemctl status/start/enable, unit-file riêng vớiRestart=on-failure, timer thay cho cron. - Nhật ký:
journalctl -u,-f,-b,-p err, xoay vòng nhật ký, rsyslog; thống kê hiệu năng qua sysstat (sar,iostat).
Thực hành: chạy một ứng dụng nhỏ (ít nhất là python3 -m http.server) như dịch vụ systemd dưới một người dùng riêng, dùng kill -9 để giết tiến trình và xác nhận systemd đã khởi động lại nó. Tìm bản ghi về lần khởi động lại trong nhật ký.
Giai đoạn 6. Ổ đĩa, LVM và RAID
- Thiết bị và phân vùng:
lsblk,blkid,fdiskhoặcparted, hệ thống tệp ext4 và XFS,mkfs. - Gắn ổ đĩa:
mount,/etc/fstabvới UUID, kiểm tra bằngmount -a. - Dung lượng:
df -h,df -i,du -sh, tìm thứ đang chiếm đĩa. - LVM: volume vật lý, nhóm volume, volume logic và mở rộng phân vùng mà không cần dừng máy.
- RAID phần mềm với
mdadm— hiểu các mức 0, 1, 5, 10 và rằng RAID không phải là sao lưu.
Thực hành: thêm hai ổ đĩa vào máy ảo, dựng LVM trên chúng, tạo một volume, gắn qua fstab, sau đó mở rộng bằng lvextend -r.
Giai đoạn 7. Mạng
- Mô hình TCP/IP ở mức đủ để chẩn đoán: IP, subnet mask, gateway, cổng, TCP và UDP.
- Các lệnh:
ip a,ip r,ss -tlnp,ping,traceroute/mtr,curl -v,nc. - DNS: cách phân giải hoạt động ra sao,
/etc/hosts,/etc/resolv.conf,dig,resolvectl. - Cấu hình mạng trên bản phân phối của bạn (netplan trên Ubuntu, NetworkManager trên các bản khác).
- Bắt gói tin với
tcpdumpkhi mọi cách khác đã thất bại.
Thực hành: tìm tiến trình nào đang lắng nghe trên mỗi cổng đang mở của máy chủ. Phân tích vì sao dịch vụ lắng nghe trên 127.0.0.1 không truy cập được từ bên ngoài, rồi sửa lại.
Giai đoạn 8. Làm việc từ xa: SSH và truyền tệp
- SSH: khóa (
ssh-keygen -t ed25519,ssh-copy-id), tệp~/.ssh/config,ssh-agent, chuyển tiếp cổng (ssh -L), bastion quaProxyJump. - Sao chép:
scpvàrsync -avz --delete— và vì sao rsync tốt hơn để đồng bộ. - Hệ thống tệp mạng: NFS giữa các máy chủ Linux, SMB (Samba) để trao đổi với Windows.
Thực hành: cấu hình VPS chỉ cho đăng nhập bằng khóa, mô tả khóa trong ~/.ssh/config dưới một tên ngắn, và đồng bộ một thư mục lên máy chủ mỗi ngày bằng rsync.
Giai đoạn 9. Bảo mật máy chủ
- Tường lửa: nguyên tắc "cấm tất cả những gì không được cho phép",
ufwcho trường hợp đơn giản,nftablesđể hiểu những gì xảy ra bên dưới. fail2ban: chặn IP sau nhiều lần đăng nhập thất bại, kiểm tra bằngfail2ban-client status sshd.- Cấu hình sshd: cấm đăng nhập bằng mật khẩu và bằng root.
- Cập nhật bảo mật và cài đặt tự động (unattended-upgrades trên Debian và Ubuntu).
- GPG: kiểm tra chữ ký gói và tệp, mã hóa bản sao lưu.
Thực hành: chỉ mở cổng 22, 80 và 443 trên tường lửa, bật fail2ban, rồi sau một ngày xem trạng thái của nó để biết bao nhiêu địa chỉ đã bị chặn.
Dự án cuối: dựng một máy chủ hoàn chỉnh
Cách kiểm tra tốt nhất xem bạn đã thật sự học Linux hay chưa là tự dựng một máy chủ từ đầu mà không cần gợi ý:
- VPS mới, người dùng riêng có sudo, đăng nhập bằng khóa SSH, đã tắt mật khẩu và root.
- Tường lửa và fail2ban, cập nhật bảo mật tự động.
- Web server và ứng dụng chạy như dịch vụ systemd với tự khởi động lại.
- Ổ đĩa riêng hoặc volume cho dữ liệu, gắn qua fstab.
- Sao lưu theo lịch (cron hoặc timer systemd) sang máy khác qua rsync, có nhật ký và kiểm tra khôi phục.
- Hướng dẫn ngắn: làm sao dựng lại toàn bộ từ đầu.
Nếu bạn có thể làm hết danh sách này và giải thích từng bước, bạn đã có nền tảng để làm quản trị viên hoặc kỹ sư DevOps. Bước tiếp theo tự nhiên là container, tự động hóa cấu hình và giám sát.
Học hiệu quả hơn
- Tự gõ lệnh. Sao chép từ bài viết không giúp nhớ; gõ và mắc lỗi thì mới nhớ.
- Phá rồi sửa. Làm hỏng fstab hoặc quyền của
~/.sshtrên máy ảo rồi khôi phục hệ thống. Kinh nghiệm này được đánh giá cao trong phỏng vấn. - Ghi chép. Sổ tay lệnh có ví dụ của chính bạn hữu ích hơn bất kỳ bảng tóm tắt nào của người khác.
- Đọc nhật ký. Gần như mọi sự cố trên Linux đều được giải thích trong nhật ký — hãy quen nhìn vào đó đầu tiên.
Tóm lại
Câu trả lời cho việc học Linux từ đầu là đi theo từng lớp: terminal và tệp, quyền truy cập, Bash, gói phần mềm, tiến trình và systemd, ổ đĩa, mạng, SSH, bảo mật — và ở mỗi giai đoạn giải quyết một bài toán thực hành trên môi trường của riêng mình. Mục tiêu cuối cùng là tự dựng và bảo vệ một máy chủ với dịch vụ đang chạy. Đúng theo lộ trình này, từ bài giới thiệu đến dự án cuối, khóa học Linux trên nền tảng được xây dựng.
Câu hỏi thường gặp
Mất bao lâu để học Linux từ đầu?
Với một giờ học mỗi ngày, đa số người nắm được nền tảng để làm việc với máy chủ trong vài tháng. Sự tự tin đến từ thực hành trên các bài toán thật, nên quan trọng là đều đặn hơn là tổng số giờ.
Có cần biết lập trình để học Linux không?
Không, có thể bắt đầu mà không cần. Nhưng đến giai đoạn Bash script, bạn thực tế đã bắt đầu lập trình, và kỹ năng đó sau này hữu ích cho tự động hóa.
Có thể học Linux trên Windows không?
Được, qua WSL2 hoặc máy ảo. Với các chủ đề về systemd, ổ đĩa và mạng, nên dùng máy ảo đầy đủ hoặc VPS.
Có nên cài Linux làm hệ điều hành chính trên máy tính không?
Điều này hữu ích nhưng không bắt buộc. Với quản trị, quan trọng hơn là làm việc với Linux máy chủ qua terminal, chứ không phải dùng giao diện đồ họa.
Người mới nên chọn bản phân phối nào?
Ubuntu Server hoặc Debian: có nhiều tài liệu, và kỹ năng dễ chuyển sang các bản khác. Khác biệt chính của các hệ thống họ RHEL là trình quản lý gói dnf.
Chủ đề này được giảng chi tiết kèm thực hành trong khóa học “Linux: с нуля до уверенного администрирования”.
- Linux: с нуля до уверенного администрирования
- Финал: собираем защищённый и автоматизированный сервер целиком