Bash
H哦_和/bind我不知道_________H這米和/b一世nd一世r一世sn這噸這n噸H和HOME/bin dir is not on the小路
在我
~/.profile
的最後一個塊中,應該bin/ directory
像這樣載入我的個人:# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
但它似乎沒有載入:
echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
為什麼這不起作用?(我的外殼是 bash。)
為跳跳虎編輯
echo $0 => bash echo $HOME => /home/student whoami => student less /etc/*-release => PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
從頂部開始
~/.profile
:# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package.
所以(如果你使用
bash
你的外殼)我猜要麼~/.bash_profile
在~/.bash_login
你的系統上。選擇一個並編輯它以包括:export PATH=$PATH:$HOME/bin
然後保存和
source ~/.bash_login
/或註銷並重新登錄。編輯:
你說這兩者
~/.bash_profile
和~/.bash_login
都從你的$HOME
. 我認為我們需要確認一些事情。請在您的原始問題中發布以下結果:echo $0 echo $HOME whoami less /etc/*-release
編輯 2:
~/.profile
就個人而言,根據提供的資訊和文件,我不知道為什麼沒有包含在您的案例中。在測試時,我確實注意到~/.profile
我在進入時會被掃描ssh
,但在啟動新終端時不會被掃描。但是,有一個簡單的解決方案允許
$HOME/bin
包含在您的互動式 shell 中。編輯(如果不存在則創建)~/.bashrc
並向其中添加以下行:export PATH=$PATH:$HOME/bin
保存、註銷並重新登錄,或
source ~/.bashrc
.
export
如果您願意,可以擴展該行以檢查是否$HOME/bin
存在:if [ -d "$HOME/bin" ] then export PATH=$PATH:$HOME/bin fi
為什麼
~/.bashrc
而不是另一個文件?個人喜好,似乎也更可靠。