一個(gè)符合GNU標(biāo)準(zhǔn)的命令行的組成格式

我們每天都在Terminal下面運(yùn)行很多命令宏榕,但是拓诸,你了解一條命令的標(biāo)準(zhǔn)格式嗎侵佃?對(duì)于我來(lái)說(shuō)麻昼,以前并沒(méi)怎么關(guān)心過(guò),都是拿來(lái)就用馋辈,不會(huì)就google抚芦。這幾天繼續(xù)看《Build Awesome Command-Line Applications in Ruby 2》,其中講到了GNU規(guī)定的命令行的格式迈螟,看完以后有種恍然大悟的感覺叉抡,才發(fā)現(xiàn)原來(lái)一條命令還有一個(gè)標(biāo)準(zhǔn)格式的,有了這個(gè)格式答毫,很多東西都不用記了褥民,一個(gè)命令用起來(lái)就覺得有章可循了,對(duì)一個(gè)不熟悉的命令洗搂,也更容易猜到消返,或是找到使用的方法。

廢話不多說(shuō)耘拇,一個(gè)GNU規(guī)定的命令行的格式如下圖所示:

一個(gè)完整的Terminal命令主要由4部分組成:

  1. 命令名(Executable): git
  2. 子命令(Command): push
  3. 選項(xiàng)(Options): --no-pager 和 -v都是
  4. 參數(shù)(arguments): origin和master

這里重點(diǎn)是選項(xiàng)(Options)的一些格式規(guī)定撵颊。

選項(xiàng)根據(jù)形式分類

從形式上來(lái)說(shuō),Options有兩種形式:簡(jiǎn)短形式和完整形式惫叛。
簡(jiǎn)短形式一般由一個(gè)連接符“-”后面跟一個(gè)字母組成:

ls -l -a -t # -l, -a, -t都是簡(jiǎn)短形式的Option

其實(shí)倡勇,幾個(gè)簡(jiǎn)短形式的options可以合并寫成一個(gè):
ls -lat 效果等同于 ls -l -a -t
完整形式的則一般由兩個(gè)連接符“--”開頭,接著是一個(gè)或多個(gè)完整的單詞嘉涌,如果有多個(gè)單詞妻熊,那么中間用一個(gè)連接符連接夸浅,如上面的“--no-pager”。

選項(xiàng)根據(jù)功能分類

從功能上來(lái)講固耘,Options一般有兩種题篷。一種的是“switch”(開關(guān)),用來(lái)enable或者是disable(一般以“--no”開頭)一些feature厅目,如上面的--no-pager番枚,就是用來(lái)disable pager這個(gè)feature的。除此之外的另外一種是flag损敷。switch一般沒(méi)有參數(shù)葫笼,flag則一般有參數(shù)。

如果一個(gè)flag有參數(shù)拗馒,那么一般簡(jiǎn)短形式的flag跟它的參數(shù)之間由一個(gè)空格分開路星。而完整形式的flag則用一個(gè)“=”連接它的參數(shù),如:

curl -X POST http://www.google.com #POST是-X的參數(shù)
curl --request=POST http://www.google.com #POST是--request的參數(shù)诱桂。

這里要分清楚的是Option的參數(shù)和這整個(gè)命令的參數(shù)洋丐,在上面的例子中,POST是Option -X(或--request)的參數(shù)挥等,而http://www.google.com則是這整個(gè)命令的參數(shù)友绝。

對(duì)于一個(gè)Command Suite(什么叫Command Suite?)來(lái)說(shuō)肝劲,option又分為Global Options和Command Option迁客,這兩者是不一樣的。一個(gè)是對(duì)整個(gè)Command Suite的Option辞槐,一個(gè)是對(duì)于單個(gè)子命令的Option掷漱。它們甚至可以有相同的名字,含義卻不一樣榄檬,這點(diǎn)我相信應(yīng)該也是比較好理解的卜范。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鹿榜,隨后出現(xiàn)的幾起案子海雪,更是在濱河造成了極大的恐慌,老刑警劉巖犬缨,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喳魏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡怀薛,警方通過(guò)查閱死者的電腦和手機(jī)刺彩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人创倔,你說(shuō)我怎么就攤上這事嗡害。” “怎么了畦攘?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵霸妹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我知押,道長(zhǎng)叹螟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任台盯,我火速辦了婚禮罢绽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘静盅。我一直安慰自己良价,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布蒿叠。 她就那樣靜靜地躺著明垢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪市咽。 梳的紋絲不亂的頭發(fā)上痊银,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音魂务,去河邊找鬼曼验。 笑死泌射,一個(gè)胖子當(dāng)著我的面吹牛粘姜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熔酷,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼孤紧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拒秘?” 一聲冷哼從身側(cè)響起号显,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躺酒,沒(méi)想到半個(gè)月后押蚤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羹应,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年揽碘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雳刺,死狀恐怖劫灶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掖桦,我是刑警寧澤本昏,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站枪汪,受9級(jí)特大地震影響涌穆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雀久,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一蒲犬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岸啡,春花似錦原叮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至悦荒,卻和暖如春唯欣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搬味。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工境氢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碰纬。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓萍聊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親悦析。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寿桨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容