“screen -R”에 해당하는 tmux? tmux attach명령 이상의 조합 같은 역할을 screen

tmux attach명령 이상의 조합 같은 역할을 screen -r하고 screen -x– 먼저 가장 최근에 연결 할려고 분리 세션, 그리고 사용할 수없는 다음 경우는 현재 연결된 세션에 연결됩니다. 동작을 에뮬레이션하고 싶습니다 screen -R. 먼저 분리 된 세션에 연결 한 다음 분리 된 세션이 없으면 새 세션을 시작하십시오. tmux에서 이것을 달성하는 가장 좋은 방법은 무엇입니까?



답변

IRC 마법사를 참조한 후이 동작이있는 단일 tmux 명령이 없다고 확신합니다. 운좋게도 쉘을 사용하여 에뮬레이션하는 것은 매우 쉽습니다.

(tmux ls | grep -vq attached && tmux at) || tmux


답변

tmux 매뉴얼에 나오는 내용에도 불구하고 :

             The target-session rules for attach-session are slightly
         adjusted: if tmux needs to select the most recently used session,
         it will prefer the most recently used unattached session.

다음과 같은 상황에서는 Drew의 답변이 제대로 작동하지 않습니다.

0: 1 windows (created Wed Nov  7 23:51:08 2012) [177x47]
1: 1 windows (created Wed Nov  7 23:51:33 2012) [177x47] (attached)

tmux at마지막 세션 (# 1)에 연결됩니다 (이 세션은 여전히 ​​다른 곳에 연결되어 있지만). 이것은 여러 tmux 세션을 실행하고 분리 된 세션에만 연결한다는 아이디어를 완전히 파괴합니다 (mosh + tmux + iterm2를 사용하여 완벽한 로밍 터미널 생성).

또 다른 방법은 연결되지 않은 세션을 수동으로 선택하는 것입니다.

tmux ls | grep -vq attached && tmux at `tmux ls | grep -vm1 attached | cut -d: -f1`


답변

한 번에 두 개의 tmux 세션 만있는 경향이 있으므로 각 터미널 창에서 이와 같은 작업을 수행합니다.

터미널 창 0 :

tmux attach -t 0 || tmux new

터미널 창 1 :

tmux attach -t 1 || tmux new


답변

이것은 나를 위해 가장 잘 작동했습니다.

if [ -z "$TMUX" ]; then
     (tmux ls | grep -vq attached && tmux at -t `tmux ls | grep -vm1 attached | cut -d: -f1`) || tmux new
fi

적절한 세션에 연결하려면 -t가 필요합니다.


답변

이건 어떤가요

tmux attach || tmux new

또는 파일 ~/.tmux.conf이 존재하지 않으면 파일을 만들고 추가하십시오.

new-session

실행할 때 새 세션이 없을 때 새 세션을 작성합니다 tmux attach.

tmux대한 별칭을 만드는 것이 편리 할 수도 있습니다 tmux attach.


답변