Комментарии 20
Кстати, есть хороший сайт, рассказывающий про кэш и куда могла деться оперативная память https://www.linuxatemyram.com/
lshw покажет все банки памяти производителя и пр.
*-memory
описание: Системная память
физический ID: e
слот: Системная плата или материнская плата
размер: 16GiB
*-bank:0
описание: SO-DIMM DDR4 Синхронная 2667 MHz (0,4 ns)
продукт: M471A-CTD
производитель: Samsung
физический ID: 0
серийный №: 00000001
слот: ChannelA-DIMM0
размер: 8GiB
разрядность: 64 bits
частота: 2667MHz (0.4ns)
*-bank:1
описание: SO-DIMM DDR4 Синхронная 2667 MHz (0,4 ns)
продукт: M471A-CTD
производитель: Samsung
физический ID: 1
серийный №: 00000001
слот: ChannelB-DIMM0
размер: 8GiB
разрядность: 64 bits
частота: 2667MHz (0.4ns)
local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')
Три процесса вместо одного
local totalram=$(grep -Po 'MemTotal: \K[[:digit:]]' /proc/meminfo)
Ваш вариант не работает. Но я смог исправить
grep -Po 'MemTotal: *\K[0-9]+' /proc/meminfo
Точно. На SO однажды вычитал фразу, поразившую глубиной, запомнил:
Advices from catgreppers should generally be avoided
В случае /proc они не обязательно правы. Может, сейчас исправили, но в 2000х я неоднократно натыкался, что, например, `cat /proc/что-то | less` работает корректно, а `less /proc/что-то` - нет. Поэтому привычка через cat|grep надёжнее. Если сейчас везде исправили, то хотелось бы увидеть ссылку на гарантию исправления (нагуглить я не смог).
В случае /proc они не обязательно правы. Может, сейчас исправили, но в 2000х я неоднократно натыкался, что, например, `cat /proc/что-то | less` работает корректно, а `less /proc/что-то` - нет. Поэтому привычка через cat|grep надёжнее. Если сейчас везде исправили, то хотелось бы увидеть ссылку на гарантию исправления (нагуглить я не смог).
$ cat /proc/meminfo | head -n 3
head (как и grep) принимает имя файла в качестве аргумента, по-этому:
head -n 3 /proc/meminfo
Для RHEL, Fedora и CentOS можно использовать
yum
Смотрю на год выхода статьи...да ладно...
В Fedore DNF стандартно заменил YUM 7 лет назад (с 2015 года), в RHEL, начиная с RHEL/CentOS 8 (с 2019 года). Я понимаю, что многие до сих пор сидят на CentOS7, но для таких статья "как узнать объём RAM" будет, мягко говоря, бесполезна, они сами могут ещё пару-тройку способов автору подкинуть.
Как-то вы слишком категоричны. Что же, думаете на CentOS7 «сидят» только бородатые дядьки, которые его настраивали, когда мы с вами ещё под стол пешком ходили? Не далее двух месяцев назад пришлось разбираться с настройкой окружения на боевом сервере с Linux (как выяснилось, это был Oracle Linux 7, но по сути это тот же RHEL7). До этого дел с серверными Linux'ами не имел. При этом его предоставили по принципу — вот вам машина с (каким-то) Linux'ом, а дальше вы сами. Что же, по вашей логике я тоже должен уметь «пару-тройку способов автору» подкидывать?
Программное обеспечение в RHEL основано на программном обеспечении Fedora. В версиях Fedora, на которых основан RHEL 8, yum был заменен утилитой dnf. По этой причине ожидалось, что с выпуском RHEL 8 команда yum будет заменена командой dnf. Red Hat решила иначе. В RHEL 8 была представлена новая версия yum, основанная на команде dnf. Red Hat решила переименовать его в yum.
Если упомянуты диспетчеры задач для GUI, почему не упомянут мега популярный аналог для TUI - htop?
Ждём статью. "Как сменить директорию в Linux"
Как видите, объём физической памяти указан в байтах.
man free
говорит иное:
-k, --kibi
Display the amount of memory in kibibytes. This is the default.
Уточнение: Команда free без параметров возвращает результат не в байтах а в килобайтах.
возможно будет полезно для наглядного сравнения /proc/meminfo и free
$ eval $(free -kw | awk '/Mem/{print "mtotal="$2"\nmused="$3"\nmfree="$4"\nmshared="$5"\nmbuffers="$6"\nmcache="$7"\nmavailable="$8}/Swap/{print "stotal="$2"\nsused="$3"\nsfree="$4}');eval $(awk -F'(: +)| ' '!/\(/{print $1"="$2}' /proc/meminfo);clear; echo -e ";;;;;\nMem;total;$mtotal;│;$MemTotal;MemTotal\nMem;used;$mused;│;$[MemTotal-MemFree-Buffers-Cached-KReclaimable];MemTotal-MemFree-Buffers-Cached-KReclaimable\nMem;free;$mfree;│;$MemFree;MemFree\nMem;shared;$mshared;│;$Shmem;Shmem\nMem;buffers;$mbuffers;│;$Buffers;Buffers\nMem;cache;$mcache;│;$[Cached+KReclaimable];Cached+KReclaimable\nMem;available;$mavailable;│;$MemAvailable;MemAvailable\nSwap;total;$stotal;│;$SwapTotal;SwapTotal\nSwap;used;$sused;│;$[SwapTotal-SwapFree];SwapTotal-SwapFree\nSwap;free;$sfree;│;$SwapFree;SwapFree\n\n" | column -t -s ";" --table-columns " ,free -kw¹,KiB¹, ,KiB²,/proc/meminfo²" --table-right "free -kw¹,KiB¹" --table-truncate "/proc/meminfo²"
free -kw¹ KiB¹ KiB² /proc/meminfo²
Mem total 28663908 | 28663908 MemTotal
Mem used 3321176 | 3321176 MemTotal-MemFree-Buffers-Cached-KReclaimable
Mem free 22884520 | 22884520 MemFree
Mem shared 463932 | 463932 Shmem
Mem buffers 172408 | 172408 Buffers
Mem cache 2285804 | 2285804 Cached+KReclaimable
Mem available 23946576 | 23946576 MemAvailable
Swap total 0 | 0 SwapTotal
Swap used 0 | 0 SwapTotal-SwapFree
Swap free 0 | 0 SwapFree
Как узнать общий объем физической памяти (RAM) в Linux