다음과 같이 터미널에 별칭을 만들었습니다.
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
.