Как найти требуемую информацию в man [duplicate]

На этот вопрос уже есть ответ: как я могу искать в man-странице? 1 ответ Как получить помощь по командам терминала? 9 ответов

Команда man выводит хорошее руководство для многих программ, но как я могу использовать его более эффективно? Например, man gcc приносит:

NAME gcc - GNU project C and C++ compiler SYNOPSIS gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-Wpedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... Only the most useful options are listed here; see below for the remainder. g++ accepts mostly the same options as gcc. .... many text

Но что, если мне нужна только его часть? Каков наилучший способ перехода к разделу, где описано -Idir, например?

11
задан 25 January 2018 в 18:23

8 ответов

Когда вы просматриваете страницы руководства и выполняете поиск, нажимая /, less фактически обрабатывает ваш шаблон поиска как регулярное выражение. При поиске параметров командной строки мне очень полезно добавить \b к ним, что соответствует границе слова. Это часто пропускает много текста, которое в противном случае соответствовало бы, но не то, что я ищу (или, во всяком случае, не то, что я хочу прочитать вначале).

Например, для поиска -I, вы можете ввести:

/-I\b Символ / сообщает less, который вы хотите искать, как указывали другие (см. ответ MIB). Вы должны были бы написать ? вместо /, если бы вы хотели, чтобы ваш поиск поднимался вверх по man-странице, а не вниз. -I - это буквальный текст, который вы ищете. \b соответствует границе между символом слова (A-Z, a-z или _) и символом, отличным от слова, или между символом слова и самым началом или концом текста, в котором он встречается.

При поиске параметров командной строки мне очень полезно добавить \b к ним, что соответствует границе слова. Чтобы вернуться к предыдущим совпадениям, нажмите / + n.

В случае поиска -I в man-странице gcc, например, я обнаружил, что -I был сопоставлен шесть раз до матча Я искал, где опция -I была фактически задокументирована. Напротив, -I\b был сопоставлен только один раз перед этим совпадением.

Если вы предпочитаете, вы можете использовать \> вместо \b. \> соответствует только концу слова (где «слово» - это один или несколько символов слова, как определено выше). Если вы хотите совместить начало слова, вы можете использовать \<. Обратите внимание, однако, что это не работает, чтобы написать что-то вроде \<-I, чтобы соответствовать опции -I, потому что \< не будет соответствовать пробелу, а затем -.

2
ответ дан 17 July 2018 в 23:41

Я не могу улучшить ответ Wildcard, когда я задал тот же вопрос в Unix & amp; Linux Q & amp; A.

Если вы хотите grep получить результаты man <program> для шаблона, начинающегося с дефиса, используйте -- до указанного вами шаблона. Пример с помощью man find: man find | grep -- -type Если вам нужна дополнительная информация, например, весь раздел, описывающий параметр, вы можете попробовать использовать sed: $ man find | sed -n '/-mindepth/,/^$/p' -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. Однако это не будет работать для каждого параметра, который вы могли бы искать. Например: $ man find | sed -n '/^[[:space:]]*-type/,/^$/p' -type c File is of type c: Не очень полезно. Хуже того, для некоторых вариантов вы могли бы ввести в заблуждение, думая, что вы прочитаете весь текст об этом варианте, когда вы этого не сделали. Например, поиск -delete исключает очень важное ПРЕДУПРЕЖДЕНИЕ, содержащееся в качестве второго абзаца под этим заголовком. Моя рекомендация - использовать стандартный вызов man с набором переменных среды LESS. Я использую его довольно часто в моих ответах на этом сайте. LESS='+/^[[:space:]]*-type' man find Чтобы узнать больше о том, как это работает, см .: LESS='+/^[[:space:]]*LESS ' man less LESS='+/\+cmd' man less LESS='+/\/' man less . Если вы просто хотите быстро и интерактивно найти эту опцию на странице руководства, научитесь использовать возможности поиска less. А также см .: https://unix.stackexchange.com/q/193815/135943
3
ответ дан 17 July 2018 в 23:41

Я хотел бы ответить на него простейшим способом.

