Memory

從 CLI 讀取人類可讀的系統記憶體?

  • January 4, 2018

在 OS X 上,我得到了一個很好的人類可讀的系統記憶體讀取,如下所示:

printf -v system_memory \
         "$(system_profiler SPHardwareDataType \
            | awk -F ': ' '/^ +Memory: /{print $2}')"
echo "$system_memory"

列印出友好的:

4 GB

儘管這在 Linux 上是正確的:

lshw -class memory

它輸出:

size: 4096MiB

我需要痛苦地解析它並嘗試把它變成一個和上面一樣好的字元串。

我使用了錯誤的命令嗎?

如果這就是您所需要的,只需使用free

$ free -h | gawk  '/Mem:/{print $2}'
7.8G

free返回記憶體資訊,-h開關告訴它以人類可讀的格式列印。

在 Linux 上,

read x memtotal x < /proc/meminfo

$memory將以 kiB 為單位儲存總記憶體量。這是 Linux 可用的記憶體量,與free.

如果您想要安裝的 RAM,您可以執行以下操作:

awk '{s+=$0};END{print s}' /sys/bus/mc*/devices/dimm*/size

以 MiB 為單位獲取大小。或者

awk '{s+=$0};END{printf "%.2gG\n", s/1024}' /sys/bus/mc*/devices/dimm*/size

如果你想要 GiB 的大小。

引用自:https://unix.stackexchange.com/questions/70551