tmux를 시작하도록 기본 쉘을 설정하는 방법 입력 해야하는

매번 항상 tmux를 입력 해야하는 대신 기본 bash 셸을 tmux로 바로 가져 가고 싶습니다.



답변

이것은 작동하는 것 같습니다 …

https://wiki.archlinux.org/index.php/Tmux#Start_tmux_on_every_shell_login

별칭 앞에 .bashrc에 다음 bash 코드 행을 추가하십시오. 다른 쉘의 코드는 매우 유사합니다.

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

답변

@StarNamer의 대답은 일반적으로 정확하지만 (1) tmux가 시스템에 존재하고 (2) 대화식 쉘에 있고 (3) tmux가 내부에서 실행되지 않도록하기 위해 일반적으로 다음 테스트를 포함합니다 그 자체:

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

참고 문헌


답변

같은 줄 추가

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

bashrc 파일에서 아마 일을 할 것입니다. tmux를 분리하거나 종료하면이 행은 ssh를 종료하고 연결을 종료합니다. 키 스트로크를 저장하여 연결을 종료 하므로이 구성이 마음에 듭니다. 그러나 이것이 마음에 들지 않으면 (아마도 가능성이 없다고 생각합니다) 종료 후 로그인 쉘에 남아 있으려면 exit부분을 제거하십시오 .

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

또한 당신은 포장 안주의 tmux attachexec부착 할 TMUX 세션이없는 경우이 연결이 종료되는 원인 것처럼.


답변

chsh로그인 쉘을 변경하는 명령이 있습니다 . 문의하십시오 man chsh.


답변

나는 성공적으로 사용하고 있습니다

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

.zshrc. bash를 사용하는 경우 .bashrc대신 bash를 넣으십시오 .


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


답변

터미널 우선 순위로 이동하십시오.

그런 다음 “명령”표시 줄을 클릭하십시오.

“내 판매 대신 사용자 정의 명령 실행”을 확인하고 터미널 시작시 실행할 명령을 작성하십시오.


답변

위의 응답 중 어느 것도 나를 위해 일 exec tmux하지 않았습니다 – 쉘을 종료하지 않고 tmux를 닫지 못하게합니다 ( Ctrl+ T또는 응용 프로그램 메뉴에서 열 었는지 여부 ).

Linux Mint를 사용하면 특정 단축키를 명령에 매핑 할 수 있으며 (일부 경우와 같이 코셔 해제 할 수 있습니다.) 명령을 시작하는 bash 쉘이 있습니다. 예를 들어 Win+ Alt+ B는 일종의 복잡한 bash -exec(vim)문장을 수행합니다. 내 .bashrc를 편집하면 일반 쉘처럼 작동합니다.

위의 내용을 my 맨 위에 배치 한 후 해당 상황에서 vim이 아닌 tmux 가로 드되었습니다 .bashrc. tmux 실행 라인을 다른 if 문에 래핑하여 대화 형 모드에서 실행되고 있는지 확인했습니다.

if command -v tmux>/dev/null; then
        if [ ! -z "$PS1" ]; then # unless shell not loaded interactively, run tmux
                [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux
        fi
fi

모든 것을 한 줄로 감쌀 수는 있지만 가독성을 위해 괜찮습니다.