我已经使用 Linux 一段时间了,脑子里一直有一个问题。我将使用 mount 命令作为示例。
当您看到 mount 的手册页时,它会提示您使用如下命令:
mount $type $drive $dir
其中 $drive 是您要挂载的驱动器,$type 是该驱动器的类型,$dir 是您将要挂载它的目录。
至于在 $drive 和 $dir 变量中放什么,这很容易说清楚。现在在 $type 变量中你不能随便放任何你喜欢的东西,因为系统不会理解它。你必须使用预先设定的单词,如 vfat、ext3、auto 等。
我的问题是:对于每个需要这种预制单词来填充变量空间的命令,我如何知道我有哪些选项?在哪里可以看到这种变量的所有选项的列表?
mount 只是一个命令,还有无数其他命令像这个一样,需要从一组预制单词中选择一个单词才能工作。据我所知,手册页或某些明显的网站中没有这样的列表。
答案1
没有通用的方法,特别是对于像这样的可扩展程序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
。
答案2
通常你有两个选择:
一种是研究你想知道的每个命令的源代码,这可能不是一个好主意(实际上,如果你想知道内部工作原理的话,这是一个好主意,但你知道,从时间上讲;)),因为它要花费无数个小时。
第二个更可行的选择是研究手册,使用
man
或info
可以为您提供所有选项和参数的详细解释。
答案3
据我所知,手册页中没有这样的列表(...)。
即使是在非常特殊的 mount 情况下(muru 解释了原因)实际上手册页很有帮助:
-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
and/orinfo
要么包含选项的可能参数的完整列表,要么(如您的示例)指向您获取此信息的其他来源。要在详尽的手册页中搜索选项,搜索功能非常方便,只需键入例如/--types
,点击Enter搜索第一个出现项并N浏览后续出现项。