我决定学习C++(我在C中编写程序),我一直在阅读一些教程(以及Stack Overflow上的大量帖子).好的,所以我输入标准的C++"hello word",在我的Ubuntu机器上用GCC编译为"test".
然后我尝试通过输入"test"并按Enter键来运行它.没有.事实证明我必须用"./test"运行它.好的,好的,我会从现在开始这样做.但为什么?"./"只是说我应该运行的是当前目录...当操作系统搜索要运行的东西时,当前目录不总是PATH的一部分吗?我可以这样做吗?
是的,当前目录不是PATH的一部分.你不希望它,因为那时你可能在一个目录中,你有一个你不知道的恶意程序.
如果你习惯于运行/ usr/bin/grep,但是你碰巧在一个目录中,那个坏人把grep的恶意副本放进去,这次你运行grep,然后你运行了grep当前目录,而不是/ usr/bin/grep.
你当然可以在你的〜/ .profile或〜/ .bash_profile中添加./到你的PATH,但我不推荐它.
如果它让你感觉更好,15年前当我开始使用类Unix系统时,我也有同样的挫败感.
你可以加 "." 到你的PATH,但在这种情况下这对你没有帮助 - "test"是一个内置的shell.