linux 命令行选项

命令行选项风格

1、原始unix风格
     a、命令行选项以连字符‘-‘开头,后跟单个字符表示选项,选项后面跟着取值,如:mysql -hlocalhost

     b、选项不带取值的,可以组合在一起,如:sed -n -r 可以写成 sed -nr

     c、偏爱小写字母,大写字母另有含义,非常简练

2、GNU风格

  a、命令行选项以两个连字符‘--‘开头,后跟选项名称,选项后面使用空格或者等号 紧接着取值。

      b、容易记忆,书写麻烦。

3、大多数程序是两种风格混用,两种风格都支持,前者是后者的缩写方式,如下:

     mysql --host localhost 或者 mysql --host=localhost ,缩写方式为mysql -hlocalhost,注意缩写方式尽量不要再写成 mysql -h localhost,或者 mysql -h=localhost,因为这可能会存在解析困难,空格可能会认为是下一个选项,而等号可能会认为是取值的一部分。比如:

     mysql -hlocalhost -uroot -p 123456,认为123456 是一个数据库,还需要输入密码。

     mysql -hlocalhost -uroot -p=123456,认为密码是 "=123456",当然密码错误。

4、通过 man xxx 或者 xxx --help 我们可以看到命令的用法,会列出选项和选项的缩写方式,如mysql --help      

     -h,  --host=name  Connect to host. 前面是缩写方式,后面是描述说明。

5、一般的缩写方式是取全称的第一个字符,这就存在冲突的问题。比如:--host 与--help ,解决办法是:其中一个提供缩写方式,另外一个不提供。当然也可能提供另外一个字符,表示缩写,这个字符是大写形式或者意思相近的字符。比如:mysql 小写p是password的缩写,大写P是port的缩写。

6、对于help,一般会有三种方式,--help、-h、-?


 

随着时间的推移,简写方式有一些不成文的约定,如下:

        -a
                all(ls -a)
                append
        -b
                set buffer/block size (du)
        -d
                debug
                directory(ls -d)
                delete
                diffrent
        -D
                define(gcc -Dmac)
        -e
                execute(sed -e ‘command‘ -e ‘command1‘)
                exclude
                expression
        -f
                file(grep -f file)
                force(rm -rf)
        -h
                header(ps)
        -i
                initialize
                ineractive(rm -i)
        -I
                include(gcc -Ipath)
        -k
                keep(passwd, bzip, fetchmail)
                kill
        -l
                list(ls -l)
                load(gcc -llib)
        -m
                message(git commit -m)
        -n
                number(head -n 1)
        -o
                output(wget)
        -p
                port(ssh)
                protocol(fetchmail)
        -q
                quite(make)
        -r(R)
                recurse(cp)
                reverse(sort)
        -s
                slient(fetmail)
                subject(mail, mutt)
                size
        -t
                tag(vi)
        -u
                user(ps, fetchmail)
        -v
                verbose(tar, cp, cat)
                version(patch)
        -V
                version(gcc, hostname)
        -w
                width(od)
                warning(flex)
        -x
                启用调试 -d 
        -y
                yes(yum update -y)
        -z
                启用压缩(bzip, tar)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。