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.