実行中ps ux
は、プロセス情報のニースリストを返します。grep
またはwatch
を使用すると簡単です。ただし、メモリ使用量の出力にはそれほど柔軟性がないようです。 RSS
(常駐セットサイズ)はkBで出力されます。これは、大規模なプロセスでは(特に一目で)読み取るのが難しいため、%MEM
は100
×RSS
/system_memory
。
du
ユーティリティには素敵な-h
よりユーザーフレンドリーな方法でスペースを出力するフラグ。 ps
に相当するものを見つけることができませんでした。これを達成できる特別なフォーマットのトリックはありますか?
ps ux | numfmt --header --to=iec --field 5,6 --padding 6
Coreutils> = 8.25が必要です
私は個人的にこれを好む:
ps -eo pmem,comm,pid,maj_flt,min_flt,rss,vsz --sort -rss | numfmt --header --to=iec --field 4-5 | numfmt --header --from-unit=1024 --to=iec --field 6-7 | column -t | head
ps
には適切なフラグがないようです。そのため、別のツール(私はhtop
を好みます)を使用するか、ps
出力を少し混乱させる必要があります。 ps
を使い続けたいと思います。ここに私が例として作った汚い小さなスクリプトがあります:
# get terminal width
WIDTH=`tput cols`
# pipe stdin to awk
cat | \
awk '\
BEGIN {
# set output format
CONVFMT="%.2f"
}
NR==1 {
# search first line for columns that need to be converted from K to M
for (i=1;i<=NF;i++)
# add condition for new columns if you want
if ($i=="VSZ" || $i=="RSS") {
# column numbers are stored in an array
arr[i]=i;
$i = $i "(MB)"
}
}
NR > 1 {
# edit appropriate columns
for (i in arr)
$i=$i/1024;
}
{
# print every line
print $0
}' | \
# format the output into columns and trim it to terminal width
column -t | cut -c 1-$WIDTH
ファイルに保存します。たとえば、prettyps.sh
、実行可能にします:
chmod + x prettyps.sh
次のように使用します。
pS UX | /path/to/prettyps.sh
このスクリプトを使用すると、ps出力に追加のプロセスが追加されるという欠点がありますが、それでも機能します。
$ ps ux | ./prettyps.sh USER PID%CPU%MEM VSZ(MB)RSS(MB)TTY STAT START TIME COMMAND pono 2658 0.0 0.0 358.88 4.29? Sl 02:33 0:00/usr/bin/gnome-keyring ...出力が切り捨てられました... pono 4507 0.0 0.0 19.14 1.81 pts/1 S + 03:29 0:00男性 pono 4518 0.0 0.0 10.55 0.96 pts/1 S + 03:29 0:00ポケットベル pono 4727 0.7 0.9 1143.59 53.08? SSL 04:10 0:24 /opt/sublime_text/subl pono 4742 0.1 0.4 339.05 25.80? Sl 04:10 0:03 /opt/sublime_text/plug pono 5177 0.0 0.0 19.23 1.32 pts/0 R + 05:05 0:00 ps pono 5178 0.0 0.0 4.34 0.61 pts/0 S + 05:05 0:00/bin/sh
これがあなたに合った方法を見つけるのに役立つことを願っています。
@adrianlxtへの小道具!これは私の新しいエイリアス「pss」です。
ps -eo pid,pmem,rss,vsz,comm,command --sort -rss | numfmt --header --from-unit=1024 --to=iec --field 3-4 | awk '$3 != 0'