linux那麼多shell命令,包含了很多參數,這些參數有沒有規律可循?是否有些參數固定表示什麼含義?


我每次用grep都需要先man. 很多其他的命令, 比如mount之類的也是.

我不覺得這樣有啥問題.


1. 跟德語的動詞變位一樣,說沒有規律吧,-h 大部分是顯示用法,另一部分是對人類友好地輸出,-v 是詳細信息,-d 是調試等等。但一個陌生的命令過來,誰知道它是幹嘛的……

2. 沒有。當然 GNU long options 因為用了完整的單詞,所以含義比較固定。比如 --help 就是顯示幫助,--verbose 就是詳細。

如果你經常為這個煩惱的話,建議使用 zsh。常用命令的大部分選項你輸入 - 然後按 Tab 它就給你列出來了,同時還有簡短的功能描述(bash 沒有這個)。


是時候安利下tldr


別琢磨了,用 fish shell 吧,敲 tab 就出來了。


命令行選項有兩種格式,短模式比如 -h 對應的長模式則為 --help

可以看到下面兩種用法是等價的

root@debian:~# netstat --tcp --listen --program --numeric | head -n5
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 621/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4956/nginx -g daemo
tcp 0 0 10.8.0.1:53 0.0.0.0:* LISTEN 645/named
root@debian:~# netstat -tlpn | head -n5
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 621/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4956/nginx -g daemo
tcp 0 0 10.8.0.1:53 0.0.0.0:* LISTEN 645/named

上面例子的-n也就是--numeric在很多網路命令上通用


-h --help 至少是統一的吧,其他參數用多了自然會記住


推薦看下反人類的megacli命令行參數!哈哈


單詞首字母 重複就是大小寫唄 --是完整參數單詞


大多數情況-h是help,當然也有例外。。。。


推薦閱讀:

TAG:Linux使用技巧 | Linux入門 |