30% ОЗУ - это «буферы». Что это такое?

согласно руководству bash порядок расширений оболочки следующий: расширение скобок, расширение тильды, расширение параметров и переменных, подстановка команд, арифметическое расширение, разделение слов и расширение имени пути . также указано, что перенаправления происходят до выполнения команды, то есть после расширения оболочки. Таким образом, становится понятно, что такие команды, как:

redir='>'
echo value $redir file

и

echo value $(echo '>') file

, помещают значение в файл файл .

К сожалению, это не так, потому что сначала выполняется синтаксический анализ командной строки, а на этом этапе идентифицируются только маркеры перенаправления. Позже, перед выполнением команды, перенаправления выполняются на основе этих токенов.

eval curl $ BLAH $ ($ IS_VERBOSE && echo '-i' || echo '> / dev / null')

работает путем повторного анализа команды, таким образом идентифицируя перенаправления, но также выполняет расширение оболочки , с которым немного сложно работать и может привести к неожиданному поведению.

примечание: в bash есть специальная обработка для > $ var и > & $ var

12
25.10.2018, 18:01
1 ответ

Ваша версия freeимеет правильную идею. По умолчанию он объединяет буферы и кеш в своем отчете. Это потому, что они в основном одно и то же. Они оба запоминают компьютер в ОЗУ (быстрее, чем вторичное хранилище :Диски и SSD ), что он уже видел при чтении Диска и SSD.

Если операционная система считает, что память лучше используется чем-то другим, она может освободить ее. Поэтому не беспокойтесь о буфере и кеше.

Однако просмотр DVD может вызвать увеличение буфера и вытеснение другого содержимого буфера/кэша. Поэтому вы можете использовать nocache для запуска проигрывателя DVD (, если он вызывает проблему).

3
27.01.2020, 19:55

Теги

Похожие вопросы