在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. Oracle内核参数介绍
  2. 【多重数组降维的简单方法】
  3. 社区企业云操作系统 (不错的开源虚拟化系统,期待中)
  4. c++ 编译添加dll_linux下编写C/C++代码须知———串讲
  5. vmware esxi 5.1 开启嵌套虚拟化
  6. EdgeX Foundry理论篇
  7. AndroidStudio_HttpServer类接收到数据以后_给Service发送Message_利用handler实现---Android原生开发工作笔记224
  8. php session 自定义的设置测试
  9. Hbuilder问题记录
  10. 全球前十大证券交易所在区块链领域的探索和布局
  11. 【houdini 基础】Ramp 参数
  12. swiper使用教程
  13. BI 到底是什么,看看这篇文章怎么说
  14. 将家人从Gmail,Thunderbird,Outlook等迁移到Google Apps:权威指南
  15. 日志采样率_为什么要在生产中采样调试日志
  16. 下采样matlab代码,SIFT中的降采样和升采样及其MATLAB实现
  17. Java过滤HTML标签、属性等正则表达式汇总
  18. 【JS第15期】Function 详解
  19. 【石头和爸爸】早晨一刻钟
  20. 学习Lean 6个Sigma的一点心得

热门文章

  1. 很多时候,我们以为自己知道就是全部了,其实知道和做到中间差了太多。而这些就是失败和成功之间的根本原因。 再好的方案,如果没有有效的执行,结果都不会太好
  2. reflowrepaint
  3. C语言程序设计——结构体的运用 完成对输入的字符串中C关键词的查找统计。程序运行示例如下:本程序将为您统计C语言的关键字的个数,请输入,输入end结束输入:
  4. 4.0 Maple动画的制作方法
  5. 抖音没有播放量是什么原因,抖音播放量为0怎么解决?
  6. 独家对话黄仁勋:关于生成式AI、算力能耗的一些追问
  7. java jsch下载文件,JSch使用sftp协议实现服务器文件上传下载操作
  8. C笔记之NULL和字符串结束符'\0'和EOF
  9. linux守护进程、SIGHUP与nohup详解
  10. Vulkan Windows VS2022 开发环境配置