Как только вы откроете man-страницу для пакета с помощью man <package>, вы можете использовать утилиту поиска, чтобы узнать подробности о конкретных параметрах, используя /<option>, Например, чтобы проверить детали опции -r, используйте /-r.

2
ответ дан 17 July 2018 в 23:41

Поиск по странице man нажатием /, а строка поиска

man по умолчанию используется средством просмотра less. Вы можете выполнить поиск в less, нажав / (косая черта), а затем добавить строку поиска в свой пример -Idir

GCC(1) GNU GCC(1) NAME gcc - GNU project C and C++ compiler SYNOPSIS gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-Wpedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... Only the most useful options are listed here; see below for the remainder. g++ accepts mostly the same options as gcc. DESCRIPTION When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the -c option says not to run the linker. Then the output consists of object files output by the assembler. /-Idir

Нажмите клавишу / и получите первый матч.

Еще раз нажмите / (косая черта) и клавишу Enter, повторите, пока не найдете нужную вам секцию. Вы также можете нажать n для следующего совпадения.

-Idir Add the directory dir to the head of the list of directories to be searched for header files. This can be used to override a system header file, substituting your own version, since these directories are searched before the system header file directories. However, you should not use this option to add directories that contain vendor-supplied system header files (use -isystem for that). If you use more than one -I option, the directories are scanned in left-to-right order; the standard system directories come after. If a standard system include directory, or a directory specified with -isystem, is also specified with -I, the -I option is ignored. The directory is still searched but as a system directory at its normal position in the system include chain. This is to ensure that GCC's procedure to fix buggy system headers and the ordering for the "include_next" directive are not inadvertently changed. If you really need to change the search order for system directories, use the -nostdinc and/or -isystem options. -iplugindir=dir Set the directory to search for plugins that are passed by -fplugin=name instead of -fplugin=path/name.so. This option is not meant to be used by the user, but only passed by the driver. Manual page gcc(1) line 10179 (press h for help or q to quit)

Нажатие / дает хороший обзор доступных команд.

SUMMARY OF LESS COMMANDS Commands marked with * may be preceded by a number, N. Notes in parentheses indicate the behavior if N is given. A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K. h H Display this help. q :q Q :Q ZZ Exit. --------------------------------------------------------------------------- MOVING e ^E j ^N CR * Forward one line (or N lines). y ^Y k ^K ^P * Backward one line (or N lines). f ^F ^V SPACE * Forward one window (or N lines). b ^B ESC-v * Backward one window (or N lines). z * Forward one window (and set window to N). w * Backward one window (and set window to N). ESC-SPACE * Forward one window, but don't stop at end-of-file. d ^D * Forward one half-window (and set half-window to N). u ^U * Backward one half-window (and set half-window to N). ESC-) RightArrow * Left one half screen width (or N positions). ESC-( LeftArrow * Right one half screen width (or N positions). F Forward forever; like "tail -f". ESC-F Like F but stop when search pattern is found. r ^R ^L Repaint screen. R Repaint screen, discarding buffered input. --------------------------------------------------- Default "window" is the screen height. Default "half-window" is half of the screen height. --------------------------------------------------------------------------- SEARCHING /pattern * Search forward for (N-th) matching line. ?pattern * Search backward for (N-th) matching line. n * Repeat previous search (for N-th occurrence). N * Repeat previous search in reverse direction. ESC-n * Repeat previous search, spanning files. ESC-N * Repeat previous search, reverse dir. & spanning files. ESC-u Undo (toggle) search highlighting. &pattern * Display only matching lines --------------------------------------------------- A search pattern may be preceded by one or more of: ^N or ! Search for NON-matching lines. ^E or * Search multiple files (pass thru END OF FILE). ^F or @ Start search at FIRST file (for /) or last file (for ?). ^K Highlight matches, but don't move (KEEP position). ^R Don't use REGULAR EXPRESSIONS. --------------------------------------------------------------------------- HELP -- Press RETURN for more, or q when done

Вы найдете более подробную информацию о «инструментах помощи» по следующей ссылке

