curl -Lo ...
这个命令是什么意思呢?通过curl –help 查到了下表。1
2
3-L, --location Follow redirects (H)
--location-trusted Like '--location', and send auth to other hosts (H)
--login-options OPTIONS Server login options (IMAP, POP3, SMTP)
但是看不懂 -Lo是什么操作,印象中git也有。1
2
3
4
5usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
配置:1
2git config --global user.name "姓名"
git config --global user.email "邮箱"
常用:1
2
3
4git add .
git commit -m ""
git pull
git push
代码审计相关:1
2git pull --rebase origin 分支名
git push origin HEAD:refs/for/分支名
从上面的git代码可以看出来,有些命令后面跟一个横线”-“,有的命令后 main跟两个横线”–”。
那么一个横线参数,两个横线参数的区别什么呢?
难道”-“是”–”的父集?
这是一个由于读书少导致的主观错误臆测。
通过度娘,我搜索到了这个好问题:linux中间有的命令是一个横杠,有的命令是两个横杠。请问这有什么区别吗?
其中有一段非常好的回答:
正好前段时间看《UNIX 编程艺术》中 10.5 节提到,过来回答一下。
Unix 程序的命令行选项有三种风格:Unix 风格、GNU 风格和 X toolkit 风格。
Unix 风格
即题主说的 -a
这种。在选项需要加参数的时候,紧跟在选项后面即可(或者加空格)。比如登录 mysql server 的时候:
$ mysql -u root -p
或者
$ mysql -uroot -p
均可。这时,root 就是 u 的参数,表示使用 root 用户登录。另外加不加空格看程序怎么才处理了,没有明确的规定。
GNU 风格
即题主说的 --help
这种,使用两个连字符加上关键词(而不是单个字符)。这种风格的出现是因为有一些复杂的 GNU 程序,仅仅 26 个字母(或者算上大小写 52 个)不够使用而发展出来的。另外一个有点是容易理解,因为出现的不再是缩写的字母。选项参数可以使用空格分割也可以使用”=”来分割。如:
$ ls --human-readable --sort=time
如果使用 Unix 风格,那么上条命令则是
$ ls -ht
是不是更加易读呢?
X toolkit 风格
这是一种比较不常见的风格,使用单个连字符加上关键词。只有 X 相关的程序才使用这种风格,一般不建议使用。
$ xeyes -display joesws:0 -geometry 1000x1000+0+0
看上去和 GNU 风格差不多,只是双连字符改成了单个连字符。
这个回答已经很详尽了,但是还是需要去看《Unix编程艺术》,242页到248页讲得非常详尽,将三种命令行的来龙去脉都讲清楚了,而且还给出了一些常见的Unix命令参数表,非常值得一看。
但是说到底,还是需要在实践中去不断学习各种命令行的使用,罗列下目前我所知道的提供命令行参数的应用程序。
- git
- node python java go
- npm yarn cnpm maven
- curl
- mongodb mysql
- docker kubectl
- brew
- choco
- mac/linux 系统命令
- windows 系统命令
等等等等,还有很多,就不一一罗列了,每一种工具都需要大量的实践。
有一个很好的查看帮助的方法,命令后面添加-h,–help或者help参数。比如foo -h,foo –help , foo help,可以直接在终端中去查看命令行的使用方法。
That ‘ s it !