CLIからの人間が読み取り可能なシステムメモリの読み取り?


15

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

苦労して解析し、上記の文字列と同じように文字列に変換する必要があります。

間違ったコマンドを使用していますか?


5
「痛々しく解析する必要がある」... osxにとってそのThatいことは痛くないですか?:
パトリック

@Patrick:Linuxと比較するとOS Xが嫌いです!
Robottinosino

回答:


32

必要なのはこれだけですfree

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

freeメモリ情報を返し、-hスイッチは人間が読める形式で印刷するように指示します。


1
free(いい)-hスイッチがあることは知りませんでした。ありがとう。非常に興味深い方法freeと見なし4.0Gよりも(私が得るものである)、より人間に優しいです4 GB。「お母さん、お腹が空いています。1.0のアップルをお願いします。」これがLinuxで最高の場合、おそらく数値を解析GしてGB自分で置き換える必要があります。たとえば、「320 GB」ではなく「320G」と宣伝されているHDDはほとんどありません。:(
Robottinosino

5
@ Robottinosino、HDDサイズはGB(10 ^ 9バイト)で表されますが、メモリは一般にGiB(2 ^ 30バイト)で表されますが、4.0Gでは精度がわかります。4GBでは、正確に4GB(または4GiB?)なのか、4GBに切り捨てられた4.4GBか、4に切り上げられた
3.6Gかがわかりません

@Robottinosino人間が読みやすい数字にGBfree -h | gawk '/Mem:/{print $2}' | rev | cut -c 2- | rev | xargs printf "%.*fGB\n" 0
丸めて

3

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のサイズが必要な場合。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.