GNU/Linux >> Linux の 問題 >  >> Linux

.bashrcと.bash_profile

コマンドラインに多くの時間を費やしている場合は、シェル環境をカスタマイズする必要がある可能性があります。これは、エイリアスを作成し、$PATHに新しいディレクトリを追加することを意味します。 、またはシェルプロンプトの外観を変更します。

.bashrcのいずれかに構成を配置するように指示されているチュートリアルに出くわしたことがあるかもしれません。 、.bash_profile または、bashシェルによって読み取られて実行される別の構成ファイル。

この記事では、Bashスタートアップファイルと.bashrcの違いについて説明します。 および.bash_profile ファイル。

インタラクティブログインおよび非ログインシェル#

呼び出されると、Bashは一連のスタートアップファイルからコマンドを読み取って実行します。読み取られるファイルは、シェルが対話型ログインシェルとして呼び出されるか、非ログインシェルとして呼び出されるかによって異なります。

シェルはインタラクティブでも非インタラクティブでもかまいません。

簡単に言うと、インタラクティブシェルはユーザーの端末の読み取りと書き込みを行うシェルであり、非インタラクティブシェルはスクリプトの実行時のように端末に関連付けられていないシェルです。

インタラクティブシェルは、ログインシェルまたは非ログインシェルのいずれかです。

ログインシェルは、ユーザーがsshを介してリモートで、またはローカルでターミナルにログインしたとき、またはBashが--loginで起動されたときに呼び出されます。 オプション。 bashと入力する場合など、ログインシェルからインタラクティブな非ログインシェルが呼び出されます。 シェルプロンプトで、または新しいGnomeターミナルタブを開いたとき。

Bashスタートアップファイル#

インタラクティブなログインシェルとして呼び出されると、Bashは/etc/profileを探します ファイルであり、ファイルが存在する場合は、ファイルにリストされているコマンドを実行します。次に、Bashは~/.bash_profileを検索します 、~/.bash_login 、および~/.profile リストされた順序でファイルを作成し、最初に見つかった読み取り可能なファイルからコマンドを実行します。

Bashがインタラクティブな非ログインシェルとして呼び出されると、~/.bashrcからコマンドを読み取って実行します。 、そのファイルが存在し、読み取り可能である場合。

.bashrcと.bash_profileの違い#

.bash_profile .bashrcが対話型ログインシェルとして呼び出されると、読み取りと実行が行われます。 インタラクティブな非ログインシェルに対して実行されます。

.bash_profileを使用します $PATHのカスタマイズなど、1回だけ実行する必要のあるコマンドを実行する 環境変数。

新しいシェルを起動するたびに実行する必要のあるコマンドを.bashrcに配置します ファイル。これには、エイリアスと関数、カスタムプロンプト、履歴のカスタマイズなどが含まれます。

通常、~/.bash_profile .bashrcをソースとする以下のような行が含まれています ファイル。これは、ターミナルにログインするたびに、両方のファイルが読み取られて実行されることを意味します。

if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

ほとんどのLinuxディストリビューションは~/.profileを使用しています ~/.bash_profileの代わりに 。 ~/.profile ~/.bash_profileの間、ファイルはすべてのシェルによって読み取られます Bashのみ。

システムにスタートアップファイルが存在しない場合は、作成できます。

結論#

.bash_profile および.bashrc Bashが呼び出されたときに実行されるシェルコマンドを含むファイルです。 .bash_profile .bashrcが対話型ログインシェルで読み取られ、実行されます。 ログインしていないシェルの場合。

Bashスタートアップファイルの詳細については、Bashのマニュアルを確認してください。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Bashシェルのカスタマイズ

  2. .bashrcの目的とそれはどのように機能しますか?

  3. どのシェルを使用する必要がありますか– Tcsh Vs Bash ??

  1. `$ _`の意味を理解しますか?

  2. cronシェルを変更する方法(shからBash)?

  3. [ :シェル プログラミングの予期しない演算子

  1. シェル変数の関数?

  2. 何をしますか。 〜/.bashrcコマンド実行??

  3. 現在のシェルから.bashrcを再生成しますか?