當我編譯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 中。
恕我直言,對於家用桌上型電腦來說,這是可以接受的事情 - 安全方面。