linux shell 指令搜索顺序

时间:2022-10-01 21:48:45

在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路径