題:
在.bash_profile中編輯PATH時,如何修復我的終端?啟動掛起,但沒有提示?
Biswajyoti Roy
2019-02-10 00:08:59 UTC
view on stackexchange narkive permalink

我是命令行新手,顯然弄亂了我的設置。

  • macOS High Sierra(10.13.6)
  • 嘗試設置Python和VScode。

我認為我的路徑變量是錯誤的,但是我不知道該如何獲取外殼並修復問題。

現在我進入終端時顯示用戶名。在嘗試了一切之後,我嘗試遵循。 https://shellzero.wordpress.com/tag/reset-path-on-mac/ 我的終端現在看起來像這樣 Terminal

當我在終端 bash_profile text file

上的新命令中輸入 open .bash_profile 時,我的bash配置文件當前看起來像這樣

根據上述文章的建議,輸入 export PATH = / usr / bin:/ usr / sbin:/ bin:/ sbin 並通過 command保存文本文件後+ S 我試圖在終端的新命令中執行 source〜/ .bash_profile ,結果為 bash_profile after source command

之後,我還運行命令 echo $ PATH。,結果是這樣的: bash_profile after echo $PATH. Command

我不知道我做了什麼。而我需要做些什麼來解決這個問題。任何幫助將不勝感激。

您還有任何外殼仍在工作嗎?快速解決方案是移動/刪除/重命名您編輯的文件。它具有語法錯誤,阻止了啟動。如果沒有,我們將查看下一步的操作,如果您沒有管理員帳戶,則創建一個新的管理員帳戶,然後再次獲得控制權
二 答案:
bmike
2019-02-10 01:31:21 UTC
view on stackexchange narkive permalink

好的-不用擔心。您實際上確實搞砸了,但是這是一種簡單的解決方法。

  • 打開TextEdit(或在Mac上圖形化的任何編輯器)
  • 打開文件並轉到您的主文件夾(單擊或按Command Shift G並鍵入〜並返回)
  • 顯示隱藏文件(如果需要)-Command + Shift +。
  • 打開.bash_profile

刪除所有內容或註釋掉所有包含PATH =的內容,然後保存文件(如果要修復而不是重新啟動,可以另存為將其保存到桌面)。

然後打開一個新的終端窗口以檢查您的工作。如果可行,請關閉中斷的會話,並確保在添加內容時合併了舊路徑:

這很安全:

  export PATH =“ / usr / local / sbin:$ PATH:/ path / to / whatever / bin”
 

這很安全,因為舊的$ PATH包含在=

的右側

什麼時候不安全

  export PATH =“ whatever”
 

該路徑的所有其他部分現在都消失了,僅剩下whatever,最後一個=獲勝,因此您的路徑缺少了非常重要的項目,而不是在默認路徑中添加了東西,所以暫時中斷了它。不用擔心,這是一個過渡階段-每個人都需要打破他們的shell點文件進行學習。歡迎來到俱樂部。

謝謝bmike.i會盡力做到這一點。我的bash_profile有這麼多東西,會很凝灰。順便說一句,我應該在bash_profile中將新的“ export PATH =“ / usr / local / sbin:$ PATH:$ GEM_HOME / bin”放在哪裡?
我的bash_profile充滿了很多帶有PATH =“ .....'的代碼 是否有可能我刪除除新行“ export PATH =“ / usr / local / sbin:$ PATH:$ GEM_HOME / bin”之外的所有內容”
同樣重要的是,您必須單獨通過一行中的`EOF`從`cat << EOF ...`行中刪除-每次運行時,它都會在.bash_profile本身的末尾添加另一批亂碼。坦白說,我認為轉儲它並重新開始會更容易(請參閱我的回答)。
Gordon Davisson
2019-02-10 02:37:58 UTC
view on stackexchange narkive permalink

我建議使用一種不同於@bmike的方法:與其嘗試從當前文件中刪除不良部分,不如從頭開始並重新添加好部分。看起來當前文件中的壞處比壞處要多得多,所以這應該更簡單。

實際上 really 中的really在當前文件中的錯誤之處是這樣開始的部分:

  cat << EOF >>〜/ .bash_profile
 

