Làm thế nào để định dạng đầu ra của ps -p
lệnh?
Để không cho tôi thấy một cái gì đó như thế này:
PID TTY TIME CMD
nhưng chỉ là PID.
Tôi đang sử dụng Linux.
Làm thế nào để định dạng đầu ra của ps -p
lệnh?
Để không cho tôi thấy một cái gì đó như thế này:
PID TTY TIME CMD
nhưng chỉ là PID.
Tôi đang sử dụng Linux.
Câu trả lời:
Sử dụng -o
tùy chọn để chọn cột nào được hiển thị. Nếu bạn đặt =
sau tên cột, dòng tiêu đề sẽ bị chặn.
ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Sử dụng --no-headers
để có dòng tiêu đề được bỏ qua.
Đầu ra ban đầu:
ps
PID TTY TIME CMD
27027 pts/0 00:00:00 bash
27071 pts/0 00:00:00 ps
Với --no-headers
:
ps --no-headers
27027 pts/0 00:00:00 bash
27072 pts/0 00:00:00 ps
Kết hợp với -p
:
ps -p 1 --no-headers
1 ? 00:00:33 systemd
Các man
trang cho ps
rõ tài liệu này:
man ps
[snip]
--no-headers
Print no header line at all. --no-heading is an alias for this option.
=
sau tên cột cho o
cờ là một cách đa nền tảng để làm điều này. Ví dụ, ps -p ${pid} -o state=
sẽ hiển thị trạng thái quá trình cho ${pid}
, không có tiêu đề. (Đó là những gì câu trả lời được chấp nhận nêu :))
Để có được danh sách chỉ các PID sử dụng:
ps -eo pid
Xem thêm man ps
phần 'CÁC THÔNG SỐ KỸ THUẬT TIÊU CHUẨN' để biết các thuộc địa có thể.
Cá nhân tôi thích cách Solaris hiển thị các cột có thể sử dụng cho -o
đối số:
ps: option requires an argument -- o
usage: ps [ -aAdefHlcjLPyZ ] [ -o format ] [ -t termlist ]
[ -u userlist ] [ -U userlist ] [ -G grouplist ]
[ -p proclist ] [ -g pgrplist ] [ -s sidlist ] [ -z zonelist ] [-h lgrplist]
'format' is one or more of:
user ruser group rgroup uid ruid gid rgid pid ppid pgid sid taskid ctid
pri opri pcpu pmem vsz rss osz nice class time etime stime zone zoneid
f s c lwp nlwp psr tty addr wchan fname comm args projid project pset lgrp