我想按内存对所有进程进行排序
me@host:~$ ps au | sort -r -k 5 | head -10 | sed "s/$USER/me/g"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
me 2312 0.0 0.1 958148 5568 tty2 Sl+ Mar11 0:00 /usr/lib/evolution/evolution-data-server/evolution-alarm-notify
me 2232 0.0 0.2 957248 7912 tty2 Sl+ Mar11 0:01 /usr/lib/gnome-settings-daemon/gsd-media-keys
me 2292 0.0 0.3 949556 11924 tty2 Sl+ Mar11 0:15 nautilus-desktop
me 3308 0.0 0.0 918708 2596 pts/0 Sl Mar11 0:04 /home/me/.lantern/bin/lantern
me 4728 0.1 0.5 872048 21648 tty2 Sl+ Mar11 1:00 gnome-control-center
me 2223 0.0 0.2 833712 8656 tty2 Sl+ Mar11 0:04 /usr/lib/gnome-settings-daemon/gsd-color
me 14638 0.0 0.2 83136 10400 pts/0 S+ 13:25 0:00 aria2c https://repo.anaconda.com/archive/Anaconda3-2018.12-MacOSX-x86_64.pkg
me 1799 1.8 1.2 745516 49592 tty2 Sl+ Mar11 17:36 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
me 3587 0.0 0.4 736908 16952 tty2 Sl+ Mar11 0:32 /opt/google/chrome/chrome --type=renderer --field-trial-handle=9889395698754715859,17788752790984658481,131072 --service-pipe-token=121279454012343526 --lang=en-US --enable-crash-reporter=41f7a813-8595-4f48-8ba9-5b4493af761c, --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --num-raster-threads=2 --enable-main-frame-before-activation --service-request-channel-token=121279454012343526 --renderer-client-id=22 --no-v8-untrusted-code-mitigations --shared-files=v8_context_snapshot_data:100,v8_natives_data:101
观察第5个字段,判断83136大于745515
我添加了“--numeric-sort”
me@host:~$ ps au | sort -rn -k 5 | head -10 | sed "s/$USER/me/g"
me 2048 1.3 3.6 3324476 143932 tty2 Sl+ Mar11 12:30 /usr/bin/gnome-shell
me 3323 0.7 5.3 2110972 210872 pts/0 Sl Mar11 6:54 /home/me/.lantern/bin/lantern
me 3217 0.1 3.1 1834724 124076 tty2 Sl+ Mar11 1:02 /opt/google/chrome/chrome --type=renderer --field-trial-handle=9889395698754715859,17788752790984658481,131072 --service-pipe-token=14274241015953851945 --lang=en-US --enable-crash-reporter=41f7a813-8595-4f48-8ba9-5b4493af761c, --extension-process --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --num-raster-threads=2 --enable-main-frame-before-activation --service-request-channel-token=14274241015953851945 --renderer-client-id=5 --no-v8-untrusted-code-mitigations --shared-files=v8_context_snapshot_data:100,v8_natives_data:101
me 2932 1.0 4.3 1463616 172764 tty2 SLl+ Mar11 9:54 /opt/google/chrome/chrome
me 2700 0.0 2.3 1263084 93984 tty2 SLl+ Mar11 0:14 /usr/bin/gnome-software --gapplication-service
me 2312 0.0 0.1 958148 5568 tty2 Sl+ Mar11 0:00 /usr/lib/evolution/evolution-data-server/evolution-alarm-notify
me 2232 0.0 0.1 957248 7632 tty2 Sl+ Mar11 0:01 /usr/lib/gnome-settings-daemon/gsd-media-keys
me 2292 0.0 0.6 949556 26132 tty2 Sl+ Mar11 0:15 nautilus-desktop
me 3308 0.0 0.0 918708 2584 pts/0 Sl Mar11 0:04 /home/me/.lantern/bin/lantern
me 4728 0.1 0.5 872048 21588 tty2 Sl+ Mar11 1:00 gnome-control-center
但领队描述消失了
我怎样才能对输出进行排序但立即让第一行占据主导地位?
答案1
“ps”命令本身支持排序。您无需将其传输到单独的“sort”命令(该命令会删除标题)。
根据常驻内存进行排序,
ps au --sort -rss | head -10
或者对于虚拟内存,
ps au --sort -vsz | head -10
我相信第二种选择符合您想要实现的目标。
答案2
你可以做
ps au | (read -r; printf "%s\n" "$REPLY"; sort -r --numeric-sort -k 5)| head -10 | sed "s/$USER/me/g
您可以找到更多答案这里