Bạn đã bao giờ xem video hướng dẫn lập trình, gõ đúng y chang lệnh đó vào terminal của Windows, nhưng lại không chạy được chưa?
Nguyên nhân hầu hết đều đơn giản: phần lớn môi trường phát triển chuyên nghiệp và các máy chủ đều chạy trên Linux, không phải Windows.
Sau khi đọc xong bài này, bạn sẽ hiểu Linux là gì, tại sao nó đáng học, và cách bắt đầu ngay cả khi bạn đang dùng Windows — không cần mua máy mới, không cần cài lại hệ điều hành.
Linux là gì? Định nghĩa đơn giản dành cho người mới bắt đầu
Linux là hệ điều hành (operating system) mã nguồn mở được Linus Torvalds phát triển năm 1991. Hiện nay, Linux là nền tảng vận hành phần lớn máy chủ, điện thoại Android và siêu máy tính trên toàn thế giới.
"Mã nguồn mở" (open source) có nghĩa là bất kỳ ai cũng có thể xem, chỉnh sửa và phân phối mã nguồn. Trong khi Windows là phần mềm đóng do Microsoft kiểm soát độc quyền, thì Linux được duy trì bởi hàng nghìn lập trình viên trên khắp thế giới cùng nhau đóng góp.
Linux không phải là ứng dụng — nó là bản thân hệ điều hành
Hệ điều hành là "người quản lý" đóng vai trò trung gian giữa phần cứng (CPU, bộ nhớ, ổ đĩa) và phần mềm (trình duyệt, trình soạn thảo, Python, v.v.).
Linux đảm nhận vai trò đó. Nó không phải là một ứng dụng, mà là tầng cơ sở cấu thành nên máy tính.
Kernel là gì? Distro là gì?
Khi học Linux, bạn sẽ gặp ngay hai khái niệm này. Hãy phân biệt rõ từ đầu.
Kernel (nhân hệ điều hành) là phần lõi của hệ điều hành. Nó quản lý và phân bổ tài nguyên như CPU, bộ nhớ, ổ lưu trữ cho các chương trình. Nếu ví von với xe hơi, kernel chính là động cơ.
Distribution — hay còn gọi là Distro — là "OS hoàn chỉnh" đóng gói kernel cùng với bộ công cụ và giao diện người dùng. Tương tự như cả chiếc xe (động cơ + thân xe + nội thất). Ubuntu, Debian, Fedora là những ví dụ điển hình.
Lịch sử Linux: Từ một sinh viên đơn độc đến hạ tầng toàn cầu
Năm 1991, sinh viên người Phần Lan Linus Torvalds bắt đầu phát triển nhân Linux như một "dự án cá nhân".
Hơn 30 năm sau, Linux đã trở thành hạ tầng khổng lồ chống đỡ toàn bộ Internet, cloud computing và điện thoại thông minh.
Tại sao lập trình viên cần học Linux?
Nếu chưa thấy lý do thuyết phục, bạn sẽ khó có động lực học thứ gì đó mới. Vì vậy, hãy trả lời câu hỏi này trước khi đi vào kỹ thuật.
Hơn 61% web server toàn cầu chạy trên Linux
Theo dữ liệu của W3Techs (tháng 4/2026), thị phần Linux trên thị trường web server là 61,1%. Nếu tính cả hệ Unix nói chung (Linux thuộc dòng Unix), con số này lên đến 91,4%.
Nghĩa là khi bạn deploy ứng dụng lên Render, Heroku hay VPS, máy chủ đó gần như chắc chắn đang chạy Linux.
Thêm vào đó, toàn bộ TOP500 siêu máy tính mạnh nhất thế giới đều chạy trên Linux (theo Red Hat).
Docker, cloud và DevOps đều lấy Linux làm nền tảng
Docker sử dụng tính năng namespaces của nhân Linux để cô lập container. Không có Linux, sẽ không có Docker.
Các dịch vụ cloud như AWS, GCP, Azure cũng đều vận hành trên nền tảng Linux.
Tóm lại:
- Muốn dùng Docker → cần hiểu biết về Linux
- Muốn deploy lên cloud → cần thao tác được trên Linux
- Muốn trở thành DevOps hoặc Backend engineer → Linux là kỹ năng bắt buộc
Nếu xem lộ trình DevOps hay lộ trình Backend engineer, bạn sẽ thấy Linux nằm ở nền tảng của mọi giai đoạn.
Thị trường tuyển dụng cũng yêu cầu rõ ràng kỹ năng Linux
Trên các trang tuyển dụng IT của Việt Nam như ITViec, TopDev, hầu hết vị trí Backend, DevOps, SysAdmin đều ghi rõ yêu cầu "kinh nghiệm Linux/Unix".
Thống kê từ Stack Overflow Developer Survey 2024 (58.600 người trả lời) cũng rất đáng chú ý:
- Lập trình viên dùng Ubuntu: 27,7%
- Lập trình viên dùng WSL (môi trường Linux trên Windows): 16,8%
Linux không còn là thứ "chỉ dành cho senior engineer" nữa.
So sánh các distro Linux: Người mới nên chọn cái nào?
Vì Linux là mã nguồn mở, bất kỳ ai cũng có thể tạo và phân phối phiên bản của riêng mình. Đó là lý do tồn tại rất nhiều distro.
| Distro | Mục đích chính | Phù hợp với |
|---|---|---|
| Ubuntu LTS 24.04 | Học tập, cloud, desktop | Khuyến nghị mạnh cho người mới |
| Debian | Vận hành server ổn định | Backend engineer, SysAdmin |
| Rocky Linux / CentOS | Server doanh nghiệp | DevOps, enterprise |
| Fedora | Thử nghiệm công nghệ mới nhất | Lập trình viên muốn cập nhật tính năng mới |
| Arch Linux | Tùy biến cao cấp | Người dùng nâng cao |
Lời khuyên cho người mới rất rõ ràng: hãy bắt đầu với Ubuntu 24.04 LTS.
Cộng đồng Ubuntu lớn nhất, tài liệu tiếng Anh và tiếng Việt đều phong phú. Phiên bản LTS (Long Term Support — hỗ trợ dài hạn) được cập nhật bảo mật miễn phí đến năm 2034.
Lưu ý: Ubuntu 25.10 không phải LTS, thời gian hỗ trợ ngắn hơn và không phù hợp cho người mới học.
Bắt đầu dùng Linux ngay trên Windows: Hướng dẫn cài WSL2
Đối với người dùng Windows, cách ít rủi ro nhất để bắt đầu học Linux chính là WSL2.
Bạn không cần lo "cài Linux vào sẽ bị virus…" hay "file sẽ bị mất…" — hoàn toàn không có chuyện đó.
WSL2 là gì?
WSL2 (Windows Subsystem for Linux 2) là công cụ do Microsoft cung cấp. Nó cho phép bạn chạy môi trường Linux trực tiếp trên Windows mà không cần máy ảo (virtual machine) hay dual-boot.
Những điểm quan trọng của WSL2:
- Không ảnh hưởng đến file system của Windows (hoạt động độc lập)
- Tương thích cao hơn WSL1 (dựa trên Hyper-V VM nhẹ)
- Chức năng gần tương đương môi trường Linux thực sự
- Yêu cầu: Windows 10 build 19041 trở lên, hoặc Windows 11
Cài WSL2 và Ubuntu trong 3 bước
Bước 1: Mở PowerShell với quyền Administrator
Nhấp chuột phải vào menu Start → chọn "Terminal (Administrator)" hoặc "Windows PowerShell (Administrator)".
Bước 2: Chạy lệnh cài đặt
# Cài WSL2 và Ubuntu cùng lúc (hỗ trợ Windows 10/11)
wsl --install
# Sau khi khởi động lại, kiểm tra các distro đã cài
wsl --list --verbose
# Chỉ định cài Ubuntu 24.04
wsl --install -d Ubuntu-24.04
# Xem danh sách distro có thể cài
wsl --list --online
Bước 3: Khởi động lại và cấu hình Ubuntu
Sau khi khởi động lại máy tính, mở Ubuntu từ menu Start. Lần đầu khởi chạy, bạn đặt tên người dùng (username) và mật khẩu (password) là xong — môi trường Linux đã sẵn sàng.
Tích hợp VS Code với WSL2
Cài extension "WSL" (Remote Development) cho VS Code, bạn có thể thao tác trực tiếp với môi trường Linux ngay từ terminal của VS Code.
Đây đã trở thành workflow tiêu chuẩn của các lập trình viên dùng Windows. Tham khảo thêm hướng dẫn cấu hình VS Code và tích hợp WSL.
Cấu trúc thư mục Linux: Bản đồ bạn cần biết
Linux có cấu trúc khác hoàn toàn so với C:\ của Windows. Tất cả file đều bắt đầu từ một điểm gốc duy nhất là / (root — thư mục gốc).
/
├── home/
│ └── nguyen/ # Thư mục cá nhân của bạn
├── etc/ # File cấu hình hệ thống
├── var/
│ └── log/ # File log (nhật ký hệ thống)
├── bin/ # Lệnh hệ thống (ls, cp, mv, v.v.)
└── tmp/ # File tạm (bị xóa khi khởi động lại)
So sánh với Windows để dễ nhớ hơn:
| Thư mục | Nội dung | Tương đương trên Windows |
|---|---|---|
/ |
Thư mục gốc của toàn bộ hệ thống | C:\ |
/home/tên-người-dùng |
File cá nhân | C:\Users\tên-người-dùng |
/etc |
File cấu hình hệ thống | Control Panel / Registry |
/var/log |
File log (debug, giám sát) | Event Viewer |
/bin, /usr/bin |
Lệnh hệ thống (ls, cp, mv, v.v.) | C:\Windows\System32 |
/tmp |
File tạm (bị xóa khi khởi động lại) | %TEMP% |
Có hai điểm thực tế cần nhớ: cấu hình ứng dụng thường nằm ở /etc; khi debug, hãy bắt đầu kiểm tra log từ /var/log. Chỉ cần nhớ hai điều này là đủ để xử lý công việc ban đầu.
10 lệnh Linux cơ bản cần học trước tiên
Bạn không cần thuộc lòng tất cả các lệnh. Biết 10–15 lệnh đầu tiên là đã đủ để làm việc.
Thao tác thư mục và quản lý file
# --- Di chuyển và kiểm tra thư mục ---
pwd # Hiển thị thư mục hiện tại
ls # Liệt kê file và thư mục
ls -la # Hiển thị chi tiết kể cả file ẩn
cd ~ # Về thư mục home
cd /etc # Di chuyển đến thư mục /etc
cd .. # Lên một cấp thư mục
# --- Tạo và thao tác file/thư mục ---
mkdir my-project # Tạo thư mục mới
touch index.html # Tạo file trống
cp file.txt backup.txt # Sao chép file
mv file.txt new.txt # Đổi tên hoặc di chuyển file
rm file.txt # Xóa file
rm -rf my-folder/ # Xóa thư mục (cảnh báo: không thể khôi phục!)
Hãy hết sức cẩn thận với rm -rf. File sẽ không vào thùng rác mà bị xóa vĩnh viễn ngay lập tức. Luôn kiểm tra kỹ đường dẫn (path) trước khi chạy lệnh này.
Xem nội dung file và quản lý package
# --- Xem nội dung file ---
cat README.md # Hiển thị toàn bộ nội dung file
head -n 10 log.txt # Hiển thị 10 dòng đầu
tail -f /var/log/syslog # Theo dõi log theo thời gian thực
# --- Cài đặt package (dành cho Ubuntu/Debian) ---
sudo apt update # Cập nhật danh sách package
sudo apt install git # Cài đặt Git
sudo apt install python3 # Cài đặt Python 3
sudo có nghĩa là chạy lệnh với quyền Administrator (root). Chỉ dùng khi thực sự cần thiết.
Git về cơ bản cũng được vận hành trên terminal Linux. Ngoài ra, Python là ngôn ngữ đặc biệt phù hợp với môi trường server Linux.
Phân quyền file Linux (chmod): Hiểu những điều cơ bản nhất
Khi chạy ls -la, bạn sẽ thấy kết quả như sau:
# Ví dụ kết quả lệnh ls -la
# -rw-r--r-- 1 nguyen nguyen 512 Apr 16 README.md
# drwxr-xr-x 2 nguyen nguyen 4096 Apr 16 projects
#
# Cách đọc:
# d hoặc - = thư mục (d) hoặc file (-)
# rwx = quyền của owner (chủ sở hữu): đọc, ghi, thực thi
# r-x = quyền của group (nhóm): chỉ đọc và thực thi
# r-x = quyền của others (người khác): chỉ đọc và thực thi
# Cấp quyền thực thi cho script
chmod +x deploy.sh
# 755 = owner: toàn quyền, group/others: chỉ đọc và thực thi
chmod 755 script.sh
Tra cứu giá trị số quyền (permission) trong bảng dưới đây:
| Số | Quyền | Ý nghĩa |
|---|---|---|
| 7 | rwx | Đọc, ghi và thực thi |
| 6 | rw- | Chỉ đọc và ghi |
| 5 | r-x | Chỉ đọc và thực thi |
| 4 | r-- | Chỉ đọc |
Bạn không cần nhớ ngay bây giờ. Khi gặp lỗi "Permission denied", hãy quay lại bảng này để tra cứu.
Bước tiếp theo: Lộ trình học Linux
Hãy nhìn lại những gì bạn vừa học được:
- Linux là hệ điều hành mã nguồn mở, là nền tảng của Internet hiện đại
- 61,1% web server toàn cầu chạy trên Linux (W3Techs, tháng 4/2026)
- Ubuntu 24.04 LTS là điểm khởi đầu tốt nhất cho người mới
- WSL2 cho phép bạn bắt đầu với môi trường Linux an toàn ngay trên Windows
- Chỉ cần 10 lệnh như
ls,cd,mkdir,rm,chmodlà đủ để bắt đầu làm việc
Bài viết tiếp theo được khuyến nghị nhất:
Hướng dẫn đầy đủ các lệnh Linux cơ bản — tổng hợp các lệnh terminal được dùng hàng ngày trong môi trường phát triển thực tế.
Tùy theo hướng bạn muốn đi, các bài viết sau cũng rất hữu ích:
- Muốn trở thành Backend engineer → Lộ trình Backend engineer 2026
- Muốn theo DevOps → Lộ trình DevOps 2026
- Chưa tích hợp WSL vào VS Code → Hướng dẫn cài đặt VS Code
Câu hỏi thường gặp (FAQ)
Cài Linux có làm hỏng Windows không?
Nếu dùng WSL2, bạn hoàn toàn không cần lo lắng. WSL2 không chạm vào partition hay file hệ thống của Windows, hoạt động hoàn toàn độc lập. Dual-boot Ubuntu và Windows thì cần thận trọng hơn, nhưng WSL2 là lựa chọn an toàn nhất cho người mới.
Lập trình viên có cần học Linux không?
Đặc biệt nếu bạn muốn theo Backend, DevOps hay cloud — thì đây là kỹ năng bắt buộc. Hơn 61% web server chạy trên Linux, và Docker, Git, Python đều hoạt động tốt nhất trên môi trường Linux. Dù bạn đang dùng Windows, WSL2 cho phép bạn bắt đầu ngay hôm nay.
Linux và Windows khác nhau như thế nào?
Linux là hệ điều hành mã nguồn mở và miễn phí, được tối ưu hóa cho server và môi trường phát triển. Windows là OS thương mại của Microsoft, phổ biến với người dùng phổ thông. Nhìn từ góc độ lập trình viên, Linux vượt trội rõ rệt về thao tác CLI, tự động hóa (automation) và khả năng tương thích với môi trường server thực tế.
Học Linux mất bao lâu?
Để thành thạo các lệnh cơ bản và làm việc được trên terminal: 2–4 tuần (nếu luyện tập mỗi ngày). Để hiểu sâu về phân quyền file, bash script và quản trị hệ thống: 2–3 tháng. Điều quan trọng nhất là tiếp xúc mỗi ngày — hãy tập thói quen dùng terminal thay vì File Explorer, đó là con đường ngắn nhất.
Ubuntu là gì?
Ubuntu là distro Linux phổ biến nhất, do Canonical phát triển. Giao diện thân thiện, cộng đồng hỗ trợ mạnh, và Ubuntu 24.04 LTS được hỗ trợ miễn phí đến năm 2034. Đây là OS được khuyến nghị nhất cho người mới bắt đầu học Linux.
"vim" trong Linux là gì?
Vim là trình soạn thảo văn bản (text editor) chạy trên terminal Linux, nổi tiếng với hiệu năng cao nhưng đường cong học tập (learning curve) rất dốc. Người mới không nhất thiết phải học Vim ngay từ đầu. Hãy bắt đầu với nano — trực quan hơn nhiều. Dùng lệnh nano tên-file.txt để mở file, và Ctrl+X để thoát.