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에 대한 그 추악한 일은 고통스럽지 않습니까? :-)
Patrick

@ 패트릭 : 리눅스와 비교할 때 OS X를 싫어합니다!
Robottinosino

답변:


32

그게 전부라면 다음을 사용하십시오 free.

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

free메모리 정보를 반환하고 -h스위치는 사람이 읽을 수있는 형식으로 인쇄하도록 지시합니다.


1
나는 free(좋은) -h스위치 가 있다는 것을 몰랐다 . 감사. 보다 인간 친화적 인 것으로 free생각되는 방법 이 매우 흥미 롭습니다 . "엄마, 배가 고파요. 1.0 사과주세요." 이것은 우리가 리눅스에이 최고입니다, 난 아마 그냥 번호를 구문 분석하고 교체해야합니다 으로 아주 드물게 우리가 "320G"보다는 "320기가바이트"로 광고, 예를 들어, 하드 디스크 드라이브를 참조하지 않는다 .. 나 자신. :(4.0G4 GBGGB
Robottinosino 23.31의

5
@Robottinosino에서 HDD 크기는 GB (10 ^ 9 바이트)로 표시되는 반면 메모리는 일반적으로 GiB (2 ^ 30 바이트)로 표시되며 4.0G는 정밀도에 대한 아이디어를 제공합니다. 4GB를 사용하면 정확히 4GB (또는 4GiB?)인지, 4.4GB를 4 또는 3.6G로 올림했는지 4로 올림했는지 알 수 없습니다.
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

총 mem 양 $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.