Bash

登錄時沒有設置路徑 - bash 沒有正確載入?

  • February 24, 2016

不知道是不是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工具為您創建/更新每個目錄的環境。

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