tmux가 시작되거나 새 창을 열 때 my .profile
또는 .bashrc
. 나는 . ~/.bashrc
매번 타이핑을 한다. 이 작업을 자동으로 수행 할 수있는 방법이 있습니까?
답변:
예, 끝에 .bash_profile
다음 줄을 입력하십시오.
. ~/.bashrc
이것은 일반적으로 프로파일 만 처리하는 상황에서 rc 파일을 자동으로 소스합니다.
bash
특정 파일이 실행 되는시기에 관한 규칙 은 복잡하며 명령 줄 인수 및 환경 변수와 함께 시작되는 셸 유형 (로그인 / 비 로그인, 대화 형 여부 등)에 따라 다릅니다.
man bash
출력 에서 볼 수 있습니다. 찾아보세요. INVOCATION
요약하고 디코딩하는 데 약간의 시간이 필요할 것입니다. :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
bash를 실행하면 ~ / .tmux.conf 파일에 다음 줄을 추가하여 명시 적으로 도움이되었습니다.
set-option -g default-command "exec /bin/bash"
~/.tmux.conf
: set -g default-command "/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 사용자가 프로필에 이것을 설정하는 것이 좋습니다.
참고 문헌
man tmux