linux命令行格式简介
常见的几种命令行参数风格
参数风格 | 使用情况 | 前导符号 | 参数名 | 备注 | 来源 |
GNU风格 | 双破折线(--) | 字符串 | 通过等号(=)或空格( )赋值 如 du --max-depth=1 等价于 du --max-depth 1 | GNU计划&Linux内核的Linux系统 | |
Unix / POSIX风格 (原始) | 单破折线(-) | 单个字符,多个字符表示多个参数的拼接 模式选项:选项后不带参数,可以组合在一起使用。例如-a和-b是模式选项,那么-ab或-ba作用相同 如果选项后带参数,这些参数要紧接在其后,也可用空格分开 | 通过空格( )赋值或直接连接 如 du -d 1 等价于 du -d1 tar -xzvf 等价于 tar -x -z -v -f | 贝尔实验室开发的AT&T Unix系统 | |
BSD风格 | 使用相对较少 | 无 | 单个字符,不带任何前缀,如 ps a 多个不带参数的选项,可以组合在一起,如 ps aux | 如 ps U root 等价于 ps Uroot | 加州大学伯克利分校开发的一个Unix系统 |
X toolkit风格 | 不应在新程序中使用 | 单破折线(-) | 字符串,如 java -version | 通过空格( )赋值 如 find -name *.txt 【解析】原始的X toolkit风格是由X toolkit进行解析,它首先过滤并处理某些选项(如-geometry和-display)然后再把过滤后的命令行传递给应用程序逻辑进行解析。 【说明】这种风格即不能和古典的POSIX/UNIX风格兼容,也不能和GNU风格兼容,所以不应该在新程序中使用,除非遵循老式的X约定看起来价值很高。 【备注】不确定将find、java命令归类为X toolkit风格是否正确,因为它们不属于X软件,但风格确实很像。java在某些高版本中,也支持了GUN风格的命令行 | |
DOS风格 | Windows系统 | 左斜线(/) | 单个字符,多个字符表示多个参数的拼接 | 直接连接,如果选项带参数,则选项参数紧跟在选项后边,不使用空格分开。 如 mycommand /C /D 等价于 mycommand /C/D mycommand /CP/D |
以下是从 man ps 输出中截取出来的一段话
This version of ps accepts several kinds of options: 1 UNIX options, which may be grouped and must be preceded by a dash. 2 BSD options, which may be grouped and must not be used with a dash. 3 GNU long options, which are preceded by two dashes.
细节
Unix/Linux 下各种命令的参数,都是以 - (后面跟单字符参数,比如 -r) 或者 -- (后面紧跟多字符参数,比如 --recursive)来表示。 在所有参数后面是文件名或者目录。大多情况下(文件名第一个字符不是 -)这样是没有任何问题的,但是如果文件名第一个字符是 - 时(比如 -myfile),命令就无法区分此时 -myfile 到底是文件名还是参数名。此时解决方法就是用 -- 来表示命令参数结束了,后面哪怕是以 - 开头的字符串,也被当成文件名处理。
比如 rm -r -- -mydir 就会递归的(-r)删除 -mydir 这个目录。
当然,还有其它各种各样的风格,只是不是太常见,所以不再介绍,实际遇到的时候,需要根据手册或者帮助文档查看其选项的格式和含义。需要注意的是,这些风格之间只是“风格”不同,实际使用中并不限制使用,比如上述 ps 命令,由于一些历史原因,就可以接收POSIX/UNIX风格、GNU风格、BSD风格的参数,互相并不冲突。就像武林中的高手一样,可以使用多个门派的武功。但是建议加入到较流行的门派中,毕竟使用的人多的门派,相对来说,比较容易和其它人交流。如GNU风格、POSIX/UNIX风格,且建议同时支持这两种风格(即长命令选项、短命令选项)。如果已有的流行风格已经可以满足使用需求了,不建议再开宗立派了,门派多了,沟通和交流的成本就高了。毕竟我们不是真正的“武林”,不需要分出一个胜负,需要的是更友好地交流。
-----------------------------------
参考文章:
linux命令行格式简介:https://ispacesoft.com/49236.html
linux中三种风格Unix、BSD、GNU的ps的参数说明:https://blog.51cto.com/u_6353447/5872555
不同的命令行风格:https://blog.csdn.net/dancen/article/details/126244907
【Linux】命令行参数前 的「-」和「--」解释与用法:https://blog.csdn.net/weixin_44441131/article/details/117921133
linux命令详解:ps:https://www.cnblogs.com/llbai/p/16625191.html
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。