.bashrc/.プロファイルが新しいtmuxセッション(またはウィンドウ)にロードされません—なぜですか?
-
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用の初期化ファイル,
- ログインモード:
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(存在する最初のもののみ)
- インタラクティブ 非ログイン:
/etc/bash.bashrc
(いくつかのLinux;mac OS Xではない)~/.bashrc
- 非インタラクティブ:
- のソースファイル
$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ユーザーがプロファイルでこれを設定することをお勧めします。
参考文献
- Unixシェルの初期化
man tmux
私は同じ問題を抱えていました、そしてこれまでの解決策は私のためにうまくいきませんでした。私のために働いてきた解決策は、
短い、tmux
Windows / Sessionsは、起動時の他のファイルの中で~/.profile
を探すログインシェルを使用します。
私が望んでいたのは、新しいtmux
ウィンドウでZSHを開始することになるので、exec zsh
の下部に~/.profile
を入力します。