1. ホーム
  2. linux

[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].

2022-03-21 01:49:30

質問

Linuxでは、どのように$PATHにディレクトリを追加すれば、異なるセッションにまたがって永続的な状態を維持できますか?

背景

あるディレクトリをパスに追加して、Linuxのパスに常に含まれるようにしようとしています。試してみました。

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

しかし、ターミナルを終了して新しいターミナルインスタンスを起動するたびに、このパスは失われ、exportコマンドを再び実行する必要があります。

どうすれば、この設定を恒久的にすることができますか?

解決方法は?

複数の方法があります。実際の解決方法は、目的によって異なります。

変数値は通常、代入リストか、システムまたはユーザーセッションの開始時に実行されるシェルスクリプトに格納されます。シェルスクリプトの場合、特定のシェル構文を使用する必要があり export または set コマンドを使用します。

システム全体

  1. /etc/environment ユニークな割り当てのリストです。参照を許可する。のようなシステム全体のディレクトリを追加するのに最適です。 /usr/local/something/bin から PATH 変数を定義するか JAVA_HOME . で使用されます。 PAM システムド .

  2. /etc/environment.d/*.conf ユニークな割り当てのリストです。参照を許可する。のようなシステム全体のディレクトリを追加するのに最適です。 /usr/local/something/bin から PATH 変数を定義するか JAVA_HOME . 設定は複数のファイルに分割することができ、通常は各ツール(Java、Go、Node.js)ごとに1つずつになります。設計上、これらの値をユーザーログインシェルに渡さないsystemdによって使用されます。

  3. /etc/xprofile X Window Systemのセッションを開始する際に実行されるシェルスクリプト。これは X Window System にログインするすべてのユーザに対して実行されます。これは PATH のように、すべてのユーザーに対して有効なエントリは /usr/local/something/bin . このファイルは他のスクリプトによってインクルードされるので、ユーザーシェルの構文ではなく、POSIXシェルの構文を使用してください。

  4. /etc/profile/etc/profile.d/* シェルスクリプト。シェルのみのシステムには、この方法が適しています。これらのファイルは、ログインモードのシェルによってのみ読み取られます。

  5. /etc/<shell>.<shell>rc . シェルスクリプト。これは単一シェルに特化したものであるため、選択には適していません。非ログインモードで使用します。

ユーザーセッション

  1. ~/.pam_environment . 一意な割り当てのリスト、参照は許されない。X Window System セッションかシェルかに関係なく、すべてのユーザーセッションの開始時に PAM によって読み込まれます。を含む他の変数を参照することはできません。 HOME または PATH であるため、用途が限定されます。PAMで使用します。

  2. ~/.xprofile シェルスクリプト。これはユーザがX Window Systemシステムにログインしたときに実行されます。ここで定義された変数は、すべてのXアプリケーションから見える。を拡張するための完璧な選択肢です。 PATH のような値で ~/bin または ~/go/bin を定義したり、ユーザー独自の GOPATH または NPM_HOME . このファイルは他のスクリプトによってインクルードされるので、ユーザーシェルの構文ではなく、POSIXシェルの構文を使用してください。グラフィカルなテキストエディタやショートカットで起動するIDEは、これらの値を見ることができます。

  3. ~/.profile , ~/.<shell>_profile , ~/.<shell>_login シェルスクリプト。ターミナルやターミナルエミュレータから起動されたプログラムにのみ表示されます。シェルのみのシステムに適しています。ログインモードのシェルで使用されます。

  4. ~/.<shell>rc . シェルスクリプト。これは単一シェルに特化したものなので、あまり良い選択ではありません。非ログインモードのシェルで使用されます。

注意事項

GNOME オン ウェイランド は、環境を取得するためにユーザーログインシェルを起動します。これは、ログインシェルの設定を効果的に使用します ~/.profile , ~/.<shell>_profile , ~/.<shell>_login ファイルを作成します。

マンページ

ディストリビューション別ドキュメント

関連

ログインシェルと非ログインシェルの違いは?