liut

liut.xyz

Shell命令一般格式

Posted at — Oct 27, 2017

尽管一些命令可以通过简单地输入一个字来输入,但其它命令使用标志和参数。每个命令都具有语法,指定要求的和可选的标志和参数。命令的一般格式如下:

CommandName flag(s) parameter(s)

以下是有关命令的一些一般规则:

* 命令、标志和参数间的空格是有意义的。
* 通过用分号(;)分隔命令,两个命令可在同一行上输入。例如:
  $ CommandOne;CommandTwo
  shell 顺序地运行命令。
* 命令是区分大小写的。shell 区别大写字母和小写字母。对于 shell,print 不同于 PRINT 或 Print。
* 很长的命令可以通过使用反斜杠 (\) 字符在不止一行上输入。反斜杠向 shell 标识行继续。以下示例是一个跨两行的命令:
  $ ls Mail info temp \ (按 Enter 键) > diary
  (出现 > 提示符)
  > 字符是次提示符($ 是非 root 用户的缺省主提示符),表示当前行是前一行的继续。请注意 csh(C shell)不给出次提示符,并且断行必须在字边界,且其主提示符是 %。
  1. 命令名

    每个命令的第一个字是命令名。一些命令只有命令名。

  2. 命令标志

    命令名后可能有很多标志。标志修改命令的操作,并且有时称为选项。标志由空格或制表符分开,并且通常以破折号(-)开始。例外为 ps、tar 和 ar,这些命令在一些标志前不要求破折号。例如,在以下命令中:

         ls -a -F
    
     ls 是命令名,-a -F 是标志。
    当命令使用标志时,标志直接跟在命令名后。命令中的单字符标志可与一个破折号组合。例如,前一命令还可写成如下:
    
         ls -aF
    
     存在参数实际上以破折号(-)开始的一些情况。在此情况下,请在参数前使用定界符破折号(--)。-- 告诉命令后面跟的不是标志,而是参数。
    例如,如果想要创建名为 -tmp 的目录,并输入以下命令:
    
         mkdir -tmp
    
     系统显示类似于以下的错误消息:
    mkdir:非识别的标志:t
    用法:mkdir [-p] [-m mode] Directory ...
    输入命令的正确方式如下:
    
         mkdir -- -tmp
    
     新目录 -tmp 现在已创建。
    
  3. 命令参数

    在命令名后,可能有很多后跟参数的标志。参数有时称为自变量或操作数。参数指定命令要运行所需要的信息。如果未指定参数,则命令可能假定缺省值。例如,在以下命令中: ​ ls -a temp

     ls 是命令名,-a 是标志,temp 是参数。此命令显示目录 temp 中的所有(-a)文件。在以下示例中:
    
         ls -a
    
     缺省值是当前目录,因为未给出参数。在下例中:
    
         ls temp mail
    
     未给出标志,temp 和 mail 是参数。在这种情况下,temp 和 mail 是两个不同的目录名。ls 命令显示这些目录中除隐藏文件外的所有文件。
    当参数或选项自变量是(或包含)数值时,数字解释为十进制整数,除非另有指定。0 到 INT_MAX(在 /usr/include/sys/limits.h 文件中定义)范围内的数字在句法上识别为数值。
    如果想要使用的命令接受负数作为参数或选项自变量,则可以使用 INT_MIN 到 INT_MAX(都在 /usr/include/sys/limits.h 文件中定义)范围内的数字。这并不一定意味着在该范围内的所有数字都在语义上是正确的。一些命令具有内置规范,允许较小范围的数字,例如一些打印命令。如果生成错误,错误消息让您知道值超出支持的范围,而不是命令在句法上是不正确的。
    
  4. 读用法语句

    用法语句是表示命令语法的方式,它由诸如方括号 ([ ])、大括号 ({ }) 和竖线 (|) 之类的符号组成。 以下是 unget 命令的用法语句的一个样本:unget [ -rSID ] [ -s ] [ -n ] File … 在命令用法语句中使用以下约定:

    • 必须在命令行上逐字输入的项为粗体。这些项包括命令名、标志和文字字符。
    • 代表必须由名称替换的变量的项为斜体。这些项包括命令读取的跟在标志和参数后的参数,如文件和目录。
    • 用方括号圈起的参数是可选的。
    • 用大括号圈起的参数是必需的。
    • 未由方括号或大括号圈起的参数是必需的。
    • 竖线标识只选择一个参数。例如, [ a | b ] 表示可以选择 a、b 或不选择。类似地,{ a | b } 表明您必须选择 a 或 b。
    • 省略号( … )表示参数可在命令行上重复。 * 破折号( - )表示标准输入。 把上面的东西弄清楚了,这回我们来看man显示出来的帮助信息就不会有什么问题了!
comments powered by Disqus