Как получить помощь в командах терминала?

13
ответ дан 17 July 2018 в 23:41

Когда вы просматриваете страницы руководства и выполняете поиск, нажимая /, less фактически обрабатывает ваш шаблон поиска как регулярное выражение. При поиске параметров командной строки мне очень полезно добавить \b к ним, что соответствует границе слова. Это часто пропускает много текста, которое в противном случае соответствовало бы, но не то, что я ищу (или, во всяком случае, не то, что я хочу прочитать вначале).

Например, для поиска -I, вы можете ввести:

/-I\b Символ / сообщает less, который вы хотите искать, как указывали другие (см. ответ MIB). Вы должны были бы написать ? вместо /, если бы вы хотели, чтобы ваш поиск поднимался вверх по man-странице, а не вниз. -I - это буквальный текст, который вы ищете. \b соответствует границе между символом слова (A-Z, a-z или _) и символом, отличным от слова, или между символом слова и самым началом или концом текста, в котором он встречается.

При поиске параметров командной строки мне очень полезно добавить \b к ним, что соответствует границе слова. Чтобы вернуться к предыдущим совпадениям, нажмите / + n.

В случае поиска -I в man-странице gcc, например, я обнаружил, что -I был сопоставлен шесть раз до матча Я искал, где опция -I была фактически задокументирована. Напротив, -I\b был сопоставлен только один раз перед этим совпадением.

Если вы предпочитаете, вы можете использовать \> вместо \b. \> соответствует только концу слова (где «слово» - это один или несколько символов слова, как определено выше). Если вы хотите совместить начало слова, вы можете использовать \<. Обратите внимание, однако, что это не работает, чтобы написать что-то вроде \<-I, чтобы соответствовать опции -I, потому что \< не будет соответствовать пробелу, а затем -.

2
ответ дан 24 July 2018 в 17:05

Я не могу улучшить ответ Wildcard, когда я задал тот же вопрос в Unix & amp; Linux Q & amp; A.

Если вы хотите grep получить результаты man <program> для шаблона, начинающегося с дефиса, используйте -- до указанного вами шаблона. Пример с помощью man find: man find | grep -- -type Если вам нужна дополнительная информация, например, весь раздел, описывающий параметр, вы можете попробовать использовать sed: $ man find | sed -n '/-mindepth/,/^$/p' -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. Однако это не будет работать для каждого параметра, который вы могли бы искать. Например: $ man find | sed -n '/^[[:space:]]*-type/,/^$/p' -type c File is of type c: Не очень полезно. Хуже того, для некоторых вариантов вы могли бы ввести в заблуждение, думая, что вы прочитаете весь текст об этом варианте, когда вы этого не сделали. Например, поиск -delete исключает очень важное ПРЕДУПРЕЖДЕНИЕ, содержащееся в качестве второго абзаца под этим заголовком. Моя рекомендация - использовать стандартный вызов man с набором переменных среды LESS. Я использую его довольно часто в моих ответах на этом сайте. LESS='+/^[[:space:]]*-type' man find Чтобы узнать больше о том, как это работает, см .: LESS='+/^[[:space:]]*LESS ' man less LESS='+/\+cmd' man less LESS='+/\/' man less . Если вы просто хотите быстро и интерактивно найти эту опцию на странице руководства, научитесь использовать возможности поиска less. А также см .: https://unix.stackexchange.com/q/193815/135943
3
ответ дан 24 July 2018 в 17:05
  • 1
    Вы также можете использовать опцию grep для -C, за которой следует число - количество строк контекста для включения с соответствующей строкой. Аналогично см. Варианты -A и -B. Без контекста результаты grep на странице руководства могут оказаться не очень полезными. – Ruslan 7 January 2018 в 21:02

Я хотел бы ответить на него простейшим способом.

Как только вы откроете man-страницу для пакета с помощью man <package>, вы можете использовать утилиту поиска, чтобы узнать подробности о конкретных параметрах, используя /<option>, Например, чтобы проверить детали опции -r, используйте /-r.

2
ответ дан 24 July 2018 в 17:05

