[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].
質問
Linuxでは、どのように$PATHにディレクトリを追加すれば、異なるセッションにまたがって永続的な状態を維持できますか?
背景
あるディレクトリをパスに追加して、Linuxのパスに常に含まれるようにしようとしています。試してみました。
export PATH=$PATH:/path/to/dir
しかし、ターミナルを終了して新しいターミナルインスタンスを起動するたびに、このパスは失われ、exportコマンドを再び実行する必要があります。
どうすれば、この設定を恒久的にすることができますか?
解決方法は?
複数の方法があります。実際の解決方法は、目的によって異なります。
変数値は通常、代入リストか、システムまたはユーザーセッションの開始時に実行されるシェルスクリプトに格納されます。シェルスクリプトの場合、特定のシェル構文を使用する必要があり
export
または
set
コマンドを使用します。
システム全体
-
/etc/environment
ユニークな割り当てのリストです。参照を許可する。のようなシステム全体のディレクトリを追加するのに最適です。/usr/local/something/bin
からPATH
変数を定義するかJAVA_HOME
. で使用されます。 PAM と システムド . -
/etc/environment.d/*.conf
ユニークな割り当てのリストです。参照を許可する。のようなシステム全体のディレクトリを追加するのに最適です。/usr/local/something/bin
からPATH
変数を定義するかJAVA_HOME
. 設定は複数のファイルに分割することができ、通常は各ツール(Java、Go、Node.js)ごとに1つずつになります。設計上、これらの値をユーザーログインシェルに渡さないsystemdによって使用されます。 -
/etc/xprofile
X Window Systemのセッションを開始する際に実行されるシェルスクリプト。これは X Window System にログインするすべてのユーザに対して実行されます。これはPATH
のように、すべてのユーザーに対して有効なエントリは/usr/local/something/bin
. このファイルは他のスクリプトによってインクルードされるので、ユーザーシェルの構文ではなく、POSIXシェルの構文を使用してください。 -
/etc/profile
と/etc/profile.d/*
シェルスクリプト。シェルのみのシステムには、この方法が適しています。これらのファイルは、ログインモードのシェルによってのみ読み取られます。 -
/etc/<shell>.<shell>rc
. シェルスクリプト。これは単一シェルに特化したものであるため、選択には適していません。非ログインモードで使用します。
ユーザーセッション
-
~/.pam_environment
. 一意な割り当てのリスト、参照は許されない。X Window System セッションかシェルかに関係なく、すべてのユーザーセッションの開始時に PAM によって読み込まれます。を含む他の変数を参照することはできません。HOME
またはPATH
であるため、用途が限定されます。PAMで使用します。 -
~/.xprofile
シェルスクリプト。これはユーザがX Window Systemシステムにログインしたときに実行されます。ここで定義された変数は、すべてのXアプリケーションから見える。を拡張するための完璧な選択肢です。PATH
のような値で~/bin
または~/go/bin
を定義したり、ユーザー独自のGOPATH
またはNPM_HOME
. このファイルは他のスクリプトによってインクルードされるので、ユーザーシェルの構文ではなく、POSIXシェルの構文を使用してください。グラフィカルなテキストエディタやショートカットで起動するIDEは、これらの値を見ることができます。 -
~/.profile
,~/.<shell>_profile
,~/.<shell>_login
シェルスクリプト。ターミナルやターミナルエミュレータから起動されたプログラムにのみ表示されます。シェルのみのシステムに適しています。ログインモードのシェルで使用されます。 -
~/.<shell>rc
. シェルスクリプト。これは単一シェルに特化したものなので、あまり良い選択ではありません。非ログインモードのシェルで使用されます。
注意事項
GNOME
オン
ウェイランド
は、環境を取得するためにユーザーログインシェルを起動します。これは、ログインシェルの設定を効果的に使用します
~/.profile
,
~/.<shell>_profile
,
~/.<shell>_login
ファイルを作成します。
マンページ
ディストリビューション別ドキュメント
関連
関連
-
中国版「浮世」を含むUbuntu 20.04.2リリース
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepin20のファイルを共有する方法を教えてください。Windowsでdeepinファイルを共有するためのヒント
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
deepin20のデスクトップアイコンのスタイルを変更する方法は?deepinのアイコンテーマを変更するためのヒント
-
apache startup error (98) Address already in use: make_sock: could not bind to...
-
[解決済み] gzip: stdin: gzip 形式ではありません tar: 子プロセスはステータス 1 を返しました。エラーは回復不可能: 現在終了中
-
[解決済み] cronは内部でどのようにジョブをスケジューリングしているのですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド