GNU/Linux >> Linux の 問題 >  >> Linux

Linux/Unix で $PATH を永続的に設定するには?

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

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

実行内容によっては、バイナリへのシンボリック リンクも必要になる場合があります。

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

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

source ~/.profile 
or
source ~/.bashrc

Ubuntu では、/etc/environment を編集します。 .その唯一の目的は、環境変数を保存することです .もともと $PATH 変数はここで定義されています。

これは私の /etc/environment からの貼り付けです ファイル:

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

したがって、このファイルをルートとして開き、必要なものを追加できます。

即時 結果、

実行 (通常のユーザーとして実行 および ルート):

source /etc/environment && export PATH

Z シェル (zsh を使用する場合) )、/etc/zsh/zshenv のコメントの直後にこの行を追加します。 ファイル:

source /etc/environment

Ubuntu 15.10 (Wily Werewolf) でこのちょっとした癖に遭遇しましたが、zsh 正しい PATH を取得していません 、これが理由かもしれません。


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

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

システム全体

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

  • /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 .固有の課題のリスト。参照は許可されていません。すべてのユーザー セッションの開始時に PAM によって読み込まれます。X Window システム セッションまたはシェルの場合は関係ありません。 HOME を含む他の変数を参照することはできません または PATH そのため用途が限られています。 PAM によって使用されます。

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

  • ~/.profile~/.<shell>_profile~/.<shell>_login シェルスクリプト。端末または端末エミュレーターから開始されたプログラムに対してのみ表示されます。これは、シェルのみのシステムに適しています。ログインモードでシェルによって使用されます。

  • ~/.<shell>rc .シェルスクリプト。これは単一のシェル固有であるため、適切な選択ではありません。非ログイン モードでシェルによって使用されます。

  • メモ

    Wayland 上の GNOME は、ユーザー ログイン シェルを起動して環境を取得します。ログインシェル構成 ~/.profile を効果的に使用します 、 ~/.<shell>_profile~/.<shell>_login ファイル。

    マニュアル ページ

    • 環境
    • environment.d https://linux.die.net/man/1/environment.d
    • バッシュ
    • ダッシュ

    ディストリビューション固有のドキュメント

    • Ubuntu
    • Arch Linux

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


    Linux
    1. Linuxで$PATH変数を永続的に設定する方法を学ぶ

    2. Linuxで$PATHを永続的に設定する方法

    3. Linuxの特定のTtynにログインした後、デフォルトのシェルを(永続的に)変更するにはどうすればよいですか?

    1. Linuxで$PATH変数を設定する方法

    2. ユーザー環境変数を設定する方法は? (永続的に、セッションではありません)?

    3. Linuxでシェルを変更する方法

    1. Linuxで$Path変数を設定する方法

    2. Linux / UNIX :SUID/SGID が設定されたファイルを見つける方法

    3. UNIX / Linux :mutt のインストールと設定方法