Linux shell命令幫助格式詳解
前言
linux shell命令通??梢酝ㄟ^(guò)-h或--help來(lái)打印幫助說(shuō)明,或者通過(guò)man命令來(lái)查看幫助,有時(shí)候我們也會(huì)給自己的程序?qū)懞?jiǎn)單的幫助說(shuō)明,其實(shí)幫助說(shuō)明格式是有規(guī)律可循的
幫助示例
下面是git reset命令的幫助說(shuō)明,通過(guò)man git-reset可以查看
git reset [-q] [<tree-ish>] [--] <paths>... git reset (--patch | -p) [<tree-ish>] [--] [<paths>...] git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
對(duì)于命令和參數(shù)大致有如下幾種類型
- 沒(méi)有任何修飾符參數(shù) : 原生參數(shù)
- <> : 占位參數(shù)
- [] : 可選組合
- () : 必選組合
- | : 互斥參數(shù)
- ... : 可重復(fù)指定前一個(gè)參數(shù)
- -- : 標(biāo)記后續(xù)參數(shù)類型
下面來(lái)一一介紹
參數(shù)類型解讀
原生參數(shù)
說(shuō)明文檔里的字符即為命令需要使用的字符,比如以上命令的
git reset
這種參數(shù)在使用時(shí)必需指定,且和說(shuō)明文檔里的一致
占位參數(shù)
表示方式: <>
和原生參數(shù)類似,都是必需指定的,只不過(guò)占位參數(shù)的實(shí)際字符是在使用時(shí)指定的,同時(shí)為了方便閱讀會(huì)用一個(gè)描述詞匯來(lái)表示,并以<>包圍,比如
<paths>
表示路徑,使用時(shí)可以指定為具體的路徑,而paths只是起一個(gè)說(shuō)明作用,有些幫助說(shuō)明里也會(huì)用大寫(xiě)來(lái)表示占位參數(shù),比如將以上參數(shù)說(shuō)明寫(xiě)成PATHS
可選組合
表示方式: []
括號(hào)里的參數(shù)為可選參數(shù),比如usage第二個(gè)里面的[-q] ,則-q為可選參數(shù)
可選項(xiàng)和占位參數(shù)也可以同時(shí)使用,如
[<commit>]
表示該參數(shù)可以指定某次提交,也可以不指定
必選組合
表示方式: ()
括號(hào)里的參數(shù)必需指定,通常里面會(huì)是一些互斥參數(shù),比如
(--patch | -p)
表示--patch和-p這兩個(gè)參數(shù)必需指定一個(gè)
互斥參數(shù)
表示方式: |
互斥參數(shù)一般都在()和[]里,表示該參數(shù)只能指定其中一個(gè),比如
[--mixed | --soft | --hard | --merge | --keep]
重復(fù)參數(shù)
表示方式: ...
表示前一個(gè)參數(shù)可以被指定多個(gè),比如
<paths>...
<paths>是一個(gè)占位參數(shù),使用時(shí)必需指定為路徑,...并表示可以指定多個(gè)路徑。重復(fù)參數(shù)的一個(gè)典型使用場(chǎng)景就是移動(dòng)文件,將多個(gè)文件移動(dòng)到一個(gè)目錄下,比如如下命令
git mv [<options>] <source>... <destination>
我們可以這樣使用
git mv -f a.cpp b.py dir
此時(shí)options對(duì)應(yīng)為-f參數(shù),source對(duì)應(yīng)為a.cpp b.py,destination對(duì)應(yīng)為dir
標(biāo)記后續(xù)參數(shù)類型
表示方式: --
表示后續(xù)參數(shù)的某種類型,比如這里如果使用如下命令
git reset -p -- xx
對(duì)比第一個(gè)命令,這里的xx對(duì)應(yīng)的應(yīng)該是<paths>參數(shù),當(dāng)我們指定--之后,則git會(huì)認(rèn)為xx就是一個(gè)路徑,那怕它是特殊符號(hào)或者路徑并不存在。這是shell命令的一個(gè)通用方式,比如我們有一個(gè)文件名為-h,如果想刪除這個(gè)文件,執(zhí)行
rm -h
肯定是無(wú)法刪除的,因?yàn)檫@時(shí)-h會(huì)被認(rèn)為是rm的一個(gè)參數(shù)選項(xiàng),應(yīng)該使用
rm -- -h
這時(shí)shell會(huì)將-h解釋為一個(gè)文件名傳遞給rm命令
解讀實(shí)戰(zhàn)
最后來(lái)解釋一個(gè)比較復(fù)雜的幫助說(shuō)明
git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|<type>|--textconv) <object>
該命令參數(shù)由四個(gè)部分,其中git和cat-file為原生參數(shù),()里的為可選組合, <object>為占位參數(shù)
組合又由6部分組成,為互斥關(guān)系
-t [--allow-unknown-type] -s [--allow-unknown-type] -e -p <type> --textconv
因此該命令的幫助說(shuō)明可以拆分如下
git cat-file -t <object> git cat-file -t --allow-unknown-type <object> git cat-file -s <object> git cat-file -s --allow-unknown-type <object> git cat-file -e <object> git cat-file -p <object> git cat-file <type> <object> git cat-file --textconv <object>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
學(xué)習(xí)shell腳本之前的基礎(chǔ)知識(shí)[圖文]
在學(xué)習(xí)shell腳本之前,需要你了解很多關(guān)于shell的知識(shí),這些知識(shí)是編寫(xiě)shell腳本的基礎(chǔ),所以希望你能夠熟練的掌握2013-03-03
Shell調(diào)用curl實(shí)現(xiàn)IP歸屬地查詢的腳本
這篇文章主要介紹了Shell調(diào)用curl實(shí)現(xiàn)IP歸屬地查詢,文中給大家提到了查詢IP歸屬地的shell腳本,在批量查找數(shù)據(jù)的時(shí)候經(jīng)常會(huì)遇到,今天給大家分享出來(lái),需要的朋友可以參考下2021-07-07
bash?shell?自定義函數(shù)命令持久化生效問(wèn)題
這篇文章主要介紹了bash?shell?自定義函數(shù)命令持久化生效,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
Shell命令之?dāng)?shù)組表示語(yǔ)法學(xué)習(xí)
這篇文章主要為大家介紹了Shell命令之?dāng)?shù)組表示語(yǔ)法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Linux應(yīng)用調(diào)試之strace命令詳解
strace常用來(lái)跟蹤進(jìn)程執(zhí)行時(shí)的系統(tǒng)調(diào)用和所接收的信號(hào)。下面通過(guò)本文給大家分享Linux應(yīng)用調(diào)試之strace命令,需要的朋友參考下吧2017-12-12
Shell中的for和while循環(huán)詳細(xì)總結(jié)
這篇文章主要介紹了Shell中的for和while循環(huán)詳細(xì)總結(jié),本文講解了for循環(huán)的數(shù)字段形式、詳細(xì)列出、對(duì)文件進(jìn)行循環(huán),while循環(huán)的三種使用場(chǎng)合等內(nèi)容,需要的朋友可以參考下2015-05-05
linux設(shè)置定時(shí)任務(wù)的方法步驟
這篇文章主要介紹了linux設(shè)置定時(shí)任務(wù)的方法步驟,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05

