違いは何である~/.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最初にソースしようとしますが、存在しない場合はソース.profile1になります。
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~./bashrcbash と同じ変数$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_profilebashの下で~/.profile動作しますが、BourneおよびKornシェルの下で動作します。
ログインシェルは、sshまたはコンソールでログインできる単純なシェルです。非ログインシェルは、誰かがログインできないシェルです。非ログインシェルは、多くの場合、プログラム/システムサービスによって使用されます。
あなたの第三の点に関しては。.bashrcシェルの各インスタンスで実行されるのは事実です。ただし.bash_profile、ログイン時にのみ使用されます。したがって、2つの別個のファイルの理由。
.profile環境変数$ PATHのように、特にBashに特に関連しないもののためのもので、いつでも利用できるはずです。.bash_profileログインシェルまたはログイン時に実行されるシェル専用です。