私は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シェル(オプションによって異なります)は.profile
Bourneシェルの親セットであるため、両方のシェルは同じ起動ファイルを使用できます。つまり、コマンドを入力するだけです。sh
bash
sh
.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構文はより良いクロスプラットフォーム互換性のために使用されますが、dash
POSIX互換モードでbashによって実行されることがよくあります。実際、実際のBourneシェルソースコードはUnix System Vの著作権保護コンポーネントである可能性があります。今Novellの所有になったようです。しかし、彼らがそれで何をしているのかわかりません。
初心者の場合は、$HOME/.profile
どちらか一方を使用し、$HOME/.bash_profile
両方を使用しないでください。すでに使用しているため、インストール.bash_profile
に必要なシステム固有の項目を含めることができます。