最近使用xshell用ssh登入遠端伺服器,使用指令時,發現命令無法找到,但是在伺服器本身登入時是可以找到的,使用vscode遠端登入也可以找到命令。
參考部落格ssh連線遠端主機執行指令碼的環境變數問題
發現問題定位為ssh登入時為non-interactive + non-login shell,這種方式會去載入載入$bash_env的值所對應的檔案
echo $bash_env
發現此值為空
文中給出了兩種方案:
按照下面方法,可以解決ssh找不到命令
1,在~/.bashrc頭部加入
#!/bin/bash --login
加入後,終端執行
source ~/.bashrc
使檔案生效,檢視所用的命令是否可以找到,如果可以找到,執行下一步
2.在/etc/profile末尾加入
source ~/.bashrc
使得下次ssh登入有效 解決SSH遠端執行命令找不到環境變數的問題
通過ssh執行遠端主機的命令或指令碼時,經常會出現找不到自定義環境變數的問題。但是,如果通過ssh登入遠端主機,然後再執行相同的命令或指令碼,那麼此時執行又是成功的。兩種相似的方法,得到的結果卻截然不同,看起來很詭異的現象,根本原因在於這兩種方式使用的bash模式不同!這種方式會使用bash的int...
解決SSH遠端執行命令找不到環境變數的問題
通過ssh執行遠端主機的命令或指令碼時,經常會出現找不到自定義環境變數的問題。但是,如果通過ssh登入遠端主機,然後再執行相同的命令或指令碼,那麼此時執行又是成功的。兩種相似的方法,得到的結果卻截然不同,看起來很詭異的現象,根本原因在於這兩種方式使用的bash模式不同!這種方式會使用bash的int...
linux執行遠端命令找不到環境變數
我配置的gopath在 home go下面,本質的問題還是找不到自定義的環境變數 但是直接用ssh登入到遠端伺服器上面以後,再執行相應的指令碼時成功的。查閱資料發現,這兩種方式使用的bash模式不同 bash shell的一種,也是現在大部分的linux的發行版本,shell就簡單理解成命令列直譯器...