line="I have a nice car"
fields=$(echo "$line" | awk '{ print $2 " " $4 }')
Это разделяет пробелы. Если вместо этого вам нужны позиции символов, используйте cut
.
Все верно:ps
показывает кибибайты, как и /proc/.../status
. 610 МБ (624 480 КБ )— виртуальный размер процесса, который представляет собой общий объем адресного пространства, зарезервированного (в его собственных сопоставлениях ). 9,9 МБ — это его резидентный размер, то есть объем памяти, который он фактически использует.
Для получения более подробной информации см. Необходимо пояснение по размеру резидентного набора/виртуальному размеру .
Установите пакет smem
, если он у вас еще не установлен. Это самое точное. ps -eo pid,command,rss
и ps -eo pid,command,size
немного неточны, поскольку они могут сообщать либо о недостаточном, либо о слишком большом количестве памяти, которая фактически выделена.
smem
показывает PID, User, Command, Swap, USS, PSS и RSS. Запустите его и обратите внимание на столбец PSS
. Это фактическое количество используемой физической памяти, а также правильное количество разделяемой памяти, которая фактически используется. Если вам нужны только PID, Command и PSS, вы можете передать их в awk
. Для меня это столбцы 1, 3 и 6.
smem | awk '{print $1,$3,$6}'