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


12

だから私はLinuxにかなり慣れていないし、最近ネットブックにFedora 19をインストールした。LinuxとCLIをより深く理解したいので、今はLearn Linux:The Hard Wayを読んでいます。

演習3では、作成者は次のコマンドを提供します。

  • ls -al
  • 猫のプロフィール

私はこれらの指示に従おうとしますが、役に立ちません。ls -alで確認できるように、ユーザー名ディレクトリに.profileファイルがありません。私が学んだことから、.bash_profileと.profileファイルは実質的に同じです。私の調査から結論付けた唯一の違いは、.bash_profileが最初にチェックされることです。

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


あなたの質問の一部に答えるunix.stackexchange.com/questions/45684/…も参照してください。さらに、unix.stackexchange.com / questions / 67940 /…は、これらのさまざまなファイルが、おそらくまだ扱っていないより高度なものについて混乱を招く理由の1つを示しています。
msw

回答:


13

.profile日付はとして知られているオリジナルのBourneシェルにバックアップsh。GNUシェルbashは(そのオプションに応じて)Bourneシェルのスーパーセットであるため、両方のシェルで同じ起動ファイルを使用できます。つまり、shコマンドのみが入力されている場合.profile

たとえば、aliasはの有効な組み込みコマンドですbashが、には不明shです。したがって、.profileホームディレクトリにだけがあり、その中にaliasステートメントを置くと、sh文句を言うでしょう。そのため、.profileファイルが存在しない場合にのみbashが読み取るシェル初期化コマンドを含むbash固有のファイルがあります。

実際、これは一部のインストールでは少し単純化しすぎており、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構文がクロスプラットフォーム互換性を高めるために使用されている場合dashでも、POSIX互換モードで実行されるか、bashで実行されることがよくあります。確かに、実際のBourneシェルソースはおそらくUnix System Vの著作権コンポーネントであり、現在Novellの所有物であるように見えますが、私は何といっても彼らが何をしているのかわかりません。

開始ユーザーのために、使用のいずれか$HOME/.profileまたは$HOME/.bash_profile両方ではなく、あなたは大丈夫です。.bash_profileインストールに必要なシステム固有の要素が含まれている可能性があるため、すでにそれで作業しています。


ありがとう!もう少しよく理解できたと思いますが、まだまだ学ぶべきことがたくさんあります。
Emiroe 2013

その多くは、あなたが本当に知る必要のない歴史的なジャンクです。私の答えの最後の段落に集中してください。また、あなたはここに新しいので、ここで感謝の最高の形である回答に賛成票を投じ受け入れることができます。
msw

はい、私はすでにあなたの答えを受け入れました。誰かがそんなに努力することを期待していなかったので、とても感謝しています。回答は受け付けましたが、評判は15、評判は8なので賛成できません。申し訳ありません。
Emiroe 2013

15人の担当者の制限を忘れてしまいました。その通りその通り。
msw

4
ヒストリボーナス#1:真のボーンシェルが遂に飼育下から脱出した。minnie.tuhs.orgは V7の完全なソースコード(Bourneシェルとの最初のUNIXリリース)を有し、heirloom.sourceforge.netは、まだ実際には使用可能だBourneシェルの少しより新しいバージョンを持っています。履歴ボーナス#2aliasPOSIXで必要なのでsh、それを知らない人は多くありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.