답변:
대답은 훨씬 간단합니다. 이것을 ~/.tmux.conf
파일에 넣으십시오 .
# if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST
실행 tmux attach
중이고 세션이 있으면 세션이 이미 연결되어 있는지 여부에 관계없이 해당 세션에 연결됩니다. 세션 이 없으면 세션이 생성됩니다.
tmux
인수없이 호출 되면 새 세션을 만든 다음에서이 줄에 도달하자마자 두 번째 세션을 만듭니다 ~/.tmux.conf
. 첫 번째 세션 tmux ls
을 만든 후에 실행하면이 문제를 볼 수 있습니다 . 당신이 당신의 파일에 넣고 후 실제로, 당신은 호출 할 수 없습니다 더 이상 인수없이tmux
alias tmux="tmux attach"
문제를 방지하기 위해 별명을 추가해야합니다
tmux
있습니다.
세션 이름을 지정하면 다음 new-session
명령으로 쉽게 수행 할 수 있습니다 .
tmux new-session -A -s main
main
필요한 경우 첨부되거나 작성 될 세션 이름은 어디에 있습니까 ?
보낸 사람 man tmux
:
-A
플래그 만드는new-session
처럼 행동attach-session
하면 세션 이름이 이미 존재; 이 경우에는 다음-D
과 같이 동작-d
합니다attach-session
.
이 -A
옵션은 2013 년 3 월 26 일부터 tmux 버전에1.8
도입되었으며 , 이전 버전의 경우을 사용하십시오 tmux attach || tmux
.
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. 팁 고마워! 매뉴얼 페이지 : openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1
tmux: unknown option -- A
이것은 최신 버전에서만 사용 가능한 것 같습니다.
[ -z "$TMUX" ] && exec tmux new -As .
이것이 내가 사용하는 것 .bashrc
입니다.
attach에 오류가 발생하면 새 세션이 시작됩니다.
tmux attach || tmux new
따라서 별칭이 작업을 수행합니다.
tm="tmux attach || tmux new"
tmux attach
에 대한tmux a
에 다음을 추가하십시오 .bashrc
if [ -z "$TMUX" ]; then
base_session='my_session'
# Create a new session if it doesn't exist
tmux has-session -t $base_session || tmux new-session -d -s $base_session
# Are there any clients connected already?
client_cnt=$(tmux list-clients | wc -l)
if [ $client_cnt -ge 1 ]; then
session_name=$base_session"-"$client_cnt
tmux new-session -d -t $base_session -s $session_name
tmux -2 attach-session -t $session_name \; set-option destroy-unattached
else
tmux -2 attach-session -t $base_session
fi
fi
내 github 저장소의 ZSH 리소스 파일 에서이 사용을 볼 수 있습니다
Wesley Baugh의 답변 (로그인시 .bashrc에서 사용될 때 이중 중첩 세션이었습니다)을 확장하고 sudo -s
서버에서 자주 사용하기 때문에 약간의 유연성을 추가하려면 (.bashrc를 다시로드하고 이중 둥지를 올바르게로드 할 것입니다) 내 .bashrc에있는 것 :
if [ -z "$TMUX" ] && [ ${UID} != 0 ]
then
tmux new-session -A -s main
fi
이것은 tmux 세션을 확인하고 새 세션을 만들거나 이름이 지정된 기존 세션에 연결하기 전에 수퍼 유저가 아닌지 확인합니다 main
.
Drew Frank 님이 여기에 답변했습니다 : https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
여기에 내가 지금 사용하는 스크립트가 있지만 (tmux의 다른 문제로 인해 화면으로 다시 전환되었지만) /somewhere/on/your/path/ttmux
쉘 기능으로 다음과 같습니다.
#!/bin/sh
# many thanks to Drew Frank: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
(tmux ls | grep -vq attached && tmux -2 at) || tmux -2
-2
옵션은 256 색 단자 지원을 가정 TMUX 수 있도록, 그래서 사람들은 상황에 적절하지 않을 수 있습니다.
당신이 가진 .shrc 파일 내부 또는 이와 유사한이 사용하는 경우 exec
내가 권하고 싶습니다
if tmux ls
exec tmux attach
else
exec tmux
fi