Ubuntuで$PATH
にディレクトリを追加し、変更を永続的にするにはどうすればよいですか?
.bash_profile
で設定されたパスは、bashログインシェル(bash -l
)でのみ設定されます。パスを.profile
に配置すると、完全なデスクトップセッションで使用できるようになります。つまり、メタシティでもそれを使用します。
たとえば、~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
ところで、プロセスのPATH変数は、/proc/[pid]/environ
の環境を確認することで確認できます([pid]をps axf
の番号に置き換えます)。例えば。 grep -z "^PATH" /proc/[pid]/environ
を使用します
.profile
または.bash_profile
が存在する場合、ログインシェルとしてのbash
は.bash_login
を解析しません。 man bash
から:
〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で探し、存在し、読み取り可能な最初のコマンドからコマンドを読み取り、実行します。
.pam_environment
の詳細については 以下の回答 を、対話型の非ログインシェルについては.bashrc
を参照するか、スクリプトを/etc/profile.d/
に入れることですべてのユーザーに対してグローバルに値を設定するか、/etc/X11/Xsession.d/
を使用してディスプレイマネージャーセッションに影響を与えます。
ホームディレクトリで.bashrc
を編集し、次の行を追加します。
export PATH="/path/to/dir:$PATH"
変更を有効にするには、.bashrc
またはログアウト/ログイン(または端末の再起動)を入手する必要があります。 .bashrc
を入手するには、単に入力します
$ source ~/.bashrc
すべてのユーザーに適用される永続的なシステム全体の環境変数を定義するための推奨される場所は次のとおりです。
/etc/environment
(デフォルトのPATH
が定義されている場所)
これはデスクトップまたはコンソール、gnome-terminalまたはTTY、rain or shineで動作します;)
編集するには Alt+F2 そしてタイプ:
gksudo gedit /etc/environment
(または、お気に入りのテキストエディタでSudo
を使用してファイルを開きます)
変更を有効にするには、. /etc/environment
を実行します。このファイルは単なるスクリプトであるため、実行され、PATH
環境変数に新しいパスが割り当てられます。 envを実行して、リストのPATH
値を確認します。
関連:
Ubuntuの標準的な方法は次のとおりです。
/etc/profile.d/
の下に新しいファイルを作成します
Sudo vi /etc/profile.d/SCRIPT_NAME.sh
そこに追加:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
実行許可を与える
Sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
GUIに慣れている完全な初心者(私と同じ)の場合:
$HOME
フォルダーを開きます。.profile
を右クリックして、テキストエディターで開くをクリックします。PATH="$PATH:/my/path/foo"
を追加します。.profile
をロードするようにします)。特定のユーザーのみが使用できる永続的な環境変数の場合。 Ubuntuの公式ドキュメントを強くお勧めします。
https://help.ubuntu.com/community/EnvironmentVariables
上記のドキュメントを参照して、次の方法でAndroid SDK path-toolsをセットアップしました。
~/.pam_environment
ファイルを作成しています。PATH DEFAULT=${PATH}:~/Android-sdk-linux/tools
です。その行を~/.bashrc
ファイルに入れます。
ターミナルを開くたびに取得されます
EDIT:以下のコメントに基づいて、すべてのシェルに適用されるより一般的な設定(ヒットしたときを含む) Alt-F2 Unityで)~/.profile
ファイルに行を追加します。ただし、ターミナルを開くとパスがPATH
環境に2回追加されるため、おそらく両方を行うべきではありません。
システム全体に設定するには、export PATH=/path/you're/adding:$PATH
の最後に/etc/profile
の行を追加します。
ログインしたユーザーのみにディレクトリを追加するには、~/.bash_profile
に同じ行を追加します。
これを.bashrcに追加しても機能しますが、パス変数を設定するより伝統的な方法は、次の行を追加することで.bash_profileにあると思います。
PATH=$PATH:/my/path/foo
export PATH
このスレッド によると、Ubuntuの動作はRedHatやクローンとは若干異なるようです。
ターミナルで、cd
からthe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
これは私の考えではありませんでした。これでパスをエクスポートするこの方法を見つけました ブログはこちら 。
Sudo vi /etc/profile.d/SCRIPT_NAME.sh
そこに追加
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
BASHスクリプトのフォルダーを「インストール」するたびに、Ubuntuの最新バージョンのほとんどの.profileファイルにある$HOME/bin
フォルダーのテストパターンに従います。次のようなテストを設定します
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
それはほぼ100%の時間で動作し、/scripts
を$HOME
フォルダーの近くに移動することにした場合、GUIテキストエディターで簡単に「すべて置換」して自由に変更できます。 。私はUbuntuの6回のインストールでそうしていませんが、「常に明日」があります。 S
BZT
PATH
を編集する推奨方法は、/etc/environment
ファイルからです
/etc/environment
の出力例:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
たとえば、/home/username/mydir
の新しいパスを追加するには
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
次に、PCを再起動します。
システム全体の環境変数
(特定のユーザーだけでなく)システム全体に影響する環境変数設定に適したファイルは/ etc/environmentです。別の方法は、目的のために/etc/profile.dディレクトリにファイルを作成することです。
/ etc/environment
このファイルは、特にシステム全体の環境変数設定用です。スクリプトファイルではなく、1行に1つずつ割り当て式で構成されています。
注:変数の展開は/ etc/environmentでは機能しません。
詳細については、こちらをご覧ください: EnvironmentVariables
ターミナルを開き、gedit .profile
と入力して、次を挿入します。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
ターミナルを閉じて、開いてください、それは働いているはずです。
それを~/.bashrc
またはrcを使用するシェル(または前述の~/.profile
)および~/.xsessionrc
に入れて、X(シェル外)でも動作するようにします。
システムスクリプトがこれを使用しない場合でも、PATH環境変数にパス(たとえば、$HOME/bin
)を追加する場合は、使用する必要があります。
PATH="${PATH:+${PATH}:}$HOME/bin"
(PATH="$PATH:$HOME/bin"
の代わりに)追加するため、および
PATH="$HOME/bin${PATH:+:${PATH}}"
PATH="$HOME/bin:$PATH"
の代わりに追加するため。
これにより、$PATH
が最初に空になったときに不要な先頭/末尾のコロンが回避され、望ましくない結果が生じる可能性があります。