在Linux中,几乎所有程序都会提供几个命令行选项,有些程序提供的命令行参数多到咂舌!这样做使得程序的运行非常灵活,而且程序的配置信息可以由脚本指定,这对于作为管道或过滤器的程序尤其重要。有三种约定可以区分命令行选项和普通的参数:原始的Unix风格、GNU风格和X toolkit风格。

原始Unix命令行参数风格

原始的Unix风格命令行选项,是以连字符“-”开头的单个字符。如果选项后面不带参数,则被称之为模式选项,模式选项是可以组合在一起使用的。例如,如果-a和-b是模式选项,那么-ab或-ba就都正确,而且会启用这两个选项。如果选项有参数,这些参数要紧接在选项后面(是否以空格分隔可选)。

例如:ls -al和ls -la是一样的效果(注意ll只是ls这个命令带参数的别名)。

Unix命令行参数风格,就是Linux的风格!

GNU风格

GNU风格则使用两个连续的连字符“--”后接选项关键字(注意,不是单个字符)。这种风格是因为有好多程序过于复杂,导致单个字符不够用了而发展起来的一种治标不治本的方法。较原始的Unix风格更容易让人理解,但作为我们这种非英语为母语的同胞们也经常输入错误或记不住。GNU风格的选项不用空格分隔就不能组合使用。选项参数既可以用空格分隔也可以使用单个等号“=”来分隔。

GNU风格常见于编译安装各种开源软件,比如APACHE,PHP等。

Unix风格和GNU风格也可以混合起来使用。

X toolkit风格

最让人痛恨的恐怕应该是X toolkit风格了。它使用单连字符和选项关键字,并且由X toolkit进行解析。最要命的是,X toolkit先要过滤并处理某些特别的选项,比如-geometry和-display,然后再把过滤好的命令行传递给应用程序去解析。如果你不清楚它会过滤哪些选项,就会死活都找不出你的程序为什么接收不到某些选项。所以,这种东西最好别碰它。

麦新杰还没见过这样的风格。

本文部分内容摘自《Linux就是这个范儿》,这是一本非常有趣的Linux如何读物。

linux命令行参数含空格,Linux的命令行参数风格相关推荐

  1. linux命令行参数含空格,linux-具有命令行参数和空格的Perl脚本

    我觉得我在这里似乎遗漏了一些明显的东西,但是我似乎无法弄清楚发生了什么.我有一个从C代码调用的perl脚本.脚本参数是这样的: my_script "/some/file/path" ...

  2. Linux中设置tab4个空格,Linux怎么在VIM编辑器中修改Tab为4个空格

    摘要 腾兴网为您分享:Linux怎么在VIM编辑器中修改Tab为4个空格,云景任务,壹学车,围棋宝典,腾讯qq等软件知识,以及临沂市教育收费,美矣收银系统,我的世界rpgitem,来电归属地显示,盘古 ...

  3. Linux中设置tab4个空格,linux下vim中tab设置为4个空格例子

    在大多数的文件中使用4个空格的tab,在Makefile中使用真正8个宽度的tab, 同事基于文件的类型自动缩进. 编辑 vim ~/.vimrc 如文件不存在新建,文件已存在,追加在尾部 添加 &q ...

  4. C# 调用命令行,参数有空格

    在程序中调用cmd命令打开一个文件,而文件路径带有空格,如果直接把路径传给cmd,那么cmd就会把路径空格前面的部分当做是一个参数,空格后当做另一个参数,命令行执行把后边截掉了,导致程序出错,会弹出了 ...

  5. windows 命令行下的find和findstr命令

    1.字符串查找:find 2.字符串查找增强:findstr 一.字符串查找:find 在文件中搜索字符串. FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "s ...

  6. Linux源码研究-用户管理员手册-内核命令行参数

    下面的列表是__setup(), core_param()和module_param()宏实现的内核参数,内核从命令-开始解析参数,如果参数不被识别,也不包含".",参数会被用来启 ...

  7. linux读取命令行参数,Linux学习笔记(五)—— Linux命令行参数

    一.客户端输入 脚本执行的过程是对数据变量进行处理的过程,之前在脚本中处理的数据都是静态数据,而不是和客户端交互的动态数据.在大多数情况下脚本执行过程需要和客户端进行交互,用来获得脚本处理的数据,这些 ...

  8. 命令行收集(DOS/Linux/nc/xscan/xsniffer)

    #1 一: net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" ...

  9. linux shell 宏定义_Linux系统和Shell命令行简介,走上数据分析之路

    122Linux系统和Shell命令行简介,走上数据分析之路 本节作者:刘永鑫 中国科学院遗传与发育生物学研究所 版本1.0.2,更新日期:2020年8月31日 本项目永久地址:https://git ...

最新文章

  1. vim 删除操作命令
  2. WCF的CommunicationObjectFaultedException异常问题
  3. 乘客公交车上被盗 司机该不该停车闭门等警察
  4. Java为什么我们现在有时不用环境变量就可以运行了
  5. 获取String类型汉字乱码,如何进行编码
  6. 中国股市暴涨暴跌全记录
  7. HTML十进制字符编号
  8. 【注意】LeetCode 2. Add Two Numbers
  9. Linux系统Web网站目录和文件安全权限设置
  10. mysqld和mysql区别_mysqld与mysqld_safe的区别
  11. ArcGIS(ArcMap)进行缓存切片
  12. smart原则_如何合理运用SMART原则高效达成工作目标?
  13. 3d建模渲染效果图步骤
  14. 手机浏览器看视频加载太慢怎么办,这5招用了提速快
  15. pano2vr导出html看不,【答疑】pano2vr6导出的全景,是空白的,打不开,? - 视频教程线上学...
  16. php 类库 添加,如何在thinkphp5中添加自己的类库
  17. 程序员的一百万种变现方式 03,努力多赚零花钱
  18. Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
  19. 纯html加css象棋棋盘,纯CSS实现的国际象棋棋盘
  20. Android 启动其他应用的Activity或Service失败解决

热门文章

  1. C++之二叉树的序列化与反序列化
  2. Integer对象范围(-128-127)之间
  3. pcb - 做钢网时, 最好带上Mark点
  4. 钟汉良日记:不会读书,就不要怪命运
  5. LPRNet: License Plate Recognition via Deep Neural Networks
  6. 用python编写掷100次硬币_连续投掷100万次硬币,出现连续10次正面的次数。
  7. Storm中的DRPC简单概述
  8. c++编写更高效的股票系统
  9. ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历
  10. JAVA面试八股文【全网最全】