No OS X, recebo uma boa leitura da memória do sistema legível por humanos da seguinte forma:
printf -v system_memory \
"$(system_profiler SPHardwareDataType \
| awk -F ': ' '/^ +Memory: /{print $2}')"
echo "$system_memory"
imprime o amigável:
4 GB
Embora isso no Linux esteja correto:
lshw -class memory
produz:
size: 4096MiB
Eu preciso analisá-lo dolorosamente e tentar transformá-lo em uma string tão boa quanto a acima.
Estou usando o comando errado?
memory
system-information
Robottinosino
fonte
fonte
Respostas:
Se é tudo o que você precisa, basta usar
free
:free
retorna informações de memória, o-h
comutador diz para imprimir em formato legível por humanos.fonte
free
tinha um-h
interruptor (bom) . Obrigado. Muito interessante comofree
considera4.0G
(o que eu recebo) mais amigável ao ser humano do que4 GB
. "Mãe, estou com fome, gostaria de 1,0 maçã, por favor." Se este é o melhor que temos no Linux, provavelmente devo analisar o número e substituirG
porGB
mim mesmo. Muito raramente vemos HDDs, por exemplo, anunciados como "320G" em vez de "320 GB". :(GB
, tentefree -h | gawk '/Mem:/{print $2}' | rev | cut -c 2- | rev | xargs printf "%.*fGB\n" 0
No Linux,
Armazenaria a quantidade total de mem
$memory
em número de kiB. Essa é a quantidade de memória disponível para Linux, a mesma relatada porfree
.Se você deseja a RAM instalada, pode fazer coisas como:
Para obter o tamanho em MiBs. Ou
Se você deseja o tamanho em GiB.
fonte
A maneira mais simples é usar o comando free
fonte