首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux 下 Shell 命令寻址顺序

Linux 下 Shell 命令寻址顺序

作者头像
宋天伦
发布2023-10-18 09:14:08
发布2023-10-18 09:14:08
46700
代码可运行
举报
文章被收录于专栏:fryteafrytea
运行总次数:0
代码可运行

本文 首发于 🌱 煎茶,请注明 来源。

起源#

当出现 PATH 下有一个与系统命令重名的命令时,先执行哪一个呢?当 PATH 下有多个重名命令,会执行哪一个呢?这就涉及到 SHELL 执行命令的寻找顺序。

默认顺序#

shel在执行命令时,并不是直接就在PATH路径中查找,而是按照固定的位置依次寻找命令。

搜索顺序如下,

1、别名,使用 alias 创建的命令。

2、关键字,如if,for。

3、函数

4、内置命令,如cd,pwd等

5、外部命令,在PATH路径中寻找

指定位置#

如果我想执行的是我自己的程序cd呢?或者跳过1,2,3直接执行内置命令呢?那么这时候就用到commandbuiltin这两个命令了。

  • command ,执行PATH下的命令。
  • builtin ,执行内置命令。

PATH中的查找顺序#

linux执行命令时在 PATH 中的查找顺序是从前往后查找的。

/dir1/dir2 目录下有同一个文件 test ,执行 export PATH=/dir1:/dir2:$PATH 之后,由于 dir1dir2 前面,所以执行 test 时会执行 dir1 中的 test

所以一个比较好的习惯是,导出 PATH 时将新增的路径放在前面如:

代码语言:javascript
代码运行次数:0
运行
复制
export PATH=/xxx:$PATH

参考文献#

注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起源#
  • 默认顺序#
  • 指定位置#
  • PATH中的查找顺序#
  • 参考文献#
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档