PATHを編集するときに.profileが存在しない場合はどうすればよいですか?

PATHを編集するときに.profileが存在しない場合はどうすればよいですか?

環境変数を編集したいです$PATH。いくつかのチュートリアルとそのような他の情報源によるとQ&A)、最も一般的な方法は編集することです~/.profile。しかし、私にはそのようなファイルは存在しません。どうですか? (システムによって異なる名前がありますか?新しく作成する必要がありますか?何を入れるべきですか?別の方法がありますか?)

私はネットワーククラスタのユーザーであり、グローバル環境変数を編集したくありません。~/.bashrc私のユーザーのために何かを変更する前に編集したことがあり、いくつかのファイルがありましたが、ファイルはありません~/.でした~/.profile

私はUbuntu 16.04.2 LTS、コード名:Xenialを使用しています。echo $PATH一部のグローバルbinディレクトリのみを提供していますが、一部のユーザー固有のbinをインストールした後に/path/to/home~/expanded/.local/bin/PATHに追加したいと思います。

答え1

ファイルがある場合は~/.bash_profile編集してください(使用しているようです(Linuxを使用して以前に編集したファイルがbashあると述べたため))。~/.bashrcシェルは存在しない場合にのみ読み取りを試みますbash。ファイルがすべて存在しない場合は作成できます。~/.profile~/.bash_profile~/.bash_profile

追加したい行は次のとおりです。

PATH="$HOME/.local/bin:$PATH"

または

PATH="$PATH:$HOME/.local/bin"

追加したディレクトリを最初に検索するのか、最後に検索するのかによって異なります。

変数はすでにエクスポートされているためexport必要ありません。PATH

$HOMEと同じ~ですが、IMHOはシェルスクリプトでより表現力に優れています。また、適切な変数のように動作しますが、~そうではありません。たとえば、参照してください。二重引用符の中でチルダ(〜)が拡張されないのはなぜですか?

/また、Unixではパスがバックスラッシュ()ではなくスラッシュ()で区切られているため、代わりにバックスラッシュが\必要です。~/.bash_profile~\.bash_profile


ほとんどのsh同様のシェル(1つしかありませんbash)は、.profileログインシェルで始まるときにユーザーのホームディレクトリを読み取ります。そのため、使用されている特定の.profileシェルではなく言及にリンクした回答は、質問.bash_profileには記載されていません。

bashたとえば、一部のシェルは、独自の特殊起動ファイルがある場合は無視します。

関連情報