我對裝有 Debian linux 的遠端電腦具有管理員存取權限。起初一切都很順利。我嘗試全域定義一些變量,以便所有用戶都可以運行特定的程式碼。現在我無法將文件發送到該伺服器。當我運行 scp 命令時它說:
bash: scp: command not found
lost connection
scp
在我的本機電腦和伺服器上都可使用。我可以使用 ssh 連接到遠端電腦。但當我連接時它說:
-bash: id: command not found
-bash: [: : integer expression expected
但是當我運行這個命令時:
which id
輸出是:
/usr/bin/id
我認為基本程式碼的路徑是為系統定義的。遠端電腦也知道傳遞給 scp 的資訊以及輸出為which scp
:
/usr/bin/scp
我只記得我所做的就是創建一個文件,/etc/profile.d
然後刪除該文件。我還檢查並確定~/.bashrc
、~/.profile
和中沒有錯誤的 PATH 規格/etc/profile
。
有人知道遠端電腦出了什麼問題嗎?
答案1
您可以使用以下命令來檢查使用者是否scp
有權存取命令:
echo $PATH
輸出範例:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
這將顯示用戶有權訪問的命令路徑。
假設如果您正在檢查scp
命令,scp
命令將位於/usr/bin/
.如果 的輸出echo $PATH
不包含/usr/bin/
,則顯示訊息「未找到命令」。
若要解決該問題,請執行
export PATH=$PATH:/usr/bin/
對於永久更改,將上述內容新增至您的.bash_profile
答案2
.bashrc
您的文件中有錯誤。使用以下命令恢復預設版本,然後重新連線。
$ cp /etc/skel/.bashrc ~/
答案3
問題解決了。我在 . 中加入了錯誤的 PATH 定義/etc/environment
。糾正這個錯誤解決了問題。