使用type命令查看命令的类型:
$type cd
cd is a shell builtin
$type ls
ls is /bin/ls
$type case
case is a shell keyword
type的几种基本类型:
-
alias:别名,就是对一个执行命令取一个别名,创建语法:alias [alias-name=’original-command’],删除语法:unalias [lias-name],如alias ll=`ls -l`,执行ll跟执行ls -l结果 一样,unalias ll;
- keyword:关键字,shell保留字(如:!、case等),内建命令和保留字列表可参考文档:http://blog.chinaunix.net/uid-25880122-id-2941630.html
- function:函数,shell函数
- builtin:内建命令,shell内建命令
- file:文件,磁盘文件或外部命令,如cp、第三方程序命令
- unfound:没找到
使用which查看命令的文件路径:
$which cd
/usr/bin/cd
$info ls
File: *manpages*, Node: ls, Up: (dir)
LS(1) BSD General Commands Manual LS(1)
NAME
ls -- list directory contents
SYNOPSIS
ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]
command [options [option_arguments]] [arguments]
command:命令名称
options:选项,选项也可以带参数
arguments:参数,此处指命令的参数,而不是选项的参数
shell命令的选项和参数常用符号
-:短选项(字符)
--:长选项(单词)
[]:可选项
<>:必选项
|:多选一
...:前面的内容可重复出现多次
实例讲解1:man
man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file]
[-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list]
[section] name ...
[-acdfFhkKtwW]:[]表示可以不加这些参数,也可任意选择其中多项;-表示是短选项,每个字符都是一个option,解析的时候会将-后面的字符串一个字符当一个选项分开处理;
[--path]:[]可选;--长选项,会将path当作一个option进行处理
[-p string]:可选,短选项,选项后面跟一个字符串当选项的参数;注意不是man的参数,man的参数是最后的name ...;该选项也可写成[-p <string>],
<>如果只有一个选项可省去,如果是多选一,则必须加上,如[-p <1 | 2>],即-p必须有一个参数,要么是1,要么是2
[section]:没有选项,只有选项参数
name ...:真正的man命令处理的数据,必须传一个name,且可同时传多个name
实例讲解2:cp
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
[-R [-H | -L | -P]]:-R、-H、-L、-P均可选,但是-H、-L、-P是在有-R选项时才有效;
[-fi | -n]:-f和-i和起来的功能,跟-n等价
source_file ... target_directory:source_file最少1个,也可传多个;最后一个当作 target_directory
实例讲解3:git
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>]
[-C <path>]:C是一个短选项,必须带一个path参数
[-c <name>=<value>]:选项c必须带一个简直对参数
[--exec-path[=<path>]]:xec-path是长选项,可以带一个参数=<path>,如果带参数,则path必传
[--html-path]:html-path]是一个长选项
其它高级用法举例:
1、[ --atime-preserve ]:表示一个可选选项。
2、[ -B, --read-full-records ]:表示一个可选选项,简写为-B,完整写法是--read-full-records,两者在用的时候只能选择其一,它们的功能都是完全一样的。一般带“-”开头的选项都 是简写,“--”开头的命令都是完整写法,并且,一般的选择都有一个简写,一个完整写法,简写写在前面,完整写法写在后面,中间用逗号分割。
3、[ -b, --blocking-factor N ]:表示一个可选选项,简写为-b N,完整写法是--blocking-factor N,N代表这个参数需要一个值,在详细描述中可以看到。当然,选项可以带参数, 也可以不带参数,大部分选项是没有参数的,相当于控制开关。命令的书写如:tar -b=10000 -cvf com.tar.gz com
4、[ -F, --info-script F --new-volume-script F ]:表示有两个同时存在的可选命令,-F F --new-volume-script F,两个选项必须同时出现,在此,后面的选项没有简写。
5、[ -z, --gzip, --gunzip, --ungzip ]:表示一个可选选项,它的写法有多种,除了-z之外,其他的都是它的完整写法。
6、[ -[0-7][lmh] ]:表示嵌套的可选选项,0-7表示取值从0到7取一个。
参考文档:http://lavasoft.blog.51cto.com/62575/533131/
硬链接和软链接:http://www.2cto.com/os/201302/191505.html