〜/ .profile、〜/ .bashrc、〜/ .bash_profile、〜/ .gnomerc、/ etc / bash_bashrc、/ etc / screenrc…の違いは何ですか?


68

SOaskubuntuに関する質問への回答は、を突く(およびヘッダーを読む)$HOMEとともに/etc/、環境変数を設定するために使用できるいくつかのファイルを示します。

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gnomerc
  • ~/.Rprofile
  • /etc/bash_bashrc
  • /etc/profile
  • /etc/screenrc

/etc/ファイル$HOMEはユーザー固有であるのに対して、私はすべてのユーザー用に作業中のファイルを収集します。また、実行時にロードされるの.profileに対して、ログイン.bashrc時にロードされるものを収集します/bin/bash。また、プログラムごとに設定ファイルが異なることも理解しています(.RprofileRの場合など)。しかし、私はいくつかの明確化を感謝します:

  • ある*rc*profileファイルが根本的に違うのですか?
  • そのようなファイルの範囲は何ですか(たとえば、Linuxで一般的に使用されるファイル)
  • 階層があります(例:で.bashrc設定された変数を上書きします.settings
  • このクラスのファイルの良いリファレンスは何ですか?これらのファイルのオプションについては?

リンクされた質問


3
INVOCATIONセクションを参照してくださいman bashFHSLinuxファイルシステムに関するwiki記事を参照してください。それはあなたに良いスタートを与え、これらの質問のいくつかに答えます。ドット(.)が前に付いたファイルは、通常ユーザー固有$HOMEです。ユーザーのディレクトリにあります。

3
それらのすべて?本当に?
イグナシオバスケス-エイブラムス

@ IgnacioVazquez-Abrams私は詳細を探しているのではなく、それらがどのように関連していて、いつ一方が他方の上で使われるべきかについての一般的な説明を探しています。
安倍

回答:


48

構成ファイルの構成は、あなたの質問が暗示するほど均一ではありません。「クラス」はなく、「階層」もありません。また、一般的な構文や、求めているような他のすっきりとした一般化を命じるグローバルな「構成設定」も委員会もありません。そこだけのような個別のアプリケーションの多くでRbashscreen物事の独自の方法を持っているすべての人のとGNOMEデスクトップ環境は、ので、あなたはどんな答えて、個々のプログラムのマニュアルをご覧ください特定の特定のファイルについての質問が。アドホックだと思われるのは、それが理由です。ほとんどのUnix / Linuxソフトウェアは、設定を少しずつ変えたさまざまな人々によってさまざまな目的のために開発されました。

他の質問に個別に答えるには:

  • *rcそして、*profileあまり意味するものではありませんので、この質問は、実際にはお答えできません。「rc」は、構成ファイルの一般的に使用される略語または接尾辞にすぎません。その語源は古代(コンピューター年)に遡り、おそらくrunコマンド(runco​​mから)を意味します。アプリケーションが同じ単語を使用しているからといって、規約に同意するわけではありません。「プロファイル」は、あまり一般的ではない接尾辞です。

  • 「スコープ」を定義します。ほとんどのアプリケーションは、構成ファイルを他の無関係なアプリケーションと共有しません。可能性のある例外の1つはとで/etc/profileあり.profile、複数の異なるシェル(少なくともshとを含む)で使用できますbash。実行中のすべてのプロセスに関連付けられた環境と呼ばれるものがあり、それらのプロセスの動作に影響を与える可能性のある変数を含めることができます。一般に、環境変数は適切なシェル構成ファイル、または使用しているグラフィカルデスクトップ環境の構成ファイルによって設定されます。.inputrcreadlineや.gtkrc*GTKなど、ライブラリを使用するすべてのアプリケーションに影響する「ライブラリ」の設定ファイルもあります。

  • いいえ、構成ファイルのグローバル階層はありません。繰り返しますが、問題の特定のプログラムのドキュメント、たとえばのbashマニュアルを参照してくださいbash。通常信頼できる一般的な規則は、のユーザー設定$HOMEがのシステム全体の設定を上書きすること/etcです。これは通常、システムファイルの後にユーザーファイルを読み取ることで実現され、後の設定が以前の設定を上書きします。ただし、これは保証ではなく、最終的な回答については、使用している特定のプログラムのドキュメントを参照する必要があります。

  • 「クラス」はありません。少なくとも、質問にリストしたすべてのファイルを網羅するのに十分な一般的なものはありません。そのため、そのような「クラス」の参照の問題は意味がありません。繰り返しますが、使用している特定のプログラムのドキュメントを参照してください。


5

この質問は非常に多くのレベルで広すぎると思います。たとえば、1つの質問で少なくとも4つの異なるプログラムについて質問している場合です。私は唯一のコンフィギュレーションファイルの違いを見てみましょう/etc$HOME

Unixはマルチユーザーオペレーティングシステムです。つまり、、、またはを使用してssh、多くのさまざまな人がシステムを使用できます。ユーザーに標準化された構成を提供するために、システム全体の構成を提供できます。これは通常、Distributionでも使用され、たとえばまたはなどのグローバル構成を提供します。telnetXorg/etc/bashscreen

一方、一部のユーザーは、キーバインド、色、または見た目など、プログラムの設定を自分でカスタマイズしたい場合があります。これは、それらの設定ファイルを介して行われます$HOME。要するに/etc/、$ HOMEの設定ファイルを使用してシステム全体の設定を変更/上書きできるようにする一方で、システム全体の設定を提供します。


3

答えの一部はこの投稿から来ています

.bashrc は、Bashがインタラクティブに起動されるたびに実行されるシェルスクリプトです。

コントラスト.bash_profile.profileは、新しいログインシェルの開始時にのみ実行されます。(bash -l)

あなたは、コマンドが中に入るかどうかを選択.bashrc.bash_profileあなたはそれを一度実行したいかどうかにかすべてのインタラクティブシェルの開始のために依存します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.