.bashrcおよび.bash_profileの理解[複製]


1

可能性のある重複:
構成を.bashrc対に入れるべきとき。.bash_profile?

Linux envでの作業に関してはn00bで.bashrc、and の目的を知りたい.bash_profileです。それらが各ユーザーアカウントに固有であることだけを知っています。これらのファイルに何かを実装することで追加/変更できる機能/動作


1
誰もがn00bとして生まれます。しかし、その後の次のステップはそれを行うことですman bash。私はそれがたくさんのテキストであることを知っていますが、それは価値があります。
ott--

2
-1この質問は、研究努力を示していません。man bashのセクションINVOCATION(私にとっては段落4と6)で徹底的に説明されています。
ダニエルベック

また:.bashrcと.bash_profileの違い(おそらく他のものよりも大きい)
-slhck

回答:


5

まず、.bash_profileログインbashシェルにのみ使用されます。 .bashrc他のすべてのbashシェルに使用されます。したがって、.bash_profile通常は.bashrc存在する場合はソースになるため、ログインシェルであるかどうかにかかわらず、すべてのシェルで実行するコマンドを複製する必要はありません。

一般的に、これらのスクリプトで行うことは2つあります。プログラムを実行し、環境変数を設定します。ログイン時に実行したいもの、を入れたもの.bash_profile、すべてのシェルに設定したいもの(例えば、screenターミナルを使用するか開いている場合)を入れます.bashrc

私自身のもの.bashrc(例として):

  • セット $PS1
  • 特別なタブ補完ルールを有効にする
  • 実行してシェルオプションを設定する shopt
  • コマンドエイリアスを設定する

私から.bash_profile

  • ソース .bashrc
  • ディレクトリを追加する $PATH
  • 走る ssh-agent

.bash_profileは、bashシェルに直接ログインしている場合にのみ実行されることに注意することが重要です。Xセッションを開始している場合、独自のログインスクリプト(通常は次のようなもの.xsession)を持つXサーバーにログインしています。


4

Bashマニュアルの「Bash Startup Files」というタイトルのセクションですべて説明されています:http : //www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files

更新:ショートバージョンは次のとおりです。

Bashが対話型ログインシェルとして、または--loginオプション付きの非対話型シェルとして呼び出されると、/etc/profileそのファイルが存在する場合、まずfileからコマンドを読み取って実行します。そのファイルを読んだ後、それは探し~/.bash_profile~/.bash_login、および~/.profile、そのためには、および読み込み、存在し、読み取り可能である最初のものからのコマンドを実行します。

ログインシェルではないインタラクティブシェルが起動されると、Bashは~/.bashrcそのファイルが存在する場合、からコマンドを読み取り、実行します。

Bashを非対話形式で起動すると、たとえばシェルスクリプトを実行するためBASH_ENVに、環境内の変数を探し、そこに値がある場合はその値を展開し、展開した値を読み取りおよび実行するファイルの名前として使用します。


2
回答にさらにリンクを追加してください。私はリンクが悪いと言っているわけではありませんが、簡単な要約がはるかに良いでしょう。
ゾレダチェ

@Zoredache OK、マニュアルの内容の短い要約で回答を更新しました。
フラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.