web-dev-qa-db-ja.com

PATHにディレクトリを追加する方法は?

Ubuntuで$PATHにディレクトリを追加し、変更を永続的にするにはどうすればよいですか?

717
justingrif

〜/ .profileを使用して$ 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/を使用してディスプレイマネージャーセッションに影響を与えます。

449
ko-dos

ホームディレクトリで.bashrcを編集し、次の行を追加します。

export PATH="/path/to/dir:$PATH"

変更を有効にするには、.bashrcまたはログアウト/ログイン(または端末の再起動)を入手する必要があります。 .bashrcを入手するには、単に入力します

$ source ~/.bashrc
295
Ophidian

すべてのユーザーに適用される永続的なシステム全体の環境変数を定義するための推奨される場所は次のとおりです。

/etc/environment

(デフォルトのPATHが定義されている場所)

これはデスクトップまたはコンソール、gnome-terminalまたはTTY、rain or shineで動作します;)

  • 編集するには Alt+F2 そしてタイプ:

    gksudo gedit /etc/environment
    

    (または、お気に入りのテキストエディタでSudoを使用してファイルを開きます)

変更を有効にするには、. /etc/environmentを実行します。このファイルは単なるスクリプトであるため、実行され、PATH環境変数に新しいパスが割り当てられます。 envを実行して、リストのPATH値を確認します。

関連:

119
ish

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
    
58
woto

GUIに慣れている完全な初心者(私と同じ)の場合:

  1. $HOMEフォルダーを開きます。
  2. 表示非表示ファイルを表示に移動するか、 Ctrl + H
  3. .profileを右クリックして、テキストエディターで開くをクリックします。
  4. 一番下までスクロールして、PATH="$PATH:/my/path/foo"を追加します。
  5. セーブ。
  6. ログアウトしてから再度ログインして、変更を適用します(Ubuntuが実際に.profileをロードするようにします)。
47
dain

特定のユーザーのみが使用できる永続的な環境変数の場合。 Ubuntuの公式ドキュメントを強くお勧めします。

https://help.ubuntu.com/community/EnvironmentVariables

上記のドキュメントを参照して、次の方法でAndroid SDK path-toolsをセットアップしました。

  1. ホームディレクトリに~/.pam_environmentファイルを作成しています。
  2. 内容はPATH DEFAULT=${PATH}:~/Android-sdk-linux/toolsです。
  3. パスをcolon(:)で区切ることにより、追加のカスタムユーザーパスを追加できます。
  4. これにはre-loginが必要です。つまり、ログアウトしてからデスクトップ環境に再度ログインする必要があります。
45
Eduardo B.

その行を~/.bashrcファイルに入れます。

ターミナルを開くたびに取得されます

EDIT:以下のコメントに基づいて、すべてのシェルに適用されるより一般的な設定(ヒットしたときを含む) Alt-F2 Unityで)~/.profileファイルに行を追加します。ただし、ターミナルを開くとパスがPATH環境に2回追加されるため、おそらく両方を行うべきではありません。

26
Ian B.

システム全体に設定するには、export PATH=/path/you're/adding:$PATHの最後に/etc/profileの行を追加します。

ログインしたユーザーのみにディレクトリを追加するには、~/.bash_profileに同じ行を追加します。

15
ennuikiller

これを.bashrcに追加しても機能しますが、パス変数を設定するより伝統的な方法は、次の行を追加することで.bash_profileにあると思います。

PATH=$PATH:/my/path/foo
export PATH

このスレッド によると、Ubuntuの動作はRedHatやクローンとは若干異なるようです。

14
3dinfluence

ターミナルで、cdからthe_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

これは私の考えではありませんでした。これでパスをエクスポートするこの方法を見つけました ブログはこちら

10
Sudo vi /etc/profile.d/SCRIPT_NAME.sh

そこに追加

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
8
Clipping Path

BASHスクリプトのフォルダーを「インストール」するたびに、Ubuntuの最新バージョンのほとんどの.profileファイルにある$HOME/binフォルダーのテストパターンに従います。次のようなテストを設定します

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

それはほぼ100%の時間で動作し、/scripts$HOMEフォルダーの近くに移動することにした場合、GUIテキストエディターで簡単に「すべて置換」して自由に変更できます。 。私はUbuntuの6回のインストールでそうしていませんが、「常に明日」があります。 S

BZT

6
Silversleevesx

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

5
Benny

ターミナルを開き、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"

ターミナルを閉じて、開いてください、それは働いているはずです。

4
djavier

それを~/.bashrcまたはrcを使用するシェル(または前述の~/.profile)および~/.xsessionrcに入れて、X(シェル外)でも動作するようにします。

2
Mikaela

システムスクリプトがこれを使用しない場合でも、PATH環境変数にパス(たとえば、$HOME/bin)を追加する場合は、使用する必要があります。

PATH="${PATH:+${PATH}:}$HOME/bin"

PATH="$PATH:$HOME/bin"の代わりに)追加するため、および

PATH="$HOME/bin${PATH:+:${PATH}}"

PATH="$HOME/bin:$PATH"の代わりに追加するため。

これにより、$PATHが最初に空になったときに不要な先頭/末尾のコロンが回避され、望ましくない結果が生じる可能性があります。

例参照 https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset

1
sancho.s