Với các quản trị viên hệ thống, PS là một lệnh được sử dụng thường xuyên và khá quan trọng trong hệ điều hành Linux. Vậy lệnh PS trong Linux có tác dụng gì?
Lệnh PS là gì?
Khái niệm lệnh PS
PS (hay Process Status) là một tiện ích của hệ điều hành Unix/Linux, được dùng để xem thông tin của các tiến trình đang hoạt động trong hệ thống. Có thể nói đây là lệnh quan trọng giúp bạn nắm bắt được chuyện gì đang diễn ra trên hệ thống của bạn.
Lệnh sẽ đọc thông tin tiến trình từ một file ảo nằm trong thư mục /proc. Đồng thời cung cấp một số tùy chọn để cho bạn dễ dàng xem thông tin của các tiến trình. Một chương trình lớn có thể sẽ gồm nhiều tiến trình nhỏ khác nhau.
Về mặt cú pháp, PS hơi khác so với các lệnh lunix khác. Thông thường sẽ tuân theo quy ước UNIX, sử dụng một dấu gạch ngang duy nhất trước mỗi flag. Cho đến hiện tại, cú pháp vẫn được sử dụng rộng rãi nhất. Mặc khác, lệnh cũng có thể được hoạt động theo cú pháp BSD, lúc này dấu gạch ngang có tiền tố sẽ bị loại bỏ và sử dụng cú pháp tên flag riêng biệt. Ví dụ, flag aux sẽ thay thế cho flag -ef .
Trường hợp nào cần dùng lệnh PS?
Lệnh PS sẽ được phát huy trong các trường hợp khi bạn cần xử lý một vài sự cố và phản hồi của người dùng về tình trạng máy bị treo hoặc khi nghi ngờ có các tiến trình lạ do bị xâm nhập trái phép. Do đó, một trong các bước kiểm tra căn bản khi có vấn đề là quan sát các tiến trình thông qua lệnh PS.
Lệnh PS trong Linux có tác dụng gì?
Dưới đây là một số công dụng cũng như câu lệnh cụ thể của lệnh PS trên hệ điều hành Linux.
Hiển thị tất cả các tiến trình
ps -ef
Lệnh PS được sử dụng hiển thị tất cả các tiến trình đang chạy với dữ liệu đầy đủ nhất cho mỗi tiến trình. Dữ liệu này sẽ gồm các cột hiển thị PID, loại terminal (TTY), thời gian thực hiện và tên lệnh. Đây là công dụng phổ biến nhất của lệnh PS.
Lọc theo người dùng
ps -e -u userName
Lệnh PS cho phép lọc kết quả và hiển thị các tiến trình thuộc sở hữu của username được chỉ định. Các quản trị hệ thống có thể dùng lệnh này mà không cần tiền tố.
Lọc theo tên tiến trình
ps -C name
Hỗ trợ lọc kết quả theo tên tiến trình là một công dụng khá hữu ích của lệnh PS. Trong quá trình tìm kiếm, lệnh sẽ không phân biệt chữ hoa chữ thường, nhưng sau khi đã lọc xong tên các tiến trình đều ở dạng chữ thường. Lệnh PS sẽ thực hiện tìm kiếm thông qua tất cả các tiến trình không có tiền tố -e.
Lọc theo ID tiến trình
ps -ef -p 1234,5678,9012
Bạn cũng có thể hiển thị tiến trình đang chạy nếu biết ID của chúng và cho phép bạn lọc một cách cụ thể bằng flag -p. Lệnh này có thể lấy nhiều PID để làm đối số và được phân tách bằng dấu phẩy đồng thời không có khoảng trắng.
Chuyển kết quả sang grep
ps -ef | grep worker
Để tạo sự linh hoạt khi tìm kiếm các kết quả từ PS, bạn có thể chuyển kết quả sang grep. Mặc dù đây là một sự kết hợp của nhiều lệnh, chứ không phải chỉ có một lệnh PS thuần túy, nhưng cũng rất bình thường của bất kỳ công cụ quản trị viên nào. Với grep, bạn có thể tìm kiếm bằng các biểu thức thông thường nhằm tìm ra kết quả khớp với mẫu.
Hiển thị các cột cụ thể
ps -e -o pid,uname,pcpu,pmem,comm
Lệnh flag -o giúp thiết lập và tùy chọn các hiển thị đầu ra một cách cụ thể cho những kết quả của lệnh PS.
Sắp xếp các tiến trình dựa trên cách sử dụng
ps -e –sort=-pcpu -o pid,pcpu,comm
Có thể sử dụng lệnh flag -o với mục đích hiển thị các cột theo dạng liên kết. Kết quả hiển thị đầu ra là kết quả chưa sắp xếp, nếu muốn hiển thị kết quả theo thứ tự tăng dần hoặc giảm dần , bạn cần phải sử dựng thêm tiền tố (+) hoặc (-) trong câu lệnh.
Đổi tên tiêu đề cột
ps -o pid=Process,ruser=RealUser,comm=Command
Vẫn sử dụng câu lệnh flag -o để hiển thị tên cột, sau đó bạn có thể thể đổi tên các cột vừa hiển thị bằng cách thêm dấu “=” . Hơn nữa, tiêu đề cũng có thể được ẩn đi trong những cột cụ thể bằng cách để trống phần tên sau dấu “=”.
Hiển thị kết quả theo dạng cây phân cấp
ps -e –forest
Lệnh PS còn cho phép bạn sử dụng bảng mã ASCII để hiển thị tiến trình tạo cấu trúc kiểu cây, hiển thị những tiến trình con của các tiến trình lớn, đồng thời cho phép tùy chỉnh sắp xếp theo mong muốn của người dùng.
Để Để ẩn các tiến trình còn con, hãy sử dụng -H thay cho –forest trong câu lệnh.
Hiển thị các thread bên trong tiến trình
ps -p 4041 -L
Câu lệnh flag –L cho phép chuyển đổi việc hiển thị cho mọi chức năng của PS trên màn hình. Lệnh này khá hữu ích khi theo dõi các thread của một tiến trình cụ thể.
Hiển thị tất cả các tiến trình root
ps -f -U root -u root
Với câu lệnh flag -f sẽ hỗ trợ bạn tìm kiếm tất cả các tiến trình root đang hoạt động. Bên cạnh đó, bạn có thể kết hợp với flag -o để sắp xếp thứ tự đầu ra theo mong muốn.
Qua bài viết trên, chắc hẳn bạn cũng đã biết những công dụng chính của lệnh PS trong Linux. Đây là một trong những lệnh được sử dụng phổ biến nhất khi khắc phục sự cố trên các hệ thống Linux. Nếu bạn đang tìm kiếm một hệ điều hành có giá rẻ, phù hợp cho lập trình viên, Linux là một lựa chọn hoàn hảo nhất.
FAQs về lệnh PS trong Linux
Thực hiện lệnh PS có phức tạp không?
Lệnh PS chỉ là một tiện ích của Unix/Linux dùng để xem thông tin của các tiến trình đang chạy trong hệ thống. Do đó, việc thực hiện các lệnh PS đối với các lập trình viên rất đơn giản.
Linux là gì?
Hệ điều hành Linux xuất hiện vào năm 1991, Đây là hệ điều hành được phát triển dựa trên Unix, gồm nhiều mã nguồn mở.
Cùng với 2 hệ điều hành lớn là Windows và Mac OS, Linux là một trong những hệ điều hành đang được sử dụng rộng rãi trên thế giới hiện nay.
Để làm quen với Linux cần biết các lệnh nào?
Các lệnh dưới đây sẽ giúp người dùng Linux làm quen với tài khoản Linux của mình.
- Pwd: Lệnh dùng để hiển thị vị trí hiện tại của người dùng trong hệ thống tệp tin.
- Whoami: Giúp hiển thị tên người dùng
- Ls: Cung cấp một danh sách các tệp tin. Với tham số là -a, lệnh hiển thị các tệp tin có tên bắt đầu bằng dấu chấm (ví dụ: .bashrc). Với tham số là -l, lệnh hiển thị kích thước tập tin và thời gian cập nhật gần nhất.
- Env: Hiển thị một số cài đặt môi trường người dùng (ví dụ: đường dẫn tìm kiếm, kích thước phần lịch sử được lưu lại, thư mục chính, v.v…)
- History: Giúp liệt kê các lệnh đã đưa ra trước đó.
- Passwd: Thay đổi mật khẩu.
Hệ điều hành Linux có những điểm yếu gì?
- Giao diện lạ, không được thân thiện nên bạn phải cần nhiều thời gian để làm quen
- Kho ứng dụng và những tiện ích của hệ điều hành này còn hạn chế. Hơn nữa, một số nhà sản xuất không hỗ trợ driver trên nền tảng Linux.
- Linux không phù hợp để chạy một số ứng dụng văn phòng hay thiết kế như MS word, Excel, Powerpoint, Photoshop