Linux下执行当前目录下的程序为什么还要加上“./“ ?
发布日期:2021-06-21 02:41:26 浏览次数:7 分类:技术文章

本文共 647 字,大约阅读时间需要 2 分钟。

在Linux中某bin目录下 执行命令时,经常习惯了Winds下的操作习惯 漏加 ./ 老给忘记了!

以启动Tomcat服务为例:

在这里插入图片描述

原因

使用命令行执行某个程序的时候,Linux会到PATH环境变量的路径去搜索程序文件,但在默认情况下,Linux和Windows不同,Windows会搜索当前目录,而Linux不会搜索当前目录,所以在当前目录下的程序,而当前目录不再PATH环境变量中的话,就需要加上"./"来指定到当前目录下去查找应用程序了。

“.”表示当前目录,Windows/Dos 的默认搜索路径(即 PATH 环境变量)里有当前目录,所以不需要加。其实加上也是一样的效果。因为 Linux 的默认搜索目录里没有当前目录,所以如果你在当前目录需要执行程序就要加上路径。

为何如此设计

比较Windows下面的这种方式使用起来其实没问题,为什么Linux要多此一举不搜索当前文件夹呢?答案是出于安全性考虑。如果有人在安全性级别较低,所有人都有写入权限的文件夹写入了一个程序,名称为ls,如果优先搜索当前文件夹的话,命令行执行ls的时候,很容易就执行到一个并不想执行的恶意程序了,所以为了安全性考虑才做了这种设计。

如果你想让当前文件夹加入到PATH环境变量中去,可以执行如下命令:

export PATH=$PATH:./

但通常不建议这样做,这是基于安全性的考虑。即使你一定要这么做:

export PATH=$PATH:./

的安全性也将优于

export PATH=./:$PATH

转载地址:https://blog.csdn.net/Klhz555/article/details/109341030 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:腾讯云安装Tomcat并配置环境变量(续)
下一篇:Windows无法启动MySQL服务-1067错误

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月21日 19时56分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章