Как использовать страницы справочника, чтобы узнать, как использовать команды?

92

Исследуя другую проблему, я наткнулся на команду :

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

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

XARGS(1)                    General Commands Manual                   XARGS(1)

NAME
       xargs - build and execute command lines from standard input

SYNOPSIS
       xargs  [-0prtx]  [-E  eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
       [-d delimiter] [--delimiter delimiter]  [-I  replace-str]  [-i[replace-
       str]]    [--replace[=replace-str]]   [-l[max-lines]]   [-L   max-lines]
       [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s  max-
       chars]  [--max-chars=max-chars]  [-P max-procs] [--max-procs=max-procs]
       [--interactive]      [--verbose]      [--exit]      [--no-run-if-empty]
       [--arg-file=file]   [--show-limits]   [--version]   [--help]   [command
       [initial-arguments]]

DESCRIPTION
       This manual page documents the GNU version of xargs...

Я пытаюсь научиться лучше использовать документацию для изучения программ для Linux, но этот раздел «Синопсис» пугает новых пользователей. Это буквально выглядит как бред по сравнению с man locateили man free.

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

Я не прошу помощи с xargs здесь. Я ищу помощь в интерпретации справочной страницы, чтобы понять сложные команды. Я хочу прекратить превращать проиндексированные Google веб-блоги и личную помощь других в мой первый подход к изучению команд Linux.

user1717828
источник
17
Продолжайте читать справочную страницу. Раздел «ОПЦИИ» объясняет все опции, доступные в разделе «ОПИСАНИЕ».
Джон
7
начать сman man
mikeserv
14
Чаще всего переходите прямо ко дну и ищите раздел с примерами.
teppic
9
И не просто сканируйте справочную страницу для ключевых слов. Действительно прочитайте это! Предполагаемое странное поведение часто хорошо объясняется.
FloHimself
6
после man manпрочтения man intro.
mikeserv

Ответы:

102

Ну, это мой очень личный способ читать страницы справочника:

Manpager

При открытии справочной страницы , используя manкоманду, выход будет отображаться / оказанный lessили moreкомандами, или любой другой командой , которая будет установлена в качестве пейджера (manpager).

Если вы используете Linux, вам, вероятно, предоставлена ​​инфраструктура man, уже настроенная для использования /usr/bin/less -is(если вы не установили какой-либо минимальный дистрибутив), как man(1)описано в разделе «Опции»:

-P pager
Specify which pager to use. This option overrides the MANPAGER environment variable, 
which in turn overrides the PAGER variable. By default, man uses /usr/bin/less -is.

Во FreeBSD и OpenBSD это всего лишь вопрос редактирования MANPAGERпеременной среды, поскольку они в основном будут использоваться more, а некоторые функции, такие как поиск и выделение текста, могут отсутствовать.

Существует хороший ответ на вопрос о том, какие различия more, lessи mostне здесь (не используется most). Возможность прокрутки назад и прокрутки вперед по странице с помощью Spaceили обоими способами по строке или или (также с использованием viпривязок jи k) имеет важное значение при просмотре man-страниц. Нажмите hво время использования, lessчтобы увидеть список доступных команд.

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

Как команда отформатирована?

Соглашения по коммунальным предприятиям : Открытые базовые спецификации групп, выпуск 7 - IEEE Std 1003.1, выпуск 2013 г. Вы должны посетить эту ссылку, прежде чем пытаться понять man-страницу. В этой онлайн-справке описывается синтаксис аргументов стандартных утилит и вводится терминология, используемая в POSIX.1-2017 для описания аргументов, обрабатываемых утилитами. Это также косвенно информирует вас о реальном значении слов, таких как параметры, аргументы, опция аргумента ...

Заголовок любой man-страницы будет выглядеть для вас менее загадочно после понимания обозначений утилит:

utility_name[-a][-b][-c option_argument]
    [-d|-e][-f[option_argument]][operand...]

Имейте в виду, что вы хотите сделать.

Когда вы занимались своими исследованиями, xargsвы делали это для мошенничества, верно? У вас была особая потребность в чтении стандартного вывода и выполнении команд на основе этого вывода.

Но когда я не знаю, какую команду я хочу?

Используйте man -kили apropos(они эквивалентны). Если я не знаю , как найти файл: man -k file | grep search. Прочитайте описания и найдите тот, который будет лучше соответствовать вашим потребностям. Пример:

apropos -r '^report'
bashbug (1)          - report a bug in bash
df (1)               - report file system disk space usage
e2freefrag (8)       - report free space fragmentation information
filefrag (8)         - report on file fragmentation
iwgetid (8)          - Report ESSID, NWID or AP/Cell Address of wireless network
kbd_mode (1)         - report or set the keyboard mode
lastlog (8)          - reports the most recent login of all users or of a given user
pmap (1)             - report memory map of a process
ps (1)               - report a snapshot of the current processes.
pwdx (1)             - report current working directory of a process
uniq (1)             - report or omit repeated lines
vmstat (8)           - Report virtual memory statistics

По умолчанию Apropos работает с регулярными выражениями (( man aproposпрочитайте описание и узнайте, что -rделает), и в этом примере я ищу каждую страницу руководства, где описание начинается с «report».

Чтобы найти информацию, связанную с чтением стандартной обработки ввода / вывода и достижением xargsв качестве возможного варианта:

man -k command| grep input
xargs (1)            - build and execute command lines from standard input

Всегда читайте DESCRIPTIONперед началом

Найдите время и прочитайте описание. Просто прочитав описание xargsкоманды, мы узнаем, что:

  • xargsчитает из STDIN и выполняет необходимую команду. Это также означает, что вам нужно будет иметь некоторые знания о том, как работает стандартный ввод, и о том, как манипулировать им через каналы для цепочки команд.
  • Поведение по умолчанию - вести себя как /bin/echo. Это дает вам небольшой совет, что если вам нужно связать несколько цепочек xargs, вам не нужно использовать echo для печати.
  • Мы также узнали, что имена файлов unix могут содержать пробелы и символы новой строки, что это может быть проблемой, и аргумент -0является способом предотвращения взрыва вещей, используя нулевые символьные разделители. Описание предупреждает вас, что команда, используемая в качестве ввода, должна также поддерживать эту функцию, и что GNU findподдерживает ее. Отлично. Мы используем много найти с xargs.
  • xargs остановится, если будет достигнут статус выхода 255.

Некоторые описания очень короткие, и это в основном потому, что программное обеспечение работает очень просто. Даже не думайте пропустить эту часть справочной страницы ;)

На другие вещи стоит обратить внимание ...

Вы знаете, что вы можете искать файлы с помощью find. Есть множество вариантов, и если вы только посмотрите на них SYNOPSIS, вы будете поражены ими. Это только верхушка айсберга. Исключая NAME, SYNOPSISи DESCRIPTION, у вас будут следующие разделы:

  • AUTHORS: люди, которые создали или помогли в создании команды.

  • BUGS: перечисляет все известные дефекты. Могут быть только ограничения реализации.

  • ENVIRONMENT: Аспекты вашей оболочки, на которые может повлиять команда, или переменные, которые будут использоваться.

  • EXAMPLESили NOTES: не требующий пояснений.

  • REPORTING BUGSС кем вам придется связаться, если вы обнаружите ошибки в этом инструменте или в его документации.

  • COPYRIGHT: Человек, который создал и отказ от ответственности о программном обеспечении. Все связано с лицензией самого программного обеспечения.

  • SEE ALSOДругие команды, инструменты или рабочие аспекты, которые относятся к этой команде и не могут поместиться ни в одном из других разделов.

Скорее всего, вы найдете интересную информацию об аспектах инструмента в разделе примеров / заметок.

пример

На следующих шагах я возьму findв качестве примера, поскольку его концепции «более просты», чем xargsобъяснения (одна команда находит файлы, а другая имеет дело с stdin и конвейерным выполнением других командных выходных данных). Давайте просто притворимся, что ничего не знаем (или очень мало) об этой команде.

У меня есть конкретная проблема: мне нужно искать каждый файл с .jpgрасширением и размером 500 КБ (KiB = 1024 байт, обычно называемый кибибайт) или более в папке ftp-сервера.

Сначала откройте руководство man find. Это SYNOPSISтонкий. Давайте поищем что-то внутри руководства: введите /плюс нужное вам слово ( size). Он будет индексировать много записей, -sizeкоторые будут рассчитывать конкретные размеры. Застрял. Не знаю, как искать с «больше» или «меньше» заданного размера, и мужчина не показывает это мне.

Давайте попробуем и поищем следующую найденную запись, нажав n. ХОРОШО. Нашел что то интересное find \( -size +100M -fprintf /root/big.txt %-10s %p\n \). Может быть, этот пример показывает нам, что с -size +100Mего помощью найдутся файлы размером 100 МБ или более. Как я могу подтвердить? Переход к заголовку страницы и поиск других слов.

Опять давайте попробуем слово greater. Нажатие gприведет нас к руководству страницы. /greaterи первая запись:

 Numeric arguments can be specified as

    +n     for **greater** than n,

    -n     for less than n,

     n      for exactly n.

Звучит здорово. Кажется, этот блок руководства подтвердил то, что мы подозревали. Однако это относится не только к размерам файлов. Он будет применяться ко всем, nчто можно найти на этой странице руководства (как сказано в фразе: «Числовые аргументы могут быть указаны как»).

Хороший. Найдем способ фильтрации по имени: g /insensitive. Почему? Нечувствительность? WTF? У нас есть гипотетический FTP - сервер, где «что другие ОС» люди могли бы дать имя файла с расширениями , как .jpg, .JPG, .JpG. Это приведет нас к:

-ilname pattern
              Like  -lname,  but  the  match  is  case insensitive.  If the -L
              option or the -follow option is in  effect,  this  test  returns
              false unless the symbolic link is broken.

Однако после поиска lnameвы увидите, что это будет искать только символические ссылки. Мы хотим настоящие файлы. Следующая запись:

   -iname pattern
          Like -name, but the match is case insensitive.  For example, the
          patterns `fo*' and `F??' match  the  file  names  `Foo',  `FOO',
          `foo',  `fOo',  etc.   In these patterns, unlike filename expan‐
          sion by the shell, an initial '.' can be matched by  `*'.   That
          is, find -name *bar will match the file `.foobar'.   Please note
          that you should quote patterns as a matter of course,  otherwise
          the shell will expand any wildcard characters in them.

Отлично. Мне даже не нужно читать, -nameчтобы увидеть, что -inameэто аргумент без учета регистра. Давайте соберем команду:

Команда: find /ftp/dir/ -size +500k -iname "*.jpg"

Что подразумевается здесь: знание, что подстановочный знак ?представляет «любой символ в одной позиции» и *представляет «ноль или более любого символа». -nameПараметр даст вам краткое изложение этого знания.

Советы, которые применяются ко всем командам

Некоторые опции, мнемоника и «стиль синтаксиса» проходят через все команды, заставляя вас тратить время на то, чтобы вообще не открывать man-страницу. Те, которые изучаются на практике, и наиболее распространенными являются:

  • Вообще, -vзначит многословно. -vvvэто вариант "очень очень многословный" в некоторых программах.
  • Следуя стандарту POSIX, обычно можно сложить один аргумент тире. Пример: tar -xzvf, cp -Rv.
  • Обычно -Rи / или -rозначает рекурсивный.
  • Почти все команды имеют краткую справку с --helpопцией.
  • --version показывает версию программного обеспечения.
  • -p, на копирование или перемещение утилиты означает «сохранить права».
  • -y означает ДА ​​или «продолжить без подтверждения» в большинстве случаев.

Обратите внимание, что вышеупомянутое не всегда верно, хотя. Например, -rпереключатель может означать очень разные вещи для разных программ. Всегда полезно проверить и убедиться, что команда может быть опасной, но это стандартные значения по умолчанию.

Значения команд по умолчанию.

В пейджерной части этого ответа мы увидели, что less -isэто пейджер man. Поведение команд по умолчанию не всегда отображается в отдельном разделе на страницах man, или в разделе, который находится выше всех.

Вам нужно будет прочитать варианты, чтобы узнать значения по умолчанию, или, если вам повезет, ввод /pagerприведет вас к этой информации. Это также требует, чтобы вы знали концепцию пейджера (программное обеспечение, которое прокручивает man-страницу), и это то, что вы приобретете только после прочтения большого количества man-страниц.

Почему это важно? Это откроет ваше восприятие, если вы обнаружите различия в поведении прокрутки и цвета при чтении, например, man(1)в Linux ( less -isпейджер) или FreeBSD man(1).

А как насчет SYNOPSISсинтаксиса?

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

  • Опции - это переключатели, которые определяют поведение команды. « Делай это », « не делай этого » или « действуй так ». Часто называют выключатели.
  • Аргументы-опции используются в большинстве случаев, когда опция не двоичная (вкл / выкл), как -tпри монтировании, которая указывает тип файловой системы ( -t iso9660, -t ext2). « Делай это с закрытыми глазами » или « корми животных, но только львов ». Также называется аргументами.
  • Операнды - это то, что вы хотите, чтобы эта команда действовала. Если вы используете cat file.txt, операнд - это файл в вашем текущем каталоге, и его содержимое будет показано на STDOUT. lsэто команда, в которой операнд является необязательным Три точки после операнда неявно говорят вам, что catмогут воздействовать на несколько операндов (файлов) одновременно. Вы можете заметить, что некоторые команды установили тип операнда, который он будет использовать. Пример:cat [OPTION] [FILE]...

Связанные синопсис вещи:

Когда этот метод не будет работать?

  • Manpages, которые не имеют примеров
  • Страницы, где варианты имеют краткое объяснение
  • При использовании общих ключевых слов , как and, to, forв страницах руководства
  • Manpages, которые не установлены. Это кажется очевидным, но, если у вас не установлено lftp(и его man-страницы), вы не можете знать, что это подходящий вариант в качестве более сложного ftp-клиента, запустивman -k ftp

В некоторых случаях примеры будут довольно простыми, и вам придется выполнить некоторые команды для тестирования или, в худшем случае, Google его.

Другое: Языки программирования и его модули:

Если вы программируете или просто создаете сценарии, имейте в виду, что некоторые языки имеют свои собственные системы manpages, такие как perl( perldocs), python ( pydocs) и т. Д., Содержащие конкретную информацию о методах / функциях, переменных, поведении и другую важную информацию о модуле. Вы пытаетесь использовать и учиться. Это было полезно для меня, когда я создавал скрипт для загрузки непрочитанных электронных писем IMAP с помощью perl Mail::IMAPClientмодуля.

Вы должны будете выяснить эти конкретные страницы с помощью man -kили поиска в Интернете. Примеры:

[root@host ~]# man -k doc | grep perl
perldoc              (1)  - Look up Perl documentation in Pod format


[root@host ~]# perldoc Mail::IMAPClient
IMAPCLIENT(1)         User Contributed Perl Documentation        IMAPCLIENT(1)

NAME
       Mail::IMAPClient - An IMAP Client API

SYNOPSIS
         use Mail::IMAPClient;

         my $imap = Mail::IMAPClient->new(
           Server   => ’localhost’,
           User     => ’username’,
           Password => ’password’,
           Ssl      => 1,
           Uid      => 1,
         );

... тонны других вещей здесь, с разделами, как обычная man-страница ...

С питоном:

[root@host ~]# pydoc sys
Help on built-in module sys:

NAME
    sys

FILE
    (built-in)

MODULE DOCS
    http://www.python.org/doc/current/lib/module-sys.html

DESCRIPTION
    This module provides access to some objects used or maintained by the
    interpreter and to functions that interact strongly with the interpreter.
...again, another full-featured manpage with interesting info...

Или, help()функция внутри оболочки Python, если вы хотите прочитать более подробную информацию о каком-либо объекте:

nwildner@host:~$ python3.6
Python 3.6.7 (default, Oct 21 2018, 08:08:16)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(round)

Help on built-in function round in module builtins:

round(...)
    round(number[, ndigits]) -> number

    Round a number to a given precision in decimal digits (default 0 digits).
    This returns an int when called with one argument, otherwise the
    same type as the number. ndigits may be negative.

Бонус:wtf команда может помочь вам с аббревиатурами и она работает , как whatisесли бы не аббревиатуры на нем нет базы данных найдена, но то , что вы ищете является частью базы данных человека. В Debian эта команда является частью bsdgamesпакета. Примеры:

nwildner@host:~$ wtf rtfm
RTFM: read the fine/fucking manual
nwildner@host:~$ wtf afaik
AFAIK: as far as I know
nwildner@host:~$ wtf afak
Gee...  I don't know what afak means...
nwildner@host:~$ wtf tcp
tcp: tcp (7)              - TCP protocol.
nwildner@host:~$ wtf systemd
systemd: systemd (1)          - systemd system and service manager

источник
Вы также можете сделать man find | grep .... Мне нравитсяman command | sed -n '/^[[:space:]]*-/,/^$/p'
mikeserv
6
Ага. Ты можешь. Я просто предполагал, что оператор "noob" и пытался начать работу с manpages :)
3
Этот ответ должен быть лучшим результатом для "Как эффективно использовать man?" Спасибо и молодцы.
user1717828
8
@nwildner, ты заслуживаешь конфету после такого огромного и хорошо сформированного ответа. Отличная работа!
Виллиан Пайшао
6
Я думаю, что это должно быть добавлено в Linux. В качестве manстраницы, конечно.
Myaut
38

