$ HOME / binディレクトリは$ PATHにありません。

$ HOME / binディレクトリは$ PATHにありません。

私のファイルには、次のように個人データをロードする必要がある~/.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_login1つを選択して、次を含めるように編集します。

export PATH=$PATH:$HOME/bin

その後、保存source ~/.bash_loginまたはログアウトしてからもう一度ログインしてください。

編集する:

~/.bash_profileあなたはあなたの科が~/.bash_login欠けていると言いました$HOME。何か確認が必要だと思います。元の質問に次の結果を投稿します。

echo $0
echo $HOME
whoami
less /etc/*-release

編集2:

~/.profile個人的に提供された情報と文書によると、あなたのイベントになぜ含まれていないのかわかりません。テスト中にログインする~/.profilesshシステムが検索されますが、新しい端末を起動すると検索されないことを確認しました。

$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他のファイルはなぜできませんか?個人的な好みだからもっと信頼が行くようです。

おすすめ記事