I remember the first day I started the Linux operating system, I was "blurry" with the black screen full of text. It feels like trying to talk to aliens. But believe me, as long as you master the core Linux command lines you need to know, you will turn that "black window" (terminal) into a magic wand, controlling everything many times faster than mouse clicks on graphical interfaces like GNOME, KDE or XFCE. This article is Pham Hai's 10-year experience summarized, helping those who are learning linux for beginners to master the CLI (Command Line Interface) command line as quickly as possible.
Solid Foundations: Walk, Look and "Build" in the Terminal
Để di chuyển và xem xét cấu trúc cây thư mục trong Linux, bạn chỉ cần nhớ bộ ba lệnh pwd, ls, và cd. Đây là nền tảng cốt lõi để bạn quản lý thư mục linux hiệu quả mỗi ngày.
"Mình đang ở đâu?": Xác định vị trí với pwd
Lệnh pwd (Print Working Directory) trả về đường dẫn tuyệt đối của thư mục hiện tại bạn đang đứng.
Khi mở shell lên, bạn rất dễ bị lạc giữa hàng tá thư mục hệ thống. Lệnh pwd chính là chiếc la bàn định vị hoàn hảo. Chỉ cần gõ pwd và nhấn Enter, màn hình sẽ in ra đường dẫn chính xác (ví dụ: /home/phamhai/documents). Đây là một trong những lệnh linux cơ bản nhất, đặc biệt hữu ích khi bạn đang viết các bash script và cần xác nhận đúng vị trí làm việc trước khi thực thi các lệnh xóa hay copy.
"Trong này có gì?": Liệt kê file và thư mục với ls cùng các tùy chọn hay ho như -l, -a
Lệnh ls dùng để liệt kê nội dung bên trong một thư mục, giúp bạn xem nhanh các file và folder đang có.
Nếu bạn muốn biết cách quản lý thư mục linux, thì ls là công cụ không thể thiếu. Để xem chi tiết hơn, hãy dùng tùy chọn lệnh -l. Nếu muốn thấy cả các file ẩn (những file cấu hình thường bắt đầu bằng dấu chấm), hãy thêm đối số lệnh -a.
| Command syntax | Detailed functions |
|---|---|
ls |
Displays basic file and folder names. |
ls -l |
Display as a long list: access rights, owner, capacity, modification date. |
ls -la |
Show all files, including hidden files. |
Việc kết hợp các tùy chọn này biến ls thành lệnh liệt kê file và thư mục linux cực kỳ mạnh mẽ mà bất kỳ ai cũng phải dùng đến hàng trăm lần mỗi ngày.
"Đi tới nơi khác thôi!": Di chuyển linh hoạt giữa các thư mục bằng lệnh cd
Lệnh cd (Change Directory) cho phép bạn di chuyển từ thư mục này sang thư mục khác bằng đường dẫn tuyệt đối hoặc đường dẫn tương đối.
Bộ ba lệnh cd pwd ls giống như đôi mắt và đôi chân của bạn trong terminal. Để về thẳng thư mục gốc của user hiện tại, chỉ cần gõ cd ~. Nếu muốn quay lại đúng thư mục vừa ở trước đó, dùng cd -. Khi bạn muốn lùi lại một cấp thư mục, hãy dùng cd ... Việc hiểu rõ sự khác biệt giữa đường dẫn tuyệt đối (bắt đầu từ /, ví dụ /var/www/html) và đường dẫn tương đối sẽ giúp bạn thao tác với các câu lệnh linux phổ biến nhanh hơn rất nhiều.
Tạo và Xóa Nhanh: Dựng nhà (mkdir) và dọn rác (rmdir, rm) trong một nốt nhạc
Dùng mkdir để tạo thư mục mới, rmdir để xóa thư mục rỗng, và rm để xóa file hoặc thư mục có chứa dữ liệu.
Khi quản lý thư mục, việc tạo file hay tạo folder mới diễn ra liên tục. Lệnh mkdir ten_thu_muc giúp bạn xây "nhà" mới ngay lập tức. Ngược lại, để dọn dẹp, rm ten_file sẽ xóa file, còn rm -rf ten_thu_muc sẽ xóa sạch một folder cùng toàn bộ nội dung bên trong mà không cần hỏi lại. Tuy nhiên, hãy cực kỳ cẩn thận với tùy chọn -rf vì Linux không có thùng rác tiện lợi như Windows.
For programmers who want to operate the system themselves, mastering these commands is the perfect stepping stone. To go deeper, you can refer to the document Basic Linux server administration for developers to optimize the workflow.
Working with "Furniture": Read, Search and Edit Files Like a Pro
Việc đọc, tìm kiếm và chỉnh sửa nội dung file trên Linux được thực hiện qua các lệnh như cat, less, grep, touch, cp, và mv. Đây là nhóm lệnh quản lý file linux cơ bản.
Đọc nhanh nội dung file: Từ cat "thô sơ" đến less và more tiện lợi hơn
Lệnh cat in toàn bộ nội dung file ra màn hình, trong khi less và more cho phép bạn cuộn trang để đọc các file văn bản dài.
Trong quá trình quản lý tệp tin, đôi khi bạn chỉ muốn xem lướt qua một file cấu hình mạng. Gõ cat /etc/hosts sẽ hiển thị tất cả. Nhưng nếu file đó dài hàng ngàn dòng, việc dùng cat sẽ làm trôi tuột màn hình. Lúc này, hãy dùng less /var/log/messages. Lệnh less giúp bạn cuộn lên xuống bằng phím mũi tên, tiện lợi hơn hẳn so với lệnh more cũ kỹ.
Chỉ xem phần cần thiết: Lướt đầu (head) và cuối (tail) file để kiểm tra log
Lệnh head hiển thị 10 dòng đầu tiên của file, còn tail hiển thị 10 dòng cuối cùng.
Khi hệ thống gặp lỗi, việc kiểm tra log là thao tác bắt buộc. Thay vì mở cả file log khổng lồ bằng các trình soạn thảo như nano, vi hay vim, bạn chỉ cần gõ tail -f /var/log/syslog. Tùy chọn -f giúp theo dõi các dòng log mới nhất được cập nhật theo thời gian thực (real-time). Đây là lệnh linux hữu ích cho người mới bắt đầu và là vũ khí bí mật của các quản trị viên hệ thống.
"Mò kim đáy bể": Dùng grep để tìm một đoạn text trong hàng ngàn file
Lệnh grep dùng để lọc và tìm kiếm một chuỗi ký tự cụ thể bên trong các file văn bản.
Nếu bạn quên mất mình đã cấu hình domain ở file nào, grep sẽ là cứu tinh. Cú pháp grep -r "phamhai.com" /etc/nginx/ sẽ tìm xuyên suốt toàn bộ thư mục. Lệnh này kết hợp cực tốt với các lệnh khác thông qua dấu pipe (|). Chẳng hạn, ls -la | grep ".txt" sẽ chỉ hiển thị các file văn bản. Nó xứng đáng lọt top các câu lệnh linux nên biết nhất.
Chạm để tạo mới: Lệnh touch và cách tạo file rỗng nhanh chóng
Lệnh touch được dùng để tạo nhanh một file rỗng hoặc cập nhật thời gian chỉnh sửa (timestamp) của một file đã tồn tại.
Chỉ với touch index.php, bạn đã có ngay một file trắng để bắt đầu code. Rất nhiều linux commands cho lập trình viên sử dụng touch trong các bash script để khởi tạo các file cờ (flag files) tạm thời.
Di dời và đổi tên: Sức mạnh "2 trong 1" của lệnh mv và sao chép với cp
Lệnh cp dùng để sao chép file/thư mục, trong khi lệnh mv dùng để di chuyển file hoặc đổi tên file cực kỳ nhanh gọn.
Để học cách quản lý file linux hiệu quả, bạn cần biết cp file_cu.txt file_moi.txt để nhân bản dữ liệu. Để sao chép cả thư mục, nhớ dùng cp -r. Nếu muốn dọn dẹp, mv file_cu.txt /thumuc_moi/ sẽ giúp di chuyển file. Thậm chí, bạn có thể đổi tên file ngay tại chỗ bằng cách gõ mv ten_cu.txt ten_moi.txt.
Quyền Lực Trong Tay: Hiểu Rõ Phân Quyền và Quản Lý Người Dùng
Quản lý người dùng và phân quyền truy cập trong Linux xoay quanh các lệnh chmod, chown, sudo, useradd, và passwd.
Ai được làm gì?: Giải mã các quyền rwx và lệnh chmod thay đổi cuộc chơi
Lệnh chmod thay đổi quyền truy cập (Read, Write, Execute) của file hoặc thư mục đối với Owner, Group và Others.
Khái niệm phân quyền linux có thể làm bạn rối trí lúc đầu. Quyền đọc (r - 4), ghi (w - 2), thực thi (x - 1) quyết định sự an toàn của hệ thống. Khi bạn tải một file script về và nó báo lỗi "Permission denied", thường là do thiếu quyền thực thi. Chỉ cần gõ chmod +x ten_file.sh là xong.
To better understand what numbers like 777 (full permission) or 644 (owner only recorded) mean, you should read our detailed article about Linux file permission chmod chown explained.
Trao quyền sở hữu: Lệnh chown để chỉ định "chủ nhân" cho file và thư mục
Lệnh chown (Change Owner) được sử dụng để thay đổi người sở hữu (user) và nhóm sở hữu (group) của một tệp tin hay thư mục.
Đôi khi bạn dùng root user để tạo file trong thư mục của một user bình thường, file đó vẫn thuộc về root. Lúc này, user kia không thể chỉnh sửa được. Bạn cần dùng chown user:group ten_file để trao lại quyền sở hữu. Đây là cốt lõi của việc quản lý user và quyền linux an toàn.
"Gõ cửa" quyền admin: Khi nào và tại sao phải dùng sudo?
Lệnh sudo cho phép người dùng bình thường thực thi các câu lệnh với quyền quản trị (root privileges) một cách an toàn.
Không phải lúc nào bạn cũng nên đăng nhập trực tiếp bằng tài khoản root (thông qua lệnh su). Việc chạy mọi thứ dưới quyền root rất rủi ro. Thay vào đó, thêm sudo trước các lệnh command cơ bản trên linux (ví dụ: sudo apt-get update) giúp bạn kiểm soát hành động tốt hơn. Hệ thống sẽ yêu cầu mật khẩu để xác nhận.
Việc lạm dụng quyền root rất dễ dẫn đến lỗ hổng. For comprehensive server protection, please refer to the steps Securing Linux VPS against hacking attacks that Pham Hai has compiled based on the latest network security standards.
Quản lý người dùng và nhóm cơ bản: useradd, groupadd, và passwd
Sử dụng useradd để tạo user mới, groupadd để tạo nhóm mới, và passwd để thay đổi mật khẩu.
Trong môi trường doanh nghiệp, quản lý user group linux là công việc hàng ngày của sysadmin. Bạn có thể tạo tài khoản cho nhân viên mới bằng sudo useradd -m nguyenvan_a, sau đó đặt mật khẩu bằng sudo passwd nguyenvan_a. Việc gom các user vào chung một group ID giúp hướng dẫn quản lý user linux trở nên đồng bộ. Bạn cũng có thể dùng whoami để xem mình đang đăng nhập bằng ai, hoặc groups để kiểm tra user đang thuộc nhóm nào.
Catch System Illness: Become a "Doctor" for Your Server
Để kiểm tra tài nguyên linux, bạn cần sử dụng các công cụ giám sát hiệu suất như top, df, du, free, và ps để theo dõi CPU, RAM, và tiến trình.
Server đang làm gì?: Theo dõi tiến trình trực tiếp với top và htop
Lệnh top và htop cung cấp cái nhìn tổng quan theo thời gian thực về các tiến trình đang chạy, mức sử dụng CPU và bộ nhớ.
Nếu máy chủ bỗng dưng chạy chậm, top là lệnh kiểm tra tài nguyên server linux đầu tiên bạn nên gõ. Nó hiển thị danh sách các process ngốn nhiều tài nguyên nhất. Tuy nhiên, tại Phạm Hải, chúng tôi khuyên bạn nên cài đặt htop. Giao diện của htop có màu sắc trực quan, cho phép bạn cuộn chuột và dễ dàng tắt tiến trình bằng phím F9.
Ổ cứng còn bao nhiêu chỗ?: Kiểm tra dung lượng đĩa với df và dung lượng thư mục với du
Lệnh df -h hiển thị tổng dung lượng đĩa trống trên toàn hệ thống, trong khi du -sh tính toán dung lượng cụ thể của một thư mục.
Đầy dung lượng đĩa là nguyên nhân hàng đầu khiến database bị sập. Hãy gõ df -h để xem phân vùng nào đang đạt ngưỡng 100%. Sau đó, di chuyển vào phân vùng đó và dùng du -sh * để truy tìm xem file log hay thư mục nào đang chiếm dụng nhiều ổ cứng nhất. Đây là tổng hợp lệnh linux thông dụng không thể thiếu để duy trì sự sống cho server.
RAM có đang "ngộp thở"?: Lệnh free và cách đọc thông số bộ nhớ
Lệnh free -m hoặc free -h giúp bạn kiểm tra bộ nhớ linux, hiển thị chi tiết lượng RAM đang dùng, còn trống và dung lượng swap.
Trong số 50 lệnh linux cần nhớ, lệnh free cực kỳ quan trọng. Khi lệnh kiểm tra ram linux này cho thấy cột "available" gần bằng 0 và hệ thống bắt đầu dùng đến bộ nhớ ảo "swap", đó là lúc server đang quá tải. Bạn có thể gõ thêm uptime để xem máy chủ đã chạy bao lâu và tải trung bình (load average) ra sao. Nếu muốn kiểm tra thông tin phần cứng linux chi tiết hơn như đời CPU hay mainboard, lệnh inxi -F sẽ là lựa chọn hoàn hảo.
Truy lùng và "tiêu diệt" tiến trình treo: Kết hợp ps và kill
Lệnh ps aux liệt kê mọi tiến trình đang chạy, và lệnh kill dùng để buộc dừng một tiến trình dựa trên PID của nó.
Khi một ứng dụng bị treo, bạn không cần phải khởi động lại cả hệ thống. Hãy tìm Process ID (PID) bằng lệnh ps aux | grep ten_ung_dung. Bạn cũng có thể dùng pstree để xem tiến trình dưới dạng cây trực quan. Khi đã có PID, gõ kill -9 PID để dập tắt nó ngay lập tức. Tính năng quản lý tiến trình độc lập này giúp Linux cực kỳ ổn định.
Pocket Tip: Frequently Used Commands and Performance Tips
Những lệnh như wget, tar, find, và alias giúp bạn tự động hóa công việc, tăng tốc độ thao tác trên dòng lệnh đáng kể.
Tải file từ Internet không cần trình duyệt: Làm quen với wget và curl
wget và curl là hai công cụ dòng lệnh phổ biến để tải xuống các tệp tin từ web hoặc tương tác với các API HTTP.
Khi không có giao diện đồ họa (như Nautilus hay Dolphin), bạn không thể mở trình duyệt để tải file. Thay vào đó, chỉ cần gõ wget link_tai_file. Nếu bạn là developer cần test dữ liệu trả về từ một endpoint, curl sẽ là trợ thủ đắc lực.
These file download commands are extremely useful when you pull source code from GitHub to the server. You can see details of their applications in the tutorial Deploy website to VPS using SSH by Pham Hai.
Nén và giải nén "thần chưởng": Làm chủ tar để đóng gói và bung file
Lệnh tar được sử dụng rộng rãi trên Linux để nén nhiều file thành một tệp lưu trữ file (archive) hoặc giải nén chúng.
Để backup dữ liệu an toàn, lệnh nén và giải nén là bắt buộc. Cú pháp tar -czvf backup.tar.gz /thu_muc_can_nen/ sẽ gói gọn mọi thứ. Khi cần bung dữ liệu ra, chỉ việc dùng tar -xzvf backup.tar.gz. Định dạng .tar.gz tối ưu dung lượng cực tốt trên mọi bản phân phối từ Ubuntu, Debian, Fedora cho đến Arch. Để quản lý các gói phần mềm, đừng quên làm quen với các trình quản lý như apt-get, yum, hoặc pacman tùy thuộc vào hệ điều hành bạn đang dùng.
Tìm kiếm file ở bất cứ đâu: find và locate - hai trợ thủ đắc lực
Lệnh find tìm kiếm file theo thời gian thực với nhiều điều kiện phức tạp, còn locate tìm kiếm cực nhanh dựa trên cơ sở dữ liệu đã được lập chỉ mục.
Nếu bạn làm rơi một file cấu hình đâu đó trong cấu trúc cây thư mục, lệnh find / -name "config.php" sẽ lùng sục toàn bộ hệ thống để tìm cho ra. Nếu muốn kết quả trả về trong tích tắc, hãy dùng locate config.php, nhưng hãy nhớ chạy lệnh updatedb trước để làm mới cơ sở dữ liệu tìm kiếm nhé.
Mẹo cho người lười: Tạo lệnh tắt cho riêng bạn với alias
Lệnh alias cho phép bạn tạo ra các phím tắt (shortcut) ngắn gọn cho những câu lệnh dài dòng, phức tạp.
Tại sao phải gõ sudo apt-get update && sudo apt-get upgrade mỗi ngày trong khi bạn có thể thu gọn nó thành chữ update? Chỉ cần thêm alias update='sudo apt-get update && sudo apt-get upgrade' vào file cấu hình shell của bạn. Bạn cũng có thể dùng lệnh clear để dọn dẹp màn hình, date hay cal để xem lịch, hoặc echo để in ra một đoạn text nhanh chóng. Đôi khi dùng lệnh sleep để thiết lập thời gian chờ trong các đoạn script cũng rất hiệu quả.
And if you want these commands to automatically run at 2 a.m. every day without typing, learn about Crontab Linux timer to run automatically.
The Linux command line isn't scary, it's a language. It may be confusing at first, but once you get used to the Linux command line commands you need to know, you will see the incredible power and efficiency it brings. Don't try to memorize 50 or 100 commands at once. At Pham Hai, we advise you to start with the most basic linux commands in the article, practice every day, and you will soon "talk" to the Linux operating system naturally like a professional administrator.
Which Linux command is your "true love" or which command gives you the most headaches? Leave a comment below, let's discuss!
Lưu ý: Thông tin trong bài viết này chỉ mang tính chất tham khảo. Để có được lời khuyên tốt nhất, vui lòng liên hệ trực tiếp với chúng tôi để được tư vấn cụ thể dựa trên nhu cầu thực tế của bạn.