सीएलआई से मानव पठनीय प्रणाली मेमोरी रीडिंग?


15

OS X पर, मुझे एक अच्छा मानव पठनीय सिस्टम मेमोरी रीडिंग मिलता है जैसे:

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

दोस्ताना छापता है:

4 GB

हालांकि यह लिनक्स सही है:

lshw -class memory

यह आउटपुट:

size: 4096MiB

मुझे इसे पार्स करने की आवश्यकता है और इसे ऊपर के रूप में एक स्ट्रिंग में अच्छा बनाने की कोशिश करें।

क्या मैं गलत कमांड का उपयोग कर रहा हूँ?


5
"मुझे इसे पार्स करने की आवश्यकता है" ... ऑक्स के लिए यह बड़ी बदसूरत चीज दर्दनाक नहीं है? :-)
पैट्रिक

@ पैट्रिक: जब मैं लिनक्स से इसकी तुलना करता हूं तो मैं ओएस एक्स को नापसंद करता हूं!
Robottinosino

जवाबों:


32

यदि आपको इसकी आवश्यकता है, तो बस उपयोग करें free:

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

freeमेमोरी जानकारी देता है, -hस्विच इसे मानव पठनीय प्रारूप में प्रिंट करने के लिए कहता है।


1
मुझे नहीं पता freeथा कि (अच्छा) -hस्विच था। धन्यवाद। बहुत दिलचस्प है कि कैसे freeदेवता 4.0G(जो मुझे मिलता है) की तुलना में अधिक मानवीय अनुकूल है 4 GB। "माँ, मुझे भूख लगी है, मुझे 1.0 सेब चाहिए, कृपया।" यदि हमारे पास लिनक्स पर यह सबसे अच्छा है, तो मुझे शायद केवल नंबर को पार्स करना चाहिए और अपने आप से प्रतिस्थापित Gकरना GBचाहिए। बहुत कम ही हम एचडीडी देखते हैं, उदाहरण के लिए, "320 जीबी" के बजाय "320 जी" के रूप में विज्ञापित। :(
रोबॉटीनोसिनो

5
@Robottinosino, HDD का आकार GB (10 ^ 9 बाइट्स) में व्यक्त किया गया है, जबकि मेमोरी आमतौर पर GiB (2 ^ 30 बाइट्स) में व्यक्त की जाती है, 4.0G आपको सटीक का अंदाजा देता है। 4GB के साथ, आपको नहीं पता कि यह वास्तव में 4GB (या 4GiB?) है या 4.4GB नीचे 4 या 3.6G तक गोल हो गया है।
Stéphane Chazelas

@Robottinosino यदि आप इसे एक अधिक मानव-पठनीय संख्या से गोल करना चाहते हैं और जोड़ते हैं GB, तो कोशिश करेंfree -h | gawk '/Mem:/{print $2}' | rev | cut -c 2- | rev | xargs printf "%.*fGB\n" 0
aalaap

3

लिनक्स पर,

read x memtotal x < /proc/meminfo

$memoryKiB की संख्या में कुल मेम राशि को स्टोर करेगा। यह लिनक्स के लिए उपलब्ध स्मृति की मात्रा है, जैसा कि रिपोर्ट किया गया है free

यदि आप स्थापित RAM चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

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

MiBs में आकार प्राप्त करने के लिए। या

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

यदि आप GiB में आकार चाहते हैं।


0

सबसे आसान तरीका है मुफ्त कमांड का उपयोग करना

free -gh

आपको उसे भी पार्स करना होगा।
काउंटरमोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.