美文网首页@IT·互联网
一个符合GNU标准的命令行的组成格式

一个符合GNU标准的命令行的组成格式

作者: 邹小创 | 来源:发表于2016-10-01 15:12 被阅读586次

我们每天都在Terminal下面运行很多命令,但是,你了解一条命令的标准格式吗?对于我来说,以前并没怎么关心过,都是拿来就用,不会就google。这几天继续看《Build Awesome Command-Line Applications in Ruby 2》,其中讲到了GNU规定的命令行的格式,看完以后有种恍然大悟的感觉,才发现原来一条命令还有一个标准格式的,有了这个格式,很多东西都不用记了,一个命令用起来就觉得有章可循了,对一个不熟悉的命令,也更容易猜到,或是找到使用的方法。

废话不多说,一个GNU规定的命令行的格式如下图所示:

一个完整的Terminal命令主要由4部分组成:

  1. 命令名(Executable): git
  2. 子命令(Command): push
  3. 选项(Options): --no-pager 和 -v都是
  4. 参数(arguments): origin和master

这里重点是选项(Options)的一些格式规定。

选项根据形式分类

从形式上来说,Options有两种形式:简短形式和完整形式。
简短形式一般由一个连接符“-”后面跟一个字母组成:

ls -l -a -t # -l, -a, -t都是简短形式的Option

其实,几个简短形式的options可以合并写成一个:
ls -lat 效果等同于 ls -l -a -t
完整形式的则一般由两个连接符“--”开头,接着是一个或多个完整的单词,如果有多个单词,那么中间用一个连接符连接,如上面的“--no-pager”。

选项根据功能分类

从功能上来讲,Options一般有两种。一种的是“switch”(开关),用来enable或者是disable(一般以“--no”开头)一些feature,如上面的--no-pager,就是用来disable pager这个feature的。除此之外的另外一种是flag。switch一般没有参数,flag则一般有参数。

如果一个flag有参数,那么一般简短形式的flag跟它的参数之间由一个空格分开。而完整形式的flag则用一个“=”连接它的参数,如:

curl -X POST http://www.google.com #POST是-X的参数
curl --request=POST http://www.google.com #POST是--request的参数。

这里要分清楚的是Option的参数和这整个命令的参数,在上面的例子中,POST是Option -X(或--request)的参数,而http://www.google.com则是这整个命令的参数。

对于一个Command Suite(什么叫Command Suite?)来说,option又分为Global Options和Command Option,这两者是不一样的。一个是对整个Command Suite的Option,一个是对于单个子命令的Option。它们甚至可以有相同的名字,含义却不一样,这点我相信应该也是比较好理解的。

相关文章

  • 一个符合GNU标准的命令行的组成格式

    我们每天都在Terminal下面运行很多命令,但是,你了解一条命令的标准格式吗?对于我来说,以前并没怎么关心过,都...

  • Linux中C语言简单实现之gcc篇

    1、gcc编译器 gcc是GNU Cmpiler Collection 简称,它是GNU项目中符合ANSIC标准的...

  • 02.eslint打包、反向代理配置(跨域)

    eslint打包 在cmd命令行中执行: 作用:格式化代码,使其符合eslint标准。(实验的时候,在npm ru...

  • u-boot.lds链接文件详解

    GNU编译器生成的目标文件缺省为elf格式,elf文件由若干段(section)组成,如不特殊指明,由C源程序生成...

  • flutter Dart DateTime详解

    DateTime 类   DateTime类用来标识一个瞬时的时间节点,可以通过构造函数,从标准格式(符合ISO ...

  • OC之特殊json解析

    2018年04月28日后台返回的json数据如下,是一个非标准的json的数据,但是符合json的格式,格式化如下...

  • FFmpeg

    3,FFmpeg 项目的组成 (1)基本: ffmpeg :是一个命令行工具,用来对视频文件转换格式;ffseve...

  • FFMpeg

    MAC安装brew install ffmpeg Ffmpeg:由命令行组成,用于多媒体格式转换Ffplay:基于...

  • python解析非标准格式json--demjson

    json是经常使用的数据传输格式,但是实际中会有一些json的格式不符合标准。比如json中的key不是字符格式,...

  • gnu-sed invalid option: --with-d

    对于mac,就需要通过命令行来安装gnu-sed,具体安装过程如下 2.brew install gnu-sed ...

网友评论

    本文标题:一个符合GNU标准的命令行的组成格式

    本文链接:https://www.haomeiwen.com/subject/xdiryttx.html