.shrcと.profileの違いは何ですか?

.shrcと.profileの違いは何ですか?

私はFreeBSDでBourneシェルを試してみたかったので、それを使用するための設定を始めました。

私は.shrcプロンプトを設定し、viモードを有効にし、いくつかのエイリアスを設定し、いくつかの変数をエクスポートしました。

しかし、.profileいくつかの変数もデフォルトでエクスポートされることがわかりました。

私が理解したのは、Bourneシェルが.profile起動するたびにソースコードを取得することです。それでは、.shrcと両方がある(歴史的)理由は何ですか.profile

答え1

Bourneシェルに最も近いのはOpenSolarisのHeirloom Bourneシェルです。これは実際にはオープンソースプログラムではなく、最近ではほとんどすべてのオペレーティングシステムで見つけることができません。これはshells/heirloom-shFreeBSDポートコレクション(通常はインストールされています/usr/ports)にあります。

これはいいえ shそれFreeBSDのDebian Almquistシェル(少し変更されたバージョン)です。

Heirloom Bourneシェルはjsh~/.shrcsourced であり~/.profile、ログインシェルで呼び出されたときにのみ提供されます。それが出てくる唯一の他のファイルは/etc/profile

Bourneシェルは、後に出てきた複雑さを全く持たず、さまざまなファイルを持っていました。皮肉なことに、これらすべての傾向を始めたのはCシェル(元のBSDが好むシェル)でした。その他.rc ファイル。

ガボBourneシェルはそうではありません。かなりボンシェル。たとえば、ジョブ制御コマンドがあります。 Bourneシェルには、これらの機能を持たないオペレーティングシステム用に作成されたため、この機能はありません。 OpenSolarisの歴史のいくつかの変更は、これが元のBourneシェルではないことを意味します。私が言ったように、これは現在どのオペレーティングシステムでも不可能です。商業ユニセスでも、人々は1980年代後半からBourneシェルの更新版を受け取り、そのような新しいSystem 5 Release 4コンテンツを追加しました。

~/.shrcそれでは、Bourneシェルで動作すると主張し、コメントにsh(1)のマニュアルページを参照するのはなぜですか?

デフォルトでは、このコメントは嘘です。

shAlmquistシェルはFreeBSDとNetBSDで使用され、FreeBSDではわずかに変更されたバージョンを使用します。ダーバンAlmquistシェルは、2000年代初頭にDebianの従業員が作成したNetBSD Almquistシェルを少し変更しました。

sh(1) マニュアルを見ると、これが Stephen R. Bourne が作成したシェルではなく、Kenneth Almquist が作成したシェルであることがわかります。 Bourneシェルを試したい場合は、shFreeBSDで実行しても役に立ちません。

~/.profileマニュアルでは、ファイルを取得するためにインタラクティブAlmquistシェルを手動で設定する方法も説明します~/.shrc。デフォルトでは、これはAlmquistシェルでは発生せず、~/.shrc標準的なものではありません。

~/.shrc/usr/share/skel/作成時からホームディレクトリにダンプされた一般ファイルですpw useradd。通常、実際にはどのシェルでも何もしません。

何かを試したい場合本物難解で、Heirloom Bourneシェルよりもはるかに難解なFreeBSDは、shells/oshポートと同様にThompsonシェルも提供します。

グリッパーについては、Heirloom Bourneシェルを試して学習する前に(または少なくともその前に)Almquistシェルを試して学習することをお勧めします。#!/bin/shもちろん、FreeBSDのすべてのスクリプトがそれを使用しているので、知っておくと便利です。

港にある渡辺貝殻はshells/yash体験してみるもう一つの場所です。 WatanabeとDebian Almquistシェルはどちらも非標準のコマンドemacsライン編集モードを持っていますが、POSIX準拠のシェル動作のサブセットのみを持つものに最も近い環境を提供します。 ☺

答え2

.shrcとの違いについて.profile。今日、私は偶然にNetBSD-10構成のeixstenceを見つけました、そして.shrcこのシステムを見てみましょう。 NetBSD に.shrc直接表示されません。シェル (1) どちらにもありませんが、apropos変数の内容として表示されますENV

ENV参照構成ファイルは、以下で使用されます。シェル (1)ページの一部をコピーしました。 HTH。さようなら

したがって、ユーザーはログイン時にのみ実行されるコマンドを.profileファイルに配置し、各シェルに対して実行されるコマンドをENVファイルに配置する必要があります。 ENV変数をファイルに設定するには、ホームディレクトリの.profileに次の行を入力します。

関連情報