...在下面的某個地方,一行上會單獨存在 EOF 。問題是這不是設置環境的指令,而是將指令添加到〜/ .bash_profile 的指令。換句話說,每次〜/ .bash_profile運行時,它都會在〜/ .bash_profile的末尾添加 cat EOF 之間的內容的另一個副本,因此該文件變得越來越長...並且有越來越多的混亂指令副本。

這時,您的〜/ .bash_profile將會很大,而且大部分都是亂碼。

所以,我建議從頭開始。重命名並保存當前文件,以便在必要時可以參考它,然後在主目錄中創建一個新的空白.bash_profile。我為此推薦 BBEdit -它有一個免費的演示模式,可以滿足您在此所做的一切,並且(與大多數文本編輯器不同)它不會做諸如轉換純ASCII引號之類的“有用”事情(例如)到花哨的unicode引號(例如”和“ )弄亂了shell腳本。它也不會抱怨保存文件名稱以“。”開頭。

在屏幕快照的可見部分,這是當前文件中唯一看起來正確的部分:

 #為Python 3.7設置PATH
#原始版本保存在.bash_profile.pysave中
PATH =“ / Library / Frameworks / Python.framework / Versions / 3.7 / bin:$ {PATH}”
#添加Visual Studio代碼(代碼)
導出PATH =“ $ PATH:/ Applications / Visual Studio Code.app/Contents/Resources/app/bin”
 

您可能確實需要進一步介紹,但是由於 cat 部分在此之後不久開始,因此我對此表示懷疑。無論如何,這足以使您獲得基本的功能設置。如果某些事情仍然無法正常工作,則可能需要瀏覽舊文件以查找其他需要補救的事情。

我的bash_profile中有數十億的代碼,因此選擇和選擇起來很難。而且我已經卸載並刪除了python3,VScode。我想知道是否刪除bash上的所有內容,並僅將這一行代碼“ export PATH = / usr / bin:/ usr / sbin:/ bin:/ sbin”保留在bash_profile中。是否可以解決此問題?我非常需要緊急處理,因此快速修復此問題非常重要。以後我可以重新安裝所有程序,這應該沒問題嗎?再次非常感謝。我真的非常感謝您的幫助
您還在使用Visual Studio Code嗎?如果是這樣,我將只保留上面內容的最後兩行。如果您不使用VS Code,則只需完全刪除.bash_profile(但請保留備份,以防萬一)。PATH應該在沒有文件的情況下自動設置為合理(但基本)的值。如果由於某些原因確實需要設置它,則默認使用“ PATH = / usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin”,我建議使用它。
我只是刪除了所有內容,只保留了“ export PATH = / usr / bin:/ usr / sbin:/ bin:/ sbin”這一行 現在好像終端再次運行。我剛回來: [braeburn:〜[用戶名] $ echo $ PATH。 / usr / bin:/ usr / sbin:/ bin:/ sbin。]
這非常接近標準的“ PATH”,但是缺少“ / usr / local / bin”。我建議要么刪除該行(保留默認的“ PATH”),要么通過“ export PATH = / usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin”強制使用標準值。
順便說一句,我刪除了以前的SQL路徑[export PATH =“ / usr / local / mysql / bin:$ PATH”],如果我想再次將其添加到我的bash_profile中(否則由於某些原因,MYSQL不運行),那應該是安全的碼?
謝謝。我已經根據您的建議更改了路徑。如果您有時間並且可以告訴我,如果我刪除[export PATH =“ / usr / local / mysql / bin:$ PATH”],如何將SQL代碼安全地添加到bash_profile中,我將不勝感激。 順便說一句,應用您的建議,我的新路徑現在是[/ usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin]
在您的.bash_profile中添加`export PATH =“ / usr / local / mysql / bin:$ PATH”`很好。正如bmike在回答中所說的那樣,是在右邊不包含$ PATH的條目才引起問題。本質上,這樣的條目“添加”到“ PATH”,而右邊沒有“ $ PATH”的條目是“替換”`PATH(刪除已經存在的所有其他添加)。在“ PATH”中添加內容只會增加系統查找命令文件的位置列表,這沒什麼大不了的。
戈登做得好極了。我沒有想到“貓”,這解釋了很多麻煩。感謝您的支持-請將其放在一旁,一點一點地添加。也是BBEdit-♥️這麼多程序


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...