.bashrc/.プロファイルが新しいtmuxセッション(またはウィンドウ)にロードされません—なぜですか?

StackOverflow https://stackoverflow.com//questions/9652126

  •  11-12-2019
  •  | 
  •  

質問

Tmuxが起動したり、新しいウィンドウを開いたりすると、tmuxはmyをロードしません .profile または .bashrc.私は入力することになります . ~/.bashrc 毎回これを自動的に実行する方法はありますか?

役に立ちましたか?

解決

はい、.bash_profileの最後に行を入れます。

. ~/.bashrc
.

これは、通常プロファイルのみを処理する状況下でRCファイルを自動的にソース化します。

bashが特定のファイルを実行するときの規則は複雑で、開始されているシェルの種類(ログイン/非ログイン、インタラクティブ、またはそれまでに、コマンドライン引数および環境変数)と依存します。

man bashの出力では、INVOCATIONを探すだけです。 - おそらくあなたはおそらくダイジェストとデコードする時間が必要です: - )

他のヒント

ringing bashは、この行をmy〜/ .tmux.confファイルに追加することによって、私のために明示的に機能しました:

set-option -g default-command "exec /bin/bash"
.

このスレッドから:

私のために働いた解決策は次のとおりです。

  • .bash_profile に1つ持っていない場合は、~ファイルを作成します。
  • .bash_profileの終わりにsource ~/.bashrcまたはsource ~/.profile
  • tmuxを再起動します。

    問題は修正されるべきです。

以前の回答は解決策を提供しましたが、その理由を説明しませんでした。ここにある。

これはBash initファイルに関連しています。デフォルトでは, ~/.bashrc で使用されます 対話型、非ログイン シェル。ログインシェルではソースされません。Tmuxはaを使用します ログインシェル デフォルトでは。したがって、tmuxによって開始されたシェルはスキップします ~/.bashrc.

default-command シェルコマンド

デフォルトは空の文字列です, これはtmuxにログインシェルを作成するように指示します の値を使用して、 default-shell オプション。

Bash用の初期化ファイル,

  1. ログインモード:
    1. /etc/profile
    2. ~/.bash_profile, ~/.bash_login, ~/.profile (存在する最初のもののみ)
  2. インタラクティブ 非ログイン:
    1. /etc/bash.bashrc (いくつかのLinux;mac OS Xではない)
    2. ~/.bashrc
  3. 非インタラクティブ:
    1. のソースファイル $BASH_ENV

奇妙なインタラクティブな、非ログインの読み込み要件は、他の状況でも人々を混乱させます。ザ- ベストソリューション の負荷要件を変更することです ~/.bashrc として インタラクティブのみ, 、これはまさにUbuntuのようないくつかのディストリビューションがやっていることです。

# write content below into ~/.profile, or ~/.bash_profile

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

これはあなたが望む解決策でなければなりません。そして、私はすべてのBashユーザーがプロファイルでこれを設定することをお勧めします。

参考文献

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top