Это довольно хорошо объяснено в man man:

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.

   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

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

Иногда резюме достаточно. Например, в man ls:

SYNOPSIS
       ls [OPTION]... [FILE]...

В других случаях это бесполезно, если вы уже не знаете, как использовать данную команду. Например, man dd:

   dd [OPERAND]...
   dd OPTION

Итак, в заключение, не беспокойтесь, если вы не получите краткий обзор. Это нормально. Прочитайте страницу руководства.

Тердон
источник
Спасибо за совет, особенно параграф «Как и как ...».
user1717828
21

Некоторые основы для понимания синопсиса

  • каждый [foo]представляет необязательный аргумент или параметр.
  • когда [foo [ bar ] ]используется синтаксис, вы можете использовать foo, и вы можете добавить bar.
  • параметр обязательного параметра используется таким образом [ -S size ], который говорит, что аргумент -S ожидает обязательного размера.

Например : foo [-S size ] filename ...

означает

  • команда foo
  • необязательный параметр -Sможет быть использован, вы должны сказать size(имя дать вам подсказку)
  • Обязательным аргументом является filename(это также даст вам подсказку, см. man mkdir)
  • elipsis ...скажет вам, что вы можете использовать несколько файлов.

Вы все еще должны углубиться в man-страницу, чтобы понять вариант (в моем примере выше, -S sizeо чем)

