На самом деле, это только наполовину правда.
free - это не стандартная UNIX, а команда только для Linux.Вы не найдете его ни в BSD, ни в OS X.
В этом отношении, лучший способ получить информацию о памяти - через sysctl.
Т.е. выполнить sysctl -a | grep -Ei "(hw|vm)\..*mem"
и вы поймете идею.
Чтобы использовать это программно в C, обратитесь к man sysctlbyname .
Кроме того, я не вижу, как Системный монитор GNOME помогает в OS X.
df, тем не менее, является хорошим советом.
Если вы просто планируете использовать оболочку для сбора этих данных и выберите top, прочитайте человек сверху .Вы можете вызвать top с помощью -l 1, чтобы получить только один образец, и ограничить таблицу процессов, скажем, 20 процессами с помощью -n 20. Имейте в виду, что вы не получите значения ЦП для процессов, использующих только образец, причина описанана странице man.
Простой пример получения некоторой информации о памяти из верхней части (только полные строки):
top -l1 -n 20 | grep -Ei "mem|vm"
Надеюсь, это поможет.