linux当前目录下的可执行文件不能直接执行的原因

linux的当前目录下有个可执行的文件:example。需使用./example来执行他(就是要指明路径),而不能仅用example。

原因:
如果在dos下执行一个文件,缺省情况下是先在当前目录下寻找,找不到的话在再PATH环境变量中寻找。而linux下运行可执行文件的逻辑是直接只在环境变量中寻找。要执行一个可执行文件要么其在PATH路径中,这种情况可以直接写文件名;要么指明完整路径。(一直以WIN上的观念来理解,以为会搜索当前目录,所以直接敲可执行文件的名字,老是报command not found!)所以如果某个可执行文件不在环境变量设置的目录下面的话。就不能直接使用其文件名来运行(即使在当前目录下也不行),需指定文件路径(相对和绝对都可)。要想在当前目录下直接写文件名,可将“./”加入PATH,但一般不建议这么做。

在linux平台下,我们编译的可执行bin文件,如果需要运行,则直接./test 即可运行, 如果我们不想加上./怎么直接运行test这个bin呢?
我们先来分析下这个./test是啥意思,首先test是可执行bin的名字,./表示当前目录,那么简单了,其实./就是告知test的路径。
我们可以echo $PATH, 可以查看当前设置的环境变量,我们吧test的路径,加入到PATH变量中去,那么就可以直接执行test了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容