Archemar
источник
14

manстраницы обычно отображаются в lessнастоящее время. Это позволяет искать через них. Я не стал бы беспокоиться о синопсисе, особенно потому, что у вас есть конкретная командная строка, которую вы хотите понять.

Нажмите /и начните печатать, -Iа затем Enter. Первый удар будет в кратком обзоре, второй (используйте nдля следующего) даст вам подробное объяснение -I.

Энтон
источник
11

Одна ключевая вещь, которую нужно помнить, это то, что вы не можете просмотреть руководство только для одной команды в случае команд, которые выполняют другие команды.

Для вашего примера команды

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

Вам нужна информация не только, xargsно также bashи [(это может быть на testстранице руководства ). Вам также может понадобиться информация о вашей оболочке (возможно, также bash) для правил цитирования, поскольку ваша команда содержит сложную строку в кавычках. Я уже могу сказать вам, что аргумент в кавычках неверен (и неверен в том случае, если он обнаружится только при обнаружении файла с пробелами в имени); внутреннее, "{}"вероятно, должно быть '{}'.

Итак, сначала вы должны обратиться к странице справочника xargs и посмотреть, [-I replace-str]что это -I {}значит, и [command [initial-arguments]]что bashи все после этого. Тогда вы бы обратились к bashman-странице для того -c, что делает и т.д.

Random832
источник
6

Добавим к уже полученным великим ответам:

1) Если вам интересна утилита gnu, особенно такая, как, sedи grepиногда использование infoкоманды вызовет значительно расширенную версию информации о команде. sedнапример, есть подробный раздел о том, как писать регулярные выражения, и другой раздел с некоторыми очень сложными примерами использования.

