.profileと.bash_profileの違いは何ですか?システムに.profileファイルがないのはなぜですか?

.profileと.bash_profileの違いは何ですか?システムに.profileファイルがないのはなぜですか?

私はLinuxに初めてアクセスし、最近NetbookにFedora 19をインストールしました。 LinuxとCLIについて詳しく知りたいので、今読んでいます。Linux学習:難しい道

演習3では、著者は次のコマンドを発行します。

  • ls - 卵
  • 猫、プロフィール

この指示に従おうとしたが、役に立たなかった。 ls -alに見られるように、私のユーザー名ディレクトリに.profileファイルはありません。私が知る限り、.bash_profileと.profileファイルは実際には同じです。研究によって得られる唯一の違いは、.bash_profileが最初に確認されることです。

私が理解していないのは、Linuxに同じ機能用の複数のファイルがある理由と、作成者が.bash_profileの代わりに.profileを使用した理由です(正しく理解した場合、システムが最初に.bash_profileを見つけると.profileを読み取れません)。システムに.profileファイルがないのはなぜですか?

答え1

GNUシェル(オプションによって異なります)は.profileBourneシェルの親セットであるため、両方のシェルは同じ起動ファイルを使用できます。つまり、コマンドを入力するだけです。shbashsh.profile

たとえば、alias有効な組み込みコマンドがありますが、bash不明ですsh。したがって、.profileホームディレクトリにのみaがあり、aliasそこに文を追加すると文句が表示shされます。したがって、bashには、ファイルが存在しない場合にのみ読み取るシェル初期化コマンドを含むbash関連ファイルがあります.profile

実際、これはいくつかのインストールでは少し過度に単純化されており、私はFedoraに精通していません。 Bashでは、/etc/profileシェルはホームディレクトリ内のすべてのファイルの前に読み込みます。システム全体にわたって初期化スクリプトがある場合、通常は次のように表示されます。

if there is a $HOME/.profile:
   source it
elseif bash is my shell and there is a $HOME/.bash_profile:
   source that

なぜこれが起こるのですか?何十年ものシェル方言と互換性を持つようにしてください。チュートリアルはなぜこう書かれたのですか? Bourneシェルはもはや頻繁に使用されなくなり、一部の人々はbashに加えて他のBourneに似たシェルがあるという事実さえ知りません。 (制限された)Bourne構文はより良いクロスプラットフォーム互換性のために使用されますが、dashPOSIX互換モードでbashによって実行されることがよくあります。実際、実際のBourneシェルソースコードはUnix System Vの著作権保護コンポーネントである可能性があります。今Novellの所有になったようです。しかし、彼らがそれで何をしているのかわかりません。

初心者の場合は、$HOME/.profileどちらか一方を使用し、$HOME/.bash_profile両方を使用しないでください。すでに使用しているため、インストール.bash_profileに必要なシステム固有の項目を含めることができます。

関連情報