在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为:
1、别名,使用alias创建的命令。
2、关键字,如if,for。
3、函数
4、内置命令,如cd,pwd等
5、外部命令,在PATH路径中寻找
但问题是,若abcd指令已经配置在PATH中,现在在abcd指令所在的根目录下执行abcd指令,
是先查找查找PATH中的abc指令,还是先查找当前目录下的abcd指令???
其实这个也很好验证:
- 安装两个版本的mysql:mysql_a,myslq_b
- 将mysql_a版本的bin目录配置到PATH路径
- 在mysql_b版本的bin目录下执行mysql指令/usr/local/mysql/bin/mysql -u roor -p(相当于执行:/usr/local/mysql/bin/mysql -u roor -p)
- 登陆成功后,建库建表
- 通过可视化工具查看到底在哪个mysql下操作的
还没有来得及验证,但是个人觉得是先找当前目录,再去找PATH路径