Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Grep command: Hướng dẫn tìm kiếm file nhanh trên Linux

Giới thiệu về lệnh grep

Lệnh grep là một trong những công cụ mạnh mẽ nhất trên Linux/Unix để tìm kiếm chuỗi ký tự trong file hoặc toàn bộ thư mục. Đây là "vũ khí" không thể thiếu của lập trình viên, DevOps, sysadmin khi cần tra cứu, debug, hoặc phân tích log nhanh chóng.

grep là gì?

  • grep: Viết tắt của "Global Regular Expression Print".
  • Cho phép tìm kiếm theo pattern (chuỗi hoặc regex) trong file, thư mục, hoặc output của lệnh khác.
  • Có thể kết hợp với nhiều tuỳ chọn để lọc, hiển thị, xuất kết quả linh hoạt.

Các tuỳ chọn phổ biến của grep

Tuỳ chọn Ý nghĩa
-r Tìm đệ quy trong thư mục con
-n Hiển thị số dòng
-w Match nguyên từ (word)
-l Chỉ in ra tên file
-E Cho phép dùng regex nâng cao
--include Chỉ tìm trong file khớp pattern
-e Pattern cần tìm

Ứng dụng thực tế: Quản trị hệ thống, web server, logs

Lệnh grep cực kỳ hữu ích cho DevOps, sysadmin khi cần xử lý log, kiểm tra cấu hình, hoặc debug hệ thống.

1. Tìm lỗi trong log web server

Ví dụ: Tìm tất cả dòng có lỗi 500 trong file log Apache/nginx:

grep "500" /var/log/nginx/access.log

Hoặc tìm lỗi cụ thể:

grep "ERROR" /var/log/app.log

2. Tìm IP truy cập nhiều nhất

grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

3. Tìm cấu hình web server

Ví dụ: Tìm tất cả dòng cấu hình server_name trong file cấu hình nginx:

grep "server_name" /etc/nginx/sites-enabled/*.conf

4. Tìm user đăng nhập thất bại trong log hệ thống

grep "Failed password" /var/log/auth.log

5. Tìm tất cả file cấu hình chứa chuỗi "proxy_pass"

grep -rnw /etc/nginx/ -e "proxy_pass"

6. Tìm log theo thời gian

Ví dụ: Tìm log ngày 2026-02-26

grep "2026-02-26" /var/log/nginx/access.log

Các ví dụ trên đều là tình huống thực tế trong quản trị hệ thống, giúp bạn xử lý sự cố, kiểm tra bảo mật, tối ưu server nhanh chóng.


So sánh grep và ripgrep

Tiêu chí grep ripgrep (rg)
Tốc độ Trung bình Rất nhanh
Hỗ trợ regex
Ignore .gitignore Không
Cài đặt Có sẵn trên Linux Cần cài thêm
Syntax Đơn giản Tương tự grep
Tìm kiếm lớn Chậm hơn Tối ưu cho project lớn

Một số tips nâng cao với grep

1. Tìm nhiều pattern cùng lúc

grep -E "pattern1|pattern2" file.txt

2. Tìm không phân biệt hoa thường

grep -i "pattern" file.txt

3. Kết hợp với các lệnh khác

cat file.txt | grep "pattern"

4. Xuất kết quả ra file

grep "pattern" file.txt > result.txt

Kết luận

Lệnh grep là công cụ cực kỳ mạnh mẽ, giúp bạn tiết kiệm hàng giờ đồng hồ khi làm việc với code, log, hoặc bất kỳ file text nào. Nếu project lớn, hãy thử ripgrep để tăng tốc tìm kiếm. Hãy luyện tập grep mỗi ngày để thành "grep ninja"!