Ví dụ sử dụng lệnh ps của Linux

Giới thiệu

Lệnh ps tạo ra một danh sách các tiến trình đang chạy trên máy tính của bạn.

Hướng dẫn này sẽ cho bạn thấy cách sử dụng lệnh ps phổ biến hơn để bạn có thể tận dụng tối đa nó.

Lệnh ps thường được sử dụng kết hợp với lệnh grep và các lệnh ít hoặc nhiều hơn .

Các lệnh bổ sung này giúp lọc và phân trang đầu ra từ ps, thường có thể khá dài.

Làm thế nào để sử dụng lệnh ps

Một lệnh ps cho thấy các tiến trình đang chạy của người dùng đang chạy nó trong một cửa sổ đầu cuối.

Để gọi ps, chỉ cần gõ như sau:

ps

Đầu ra sẽ hiển thị các hàng dữ liệu chứa thông tin sau:

PID là ID tiến trình xác định quá trình đang chạy. TTY là loại thiết bị đầu cuối.

Ngày của riêng nó lệnh ps là khá hạn chế. Bạn có thể muốn xem tất cả các tiến trình đang chạy.

Để xem tất cả các tiến trình đang chạy, sử dụng một trong các lệnh sau:

ps -A

ps -e

Để hiển thị tất cả các quy trình ngoại trừ các nhà lãnh đạo phiên chạy lệnh sau:

ps -d

Vì vậy, một nhà lãnh đạo phiên là gì? Khi một quá trình khởi động các quá trình khác, nó là người dẫn đầu phiên của tất cả các quy trình khác. Quá trình B khởi động quá trình B và quá trình C khởi động quá trình E. Khi bạn liệt kê tất cả các quy trình ngoại trừ các phiên, bạn sẽ thấy B, C, D và E nhưng không phải A.

Bạn có thể phủ nhận bất kỳ lựa chọn nào mà bạn đã chọn bằng cách sử dụng nút chuyển đổi -N. Ví dụ nếu bạn muốn chỉ xem các nhà lãnh đạo phiên chạy lệnh sau:

ps -d -N

Rõ ràng là -N không phải là rất hợp lý khi được sử dụng với các thiết bị chuyển mạch -e hoặc -A vì nó sẽ không hiển thị gì cả.

Nếu bạn chỉ muốn xem các tiến trình được kết hợp với terminal này, hãy chạy lệnh sau:

ps T

Nếu bạn muốn xem tất cả các tiến trình đang chạy bằng cách sử dụng lệnh sau:

ps r

Chọn các quy trình cụ thể bằng lệnh ps

Bạn có thể trả về các quy trình cụ thể bằng cách sử dụng lệnh ps và có nhiều cách khác nhau để thay đổi các tiêu chí lựa chọn.

Ví dụ: nếu bạn biết id quá trình, bạn có thể chỉ cần sử dụng lệnh sau:

ps -p

Bạn có thể chọn nhiều quy trình bằng cách chỉ định nhiều ID tiến trình như sau:

ps -p "1234 9778"

Bạn cũng có thể chỉ định chúng bằng cách sử dụng danh sách được phân cách bằng dấu phẩy:

ps -p 1234,9778

Cơ hội là bạn sẽ không biết ID tiến trình và tìm kiếm theo lệnh dễ dàng hơn. Để thực hiện việc này, hãy sử dụng lệnh sau:

ps -C

Ví dụ: để xem Chrome có đang chạy hay không, bạn có thể sử dụng lệnh sau:

ps -C chrome

Bạn có thể ngạc nhiên khi thấy rằng điều này trả về một quá trình cho mỗi tab đang mở.

Các cách khác để lọc kết quả theo nhóm. Bạn có thể tìm kiếm theo tên nhóm bằng cú pháp sau:

ps -G
ps --Group

Ví dụ để tìm hiểu tất cả các quy trình đang được chạy theo loại nhóm tài khoản như sau:

ps -G "tài khoản"
ps --Group "tài khoản"

Bạn cũng có thể tìm kiếm theo id nhóm thay vì tên nhóm bằng cách sử dụng chữ thường g như sau:

ps -g
ps --group

