違いは何ですか ~/.profile
および~/.bash_profile
?
.profile
は、Bourne Shellの元のプロファイル構成です(別名、sh
)。 bash
、Bourne互換シェルであると、それを読み取って使用します。一方、.bash_profile
はbash
によってのみ読み取られます。これは、標準のBourne Shellと互換性のないコマンドを対象としています。
元のsh
ソース.profile
起動時に。
bash
は.bash_profile
を最初にソースしようとしますが、それが存在しない場合は.profile
をソースします1。
bash
がsh
として開始される場合(たとえば、/bin/sh
は/bin/bash
へのリンク)、または--posix
フラグで開始される場合、 sh
をエミュレートし、.profile
のみを読み取ります。
脚注:
.bash_profile
、.bash_login
、.profile
の最初の1つ以下も参照してください。
UNIXの世界には多くのシェルが存在しますが、そのほとんどは次のとおりです。
/bin/sh
(発明者:スティーブンボーン)/bin/bash
(発明者:ブライアンフォックス、GNUプロジェクト)の下(強力シェル)/bin/csh
(発明者:Bill Joy、TCP/IPスタックの発明者)/bin/ksh
(発明者:Bell LabsのDavid Korn)/bin/zsh
(強力なシェル)/bin/tcsh
(Cシェルから派生)/bin/dash
(Almquist Shellから派生(NetBSDプロジェクトではash))(lennyから生まれたダッシュ)しかしあなたの質問は~/.bash_profile
と~/.profile
についてです:
UNIXマシンにログインすると、管理者が/etc/passwd
の最後のフィールドで選択したシェルに従って、次のようにホームディレクトリにリダイレクトされます。
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
シェルが実行され、デフォルトでは各シェルにlogin
とlogout
のセットファイルがあります。 bashにログインすると~/.profile
が実行され、logout
にログインすると~/.bash_logout
が実行されます。 ~/.bash_history
ファイルは、入力コマンドを保持します。
~/.login
ログインすると~/.logout
ログアウトしたとき~/.tcshrc
bashの~./bashrc
と同じ変数$histfile
を履歴ファイルの名前として設定し、変数$history
を保持するコマンドの数として設定できます。
確かにそれは強力なシェルであり、もしあなたが自由な時間を得たなら、必ずそれに移行してください。
他のシェルを除いて、Zシェルには多くの構成ファイルと初期化ファイルがあります。
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
注:$ZDOTDIR
が設定されていない場合は、ホームセットです。
注:TENEX CシェルはCシェルから分岐されました。 CシェルはBSDでサポートされています。 C言語プログラミングに精通している場合は、構文が似ているので快適です。
~/.login
~/.cshrc
~/.logout
注:cshは古いです。代わりにtcshを使用してください。
~/.profile
これは非常に強力なシェルであり、GNUプロジェクトの下で生まれ、Bourne Shellによって分岐されました。
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
ログインすると、bashは~/.bash_profile
を実行し、~/.bash_profile
は~/.bashrc
を実行します。確かに~/.bashrc
はbashが実行しないため、bash初期化ファイルではありません。
死んだ。 man sh
を使っていても、dash
のマニュアルを見ることができます。 [編集者注:dash
に関するビットは、DebianおよびUbuntuのようなDebianベースのディストリビューションにのみ適用されます。]
~/.bash_profile
はbashで動作しますが、~/.profile
はBourneおよびKorn Shellで動作します。
ログインシェルは、sshまたはコンソールからログインできるシェルです。非ログインシェルは、誰かがログインできないシェルです。ログイン以外のシェルは、プログラム/システムサービスでよく使用されます。
3つ目のポイントは。それは本当です .bashrc
はシェルの各インスタンスで実行されます。しかしながら .bash_profile
はログイン時にのみ使用されます。したがって、2つの別々のファイルの理由。
.profile
は、環境変数$ PATHなど、Bashに特に関係のないもの用であり、いつでも使用できるようにする必要があります。 .bash_profile
は、ログインシェルまたはログイン時に実行されるシェル用です。