Ssh

在終端中找不到 ssh 命令

  • February 3, 2021

我似乎把我的終端(如果重要的話在 OSX 上)搞砸了。當我嘗試時,SSH我得到-bash: ssh: command not found

使用建議給我的命令後,declare -p PATH我得到declare -x PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:‌​"

現在我不知道我做了什麼以及如何解決它。我在這方面不是很了解,並且非常沮喪,因為我顯然涉足了我應該獨自一人的事情。

(編輯,忘了帶一些其他內容)當我執行PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin PS4=':${BASH_SOURCE}:$LINENO+' bash -x -l -i時,結果輸出包含~/.bash_profile

/Users/Name/.bash_profile:1+export PATH= /usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin‌​:/opt/X11/bin} 
:/Users/Name/.bash_profile:1+PATH= bash: export: ``/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sb‌​in:/opt/X11/bin': not a valid identifier 
:/Users/Name/.bash_profile:5+PATH=/Library/Frameworks/Python‌​.framework/Versions/‌​3.6/bin: :/Users/Name/.bash_profile:6+export PATH'

您的.bash_profile似乎包含:

export PATH= /usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin‌​:/opt/X11/bin}

這有兩個問題:

  • 值之後和值之前的空格=使值成為 的單獨參數export而不是的新值的一部分PATH。因此,export看到的是PATH=(將 PATH 設置為空字元串)和/usr/local/sbin:...(根本不是賦值,因此被忽略)。
  • 關閉}肯定是不希望的。

因此,您應該修改文件以包含:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin‌​:/opt/X11/bin

…或者,更簡單地說:

PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin‌​:/opt/X11/bin

…因為這裡不需要導出:因為 PATH 已經在環境中,所以更新總是自動導出。

macOS 上的預設 PATH 是

PATH="/usr/bin:/bin:/usr/sbin:/sbin"

如果您在終端中執行它,您將恢復正常。

如果您修改了.bashrc文件或類似文件以添加或更改類似的行,請將其刪除或更改為

PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:‌​$PATH"

特別注意;**後面沒有空格 PATH=**所有這些都是一起執行的,如果您進行了更改,則應該以相同的方式進行更改。如果你沒有,你也可以重新打開你的終端,一切都會好起來的。

引用自:https://unix.stackexchange.com/questions/418377