当我通过以下方式编译 egxc 时:
GCC x.c -o x
为了执行结果我必须写:
./x
只需输入:
x
失败并显示以下消息:
x:未找到命令
这意味着 Linux 不会在当前目录中搜索它!这种行为背后是否存在(我确信存在)任何合理的问题?
答案1
因为默认情况下,当前工作目录不在PATH
变量中。
这是一项安全/便利措施。如果您当前工作目录中有名为cd
、ls
等的二进制文件/脚本,则默认运行它们会非常烦人。
答案2
这意味着当前目录不在 $PATH 变量中。
答案3
您可以通过将当前目录(用一个点表示)添加到PATH
环境变量来修复此问题。
具体方法取决于您使用的 shell。
如果您使用的是 bash,则可以将该行添加 export PATH=$PATH:.
到.bashrc
主目录中的文件中。
如果您使用的是 csh 或 tcsh,则可以将该行添加
set PATH = ($PATH .)
到主目录中的 .cshrc 文件中。
恕我直言,对于家用台式电脑来说,从安全角度来看,这是可以接受的做法。