我安裝了OS X Lion(10.7)的最新更新。完成之後,我的終端將無法識別正常命令。我輸入 ls
並得到:
-bash:ls:找不到命令
我認為我想嘗試添加usr / bin到我的路徑,但是我找不到.bash_profile來編輯它,因為鍵入 edit .bash_profile
無效。由於我的終端無法識別執行此操作所需的命令,因此我無法將Finder設置為顯示所有文件。
我需要做什麼?
我安裝了OS X Lion(10.7)的最新更新。完成之後,我的終端將無法識別正常命令。我輸入 ls
並得到:
-bash:ls:找不到命令
我認為我想嘗試添加usr / bin到我的路徑,但是我找不到.bash_profile來編輯它,因為鍵入 edit .bash_profile
無效。由於我的終端無法識別執行此操作所需的命令,因此我無法將Finder設置為顯示所有文件。
我需要做什麼?
由於兩個命令缺少“踩踏”路徑的內容。
在進行任何較大的操作之前,請謹慎備份。
Mac OS X 10.7(Lion)上的默認路徑如下所示:
PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
如果重置路徑通過在shell窗口中鍵入以上內容,然後鍵入 export PATH
,它應該修復該窗口。
因此,您可以從那裡開始,看看還有什麼不對勁,並將其修復到您的啟動點文件或其他已定義的地方。
這種破損幾乎總是需要在點文件中修復的。對於bash,可以通過撤消最近的更改來編輯和修復 .bash_profile
和/或 .bashrc
,只需重新設置所需的$ PATH。通常的錯誤是分配新路徑,而不是在=
這應該完全永久地解決該問題。
首先,在終端中使用以下命令導出環境路徑。
export PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / b中
現在您有了所需的命令。(例如,嘗試 ls
。您將看到該命令正在運行)。但這僅適用於當前會話。如果關閉終端並打開一個新終端,則會遇到上一期。要使此更改永久生效,請使用以下命令,
轉到主目錄
cd〜
在nano / vim中打開.bash_profile文件(我在這裡使用nano)
nano .bash_profile
這將打開nano編輯器。在新行中,粘貼以下內容;
export PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin:$ PATH
按'control'+'o'保存(WriteOut),按'control'+'x'退出nano。
全部完成!現在嘗試命令。
在我看來, / etc / profile
不是在shell啟動時運行的。這是負責初始化PATH的全局啟動文件。使用以下命令檢查 / etc / profile
是否存在並且可讀且可執行:
。 / etc / profile
如果不存在,則需要從備份或安裝了Lion的另一台計算機上還原它,或者再次安裝Lion。如果它存在但不可執行,請嘗試使用“磁盤工具”修復磁盤權限。
如果它確實存在並且是可執行的(並且包含一些代碼),則可能它本來應該沒有運行或您的啟動腳本可能會以某種方式覆蓋它。解決方法是,嘗試放入。 / etc / profile
放在〜/ .bash_profile
的開頭,以確保其已運行。如果仍然遇到問題,請在運行它後添加 echo $ PATH
,以查看PATH是否已正確初始化。如果是的話,則腳本中的某些內容正在更改它。
這是 / etc / profile
的默認內容:
#系統範圍sh(1)if。-profile [-x / usr / libexec / path_helper];然後eval`/ usr / libexec / path_helper -s`fiif [“ $ {BASH-no}”!=“ no”];然後[-r / etc / bashrc] &&。 / etc / bashrcfi
path_helper
構造默認的PATH。您可以嘗試運行
未設置PATH; / usr / libexec / path_helper -s
以查看其產生的結果。
無論如何,如果問題不在您的啟動腳本中,請聯繫Apple支持 http://www.apple.com/support/contact/或在 https://bugreport.apple.com/報告錯誤,讓Apple知道有問題。
要檢查路徑是否確實存在問題, / bin / ls
的結果是什麼?
如果可行,則應該將路徑還原到 / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
,例如,您可以使用 VI
,其路徑是(在我的Mac上) / usr / bin / vi
。
我想分享導致我犯此錯誤的錯誤-至少就我而言,
當我在〜/ .bash_profile
中添加新的 PATH
時,我忘記在路徑的末尾添加:$ PATH
我剛剛補充。
我使用的臨時修復程序(終端中的以下命令)已經掌握了,該修復程序已經指出可以返回bash_profile,因為我一開始無法使用vi命令來打開它。
export PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
一進去,我就糾正了我的錯誤。
(負數據很重要!)
發生這種情況時,我試圖將我的Maven路徑設置為環境變量。因此,我只是將.profile和.bash_profile文件移到了垃圾桶,然後再次嘗試,就可以了。
看起來您的PATH變量已損壞。檢查您是否有機會在腳本中修改PATH變量,或者只需通過說echo $ PATH來檢查PATH,就可以確保是否沒有損壞。
您可以按以下方式導出路徑:
export PATH = $ PATH:/ bin:/ usr / local / bin