次のように端末にエイリアスを作成しました。
alias k=kubectl
source <(kubectl completion bash)
次に、次のコマンドを使用してtmuxセッションを開きますtmux
。
これで、tmuxウィンドウ内でエイリアスを使用し、端末で実行されるソースコマンドの動作を期待すると失敗します。 :(
なぜこれが起こり、どのように解決するのですか?
コンテキストは、最終的にtmuxで複数のウィンドウを使用することになり、各tmuxウィンドウを開くときに同じエイリアスセットを繰り返し再生成する必要がないことです。可能ですか?
ベストアンサー1
tmux
他のプログラムを実行する単純なプログラムなので、新しいセッションを開始するtmux
ことを除いて、実際にはそれとは何の関係もありません。bash
テストしてみてください。alias t='echo hi'
端末でこれを実行してから、コマンドを実行してbash
同じ端末で新しいシェルを起動します。新しいt
エイリアスは新しいシェルでは使用できません。エイリアスは継承されません。環境変数のみが継承されます(現在のディレクトリなどの他のいくつかの変数も含まれます)。
つまり、エイリアスは開始されたシェルから継承されませんtmux
。tmux
エイリアス定義をファイルに追加して、各ウィンドウでエイリアスをインスタンス化する必要があります~/.bashrc
。