Как узнать, какие опции имеют каждая команда?

Я использую linux уже довольно давно, и у меня в голове возникает вопрос. Я буду использовать команду mount в качестве примера.

Когда вы видите manpages mount, он говорит, что вы используете команду следующим образом: mount $type $drive $dir, где $ drive - это диск, на который вы хотите установить $ type что тип диска и $ dir - это каталог, в котором вы его монтируете.

Что касается того, что нужно вставить в переменные $ drive и $ dir, это довольно легко сказать. Теперь в переменной $ type вы не можете просто поместить все, что захотите, потому что система не поймет это. Вы должны использовать готовые слова, такие как vfat, ext3, auto и т. Д.

И вот мой вопрос: для каждой команды, которая требует, чтобы такие готовые слова заполняли переменное пространство, как узнать, какие параметры Должен ли я? Где я могу увидеть список всех параметров, которые у меня есть для таких переменных?

И mount - это всего лишь одна команда, есть множество других, подобных этой, ведьма требует слова из набора готовых слов для Работа. Насколько я могу судить, нет такого списка в manpages или на каком-то очевидном сайте.

1
задан 28 January 2016 в 20:27

2 ответа

Нет общего способа, особенно для расширяемых программ, таких как mount.

Для mount опция -t foo сообщает mount выполнить команду mount.foo. Это зависит от того, что вы установили. Например, я могу использовать следующие опции для mount:

ceph  cifs  fuse  fuse.ceph  lowntfs-3g  nfs  nfs4  ntfs  ntfs-3g

Почему? Поскольку у меня установлены следующие помощники для mount:

$ ls /sbin/mount.*
/sbin/mount.ceph       /sbin/mount.cifs        /sbin/mount.fuse
/sbin/mount.fuse.ceph  /sbin/mount.lowntfs-3g  /sbin/mount.nfs
/sbin/mount.nfs4       /sbin/mount.ntfs        /sbin/mount.ntfs-3g

В общем, нет никакого способа узнать, что вы можете запустить для данной команды, особенно если она может использовать внешние программы подобный mount ..

4
ответ дан 23 May 2018 в 13:56
  • 1
    Я не знал, что есть такие вещи, как расширяемые программы! Теперь гораздо больше смысла. Это печально, что в Интернете нет огромной базы данных со всем, что каждый когда-либо выпускал там! – The Gramm 29 January 2016 в 16:59
Насколько я могу судить, нет такого списка в manpages (...).

Даже в особом случае монтирования (муру объясняет, почему) на самом деле manpage помогает много:

-t, --types fstype
  The argument following the -t is used to indicate the filesystem type.
  The filesystem types which are currently  supported depend on the running
  kernel. See /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for
  a complete list of the filesystems. The most common are ext2, ext3, ext4,
  xfs, btrfs, vfat, sysfs, proc, nfs and cifs.

Он не только перечисляет наиболее распространенные аргументы, но также указывает на /proc/filesystems (это файл, поэтому мы будем использовать cat) и /lib/modules/$(uname -r)/kernel/fs (который является каталогом, поэтому мы будем использовать ls). В сочетании это дает вам полный список аргументов, используемых в вашей конкретной системе.

Обычно man и / или info содержат полный список возможных аргументов для опции или (например, в вашем примере ) указывают на другие источники, где вы получаете эту информацию. Для поиска опции в обширной man-странице функция поиска пригодится, просто введите, например. /--types, нажмите Enter, чтобы найти первое вхождение, а N - через следующие.

1
ответ дан 23 May 2018 в 13:56

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

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