私は自分のパスにディレクトリを追加しようとしています。そのため、ディレクトリは常にLinuxパスにあります。私はもう試した:
export PATH=$PATH:/path/to/dir
これは機能しますが、ターミナルを終了して新しいターミナルインスタンスを起動するたびに、このパスが失われ、exportコマンドを再度実行する必要があります。
これを永続的に設定するにはどうすればよいですか?
私は自分のパスにディレクトリを追加しようとしています。そのため、ディレクトリは常にLinuxパスにあります。私はもう試した:
export PATH=$PATH:/path/to/dir
これは機能しますが、ターミナルを終了して新しいターミナルインスタンスを起動するたびに、このパスが失われ、exportコマンドを再度実行する必要があります。
これを永続的に設定するにはどうすればよいですか?
回答:
それを行うには複数の方法があります。実際の解決策は目的によって異なります。
変数の値は通常、割り当てのリスト、またはシステムまたはユーザーセッションの開始時に実行されるシェルスクリプトに格納されます。シェルスクリプトの場合は、特定のシェル構文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、NodeJS)ごとに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 Systemセッションまたはシェルの場合は関係ありません。あなたは他の変数を含む参照できませんHOME
か、PATH
それは限られた用途を持つように。PAMによって使用されます。~/.xprofile
シェルスクリプト。これは、ユーザーがX Window Systemシステムにログインしたときに実行されます。ここで定義された変数は、すべてのXアプリケーションに表示されます。拡張するための完璧な選択PATH
のような値を持つ~/bin
か、~/go/bin
またはユーザーの特定を定義しますGOPATH
かNPM_HOME
。ファイルは他のスクリプトに含まれているため、ユーザーシェルの構文ではなくPOSIXシェル構文を使用してください。グラフィカルテキストエディターまたはショートカットによって起動されたIDEには、これらの値が表示されます。~/.profile
、~/.<shell>_profile
、~/.<shell>_login
シェルスクリプト。これは、ターミナルまたはターミナルエミュレータから起動したプログラムでのみ表示されます。シェルのみのシステムに適しています。ログインモードのシェルで使用されます。~/.<shell>rc
。シェルスクリプト。これは単一のシェル固有であるため、不適切な選択です。非ログインモードのシェルで使用されます。Wayno上のGnomeは、環境を取得するためにユーザーログインシェルを起動します。これは、効果的にログインシェルの設定を使用しています~/.profile
、~/.<shell>_profile
、~/.<shell>_login
ファイル。
/etc/environment
いると思います。しかし、ログアウトおよびログインせずに更新できますか?たまにbashやshを使わsource /etc/environment
ないのでうまくいきません。
~/.profile
または~/.bashrc
ファイルに追加する必要があります。
export PATH="$PATH:/path/to/dir"
何をしているのかに応じて、バイナリにシンボリックリンクすることもできます。
cd /usr/bin
sudo ln -s /path/to/binary binary-name
これにより、残りのセッションのパスが自動的に更新されることはありません。これを行うには、次を実行する必要があります。
source ~/.profile
or
source ~/.bashrc
$PATH
との間にコロンがあってはいけません/usr/bin
。2)あるはず/usr/bin
です。3)使用するべきではありません/usr/local/bin
か?
cd
を解凍し、解凍したディレクトリに移動して実行するシナリオを検討してくださいls
---そしてtarballに悪意のあるプログラムが呼び出さls
れていることを認識してください。
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として開き、必要なものを追加できます。
即時の結果を得るには、次のように実行します(通常のユーザーおよび root として試行):
source /etc/environment && export PATH
更新:
zsh
(別名Z Shell)を使用する場合は、次の行のコメントの直後にこの行を追加します/etc/zsh/zshenv
。
source /etc/environment
Ubuntu 15.10でこの小さな癖が発生しましたが、zshが正しいPATHを取得していない場合、これが原因である可能性があります
$PATH
は/etc/profile
Arch Linux でも定義されています。
export
宣言をに入れ~/.bashrc
ます。私の.bashrcにはこれが含まれています:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
.profile
' に入れたときに動作しましたが、見つかりませんでした.bashrc
source ~/.bashrc
をリロードするために行う必要があり.bashrc
ます。その後、動作します
export
キーワードはPATH
、が環境変数としてフラグを立てられていない場合にのみ必要です-これは、ほとんど無条件です。単にPATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
同じ効果があります。
$PATH
2つの方法で永続的に設定できます。
特定のユーザーのパスを設定するには:ユーザーの.bash_profile
ホームディレクトリにエントリを作成する必要がある場合があります。
例えば私の場合、私はTomcatユーザープロファイルにJavaパスを設定します
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
すべてのシステムユーザーに共通のパスを設定するには、次のようにパスを設定する必要がある場合があります。
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
/etc/profiles
と名付けられていs
ますか?鉱山はありませんs
。タイプミスがあると思います。
CentosまたはRHELでローカルユーザーを使用できます。
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
これにより、現在のディレクトリ(または他のディレクトリを使用できます)がPATHに追加され、永続的になりますが、次回のユーザーログオン時に有効になります。
再ログオンしたくない場合は、以下を使用できます。
source ~/.bash_profile
このリロードは、# User specific environment and startup programs
このコメントが存在する.bash_profile
次のいずれかのファイルを編集して、永続的に設定することもできます。
/etc/profile
(すべてのユーザー向け)
~/.bash_profile
(現在のユーザー向け)
~/.bash_login
(現在のユーザー向け)
~/.profile
(現在のユーザー向け)
を使用/etc/environment
して永続的なPATH環境変数を設定することもできますが、変数の展開はサポートされていません。
抽出元:http : //www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
昨日、自分のスクリプトを含むフォルダーを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
を作成してスクリプトをそこに置くことだけでした。
その行をコンソール構成ファイル(例:.bashrc)または.profileに追加できます。
/home/(username)
ls -a
れています。それらを見るようなものが必要です。)
PATH変数を永続的に追加する
グローバル:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
ローカル(ユーザーのみ):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
以下のためのグローバルな再起動。以下のためのローカル再ログイン。
例
前:
$ 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' ...そしてところで、PATH変数は既にエクスポート済みとしてマークされている可能性が高いため、exportキーワードはほとんど役に立たない可能性があります。– gniourf_gniourf
echo 'export PATH=$PATH:/new/path/variable'
...ちなみに、変数はすでにエクスポート済みとしてマークされている可能性がexport
高いため、キーワードはほとんど役に立たない可能性がありPATH
ます。
/usr/local
してそれに追加すると言います~/.bashrc
。ここで、を使用/opt/bin
して同じ変数に追加する場合は/etc/bash.bashrc
、$ PATHは同じ静的文字列に変換され、その結果、$ PATHは追加されるのではなく置き換えられます...ファイルの優先順位はシステム
多くの調査の結果、私はこの簡単な解決策を見つけました(私は基本的なOSを使用しています)。次のリンクに触発されました。
次のコマンドを実行して、.bashrcファイルを編集モードで開きます。[viまたは他のエディタを使用することもできます]。
~$ sudo nano ~/.bashrc
ファイルの最後に次の行を追加して保存します。
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
例えば :
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
私はこれがUbuntuディストリビューションのフラッターにパスを設定するための永久的な解決策だと思います
これがお役に立てば幸いです。
次の行で/etc/profile.d
フォルダスクリプトに追加[name_of_script].sh
:export PATH=$PATH:/dir
。/etc/profile.d
フォルダ内のすべてのスクリプトは/etc/profile
、ログイン時に自動的に実行されます。
私の答えはgo-lang
onの設定に関するものですUbuntu linux/amd64
。環境変数(GOPATH
とGOBIN
)のパスを設定し、端末出口でそれを失い、source <file_name>
毎回それを再構築する という同じ問題に直面しました。パスを置くのは間違いでした(GOPATH
そしてGOBIN
)~/.bash_profile
フォルダー内。いくつかの良い時間を無駄にした後、私は解決策を配置することが分かったGOPATH
とGOBIN
して~/.bash_rc
た方法でファイル:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
そうすることで、goインストールは正常に機能し、パスの損失はありませんでした。
編集1:この問題が関連する可能性のある理由は、ubuntuターミナルやgoコードを実行するgnome-terminalなどの非ログインシェル~./bash_rc
の設定が~/.bash_profile
ファイルから取得され、ログインシェルの設定がファイルから取得されることです、そして~/.profile
ファイルから~/.bash_profile
ファイルに到達できないはファイル。
次のコマンドを使用して直接追加できます。
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
bash
ため、あまり役に立ちません。
最も簡単な方法は次の行です
PATH="<directory you want to include>:$PATH"
。ホームディレクトリの.bashrcファイル内。
ターミナルを閉じたり、PCを再起動してもリセットされません。その永久
パーマネントパスを追加する1つの方法は、私にとってはうまくいきました:
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
コンピュータを再起動すると、ここでパスが恒久的に乾杯します。
.bash_profile
リストにも追加する必要がありますか?