tmux를 시작하기 위해 기본 쉘을 설정하는 방법

tmux를 시작하기 위해 기본 쉘을 설정하는 방법

나는 매번 tmux를 입력하는 대신 기본 bash 쉘이 tmux를 직접 입력할 수 있기를 원합니다.

답변1

@StarNamer의 답변일반적으로 정확하지만 일반적으로 확인하기 위해 다음 테스트를 수행합니다.

  1. tmux시스템에 존재
  2. 우리는 대화형 셸에 있습니다.
  3. tmux자체 내에서 실행을 시도하지 않습니다.

그래서 나는 이것을 다음에 추가할 것입니다 .bashrc:

if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
  exec tmux
fi

인용하다

답변2

쉘에 로그인할 때마다 tmux를 시작하십시오., Arch wiki에서 작동하는 것 같습니다. .bashrc별칭 앞에 다음 bash 줄을 추가하면 됩니다 . 다른 쉘의 코드도 매우 유사합니다.

[[ $TERM != "screen" ]] && exec tmux

답변3

다음과 같은 줄을 추가하십시오.

[ -z "$TMUX"  ] && { tmux attach || exec tmux new-session && exit;}

bashrc 파일에서 작업을 수행할 수 있습니다. 이 줄은 tmux를 분리하거나 종료하면 ssh를 종료하고 연결을 종료합니다. 연결을 종료하는 키 입력을 저장하기 때문에 이 구성이 마음에 듭니다. 그러나 이것이 마음에 들지 않고(내 생각에는 그럴 것 같지 않음) 종료 후에도 로그인 셸에 남아 있기를 원한다면 해당 exit부분을 제거하기만 하면 됩니다.

[ -z "$TMUX"  ] && { tmux attach || exec tmux new-session;}

또한 연결할 tmux 세션이 없을 때 연결이 닫히게 되므로 tmux attach개행 문자를 사용하면 안 됩니다 .exec

답변4

성공적으로 사용했습니다

case $- in *i*)
    [ -z "$TMUX" ] && exec tmux
esac

.zshrc. Bash를 사용하는 경우 이것을 .bashrcBash에 넣으십시오.


tmux또한 이를 기본 셸( )로 설정하려고 시도했는데 chsh -s $(which tmux)SSH를 통한 직접 명령 실행이 중단되는 것 같습니다. 예를 들어 ssh $some_server echo foo출력이 생성되지 않습니다.

관련 정보