2) Это "руководство". Руководство в первую очередь разработано, чтобы помочь вам вспомнить детали того, что вы уже поняли. Он спроектирован таким образом, чтобы вы могли быстро получить нужные детали и выйти из него. (И слишком многие не имеют примеров использования или только тривиальные.)

Когда мне нужно узнать что - то новое, даже небольшая особенность команды, которая мне не ясно, я иду в сети и поиск , используя лучшие ключевые слова я могу думать (например Linux xargs) и добавить слово howto, examplesили tutorial. Это очень часто довольно продуктивно.

Я обычно использую duckduckgo, потому что он поддерживает мою конфиденциальность, но если мне нужен больший контроль над своими поисками, я использую Google, потому что могу сказать, что он просто ищет на одном веб-сайте или возвращает результаты только за последний год. (У этого есть много других опций расширенного поиска. Вы можете Google их.;))

Еще один совет:

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

man bash > bashman.txt

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

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

Джо
источник
4

Чтобы быстро получить справку по вашей конкретной команде, вы можете использовать Explain Shell . Например, ваша команда . Получив первое общее представление о том, как это работает, вы должны приступить к работе с man-страницами, как рекомендуют другие ответы.

AvImd
источник
2

Есть два полезных инструмента, чтобы узнать больше о командах Linux:

  1. cheatотобразит часто используемую опцию для командной строки. Также вы можете добавить свой собственный command + optionдля отображения cheatдля конкретной команды.
  2. bropagesИнструмент предоставляет некоторый пример для командной строки, можно добавить свой собственный пример или повысить / понизить данный пример после получения кода подтверждения bro thanks. Команда must Voted появится в верхней части broстраницы.
