CLI'den okunabilir insan sistem belleği?


15

OS X'te şöyle okunabilir bir insan tarafından okunabilir sistem belleği alıyorum :

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

dostu yazdırır:

4 GB

Linux'ta bu doğru olsa da:

lshw -class memory

çıktılar:

size: 4096MiB

Acı verici bir şekilde ayrıştırmak ve yukarıdaki gibi güzel bir dize haline getirmek gerekir.

Yanlış komutu mı kullanıyorum?


5
“Acıdan ayrıştırmam gerekiyor” ... Osx için o çirkin şey acı verici değil mi? :-)
Patrick

@Patrick: OS X'i Linux ile karşılaştırırken sevmiyorum!
Robottinosino

Yanıtlar:


32

İhtiyacınız olan tek şey buysa, şunu kullanın free:

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

freebellek bilgisini döndürür, -hanahtar ona okunabilir biçimde yazdırmasını söyler.


1
free(Güzel) bir -hgeçiş olduğunu bilmiyordum . Teşekkürler. Çok ilginç nasıl freeDeems 4.0G(ne alıyorum olan) daha samimi daha insani 4 GB. "Anne, açım, 1.0 elma istiyorum, lütfen." Bu Linux altındaki en iyisi bu, muhtemelen sadece numarasını ayrıştırmak ve değiştirmelidir Gile GBÇok nadiren biz "320G" yerine "320 GB" olarak ilan, örneğin, HDD görüyorum .. kendim. :(
Robottinosino

5
@Robottinosino, HDD boyutları GB (10 ^ 9 bayt) olarak ifade edilirken, bellek genellikle GiB (2 ^ 30 bayt) olarak ifade edilirken, 4.0G size hassasiyet hakkında bir fikir verir. 4GB ile, tam olarak 4GB (veya 4GiB?) Veya 4'e kadar yuvarlanmış 4,4 veya 4'e kadar yuvarlanmış 4,4GB olup olmadığını bilmiyorsunuz.
Stéphane Chazelas 30:00 '

@Robottinosino Daha insan tarafından okunabilir bir sayıya GBfree -h | gawk '/Mem:/{print $2}' | rev | cut -c 2- | rev | xargs printf "%.*fGB\n" 0
yuvarlamak

3

Linux'ta,

read x memtotal x < /proc/meminfo

Toplam mem miktarını $memorykiB olarak depolar. Bu, Linux tarafından kullanılabilir olan bellek miktarıdır ve rapor ettiği gibidir free.

Kurulu RAM'i istiyorsanız, aşağıdakileri yapabilirsiniz:

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

MiB'lerde boyutu almak için. Veya

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

GiB'de boyut istiyorsanız.


0

En basit yol serbest komutu kullanmaktır

free -gh

Bunu da ayrıştırmalısınız.
karşı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.