Hướng dẫn sử dụng lệnh pgrep trên Linux cho người mới bắt đầu

Những điểm chính

 

Tìm hiểu lệnh pgrep trong Linux: Nắm được pgrep là gì và nguyên lý hoạt động cơ bản của lệnh này.

 

Biết cách sử dụng pgrep từ cơ bản đến nâng cao: Có thể áp dụng pgrep linh hoạt trong nhiều tình huống quản trị hệ thống.

 

Các lệnh thay thế pgrep: Làm quen với một số công cụ tương tự để có thêm lựa chọn.

 

Cách xử lý lỗi thường gặp: Biết cách nhận diện và sửa các lỗi phổ biến khi dùng pgrep.

 

Vai trò thực tế của pgrep: Hiểu được tầm quan trọng của lệnh trong việc quản lý tiến trình Linux.

 

Lệnh pgrep Linux là gì?

 

Lệnh pgrep là một tiện ích dòng lệnh dùng để tìm kiếm tiến trình đang chạy dựa trên tên hoặc các điều kiện lọc cụ thể. Thay vì phải kết hợp ps với grep để lọc thủ công, pgrep cho phép bạn thực hiện thao tác này nhanh hơn chỉ bằng một lệnh ngắn gọn.

 

Linux, pgrep, Lệnh pgrep trên Linux

 

Cú pháp cơ bản của pgrep như sau:

 

pgrep [tùy_chọn] tên_tiến_trình

 

Ví dụ:

 

pgrep bash

 

Lệnh trên sẽ trả về danh sách PID của toàn bộ tiến trình bash đang chạy.

 

Ngoài cách sử dụng cơ bản, pgrep còn hỗ trợ nhiều tùy chọn mạnh mẽ giúp lọc theo user, group, terminal hoặc thời gian khởi chạy.

 

Cách sử dụng lệnh pgrep Linux cơ bản

 

Lệnh pgrep thuộc bộ công cụ procps hoặc procps-ng, vốn cung cấp các tiện ích quản lý tài nguyên và giám sát hệ thống.

 

Tên gọi pgrep thực chất là sự kết hợp của:

 

ps — hiển thị trạng thái tiến trình


grep — lọc chuỗi văn bản

 

Ở mức cơ bản, pgrep quét toàn bộ process hiện có và in ra PID của các tiến trình phù hợp.

 

Nếu không tìm thấy kết quả, lệnh trả về exit code là 1.

 

Ví dụ:

 

pgrep sshd

 

Lệnh này sẽ hiển thị PID của toàn bộ tiến trình sshd, tiến trình chịu trách nhiệm xử lý kết nối SSH.

 

Ưu điểm của pgrep là:

 

• Cú pháp ngắn gọn


• Dễ nhớ


• Cho kết quả nhanh


• Không cần lọc thủ công bằng pipeline dài

 

Lưu ý: mặc định pgrep tìm theo tên process. Nếu tên process không khớp hoàn toàn, kết quả có thể không như mong đợi. Khi cần tìm theo toàn bộ command line, bạn nên dùng flag -f.

 

Linux, pgrep, Lệnh pgrep trên Linux

 

Cách sử dụng lệnh pgrep Linux nâng cao

 

Khi đã quen với thao tác cơ bản, bạn có thể tận dụng các flag nâng cao để lọc tiến trình chính xác hơn.

 

Tùy chọn Chức năng Ví dụ
-l Hiển thị PID kèm tên process pgrep -l sshd
-u Lọc theo user pgrep -u root sshd
-n Lấy process mới nhất pgrep -n bash
-o Lấy process cũ nhất pgrep -o bash
-v Loại trừ kết quả khớp pgrep -v sshd
-x Khớp chính xác tên pgrep -x bash
-f Tìm theo command line pgrep -f "bash -c"
-P Tìm process con theo PID cha pgrep -P 1
-g Lọc theo process group pgrep -g 1
-t Lọc theo terminal pgrep -t pts/0

 

Dưới đây là một vài ví dụ thực tế.

 

Tìm theo toàn bộ command line với -f

 

pgrep -f "bash -c"

 

Lệnh này sẽ tìm tất cả process có chứa chuỗi bash -c trong dòng lệnh thực thi.

 

Tìm theo user với -u

 

pgrep -u root sshd

 

Chỉ hiển thị các process sshd thuộc user root.

 

Hiển thị PID kèm tên process

 

pgrep -l sshd

 

Cách này giúp bạn xem PID tương ứng với từng process rõ ràng hơn.

 

Các lệnh thay thế cho pgrep

 

Dù pgrep rất tiện lợi, Linux vẫn có nhiều công cụ khác cho chức năng tương tự.

 

pidof

 

Lệnh pidof dùng để lấy PID của chương trình đang chạy.

 

Ví dụ:

 

pidof sshd

 

Ưu điểm:

 

• Nhanh


• Cú pháp đơn giản

 

Nhược điểm:

 

• Ít tùy chọn nâng cao

 

ps kết hợp grep

 

Bạn cũng có thể dùng:

 

ps aux | grep sshd

 

Cách này hiển thị nhiều thông tin chi tiết hơn:

 

• PID


• CPU


• RAM

 

• Thời gian chạy


• Command line

 

So sánh nhanh:

 

pidof: nhanh, đơn giản

 

ps | grep: chi tiết nhưng dài dòng


pgrep: cân bằng giữa đơn giản và linh hoạt

 

Các lỗi thường gặp khi dùng pgrep

 

1. Không có kết quả trả về

 

Đây là lỗi phổ biến nhất.

 

Nguyên nhân thường do:

 

• Sai tên process


• Khác chữ hoa/chữ thường

 

• Process đã dừng

 

Cách xử lý:

 

Dùng -f để tìm theo command line.

 

pgrep -f MyProcess

 

2. Trả về quá nhiều kết quả

 

Điều này thường xảy ra với process phổ biến như python, node, sshd.

 

Cách khắc phục:

 

• Dùng -u để lọc theo user

 

• Dùng -x để khớp chính xác

 

Ví dụ:

 

pgrep -u root -x sshd

 

Vai trò của pgrep trong quản lý tiến trình Linux

 

Trong Linux, mỗi chương trình đang chạy đều được gán một PID (Process ID) riêng biệt. PID giúp hệ điều hành quản lý tài nguyên, theo dõi hoạt động và điều phối tiến trình.

 

Lệnh pgrep giúp xác định nhanh PID dựa trên các tiêu chí lọc, từ đó hỗ trợ rất tốt trong quản trị server và tự động hóa shell script.

 

Ví dụ: tìm tất cả tiến trình của user root.

 

pgrep -u root

 

Một ví dụ khác trong shell script để kiểm tra dịch vụ SSH:

 

if pgrep -x "sshd" > /dev/null; then

    echo "sshd is running"

else

    echo "sshd is not running"

fi

 

Script trên sẽ kiểm tra xem tiến trình sshd có đang chạy hay không.

 

Ngoài ra, pgrep thường được dùng cùng:

 

pkill — kết thúc process theo tiêu chí lọc


ps — xem chi tiết tiến trình


top — giám sát process theo thời gian thực

 HỖ TRỢ TRỰC TUYẾN