Trong hệ điều hành Linux, quản lý và theo dõi các tiến trình là một nhiệm vụ quan trọng đối với người dùng, đặc biệt là các quản trị viên hệ thống.
Lệnh ps (process status) là một công cụ mạnh mẽ và linh hoạt, giúp hiển thị thông tin chi tiết về các tiến trình đang chạy trên hệ thống. Hãy cùng https://thuecloudvps.net/ tìm hiểu về lệnh ps trong Linux này nhé.
1. Lệnh ps trong Linux là gì?
Lệnh ps (process status) trong Linux là một công cụ được sử dụng để hiển thị thông tin về các tiến trình (process) đang chạy trên hệ thống. Đây là một trong những lệnh quản lý tiến trình cơ bản nhất, cho phép người dùng xem các thông tin như PID (Process ID), tên tiến trình, trạng thái, thời gian chạy, và tài nguyên mà tiến trình sử dụng.
Các tính năng chính của lệnh ps
:
– Hiển thị thông tin tiến trình hiện tại: Mặc định, ps
chỉ hiển thị các tiến trình thuộc về người dùng hiện tại và đang chạy trong cùng một terminal.
– Theo dõi tiến trình cụ thể: Lệnh này có thể được kết hợp với các tùy chọn để lọc hoặc tìm kiếm thông tin về một tiến trình cụ thể dựa trên PID hoặc tên tiến trình.
– Kết hợp nhiều tùy chọn: Bằng cách sử dụng các tùy chọn khác nhau như -e
, -f
, hoặc aux
, lệnh ps
có thể cung cấp thông tin chi tiết và linh hoạt hơn.
2. Các lệnh ps trong Linux?
* Cú pháp cơ bản của lệnh ps như sau:
$ ps [OPTIONS]
Và ta có thể thử một số câu lệnh bao gồm:
- ps -ef or ps -aux: Liệt kê các tiến trình đang chạy ở định dạng đầy đủ
- ps -ax: Liệt kê các tiến trình đang chạy
- ps -u <username>:Liệt kê các quy trình cho một người dùng cụ thể
- ps -C <command>: Liệt kê các tiến trình cho một lệnh nhất định
- ps -p <PID>: Liệt kê các tiến trình có PID đã cho
- ps -ppid <PPID>: Liệt kê các tiến trình có ID tiến trình cha ( PPID ) nhất định
- pstree : Hiển thị các quy trình trong một hệ thống phân cấp
- ps -L: Liệt kê tất cả các luồng cho một quy trình cụ thể
- ps –sort pmem: Tìm rò rỉ bộ nhớ
- ps -eo: Hiển thị thông tin bảo mật
- ps -U root -u root u: Hiển thị các tiến trình đang chạy bởi root
* Liệt kê tất cả các tiến trình đang chạy:
Để xem tất cả các tiến trình hiện đang chạy trên hệ thống, hãy sử dụng lệnh sau:
$ ps -ef
UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jan31 ? 00:00:00 /sbin/init splash root 2 0 0 Jan31 ? 00:00:00 [kthreadd] root 3 2 0 Jan31 ? 00:00:00 [rcu_gp] root 4 2 0 Jan31 ? 00:00:00 [rcu_par_gp] root 5 2 0 Jan31 ? 00:00:00 [kworker/0:0-events] ...
* Liệt kê tất cả các quy trình đang chạy được lọc theo mức sử dụng CPU hoặc bộ nhớ:
Lọc theo mức sử dụng CPU hoặc bộ nhớ, hãy sử dụng lệnh sau:
$ pd-aux
Trong kết quả đầu ra ở trên, %CPU hiển thị mức sử dụng CPU hiện tại của quy trình, %MEM hiển thị mức sử dụng bộ nhớ của quy trình, VSZ là kích thước của bộ nhớ ảo và RSS là kích thước của nhóm lưu trú.
* Liệt kê các quy trình cho một người dùng cụ thể:
$ ps -u <username>
Ví dụ, để xem tất cả các tiến trình cho người dùng root , hãy sử dụng lệnh sau:
$ ps -u root
* Danh sách các quy trình cho một lệnh cụ thể:
Để xem tất cả các tiến trình đang chạy cho một lệnh cụ thể, hãy sử dụng lệnh sau:
$ ps -C <command>
Để xem tất cả các tiến trình đang chạy cho lệnh python , hãy sử dụng lệnh sau:
$ ps -C python
* Liệt kê các quy trình có PID đã cho:
Để xem quy trình có PID nhất định , hãy sử dụng lệnh sau:
$ ps -p <PID>
Ví dụ, để xem quy trình có PID 123 , hãy sử dụng lệnh sau:
$ ps -p 123
3. Các ví dụ về ‘lệnh ps’ để giám sát quy trình Linux:
Để hiển thị danh sách tất cả các tiến trình đang chạy trên hệ thống Linux, hãy sử dụng lệnh sau:
ps aux
Hiển thị danh sách tất cả các quy trình với dòng lệnh đầy đủ:
ps auxf
Hiển thị danh sách tất cả các quy trình được sắp xếp theo mức sử dụng CPU:
ps aux --sort=-%cpu
Hiển thị danh sách tất cả các quy trình được sắp xếp theo mức sử dụng bộ nhớ
ps aux --sort=-%mem
Hiển thị danh sách tất cả các quy trình do một người dùng cụ thể sở hữu:
ps -u username
Hiển thị danh sách tất cả các tiến trình cho một lệnh cụ thể:
ps -C command
Hiển thị danh sách tất cả các tiến trình đang chạy trong một thiết bị đầu cuối cụ thể:
ps -t tty
Hiển thị danh sách tất cả các quy trình trong một nhóm quy trình cụ thể:
ps --pid pgid
Hiển thị danh sách tất cả các tiến trình con cho một tiến trình cha cụ thể
ps --ppid pid
Hiển thị danh sách tất cả các quy trình có tên cụ thể:
ps -C name
Hiển thị danh sách tất cả các process zombie:
ps aux | awk '$8=="Z" {print}'
Hiển thị danh sách tất cả các quy trình ở trạng thái cụ thể
ps -eo state,pid,user,command | grep state
Hiển thị danh sách tất cả các quy trình có mức độ ưu tiên cụ thể:
ps -o pid,ppid,user,nice,cmd --sort=-nice
Hiển thị danh sách tất cả các quy trình có mức độ tương thích CPU cụ thể
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm | grep <cpu>
Hiển thị danh sách tất cả các quy trình sử dụng một cổng cụ thể:
sudo lsof -i :port
Hiển thị danh sách tất cả các tiến trình đang chạy dưới dạng người dùng cụ thể
ps -U username -u username u
Hiển thị danh sách tất cả các tiến trình đang chạy trong một thư mục cụ thể
lsof +D /directory
Hiển thị danh sách tất cả các tiến trình đang chạy một tệp thực thi cụ thể
ps -C executable_name
Hiển thị danh sách tất cả các quy trình sử dụng một tệp cụ thể:
lsof /path/to/file
Hiển thị danh sách tất cả các quy trình có biến môi trường cụ thể:
ps -eo pid,user,args | grep -E '^ *PID|^ *[0-9]+ .*VARNAME=VALUE'
Hiển thị danh sách tất cả các quy trình sử dụng giao diện mạng cụ thể
sudo lsof -i -n -P | grep <interface>
Hiển thị danh sách tất cả các quy trình với định dạng cụ thể do người dùng xác định
ps -eo pid,user,%cpu,%mem,command --sort=-%mem | head
Hiển thị danh sách tất cả các tiến trình có địa chỉ bộ nhớ cụ thể:
sudo pmap -x pid | grep address
Hiển thị danh sách tất cả các quy trình có bộ lọc do người dùng xác định cụ thể
ps -eo pid,user,%cpu,%mem,command --sort=-%mem | awk '{if ($3 >= 10.0) print $0;}'
Hiển thị dạng xem cây của tất cả các quy trình
pstree
4. Cuối cùng:
Trên đây là bài viết của mình về “Các lệnh ps trong Linux? Tổng hợp tất cả lênh ps trong Linux”, chúc các bạn có các kiến thức thú vị.