端末で生成されたエイリアスはtmuxには表示されません。なぜ?

端末で生成されたエイリアスはtmuxには表示されません。なぜ?

次のように端末にエイリアスを作成しました。

alias k=kubectl
source <(kubectl completion bash)

次に、次のコマンドを使用してtmuxセッションを開きますtmux

これで、tmuxウィンドウ内でエイリアスを使用し、端末で実行されるソースコマンドの動作を期待すると失敗します。 :(

なぜこれが起こり、どのように解決するのですか?

コンテキストは、最終的にtmuxで複数のウィンドウを使用することになり、各tmuxウィンドウを開くときに同じエイリアスセットを繰り返し再生成する必要がないことです。可能ですか?

ベストアンサー1

tmux他のプログラムを実行する単純なプログラムなので、新しいセッションを開始するtmuxことを除いて、実際にはそれとは何の関係もありません。bashテストしてみてください。alias t='echo hi'端末でこれを実行してから、コマンドを実行してbash同じ端末で新しいシェルを起動します。新しいtエイリアスは新しいシェルでは使用できません。エイリアスは継承されません。環境変数のみが継承されます(現在のディレクトリなどの他のいくつかの変数も含まれます)。

つまり、エイリアスは開始されたシェルから継承されませんtmuxtmuxエイリアス定義をファイルに追加して、各ウィンドウでエイリアスをインスタンス化する必要があります~/.bashrc

おすすめ記事