shell是Linux系统用户界面提供用户与内核进行交换操作的一种借口,他用来接收用户输出的命令并把他送 入内核中去执行
shell也被称为Linux的命令解答器 (command interpreter)
shell是一种高级程序设计语言(shell组合成单一的小程序完成复杂的程序文件)
bash shell 是CentOS默认使用的软件,也是标准的Shell,与sh兼容
echo $shell 或者 echo sh 显示当前使用的shell
![%KNJLZ{NJ{]VMF8)GL5E8@T](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
cat /etc/shells 显示当前系统使用的所有shell
![P3@0RX({57_SY(V(]T[__L5](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
在shell中执行的命令有2类
内部命令:由shell 自带的而且通过某命令形式提供
shell内部命令列表
enable cmd 启动内部命令
enable -n cmd 禁止内部命令
enable -N 查看所有禁止的内部命令

外部命令:在文件系统路径下有对应的可执行程序文件
查看路径![MV40R]HLZ1645GGLLJQP@3W](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
区别是内部命令还是外部命令
type +命令 显示路径的就是外部命令

type +命令 显示没有路径就是外部命令
![RYE{S21_TJWBRFD(T[X]K0H](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
Hash缓存表
执行外部命令:系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令路径记录在hash表里面当再次使用该命令时,shell解释器首先会查找hash表
hash显示hash缓存

hash常见用法

hash -l 可作为输入使用

hash -p path name
将命令全路径path起别名为name
hash -t name 打印缓存name中的路径
![~WG1A]5G({IZ52N@KHYK@Q8](http://www.178linux.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
hash -d name
清楚name缓存
hash -r
清除缓存
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95114

