だから私はLinuxにかなり慣れていないので、最近ネットブックにFedora 19をインストールしました。 LinuxとCLIをより深く理解したいので、現在読んでいます Linuxの学習:ハードウェイ 。
演習3では、作成者は次のコマンドを提供します。
私はこれらの指示に従おうとしますが、役に立ちません。 ls -alで確認できるように、ユーザー名ディレクトリに.profileファイルがありません。私が学んだことから、.bash_profileと.profileファイルは実質的に同じです。私の調査から結論付けた唯一の違いは、.bash_profileが最初にチェックされることです。
Linuxで同じ関数に複数のファイルがあるのはなぜか、作成者が.bash_profileではなく.profileを使用しているのはなぜですか(システムが.bash_profileを最初に検出したときに.profileが読み取られない場合)私のシステムに.profileファイルがないのはなぜですか?
.profile
は、sh
として知られる元のBourne Shellにさかのぼります。 GNU Shell bash
は(そのオプションに応じて)Bourne Shellのスーパーセットであるため)両方のシェルは同じ起動ファイルを使用できます。つまり、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 Shellはあまり使用されないことが多く、bash以外にBourneのようなShellがあることを知らない人もいます。 (制限された)Bourne構文がプラットフォーム間の互換性を高めるために使用されている場合でも、POSIX互換モードでdash
またはbashによって実行されることがよくあります。実際、実際のBourne ShellソースはおそらくUnix System Vの著作権コンポーネントであり、これは 現在はNovellのプロパティであると思われます ですが、彼らが何をしているのかはわかりません。
初心者のユーザーは、$HOME/.profile
または$HOME/.bash_profile
のいずれかを使用しますが、両方を使用することはできません。 .bash_profile
をすでに使用しているため、インストールに必要なシステム固有の要素が含まれている可能性があります。