命令格式
COMMAND [OPTIONS…] [ARGUMENTS..]
[OPTIONS..] 选项:用于启用或关闭命令的某个或某些功能
短选项: -c ,例如:-l ,-a ,-h…
长选项:–all, 例如:–utc, –help,–word, –human-readable
[ARGUMENTS..]参数:命令的作用对象,比如文件名,用户名等
注意:多个选项以及多参数和命令之间使用空白字符隔开
取消和结束命令执行:Ctrl+c(强制退出) Ctrl+d(正常退出)
多个命令一起执行用 “;”隔开
例:ls;pwd;hostname;alias
命令的类型
命令是怎样执行的呢?输入命令后按回车,提请shell程序找到键入命令所对应的可执行程序或代码 ,
并由其分析后提交给内核分配资源将其运行起来。
在shell中可执行的命令有两类
命令分为内部命令和外部命令
内部命令:是shell内部自带的,内部命令依赖与shell类型,内部命令优先于外部命令!
# help 内部命令列表
# enable cmd 启用内部命令
# enable -n cmd 禁用内部命令
# enable -n 列出所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
查看路径:which COMMAND 列出外部命令路径
which -a COMMAND 显示别名以及外部命令所有路径
which –skip-alias COMMAND 忽略别名只显示外部命令路径
whereis COMMAND 列出外部命令所有路径以及命令本身man帮助文档
判断当前生效的命令是内部或外部命令:
# type COMMAND
# type -a COMMAND 显示内部命令和外部命令
# type -P COMMAND 显示外部命令的路径
例:~]#type history
history is a shell builtin
执行外部命令
HASH缓存表:系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找
该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell
解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。
hash基本用法:
# hash 显示hash缓存
# hash -l 显示hash缓存详细信息
# hash -d name 清除name(别名)缓存
# hash -t name 显示单个name(别名)路径
# hash -p path name 将命令全路径path起别名为name
# hash -r 清空所有缓存
执行命令的顺序:
1.先从内部命令查找,如果有将直接执行
2.再从hash pash 里查找
3.最后再查找$PATH
命令别名
列出当前shell进程所有可用的命令别名
# alias
定义别名NAME,其相当于执行命令VALUE
alias NAME=’VALUE’
例:alias cdnet=’cd /etc/sysconfig/network-scripts/’
在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户: ~/.bashrc
对所有用户有效:/etc/bashrc
例:~]#nano .bashrc
alias rm=’rm -i’
alias cdnet=’cd /etc/sysconfig/network-scripts/ ‘
编辑配置给出的新配置不会立即生效
bash进程重新读取配置文件
source .bashrc或. .bashrc
取消别名NAME,只能临时取消: # unalias name
# unalias -a name
如果原始命令和别名同名,要执行原始命令
# \COMMAND
# ‘COMMAND’
原创文章,作者:shenjialong,如若转载,请注明出处:http://www.178linux.com/76507