Bash
登錄時沒有設置路徑 - bash 沒有正確載入?
不知道是不是virtualenv的原因,但是我執行了virtualenv命令搭建了一個tensorflow環境。現在根本沒有載入任何路徑。沒有任何效果。甚至要執行基本命令(例如
ls
),我都必須執行完整的腳本(/bin/ls
)。除非我手動執行導出所有路徑,否則我什麼也做不了:$ export PATH=/bin/:$PATH
等等
即使在註銷並重新登錄(通過 SSH)之後,也不會載入任何內容。
有趣的是,
.bashrc
兩者.bash_profile
都被載入(但沒有成功,因為它們無法執行某些命令,例如source
)。另外我應該注意,我在這台機器上沒有 root 訪問權限,所以我不能在全球範圍內更改(或中斷)任何東西。我也無法離開 virtualenv,因為“停用”不起作用。
我打破了什麼?
您可能已經覆蓋了您的
$PATH
變數,而不是擴展它。在您的一個 shell 啟動文件中,您可能有一個任務,例如
PATH="/some/path"
代替
PATH="/some/path:$PATH"
嘗試找出您分配到的位置
PATH
並確保它們永遠不會替換$PATH
而是擴展它:/usr/bin/grep 'PATH=' ~/.bash*
如果您無法立即找到問題所在,請使用這些文件中的相關片段更新您的答案。
作為一種解決方法,直到您修復了 shell 腳本中的錯誤,您可以查看大多數 Linux/BSD 發行版中
/etc/profile
系統範圍的定義位置。$PATH
跑步`export PATH="/usr/bin:/usr/local/bin:$HOME/bin"`
應該使您可以訪問安裝在標準位置的所有工具。
virtualenv 的重點是您在每個項目的基礎上定義您的環境,以免您的 shell 啟動文件與特定於環境的程式碼混淆。刪除(註釋掉)與其相關的所有設置腳本,並依靠該
virtualenv
工具為您創建/更新每個目錄的環境。