Поиск по странице man нажатием /, а строка поиска

man по умолчанию используется средством просмотра less. Вы можете выполнить поиск в less, нажав / (косая черта), а затем добавить строку поиска в свой пример -Idir

GCC(1) GNU GCC(1) NAME gcc - GNU project C and C++ compiler SYNOPSIS gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-Wpedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... Only the most useful options are listed here; see below for the remainder. g++ accepts mostly the same options as gcc. DESCRIPTION When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the -c option says not to run the linker. Then the output consists of object files output by the assembler. /-Idir

Нажмите клавишу / и получите первый матч.

Еще раз нажмите / (косая черта) и клавишу Enter, повторите, пока не найдете нужную вам секцию. Вы также можете нажать n для следующего совпадения.

-Idir Add the directory dir to the head of the list of directories to be searched for header files. This can be used to override a system header file, substituting your own version, since these directories are searched before the system header file directories. However, you should not use this option to add directories that contain vendor-supplied system header files (use -isystem for that). If you use more than one -I option, the directories are scanned in left-to-right order; the standard system directories come after. If a standard system include directory, or a directory specified with -isystem, is also specified with -I, the -I option is ignored. The directory is still searched but as a system directory at its normal position in the system include chain. This is to ensure that GCC's procedure to fix buggy system headers and the ordering for the "include_next" directive are not inadvertently changed. If you really need to change the search order for system directories, use the -nostdinc and/or -isystem options. -iplugindir=dir Set the directory to search for plugins that are passed by -fplugin=name instead of -fplugin=path/name.so. This option is not meant to be used by the user, but only passed by the driver. Manual page gcc(1) line 10179 (press h for help or q to quit)

Нажатие / дает хороший обзор доступных команд.

SUMMARY OF LESS COMMANDS Commands marked with * may be preceded by a number, N. Notes in parentheses indicate the behavior if N is given. A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K. h H Display this help. q :q Q :Q ZZ Exit. --------------------------------------------------------------------------- MOVING e ^E j ^N CR * Forward one line (or N lines). y ^Y k ^K ^P * Backward one line (or N lines). f ^F ^V SPACE * Forward one window (or N lines). b ^B ESC-v * Backward one window (or N lines). z * Forward one window (and set window to N). w * Backward one window (and set window to N). ESC-SPACE * Forward one window, but don't stop at end-of-file. d ^D * Forward one half-window (and set half-window to N). u ^U * Backward one half-window (and set half-window to N). ESC-) RightArrow * Left one half screen width (or N positions). ESC-( LeftArrow * Right one half screen width (or N positions). F Forward forever; like "tail -f". ESC-F Like F but stop when search pattern is found. r ^R ^L Repaint screen. R Repaint screen, discarding buffered input. --------------------------------------------------- Default "window" is the screen height. Default "half-window" is half of the screen height. --------------------------------------------------------------------------- SEARCHING /pattern * Search forward for (N-th) matching line. ?pattern * Search backward for (N-th) matching line. n * Repeat previous search (for N-th occurrence). N * Repeat previous search in reverse direction. ESC-n * Repeat previous search, spanning files. ESC-N * Repeat previous search, reverse dir. & spanning files. ESC-u Undo (toggle) search highlighting. &pattern * Display only matching lines --------------------------------------------------- A search pattern may be preceded by one or more of: ^N or ! Search for NON-matching lines. ^E or * Search multiple files (pass thru END OF FILE). ^F or @ Start search at FIRST file (for /) or last file (for ?). ^K Highlight matches, but don't move (KEEP position). ^R Don't use REGULAR EXPRESSIONS. --------------------------------------------------------------------------- HELP -- Press RETURN for more, or q when done

Вы найдете более подробную информацию о «инструментах помощи» по следующей ссылке

Как получить помощь в командах терминала?

13
ответ дан 24 July 2018 в 17:05
  • 1
    @StevenPenny Вы правы, он идет в начало файла. Я думаю, я просто хочу, чтобы это было p revious ... – Graipher 8 January 2018 в 02:10

Другие вопросы по тегам:

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