/etc/bash.bashrcと〜/ .bashrcの違いは何ですか?どちらを使用すればよいですか?


20

2つの.bashrcファイルのそれぞれを使用して、エイリアス、プロンプトなどを設定する必要があるのはいつですか?

回答:


34

/etc/bash.bashrc すべてのユーザーに適用されます

~/.bashrc ホームフォルダーが存在するユーザーにのみ適用されます。


3
そして、dexの答えに暗示されているのは...そのマシンを使用するすべての人に意志を強制したい場合を除き、すべての場合にローカルの〜/ .bashrcを使用することです。
ダクラコット

厳密に言えば、ユーザーは/etc/bash.bashrcで何も強制しません。ユーザーは自分でいつでも変更できるためです〜/ .bashrc
Kim

... :\readonly/etc/bash.bashrc
-grawity

1
Ubuntuでは、最初にコメントしたように、このファイルは/ etc / profileファイルから「ソース化」する必要があります。/etc/bash.bashrcの末尾にエイリアスコマンドを追加し、/ etc / profileファイルの末尾にコマンド「source /etc/bash.bashrc」を追加しました。魔法のように機能します。
jfmessier

2

GNU Bashドキュメントによると:

Bashが対話型ログインシェルとして、または--loginオプションを使用した非対話型シェルとして呼び出されると、ファイル/ etc / profileが存在する場合は、まずファイル/ etc / profileからコマンドを読み取り、実行します。そのファイルを読み込んだ後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で探し、存在し、読み取り可能な最初のコマンドからコマンドを読み取り、実行します。--noprofileオプションは、この動作を禁止するためにシェルを起動するときに使用できます。

対話型の非ログインシェルとして呼び出されるログインシェルではない対話型シェルが起動されると、Bashは〜/ .bashrcからコマンドを読み取り、実行します(そのファイルが存在する場合)。--norcオプションを使用すると、これを禁止できます。--rcfileファイルオプションは、Bashに〜/ .bashrcではなくfileからコマンドを強制的に読み取らせて実行させます。

したがって、通常、〜/ .bash_profileには次の行が含まれます。

if [-f〜/ .bashrc]; その後。〜/ .bashrc; fi

ログイン固有の初期化の後(または前)。


1
あんまり。git.savannah.gnu.org/cgit/bash.git/で定義されているSYS_BASHRCが使用されているrun_startup_files()関数で、このファイルgit.savannah.gnu.org/cgit/bash.git/tree/shell.cを見てください。tree / config-top.h
mloskot

1

あなたの個人的な好みと個人的なスクリプトまたはbash関数には、.bashrcを使用する必要があります(エイリアス、bashに追加された関数...)

すべてのユーザー(またはほとんどのユーザー)と、または一般的な用途(共有実行可能ファイルのパス、ドキュメントのパスなど)で何かを共有したい瞬間は、/ etc / bash.bashrcに入れてください

ほとんどのユーザーは"Hello world!"、すべてのユーザーに対して印刷するスクリプトgreetings.shを指定したとしても、ユーザーPepeは代わりに印刷するスクリプトgreetings.shを使用したいため"Hola el mundo!"です。彼は、.bashrcでパスを変更して、あなたのスクリプトではなく自分のスクリプトを指すようにすることができます。つまり、ユーザーは.bashrcのセッションをいつでも好きなようにカスタマイズできます。

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