Перечислите все дополнительные аргументы конкретной команды в ударе

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

Eg:
Input: <some_command> cat
Output: -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit
7
задан 21 October 2017 в 06:17

2 ответа

Это ни в коем случае не универсально, но много команд обеспечивают сводка использования в ответ на -h или --help аргумент, например,

$ cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit

Examples:
  cat f - g  Output f's contents, then standard input, then g's contents.
  cat        Copy standard input to standard output.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/cat>
or available locally via: info '(coreutils) cat invocation'
11
ответ дан 23 November 2019 в 06:14

Лучший подход зависит от того, какую команду Вы выполняете. Можно попробовать -h или --help как steeldriver предполагает, хотя для некоторых команд, которые не могут показать все доступные варианты. Идеально, все варианты показались бы; даже затем, тем не менее, они не могли бы все быть объяснены. Официальная документация, такая как a man или info страница, будет обычно показывать и объяснять все опции - или по крайней мере все они, которых разработчики ожидают, что пользователи на самом деле будут использовать. (Недокументированные опции действительно иногда существуют.)

Сначала я рекомендую проверить, является ли команда внешней командой или встроенной оболочкой. Можно сделать это с type команда. В bash, можно передать -a отметьте к type команда, для показа, что работало бы, если бы первое соответствие не существовало:

ek@Io:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

Для меня (и вероятно Вы), ls псевдоним. Расширение псевдонима нерекурсивно, таким образом, ls в ls --color=auto не использует псевдоним, но использует второй список, /bin/ls, вместо этого. Это - путь к исполняемому файлу и таким образом внешняя команда.

Поэтому просмотреть документацию относительно ls включая все доступные варианты я работал бы man ls.

Некоторые случаи, как cat, просты:

ek@Io:~$ type -a cat
cat is /bin/cat

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

ek@Io:~$ type -a history
history is a shell builtin
ek@Io:~$ type -a help
help is a shell builtin

Таким образом можно работать help history узнать о history или help help узнать о help.

Для некоторого builtins, как compgen, help встроенные шоу Вы все их опции, но это не объясняет большинство из них. Каждый раз, когда Вам нужно больше информации о встроенной оболочке, можно консультироваться со страницей руководства для bash (man bash), или можно консультироваться дольше и больше подробной документации путем выполнения info bash или посещение его онлайн. Можно найти раздел по builtins особенно полезным.

Некоторые команды доступны и как внешние исполняемые файлы и как оболочка builtins, который является другой причиной, использующей type -a сначала может быть полезным:

ek@Io:~$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

Если Вы работаете man printf, например, Вам не покажут информации о -v опция, потому что /usr/bin/printf не поддерживает его. bash встроенная оболочка делает, тем не менее, и текст, показанный, когда Вы работаете help printf списки и объясняют это.

Наконец, для страниц справочника, полезно знать, что можно считать их онлайн.

5
ответ дан 23 November 2019 в 06:14

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

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