為什麼在 Linux 中我必須在可執行檔之前輸入“./”才能執行它?

為什麼在 Linux 中我必須在可執行檔之前輸入“./”才能執行它?

當我編譯egxc時:

GCC x.c -o x

要執行結果我必須寫:

./x

只需輸入:

x

失敗並顯示此訊息:

x:未找到指令

這意味著 Linux 不會在當前目錄中搜尋它!這種行為背後是否存在(我確信存在)任何合理的問題?

答案1

因為預設情況下,目前工作目錄不在PATH變數中。

這是一項安全/便利措施。如果您目前的工作目錄中有名為例如cdls等的二進位檔案/腳本,那麼如果它們預設運行,那將非常煩人。

答案2

這表示目前目錄不在$PATH變數中。

答案3

您可以透過將目前目錄(由單一點表示)新增至PATH環境變數來解決此問題。
執行此操作的方法取決於您使用的 shell。
如果您使用的是 bash,則可以將該行新增 export PATH=$PATH:..bashrc主目錄中的檔案。
如果您使用的是 csh 或 tcsh,請將該行新增 set PATH = ($PATH .)至主目錄中的檔案 .cshrc 中。
恕我直言,對於家用桌上型電腦來說,這是可以接受的事情 - 安全方面。

相關內容