Буферизованная/кэшированная память — это оперативная память, которая использовалась процессом -, скажем, Firefox -, но этот процесс завершился. Но системе на самом деле не нужна эта оперативная память прямо сейчас, так зачем ее сбрасывать? Кто-то может захотеть прочитать этот двоичный файл Firefox и связанные с ним библиотеки обратно в память... поэтому он хранится в кэше в ОЗУ до тех пор, пока эта ОЗУ не понадобится процессу ИЛИ Firefox (или любой другой двоичный файл )повторно -..
Вы можете проверить это, перезагрузив систему, а затем, после полной загрузки рабочего стола и т. д., запустите Firefox, Chrome, Gimp или какое-либо другое более крупное приложение и определите, сколько времени это займет. Как только он откроется, закройте его. Подождите минуту или три, возможно, проверьте через ps
или другие утилиты, что он действительно больше не работает. Затем запустите таймер и снова запустите его. Гораздо быстрее, да? Это связано с тем, что вместо повторного -чтения двоичных файлов/библиотек обратно в ОЗУ он просто повторно -помечает кэшированные области ОЗУ как «используемые».
Я не совсем понимаю, о чем именно вы просите. Я привожу три примера, чтобы показать, что вы правы:
Pipelines
A pipeline is a sequence of one or more commands separated by
one of thwe control operators | or |&. The format for a pipeline is:
[time [-p]] [ ! ] command [ [|||&] command2... ]
(из руководства Bash; введите man bash
в вашей оболочке)
В bash.pdf от GNU, содержащем некоторые незначительные изменения:
The format for a pipeline is
[time [-p]] [!]command1[ | or |&command2]...
И в спецификации posix:
The format for a pipeline is:
[!] command1 [ | command2...]
Оболочка сама по себе использует так много специальных символов, что согласованный метасинтаксис нецелесообразен. Но все они используют одних и тех же обычных подозреваемых.
«Оболочка» — это не «командная строка», а GNU/Linux — это не MS, так что различия складываются. Вероятно, сначала вам понадобится некоторая базовая информация о использовании оболочки Linux и о Unix в целом -, наверняка в Интернете есть информация именно для вашей ситуации. GNU/Linux не несет ответственности за объяснение основ или отличий от Windows.
Другой пример, с командой/утилитой find
man find
дает это в оболочке GNU/Linux bash:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [ex-
pression]
Когда вы вводите /EXPR
в пейджер (или просто читаете и прокручиваете ), вы попадаете на
EXPRESSION
The part of the command line after the list of starting points is the
expression. This is a kind of query specification...[cut]
, который приведет вас к:
OPERATORS
Listed in order of decreasing precedence:
( expr )
Force precedence. Since parentheses are special to the shell,
you will normally need to quote them. Many of the examples in
this manual page use backslashes for this purpose: `\(...\)' in-
stead of `(...)'.
И все это может привести к сложному маленькому «своего рода запросу», например:
find -L /students/projects/myname \
-type d '(' -name '.aaa' -o -name '*rc*' ')' -prune -o \
-path '*/*/class_project/*/*/pikachu/*/*/bambi/bambi.txt' -print
Ищет все "bambi.txt" в определенных подпапках,пропуская другие определенные подпапки... необходимо ()
, чтобы выразить :"обрезать (пропустить ), если это папка и имя либо.aaa, либо содержит rc".
Затем скобки должны быть защищены от интерпретации оболочкой с помощью одинарных кавычек или обратной косой черты. В большинстве случаев -o
для OR
и -a
по умолчанию для AND
достаточно, поэтому GNU/Linux живет с этим.
Вот отрывок из man 7 man-pages
, в котором описываются общепринятые значения разделов на справочных страницах:
SYNOPSIS A brief summary of the command or function's interface.
For commands, this shows the syntax of the command and
its arguments (including options); boldface is used for
as-is text and italics are used to indicate replaceable
arguments. Brackets ([]) surround optional arguments,
vertical bars (|) separate choices, and ellipses (...)
can be repeated.
Я добавлю, что то, как на вашем терминале на самом деле появляются «жирный шрифт» и «курсив», — это другой вопрос. На моем терминале я получаю полужирный шрифт для as -— это текст и подчеркнутый текст для заменяемых аргументов; а на некоторых терминалах такое форматирование может вообще не получиться.
Лейтмотив:
В целом, соглашения на самом деле очень похожи на документ от Microsoft, который вы цитируете.
Вот пример синопсиса из справочной страницы дляgit diff
:
SYNOPSIS
git diff [options] [<commit>] [--] [<path>...]
git diff [options] --cached [<commit>] [--] [<path>...]
git diff [options] <commit> <commit> [--] [<path>...]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
Возможных опций так много, что авторы справочной страницы решили не перечислять их все в синопсисе, вместо этого просто указав [options]
.
Несколько строк в кратком описании объясняются тем, что существует несколько возможных (взаимоисключающих )способов использования этой конкретной команды.
Все в квадратных скобках необязательно,и все, что в угловых скобках, является заполнителем.
(Н.Б. :Коммиты и большие двоичные объекты — это типы объектов, которые можно хранить в Git; большой двоичный объект представляет содержимое файла, а фиксация представляет собой состояние всего набора файлов, отслеживаемых Git. Не имеет отношения к вашему вопросу, но я упоминаю об этом, чтобы избежать загадок в терминологии.)
Другой пример, синопсис команды grep
, иллюстрирует другое соглашение :слова, написанные ВСЕМИ ЗАГЛАВНЫМИ БУКВАМИ, иногда используются для обозначения заполнителя (наподобие угловых скобок на справочной странице git выше ).
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] -e PATTERN... [FILE...]
grep [OPTIONS] -f FILE... [FILE...]
Здесь снова есть три разных способа вызова команды grep
. Из вышеизложенного видно, что:
grep apple orange pear
...означает, что apple
— шаблон, а orange
и pear
— имена файлов.
Точно так же вы можете видеть, что в:
grep -e apple -e orange pear grapefruit
... apple
и orange
— оба шаблона, а pear
и grapefruit
— оба файла.
Теперь, что касается того, что это означает с точки зрения того, что команда будет делать при заданных шаблонах и файлах, вы должны больше читать справочную страницу, чем просто краткий обзор. Но синопсис позволяет вам определить, как различные аргументы будут интерпретироваться командой, которой вы их даете.
Однако не существует абсолютных правил для символов синопсиса. Вот синопсис дляsed
:
SYNOPSIS
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
Чтобы понять это, вам нужно продолжить чтение на справочной странице, где вы найдете:
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.