Liên hệProfile
Danh mục

Mục Lục

    Lệnh grep là gì? Tìm hiểu tổng quan về lệnh grep trong Linux

    Nguyễn Hưng

    Ngày đăng:

    24/02/2026

    Cập nhật lần cuối:

    24/02/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    24/02/2026

    Cập nhật lần cuối:

    24/02/2026

    Mục lục

    grep là lệnh trên Linux/Unix dùng để tìm kiếm và hiển thị các dòng trong file văn bản chứa chuỗi ký tự hoặc biểu thức chính quy mà bạn chỉ định. Công cụ này hỗ trợ lọc thông tin nhanh chóng, chính xác trong các file hoặc thư mục lớn. Trong bài viết này, mình sẽ cùng bạn tìm hiểu tổng quan về lệnh grep và hướng dẫn cách tìm kiếm đệ quy với grep đơn giản, nhanh chóng.

    Những điểm chính

    • Định nghĩa grep: Hiểu rõ khái niệm, cú pháp cơ bản và các tùy chọn quan trọng của grep để tìm kiếm và lọc dữ liệu văn bản một cách hiệu quả.
    • Cách tùy chọn của grep: Nắm được các tùy chọn liên quan đến mẫu tìm kiếm và hiển thị của grep.
    • Hướng dẫn tìm kiếm đệ quy với grep: Nắm vững cách tìm kiếm đệ quy trong các thư mục và thư mục con (-r, -R), giúp bạn nhanh chóng định vị thông tin trong toàn bộ dự án.
    • Các ứng dụng thực tế của grep: Biết cách kết hợp grep với các lệnh khác qua pipeline (|) để giải quyết các bài toán quản trị hệ thống thực tế như kiểm tra trạng thái dịch vụ đang chạy.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề nâng cao như kết hợp nhiều mẫu tìm kiếm, xử lý file lớn và cách tối ưu hiệu suất khi tìm kiếm.

    Grep là gì?

    Lệnh grep (viết tắt của “Global Regular Expression Print”) là công cụ được thiết kế để tìm kiếm các dòng chứa một chuỗi ký tự hoặc biểu thức chính quy trong các file văn bản trong Linux/Unix. Khi sử dụng, bạn có thể chỉ định một hoặc nhiều file, kết hợp với đường dẫn thư mục hoặc kết quả từ lệnh khác thông qua pipeline (|). Tính năng này hữu ích khi bạn cần tra cứu thông tin trong một số lượng lớn tệp hoặc thư mục mà không cần mở từng tệp thủ công.

    grep là lệnh được dùng để tìm kiếm các dòng chứa một chuỗi ký tự hoặc biểu thức chính quy trong các file văn bản trong Linux/Unix.
    grep được dùng để tìm kiếm các dòng chứa chuỗi ký tự hoặc biểu thức chính quy trong các file văn bản trong Linux/Unix.

    Khi thực hiện lệnh grep, hệ thống sẽ rà soát từng dòng của file hoặc nhóm file và hiển thị những dòng có chứa chuỗi hoặc mẫu bạn yêu cầu. Ngoài thao tác cơ bản, grep hỗ trợ nhiều tùy chọn nâng cao như tìm kiếm không phân biệt hoa thường, tìm kiếm đệ quy cả thư mục con, hoặc lọc kết quả thông qua biểu thức chính quy.

    Cú pháp thực thi lệnh grep như sau:

    grep [tùy chọn] 'chuỗi_cần_tìm' tên_file

    Các tùy chọn phổ biến của lệnh grep

    Các tùy chọn liên quan đến mẫu tìm kiếm:

    Tùy chọnChức năng
    -e patternChỉ định mẫu để tìm kiếm, phù hợp khi dùng nhiều mẫu.
    -GDiễn giải mẫu theo biểu thức chính quy cơ bản.
    -ESử dụng cú pháp biểu thức chính quy mở rộng.
    -PSử dụng cú pháp biểu thức chính quy tương thích Perl (PCRE).
    -f fileLấy các mẫu tìm kiếm từ một file được chỉ định.
    -iTìm kiếm không phân biệt chữ hoa, chữ thường.
    -wChỉ tìm kiếm các từ khớp hoàn toàn với mẫu.

    Tùy chọn liên quan đến hiển thị:

    Tùy chọnChức năng
    -vHiển thị các dòng không khớp với mẫu.
    -sKhông hiển thị thông báo lỗi.
    -qChế độ yên lặng, không xuất ra bất kỳ kết quả nào.
    -LChỉ liệt kê tên các file không chứa mẫu tìm kiếm.
    -lChỉ liệt kê tên các file có chứa mẫu tìm kiếm.
    -cĐếm và hiển thị số dòng khớp với mẫu thay vì hiển thị nội dung.
    -m numDừng tìm kiếm sau khi tìm thấy num dòng khớp.
    -oChỉ hiển thị phần nội dung khớp với mẫu, mỗi kết quả trên một dòng mới.
    -nHiển thị số thứ tự của dòng trước mỗi dòng kết quả.
    -bHiển thị vị trí (byte offset) của kết quả trong file.
    -HLuôn hiển thị tên file trước mỗi kết quả.
    -hKhông hiển thị tên file trong kết quả (ngược lại với -H).
    –colorTô màu cho nội dung khớp với mẫu để dễ nhận biết.
    -B numHiển thị num dòng văn bản nằm trước dòng kết quả.
    -A numHiển thị num dòng văn bản nằm sau dòng kết quả.
    -C numHiển thị num dòng văn bản trước và sau dòng kết quả.

    Trong quản trị hệ thống Linux, khi cần tìm kiếm một chuỗi ký tự nằm rải rác trong nhiều tầng thư mục con khác nhau, việc sử dụng grep với tùy chọn đệ quy là giải pháp tối ưu nhất.

    Giả sử, bạn có một cấu trúc thư mục phân cấp gồm folder1, folder2, folder3, bên trong chứa các file văn bản (text1.txt, text2.txt,…) với nội dung ngẫu nhiên để thực hành.

    Cấu trúc thư mục phân cấp
    Cấu trúc thư mục phân cấp

    Phân biệt hai tùy chọn đệ quy: -r và -R

    Để kích hoạt tính năng tìm kiếm đệ quy, grep cung cấp hai tham số chính với sự khác biệt nằm ở cách xử lý Symbolic Link:

    • Tham số -r: Tìm kiếm đệ quy trong thư mục nhưng sẽ bỏ qua các Symbolic Link trỏ đến thư mục khác.
    • Tham số -R: Tìm kiếm đệ quy và truy vết theo tất cả các Symbolic Link để đọc nội dung đích.

    iconLưu ý

    Bạn cần cẩn trọng khi dùng -R vì có thể gây lặp vô hạn nếu các link trỏ vòng tròn.

    Các trường hợp ứng dụng lệnh grep thực tế

    Trường hợp 1: Tìm kiếm trong thư mục hiện hành

    Nếu bạn không chỉ định đường dẫn cụ thể, grep sẽ mặc định quét từ vị trí bạn đang đứng và đi sâu vào các thư mục con.

    grep -R "Vietnix" 

    Hệ thống sẽ liệt kê tất cả các dòng chứa từ khóa “Vietnix” kèm theo đường dẫn file tương ứng trong toàn bộ cây thư mục hiện tại:

    Kết quả sẽ liệt kê tất cả các dòng chứa từ khóa "Vietnix"
    Kết quả sẽ liệt kê tất cả các dòng chứa từ khóa “Vietnix”

    Trường hợp 2: Tìm kiếm trong một thư mục chỉ định

    Để giới hạn phạm vi tìm kiếm trong một thư mục cụ thể (ví dụ: folder1) mà không cần phải cd vào đó, bạn thực hiện cú pháp lệnh như sau:

    grep -R "Vietnix" folder1

    Kết quả hiện ra sẽ chỉ hiển thị các kết quả tìm thấy nằm bên trong folder1 và các thư mục con:

    Kết quả tìm kiếm trong một thư mục chỉ định
    Kết quả tìm kiếm trong một thư mục chỉ định

    Trường hợp 3: Tìm kiếm đệ quy không phân biệt hoa thường

    Để đảm bảo không bỏ sót dữ liệu do sự khác biệt về chữ viết hoa/thường, ví dụ như: “Vietnix”, “VIETNIX”, “vietnix”, bạn hãy kết hợp thêm tham số -i.

    grep -Ri "vIETniX"

    Lệnh sẽ trả về tất cả các biến thể của từ khóa bất kể định dạng ký tự:

    Kết quả trả về các biến thể của từ khóa bất kể định dạng ký tự:
    Kết quả trả về các biến thể của từ khóa bất kể định dạng ký tự

    Các ứng dụng thực thế của grep trong quản trị hệ thống

    Sức mạnh của lệnh grep được phát huy rõ nét khi được kết hợp với các lệnh khác trong chuỗi lệnh (pipeline) thông qua ký tự pipe (|). Cơ chế này cho phép grep vận hành như một bộ lọc chuyên dụng, xử lý và tinh lọc đầu ra của một lệnh trước khi hiển thị cho người dùng hoặc chuyển tiếp tiếp tục cho lệnh kế tiếp trong chuỗi.

    Một trong những ứng dụng thực tế phổ biến và hữu ích nhất là kiểm tra xem một chương trình hoặc dịch vụ cụ thể có đang chạy trên hệ thống hay không. Điều này được thực hiện bằng cách kết hợp lệnh ps để liệt kê các tiến trình đang chạy với grep.

    Ví dụ: Để kiểm tra xem dịch vụ web server tomcat có đang hoạt động hay không, bạn có thể chạy lệnh sau:

    ps aux | grep tomcat
    • ps aux: Lệnh này liệt kê tất cả các tiến trình đang chạy trên hệ thống.
    • |: Ký tự pipe, lấy toàn bộ đầu ra của lệnh ps aux và chuyển làm đầu vào cho lệnh grep.
    • grep tomcat: Lệnh grep sẽ lọc qua đầu vào đó và chỉ hiển thị những dòng có chứa chuỗi “tomcat”.

    Kết quả trả về sẽ cho bạn biết thông tin chi tiết về tomcat nếu tiến trình đang chạy, bao gồm cả ID tiến trình (PID), giúp bạn dễ dàng thực hiện các thao tác quản lý khác như dừng hoặc khởi động lại dịch vụ.

    grep được ứng dụng phổ biến trong quản trị hệ thống
    grep được ứng dụng phổ biến trong quản trị hệ thống (nguồn: Internet)

    Câu hỏi thường gặp

    Làm sao để kết hợp nhiều mẫu tìm kiếm phức tạp trong một lệnh grep duy nhất?

    Bạn có thể dùng tùy chọn -e nhiều lần hoặc sử dụng biểu thức chính quy mở rộng với -E.

    Grep xử lý tốt nhất với những định dạng file nào, có cần lưu ý gì khi lọc dữ liệu lớn không?

    Grep hoạt động tốt nhất với các file văn bản dạng thô. Khi lọc dữ liệu lớn, nên dùng thêm các tùy chọn như –color, -n hoặc chuyển hướng đầu ra qua less/more để dễ theo dõi. Đối với file nhị phân hoặc mã hóa đặc biệt, bạn nên kiểm tra kỹ encoding trước khi grep.

    Khi grep phải xử lý các file dung lượng lớn , làm thế nào để giảm tải tài nguyên và tăng tốc tìm kiếm?

    Bạn nên kết hợp với lệnh head, tail, hoặc lọc bớt kết quả với -m (giới hạn số dòng) hoặc chỉ grep vào những file thực sự cần thiết thay vì toàn bộ thư mục, giúp giảm áp lực lên CPU và bộ nhớ:
    grep -m 10 “error” largefile.log
    Lệnh này chỉ lấy 10 dòng đầu tiên khớp với mẫu “error”, giúp quá trình xử lý nhanh chóng hơn.

    Với khả năng lọc thông tin nhanh chóng, chính xác, grep đặc biệt hữu ích khi thao tác trên tập dữ liệu lớn hoặc trong môi trường quản trị hệ thống phức tạp. Bên cạnh đó, việc kết hợp grep với các lệnh khác qua pipeline giúp tăng hiệu quả xử lý, đồng thời đa dạng hoá các kịch bản ứng dụng thực tế. Mời bạn tham khảo thêm các kiến thức và lệnh hữu ích khác trong Linux qua các bài với dưới đây của mình:

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn chi tiết cách tạo VPS Swap Linux
    Hướng dẫn chi tiết cách tạo VPS Swap Linux

    Swap File trên VPS Linux là một vùng bộ nhớ ảo được cấu hình trên ổ đĩa, đóng vai trò hỗ trợ hệ thống khi dung lượng RAM vật lý bị quá tải. Qua quá trình trực tiếp tối ưu hóa máy chủ và xử lý sự cố tràn RAM cho khách hàng, mình nhận…

    09/06/2026

    Cách tạo VPN từ VPS Linux và Window chi tiết, đơn giản
    Cách tạo VPN từ VPS Linux và Window chi tiết, đơn giản

    Tạo VPN từ VPS là quá trình thiết lập một mạng riêng ảo (VPN) bằng cách sử dụng máy chủ ảo riêng (VPS) làm điểm trung gian để kết nối an toàn và bảo mật qua Internet. Bài viết này được mình tổng hợp từ kinh nghiệm triển khai VPN cá nhân trên nhiều nền…

    09/06/2026

    Hướng dẫn cách chuyển website mã nguồn WordPress từ Hosting sang VPS chi tiết
    Hướng dẫn cách chuyển website mã nguồn WordPress từ Hosting sang VPS chi tiết

    Việc chuyển đổi website từ hosting sang VPS sẽ giúp bạn có thể toàn quyền kiểm soát theo ý mình hay hiệu suất ổn định trong quá trình vận hành. Bài viết này được mình tổng hợp từ kinh nghiệm trực tiếp di chuyển nhiều website WordPress từ shared hosting sang VPS, tập trung vào…

    09/06/2026

    Cách kiểm tra băng thông VPS chi tiết trên Linux và Windows
    Cách kiểm tra băng thông VPS chi tiết trên Linux và Windows

    Kiểm tra băng thông VPS là cần thiết để xác định tốc độ mạng thực tế, đánh giá chất lượng nhà cung cấp và đảm bảo máy chủ đáp ứng đủ nhu cầu. Bài viết này được mình tổng hợp từ kinh nghiệm đo kiểm và so sánh băng thông trên nhiều hệ thống VPS…

    09/06/2026

    linux

    lenh

    text