요약
새 tmux 세션을 만들 때 프롬프트가 기본 bash 구성에서 가져오고 source ~/.bashrc
사용자 정의 프롬프트에 대해 수동으로 실행해야 합니다.
분석
RHEL 7 컴퓨터를 사용하고 있습니다. 나는 bash 업데이트 후에이 동작을 알아 차리기 시작했지만 지금까지 질문을하지는 않았다.
예를 들어 프롬프트를 다음과 같이 사용자 정의했습니다.
[user@hostname ~]$
새로운 tmux 세션을 시작할 때마다 bash 기본값으로 보이는 것을 사용합니다.
-sh-4.2$
빠른 실행은 source ~/.bashrc
항상 문제를 해결하지만 작은 것을 고치려고 할 때 마다이 작업을 수행해야한다는 것은 성가신 일입니다. tmux가 자동으로 다시 수행하도록하는 방법에 대한 아이디어가 있습니까?
더 이상의 정보가 필요하면 기꺼이 제공해드립니다.
tmux.conf
참고로 tmux.conf
사용자 정의라고 할 수는 없지만 아래 파일이 있습니다.
setw -g mode-keys vi
# reload tmux.conf
bind r source-file ~/.tmux.conf \; display-message " ✱ ~/.tmux.conf is reloaded"
답변
내가 아는 한 기본적 tmux
으로 로그인 쉘이 실행됩니다. 때 bash
대화 형 로그인 셸 호출, 그것은을 찾습니다 ~/.bash_profile
, ~/.bash_login
그리고 ~/.profile
. 따라서 source ~/.bashrc
해당 파일 중 하나 를 넣어야 합니다.
이 문제를 해결하는 또 다른 방법은 파일에 .tmux.conf
다음 줄 을 넣는 것입니다 .
set-option -g default-shell "/bin/bash"
답변
이것은 Bash init 파일과 관련이 있습니다. 기본적으로 ~/.bashrc
에 사용되는 대화 형, 비 로그인 쉘. 로그인 쉘에서 제공되지 않습니다. Tmux는 기본적으로 로그인 쉘 을 사용합니다 . 따라서 쉘은 tmux skip에 의해 시작되었습니다 ~/.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
등의 경우에만 대화 형 정확히 우분투 같은 일부 배포판,하고있는 일이다.
# 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 사용자가 프로파일에서 이것을 설정하는 것이 좋습니다.
참고 문헌
답변
다음에 추가 .tmux.conf
:
set-option -g default-shell "/bin/bash"
원하는 결과를 얻지 못합니다 .
의도 한 결과에 추가 source "$HOME/.bashrc"
할 때만 가능합니다 ~/.bash_profile
.
새 창이나 창을 열 때와 새로운 tmux 세션을 분리하고 열 때 활성 tmux 세션에서 작동합니다.
에 테스트 :
VERSION="16.04.2 LTS (Xenial Xerus)"
tmux 2.1