unix - 如何在命令行上按名称执行程序而无需输入当前目录?

标签 unix path

在我上次的 UNIX 设置中,如果我位于同一目录中,我可以简单地键入二进制文件的名称,它就会执行它。然而,在这个新设置中,如果我想执行它们,我必须在二进制名称前面加上 ./。有人知道如何规避这个问题吗?

谢谢。

最佳答案

解决此问题的传统方法(可能也是您之前设置中的方法)是将 . 添加到您的 PATH 环境变量中。因此,如果您的 PATH/usr/bin:/bin,则将 . 添加到末尾(以及 : 分隔符),所以你有 /usr/bin:/bin:.。具体如何操作因外壳而异。快速 Google 一下,无疑会为您的 shell 找到答案。

但请注意,这可能会带来潜在的负面安全影响,尤其是在共享服务上。如果攻击者设法在您所在的目录中获取恶意文件,并将该文件命名为通常无害的命令(例如 ls),则可能会导致您无意中运行该邪恶文件。

因此,如果您打算这样做,至少请确保将 . 作为 PATH 中的最后一项。

关于unix - 如何在命令行上按名称执行程序而无需输入当前目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335589/

相关文章:

java - 生成外部编辑器 - 这是如何工作的?

node.js - 将图像附加到现有 PDF 的正确位置

linux - 使用 shell 脚本更改文件扩展名

git - 如何在 Git 中更改 $HOME 目录

path - 如何将代码 objective-c 转换为 Swift 以保存图像?

java shell命令对csv文件进行排序

node.js - 由于嵌套的 Node 依赖性,路径太长

.net - 环境变量不起作用(Windows 11)

windows - 使用批处理文件附加到系统 PATH 变量值

windows - 从通过 Windows 任务计划程序运行的 Perl 脚本生成的进程无权访问 %PATH%