当你知道如何阅读用法时,Linux 命令就很容易
摘要
- Linux 命令提供有关如何使用它们的使用信息,包括它们支持的选项和参数。
- 在命令前加上“man”可以可靠地获取其用法信息。
- 使用语法通常包括命令的名称,后跟其短选项、长格式选项和参数。
即使你熟悉一些命令,命令行也可能是一个令人生畏的地方。然而,几乎每个 Linux 命令都可以告诉你如何使用它——如果你知道如何提问。
命令使用说明告诉我什么?
它本质上是一个内置的指南
有些 Linux 命令本身就能做一些有用的事情。例如,pwd 会打印工作目录:
其他命令需要更多信息。以 rmdir 为例,这是删除目录的命令;它需要知道要删除哪个目录。你还可以以不同模式运行 rmdir。例如,要在每个目录被删除时进行报告,请运行 rmdir -v:
Linux 将命令名称之后的所有内容称为操作数。以“-”开头的字母和以“--”开头的单词称为选项,它们通常会改变命令的行为。选项之后的单词是参数,用于向命令传递数据。
命令的用法会告诉你它支持哪些选项以及你可以传递哪些参数。它还会解释哪些是可选的以及你如何组合它们。
我如何查看一个命令的用法?
有几种方法,而且它们都很简单
查找命令用法的最可靠方法是使用 man 命令。大多数命令会在其手册顶部的“SYNOPSIS”部分告诉你它们的用法。以 which 命令为例:
这里,用法如下:
which [-as] filename ...大多数命令在出错时也会告诉你它们的用法,包括当你错误地运行它们时。需要参数来执行有用操作的命令通常在没有任何参数运行时会显示用法说明:
在这种情况下,grep 命令会打印其用法,因为它至少需要一个正则表达式模式才能执行任何有用的操作。
最后,有一些命令可以在没有任何参数的情况下执行操作,但没有手册页,因此这两种方法都不适用。然而,幸运的是,这样的命令通常会支持 --help 选项,以便您可以看到如下用法:
当你使用“--help”选项调用 cd 命令时,它会在输出的第一行显示用法。
每个命令都是不同的,即使是相同的命令在不同系统上也可能表现不同。例如,mkdir 在 macOS 上会显示其使用方法,但在 Linux 上你需要运行 mkdir --help 或 man mkdir 来查看它。
用法语法的解释
学习行话
一旦你掌握了一个命令的用法,你就需要理解它。它有几个不同的部分,还有一些符号用来解释各部分是如何组合在一起的。理论上,命令可以以任何方式说明它们的用法,但这些约定被广泛遵循,尤其是在最常用的命令中。
使用通常包括以下部分或全部内容:
- 开头的命令名称。
- 接下来是单个字母的选项,通常用方括号([ 和 ])表示它们是可选的。它们通常一起显示,因为你可以用这种方式写作作为简写——“ls -lrt”与“ls -l -r -t”是一样的。
- 接下来是带有参数的选项和长格式选项。长格式选项是以双破折号(--)开头的完整单词。某些长格式选项可能带有可选参数,例如,“[--color[=when]]”表示--color是可选的,并且在出现时,它可以单独存在,或者后面跟一个等号(=)和用“when”表示的值。
- 最后,参数取决于工具的性质。它们通常是文件,你可能会看到“file ...”,意思是“一个或多个文件,用空格分隔。”
以 GNU alias 命令为例。它的用法是:
alias: alias [-p] [name[=value] ... ]这种用法表明 alias 接受一个短选项(p)和任意数量的名称/值对。因此,你可以以以下任意形式运行它:
- 别名
- alias -p commit
- 别名 commit="git commit" add="git add"
与此同时,BSD 版本的 mkdir(如 macOS 使用的版本)的用法如下:
usage: mkdir [-pv] [-m mode] directory_name ...此用法显示 mkdir 支持两个独立的短选项(p 和 v)以及一个需要参数的短选项 m。该命令至少需要一个目录名,但可以接受多个目录名。因此,这些形式都是有效的:
- mkdir docs
- 创建 one two three 文件夹
- mkdir -p src
- mkdir -v -p src
- mkdir -vp -m 755 one two
不过,我会给你留下一条临别寄语:一些现代的 GNU 工具简化了它们的使用,例如“ls [OPTION]... [FILE]...”。以这种形式,你需要进一步阅读手册,以准确了解命令支持哪些选项以及它们的工作方式。
不要害怕命令行
虽然一些 Linux 发行版非常注重图形界面,但命令行仍然是 Linux 平台的重要组成部分。了解基础知识是很有必要的,命令的使用可以在你学习过程中(甚至之后)填补许多知识空白。





