違いは何である~/.profile
とは~/.bash_profile
?
違いは何である~/.profile
とは~/.bash_profile
?
回答:
これ.profile
は、Bourneシェルの元のプロファイル構成(別名、sh
)でした。bash
、Bourne互換シェルであるため、これを読み取って使用します。.bash_profile
一方では、唯一によって読み取られますbash
。これは、標準のBourneシェルと互換性のないコマンドを対象としています。
.profile
。たとえば、bash
およびksh
ではなく、csh
またはtcsh
。そして、zsh
両方を提供sh
し、csh
それは両方を読み込みますので、互換性.profile
と.login
、だけでなく、zsh
特定のドットファイルを。
起動時にsh
ソースさ.profile
れたオリジナル。
bash
.bash_profile
最初にソースしようとしますが、存在しない場合はソース.profile
1になります。
bash
として起動された場合sh
(/bin/sh
へのリンクなど/bin/bash
)または--posix
フラグで起動された場合、エミュレートを試行しsh
、のみを読み取ります.profile
。
脚注:
.bash_profile
、.bash_login
、.profile
こちらもご覧ください:
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シェル(NetBSDプロジェクトのもとでの灰)から派生)(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
~./bashrc
bash と同じ変数$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シェルから分岐されています。BSDによるCシェルのサポート。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シェルの下で動作します。
ログインシェルは、sshまたはコンソールでログインできる単純なシェルです。非ログインシェルは、誰かがログインできないシェルです。非ログインシェルは、多くの場合、プログラム/システムサービスによって使用されます。
あなたの第三の点に関しては。.bashrc
シェルの各インスタンスで実行されるのは事実です。ただし.bash_profile
、ログイン時にのみ使用されます。したがって、2つの別個のファイルの理由。
.profile
環境変数$ PATHのように、特にBashに特に関連しないもののためのもので、いつでも利用できるはずです。.bash_profile
ログインシェルまたはログイン時に実行されるシェル専用です。