web-dev-qa-db-ja.com

Linux/Unixで恒久的に$ PATHを設定するにはどうすればいいですか?

私は自分のパスにディレクトリを追加しようとしているので、それはいつも私のLinuxパスの中にあるでしょう。私はもう試した:

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

これは機能しますが、端末を終了して新しい端末インスタンスを起動するたびに、このパスは失われるので、もう一度exportコマンドを実行する必要があります。

永続的に設定されるようにするにはどうすればよいでしょうか。

742
Click Upvote

~/.profileまたは~/.bashrcファイルに追加する必要があります。

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

あなたがしていることによっては、バイナリにシンボリックリンクしたいかもしれません。

cd /usr/bin
Sudo ln -s /path/to/binary binary-name

これはセッションの残りの間あなたのパスを自動的に更新しないことに注意してください。 これを行うには、実行する必要があります:

source ~/.profile 
or
source ~/.bashrc
884
mpowered

Ubuntuでは、/etc/environmentを編集します。その唯一の目的は環境変数を格納することです。元々$ PATH変数はここで定義されていますこれは私の/etc/environmentファイルからの貼り付けです:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

ですから、このファイルをrootとして開き、必要なものを追加するだけです。

即時結果の場合は、を実行します(通常のユーザーand rootとして試してください)。

source /etc/environment && export PATH

更新:

zsh(a.k.a Z Shell)を使用している場合は、/etc/zsh/zshenvのコメントの直後に次の行を追加してください。

source /etc/environment

私はUbuntu 15.10でこのちょっとした風変わりな問題に遭遇しましたが、あなたの zsh が正しい _ path _ を得ていないのなら、これが理由かもしれません

220
trve.fa7ad

それを行うには複数の方法があります。実際の解決策は目的によって異なります。

変数値は通常、割り当てのリスト、またはシステムまたはユーザーセッションの開始時に実行されるシェルスクリプトのいずれかに保存されます。シェルスクリプトの場合、特定のシェル構文を使用する必要があります。

