私のファイルには、次のように個人データをロードする必要がある~/.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/"
ベストアンサー1
上から~/.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
1つを選択して、次を含めるように編集します。
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
ただし、これを対話型シェルに含める簡単なソリューションがあります。編集(または存在しない場合は作成)~/.bashrc
し、次の行を追加します。
export PATH=$PATH:$HOME/bin
保存してログアウトしてから再度ログインするか、source ~/.bashrc
。
必要にexport
応じて行を展開して存在するかどうかを確認できます。$HOME/bin
if [ -d "$HOME/bin" ]
then
export PATH=$PATH:$HOME/bin
fi
~/.bashrc
他のファイルはなぜできませんか?個人的な好みだからもっと信頼が行くようです。