GAD3R
источник
1

Я предлагаю tldrдля всестороннего подобного человеку инструмента. Упрощенные и управляемые сообществом справочные страницы. В Ubuntu вы можете установить его через Snap, но у него есть версии и для других дистрибутивов. Он также предоставляет вам несколько распространенных примеров использования. 100% рекомендуется.

Хосе Кастильо Лема
источник
0

> Я ищу помощь в интерпретации справочной страницы для понимания сложных команд.

Я думаю, что это недоразумение здесь. Что делает Linux / UNIX настолько мощным, так это то, что вы можете создавать очень длинные и эффективные команды, например, перенаправляя стандартный вывод одной команды (здесь locate) в стандартный поток другой (здесь xargs) через pipe ( |). Следовательно, как правильно сказал Random832, вы не найдете ни одной man-страницы, объясняющей, что делает ваша команда-пример.

Я рекомендую вам прочитать руководство по написанию сценариев для оболочки Linux; Advanced Bash-Scripting Guide является отличным документом. Пожалуйста, не пугайтесь этого; Освоение Linux требует многих лет и является бесконечным процессом, но вы можете изучить основы в разумные сроки.

Затем обратитесь к man-страницам, когда вам нужно узнать подробности конкретной команды.

Как только вы поймете суть, вам также стоит прочитать Commandlinefu и Bash One-Liners , чтобы получить хорошие примеры.

dr01
источник
-1

Чтобы найти что-то конкретное в командах на странице руководства, вы можете использовать:

man echo | grep output.

Но для поиска переключателей (например -n) вы должны использовать его следующим образом:

man echo | grep -- -n
subtleseeker
источник