システム全体

  1. /etc/environment一意の割り当てのリスト。 /usr/local/something/binのようなシステム全体のディレクトリをPATH変数に追加したり、Java_HOMEを定義するのに最適です。
  2. /etc/xprofile X Window Systemセッションの開始中に実行されるシェルスクリプト。これは、X Window Systemにログインするすべてのユーザーに対して実行されます。 /usr/local/something/binのようなすべてのユーザーに有効なPATHエントリに適しています。このファイルは他のスクリプトに含まれているため、ユーザーシェルの構文ではなくPOSIXシェル構文を使用します。
  3. /etc/profileおよび/etc/profile.d/*シェルスクリプト。これは、シェルのみのシステムに適しています。これらのファイルはシェルによってのみ読み取られます。
  4. /etc/<Shell>.<Shell>rc。シェルスクリプト。シングルシェル固有であるため、これは適切な選択ではありません。

ユーザーセッション

  1. ~/.pam_environment。一意の割り当てのリスト。すべてのユーザーセッションの開始時に PAM によってロードされます。XWindow Systemセッションまたはシェルの場合は無関係です。 HOMEPATHなどの他の変数を参照することはできないため、使用が制限されています。
  2. ~/.xprofileシェルスクリプト。これは、ユーザーがX Window Systemシステムにログインしたときに実行されます。ここで定義された変数は、すべてのXアプリケーションに表示されます。 PATH~/bin~/go/binなどの値で拡張したり、ユーザー固有のGOPATHまたはNPM_HOMEを定義するのに最適です。このファイルは他のスクリプトに含まれているため、ユーザーシェルの構文ではなくPOSIXシェル構文を使用します。グラフィカルテキストエディタまたはショートカットによって起動されたIDEには、これらの値が表示されます。
  3. ~/.profileシェルスクリプト。端末または端末エミュレータから起動されたプログラムでのみ表示されます。これは、シェルのみのシステムに適しています。
  4. ~/.<Shell>rc。シェルスクリプト。シングルシェル固有であるため、これは適切な選択ではありません。

配布固有のドキュメント

150
Grzegorz Żur

export宣言を~/.bashrcに置きます。私の.bashrcには以下が含まれています。

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
68
Fraxtil

$PATHを恒久的に設定する方法は2つあります。

  1. 特定のユーザーのパスを設定するにはユーザーのホームディレクトリの.bash_profileにエントリを作成する必要があります。

    たとえば、私の場合はTomcatユーザープロファイルにJavaパスを設定します

    [Tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/Tomcat/.bash_profile
    
  2. すべてのシステムユーザーに共通のパスを設定するには、次のようにパスを設定する必要があります。

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
    
29
Mohit M

あなたはCentosかRHEL上でローカルユーザーとして使うことができます:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

これは現在のディレクトリをPATHに追加します(あるいは他のディレクトリを使用することもできます)。これはそれを永続的にしますが、次回のユーザログオンで有効になります。

再ログオンしたくない場合は、次のようにします。

source ~/.bash_profile

このコメントが# User specific environment and startup programsにある.bash_profileをリ​​ロードします

その行をあなたのコンソール設定ファイル(例えば.bashrc)または.profileに追加することができます。

6
aqua

私は最もエレガントな方法だと思います:

1.〜/ .bashrcファイルにこれを追加します。このコマンドを実行します。

gedit〜/ .bashrc

その中にあなたのパスを追加する 

エクスポートパス= $パス:/ opt/node/bin

〜/ .bashrc

(Ubuntu)

6
Himanshu sharma

これらのファイルの1つを編集して、恒久的に設定することもできます。

/etc/profile(全ユーザー用)

~/.bash_profile(現在のユーザー用)

~/.bash_login(現在のユーザー用)

~/.profile(現在のユーザー用)

永続的なPATH環境変数を設定するために/etc/environmentを使うこともできますが、 変数展開をサポートしません  

から抽出された: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html

6
Delucaramos

自分のスクリプトを含むフォルダをPATHに追加する方法を探すとき、私は昨日この質問に出くわした - そして自分の~/.profileファイル(Linux Mint 18.1の場合)にすでにこれが含まれていることを知って驚いた。 

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

したがって、私がしなければならなかったのは、フォルダー~/binを作成し、そこに私のスクリプトを置くことだけでした。

5
RobertG

exportコマンドを追加するファイルは、ログインモードか非ログインモードかによって異なります。

ログインモードの場合、探しているファイルは/ etc/bashまたは/etc/bash.bashrcです。

非ログインモードの場合は、ファイル/.profileまたはディレクトリ/.profiles.d内のファイルを探しています。

システム変数がある場合は、上記のファイル。

3
Dikinha

Zues77は正しい考えを持っています。 OPは「どうやってこれをハックできるのか」とは言いませんでした。 OPは$ PATHに永続的に追加する方法を知りたがっていました。

Sudo nano /etc/profile

これはすべてに設定されている場所で、$ PATHを必要とするすべてのものに変更するのに最適な場所です

3
Joe D

私の答えは、go-langへのUbuntu linux/AMD64の設定に関するもので、環境変数(GOPATHGOBIN)のパスを設定するという同じ問題に直面し、毎回端末出口でそれを失い、source <file_name>を使用して再構築します。 ~/.bash_profileフォルダにパス(GOPATHGOBIN)を入れることでした。数時間を無駄にした後の解決策は、次のようにしてGOPATHGOBIN~/.bash_rcファイルに入れることです。

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

そうしても、goのインストールはうまくいき、パスの損失はありませんでした。 

編集1:この問題が関連しているのは、goコードを実行しているubuntu端末やgnome-terminalのような非ログインシェルの設定は~./bash_rcファイルとログインシェルの設定からとられるためです。 ~/.bash_profileファイルから取得され、~/.profileファイルにアクセスできない場合は~/.bash_profileファイルから取得されます。 

3
Abhiroj Panwar

/etc/profile.dという行で[name_of_script].shフォルダスクリプトexport PATH=$PATH:/dirを追加します。 /etc/profile.dフォルダ内のすべてのスクリプトは、ログイン時に/etc/profileによって自動的に実行されます。

2
Iurii

恒久的にPATH変数を追加します

グローバル:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

ローカル(ユーザー専用):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

global restartの場合 local reloginの場合.

前:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

の後:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

あるいは、プロファイルを編集することもできます。

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

別の方法(ありがとうgniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

ここで二重引用符を使用しないでください。 echo 'export PATH = $ PATH:/ new/path/variable' ...そしてところで、exportキーワードは、PATH変数が既に[なっているので無用の可能性が非常に高いです。 ____。]エクスポート済みとしてマークされています。 - gniourf_gniourf

2
user3439968

私は最もエレガントな方法だと思います:

1.これを 〜。/ bashrc fileに追加します。

if [ -d "new-path" ]; then
  PATH=$PATH:new-path
fi

2.ソース 〜/ .bashrc

(Ubuntu)

1
Gimcuan Hui

Homebrewを使ったクイックインストール

これをチェック ビデオ

または 

以下の手順

Step 1:

開く https://brew.sh/

enter image description here

コピー the _スクリーンショットに表示されたURL

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

貼り付け端末URLをコピーしてreturn/enterキーを押す

自作インストール手順2: _を使って完了

Step 2:Download terraform from https://www.terraform.io/downloads.html

抜粋ダウンロード済みジップテラフォームファイル 

これで、ダウンロードしたフォルダにterraformという名前のファイルが1つあります。

例えば

/Users/username/downloads/terraform

Step 3:

terminalを開く

cd:ディレクトリを/Users/username/downloads/terraformに変更します

Step 4:

端末内の実行brew install terraform

1
Munish Kapoor

最も簡単な方法は次の行です。
PATH="<directory you want to include>:$PATH"
ホームディレクトリの.bashrcファイルの.
端末を閉じたり、PCを再起動してもリセットされません。その永久的な

1
Edward Torvalds

Debianディストリビューションの場合は、次のことが必要です。

    - edit ~/.bashrc  e.g: vim ~/.bashrc 
    - add export PATH=$PATH:/path/to/dir
    - then restart your computer. Be aware that if you edit ~/.bashrc  as root, your environment variable you added will work only for root
0
onlyme

恒久的なパスを追加する1つの方法は、私には役立ちました。 PATH = $ PATH:/設定に応じたパス/ コンピュータを再起動すると、パスが永久にになります.

0
user6393373

MacOSを実行していて、信頼できるバイナリがあり、システム全体で使用できるようにしたいが、バイナリをPATHに追加するディレクトリが必ずしも必要ない場合、コピー/移動を選択できます/usr/local/binへのバイナリ。これは既にPATHにあるはずです。これにより、ターミナルで既にアクセスできる他のバイナリと同様に、バイナリ実行可能ファイルが作成されます。

0
Leo

1./etc/profileファイルを修正します。

#vi /etc/profile

"i"キーを押して編集ステータスを入力し、ファイルの末尾にカーソルを移動してください。

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

"Esc"キーを押して編集ステータスを終了し、 ':wq'ファイルを保存します。

2.設定を有効にする

source /etc/profile

説明:プロファイルファイルはすべてのユーザに有効です。アクティブユーザだけに有効にしたい場合は、「。bashrc」ファイルを設定します。

0
Jia