터미널에서 생성된 별칭은 tmux에 표시되지 않습니다. 왜?

터미널에서 생성된 별칭은 tmux에 표시되지 않습니다. 왜?

다음과 같이 터미널에 별칭을 만들었습니다.

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.

관련 정보