Nếu bạn muốn tìm kiếm theo danh sách ID phiên, hãy sử dụng lệnh sau:

ps -s

Hoặc sử dụng các mục sau để tìm kiếm theo loại thiết bị đầu cuối.

ps -t

Nếu bạn muốn tìm tất cả các quy trình được chạy bởi một người dùng cụ thể, hãy thử lệnh sau:

ps U

Ví dụ để tìm tất cả các tiến trình chạy bằng gary chạy như sau:

ps U "gary"

Lưu ý rằng điều này cho thấy người có thông tin đăng nhập được sử dụng để chạy lệnh. Ví dụ nếu tôi đăng nhập như gary và chạy lệnh trên nó sẽ hiển thị tất cả các lệnh do tôi chạy.

Nếu tôi đăng nhập như Tom và sử dụng sudo để chạy một lệnh như tôi thì lệnh trên sẽ hiển thị lệnh của Tom như được chạy bởi gary chứ không phải tom.

Để giới hạn danh sách chỉ là các tiến trình thực sự chạy bằng cách sử dụng lệnh sau đây:

ps -U "gary"

Định dạng đầu ra lệnh ps

Theo mặc định, bạn nhận được 4 cột giống nhau khi bạn sử dụng lệnh ps:

Bạn có thể lấy danh sách đầy đủ bằng cách chạy lệnh sau:

ps -ef

-E như bạn biết cho thấy tất cả các quy trình và f hoặc -f hiển thị đầy đủ chi tiết.

Các cột được trả về như sau:

User ID là người chạy lệnh. PID là ID tiến trình của lệnh lệnh. PPID là quá trình cha mẹ khởi động lệnh.

Cột C cho biết số lượng trẻ em có một quy trình. STime là thời gian bắt đầu cho quá trình. TTY là thiết bị đầu cuối, thời gian là khoảng thời gian cần thiết để chạy và lệnh là lệnh được chạy.

Bạn có thể nhận được nhiều cột hơn bằng cách sử dụng lệnh sau:

ps -eF

Điều này trả về các cột sau:

Các cột bổ sung là SZ, RSS và PSR. SZ là kích thước của quá trình, RSS là kích thước bộ nhớ thực và PSR là bộ xử lý mà lệnh được gán cho.

Bạn có thể chỉ định định dạng do người dùng xác định bằng cách sử dụng công tắc sau:

ps -e --format

Các định dạng có sẵn như sau:

Có nhiều tùy chọn hơn nhưng đây là những tùy chọn phổ biến nhất.

Để sử dụng các định dạng, hãy nhập như sau:

ps -e --format = "uid uname cmd thời gian"

Bạn có thể trộn và kết hợp các mục như bạn mong muốn.

Sắp xếp đầu ra

Để sắp xếp đầu ra, hãy sử dụng ký hiệu sau:

ps -ef --sort

Lựa chọn các tùy chọn sắp xếp như sau:

Một lần nữa có nhiều tùy chọn hơn nhưng đây là những tùy chọn phổ biến nhất.

Một lệnh sắp xếp ví dụ như sau:

ps -ef --sort người dùng, pid

Sử dụng ps Với grep, càng ít lệnh

Như đã đề cập ở đầu nó là phổ biến để sử dụng ps với grep, ít hơn và nhiều hơn nữa lệnh.

Các lệnh ít hơn và nhiều hơn nữa sẽ giúp bạn sàng lọc thông qua các kết quả một trang tại một thời điểm. Để sử dụng các lệnh này, chỉ cần đặt đầu ra từ grep vào chúng như sau:

ps -ef | hơn
ps -ef | ít hơn

Lệnh grep giúp bạn lọc các kết quả từ lệnh ps.

Ví dụ:

ps -ef | grep chrome

Tóm lược

Lệnh ps thường được sử dụng để liệt kê các tiến trình trong Linux. Bạn cũng có thể sử dụng lệnh trên cùng để hiển thị các tiến trình đang chạy theo cách khác.

Bài viết này đã đề cập đến các nút chuyển chung nhưng có nhiều tùy chọn định dạng và khả dụng hơn.

Để tìm hiểu thêm, hãy đọc các trang người dùng Linux cho lệnh ps.