web-dev-qa-db-ja.com

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

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

20
cfischer

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

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

34
Loïc Wolff

GNU Bash Documentation によると:

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

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

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

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

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

2
Felipe Alvarez

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

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

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

1
Debugger