[tmux] 터미널이 시작될 때 자동으로 새 세션 만들기 or 기존 세션에 연결
Solution 1 : 우선 간단하게
다음을 ~/.zshrc
에 쓴다.
~/.zshrc# Autostart if not already in tmux.
if [[ ! -n $TMUX ]]; then
tmux new-session
fi
다만, 이대로라면, 새롭게 단말을 시작할 때마다 점점 세션수가 늘어나고 있어, 귀찮은 일이 없다.
Solution 2 : 분리되면 터미널 닫기
~/.zshrcif [[ ! -n $TMUX ]]; then
tmux new-session && exit
fi
그렇지만, 그렇지 않다.
Solution 3 : 이미 tmux 세션이 존재할 때 선택하고 attatch 할 수있게합니다.
편리합니다.tmux list-sessions
실행하면
main: 3 windows (created Wed Jan 27 11:49:33 2016) [88x34] (attached)
1: 1 windows (created Wed Jan 27 17:59:17 2016) [213x54]
와 같이 セッション名: n windows ( ...
로 돌아오므로 cut
로 세션명을 취득하면 된다.
모처럼이니까 fzf라든지 선택적 인터페이스를 사용해 외형도 멋지게 합시다.
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
ID="`echo $ID | $PERCOL | cut -d: -f1`"
tmux attach-session -t "$ID"
fi
환경 변수 $PERCOL
는 원하는 선택적 인터페이스 응용 프로그램의 이름을 포함합니다.
(ex. fzf , peco , percol )
그러나 이것은 새로운 세션을 만들 수 없습니다.
Solution 4 : 이미 세션이 존재할 때 새 세션을 만들 수 있도록
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
fi
tmux attach-session -t "$ID"
fi
"Create New Session :"이라는 항목이 추가되고 이것을 선택하면 새 세션이 만들어집니다.
":"앞의 문장은 무엇이든 좋지만, ":"는 빼지 말아야 한다.
Solution 5 : 세션 선택 중에 ESC 키 등으로 빠져 있을 때는 tmux를 기동하지 않게 한다
그리고 더 좋을지도 모릅니다.
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
Solution 6: 인터랙티브 쉘에서 선택 화면을 표시하지 않음
tmux에없는 상태에서,
$ zsh
와 같이 대화형 쉘을 시작할 때도 위와 같이 tmux를 시작할지 묻는 거동을 한다.
점점 중첩되어 가면 기분 나쁘기 때문에 로그인 쉘이 아닌 경우에는 tmux의 세션을 기동 or 선택하는 기능을 끊기로 한다.
로그인 쉘에서
$ echo $-
569XZghiklms
인터랙티브 쉘에서
$ echo $-
569XZghikms
에서 알 수 있듯이 대화 형 쉘에서는 옵션 '-l'이 지정되지 않았 음을 알기 때문에 그렇게 판정 ($- == *l*
)한다.
~/.zshrcif [[ ! -n $TMUX && $- == *l* ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
요약
Solution 6을 zshrc에 써서 언제든지 tmux 안에 있는 안심감을 누릴 수 있게 되었다(갑자기 분할하고 싶어지는 건가요?). 여러분도 단말의 탭 기능은 사용하지 말고, 꼭 부디.
그 외의 앨리어스등은 이쪽
# Autostart if not already in tmux.
if [[ ! -n $TMUX ]]; then
tmux new-session
fi
~/.zshrc
if [[ ! -n $TMUX ]]; then
tmux new-session && exit
fi
그렇지만, 그렇지 않다.
Solution 3 : 이미 tmux 세션이 존재할 때 선택하고 attatch 할 수있게합니다.
편리합니다.tmux list-sessions
실행하면
main: 3 windows (created Wed Jan 27 11:49:33 2016) [88x34] (attached)
1: 1 windows (created Wed Jan 27 17:59:17 2016) [213x54]
와 같이 セッション名: n windows ( ...
로 돌아오므로 cut
로 세션명을 취득하면 된다.
모처럼이니까 fzf라든지 선택적 인터페이스를 사용해 외형도 멋지게 합시다.
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
ID="`echo $ID | $PERCOL | cut -d: -f1`"
tmux attach-session -t "$ID"
fi
환경 변수 $PERCOL
는 원하는 선택적 인터페이스 응용 프로그램의 이름을 포함합니다.
(ex. fzf , peco , percol )
그러나 이것은 새로운 세션을 만들 수 없습니다.
Solution 4 : 이미 세션이 존재할 때 새 세션을 만들 수 있도록
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
fi
tmux attach-session -t "$ID"
fi
"Create New Session :"이라는 항목이 추가되고 이것을 선택하면 새 세션이 만들어집니다.
":"앞의 문장은 무엇이든 좋지만, ":"는 빼지 말아야 한다.
Solution 5 : 세션 선택 중에 ESC 키 등으로 빠져 있을 때는 tmux를 기동하지 않게 한다
그리고 더 좋을지도 모릅니다.
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
Solution 6: 인터랙티브 쉘에서 선택 화면을 표시하지 않음
tmux에없는 상태에서,
$ zsh
와 같이 대화형 쉘을 시작할 때도 위와 같이 tmux를 시작할지 묻는 거동을 한다.
점점 중첩되어 가면 기분 나쁘기 때문에 로그인 쉘이 아닌 경우에는 tmux의 세션을 기동 or 선택하는 기능을 끊기로 한다.
로그인 쉘에서
$ echo $-
569XZghiklms
인터랙티브 쉘에서
$ echo $-
569XZghikms
에서 알 수 있듯이 대화 형 쉘에서는 옵션 '-l'이 지정되지 않았 음을 알기 때문에 그렇게 판정 ($- == *l*
)한다.
~/.zshrcif [[ ! -n $TMUX && $- == *l* ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
요약
Solution 6을 zshrc에 써서 언제든지 tmux 안에 있는 안심감을 누릴 수 있게 되었다(갑자기 분할하고 싶어지는 건가요?). 여러분도 단말의 탭 기능은 사용하지 말고, 꼭 부디.
그 외의 앨리어스등은 이쪽
main: 3 windows (created Wed Jan 27 11:49:33 2016) [88x34] (attached)
1: 1 windows (created Wed Jan 27 17:59:17 2016) [213x54]
if [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
ID="`echo $ID | $PERCOL | cut -d: -f1`"
tmux attach-session -t "$ID"
fi
~/.zshrc
if [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
fi
tmux attach-session -t "$ID"
fi
"Create New Session :"이라는 항목이 추가되고 이것을 선택하면 새 세션이 만들어집니다.
":"앞의 문장은 무엇이든 좋지만, ":"는 빼지 말아야 한다.
Solution 5 : 세션 선택 중에 ESC 키 등으로 빠져 있을 때는 tmux를 기동하지 않게 한다
그리고 더 좋을지도 모릅니다.
~/.zshrcif [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
Solution 6: 인터랙티브 쉘에서 선택 화면을 표시하지 않음
tmux에없는 상태에서,
$ zsh
와 같이 대화형 쉘을 시작할 때도 위와 같이 tmux를 시작할지 묻는 거동을 한다.
점점 중첩되어 가면 기분 나쁘기 때문에 로그인 쉘이 아닌 경우에는 tmux의 세션을 기동 or 선택하는 기능을 끊기로 한다.
로그인 쉘에서
$ echo $-
569XZghiklms
인터랙티브 쉘에서
$ echo $-
569XZghikms
에서 알 수 있듯이 대화 형 쉘에서는 옵션 '-l'이 지정되지 않았 음을 알기 때문에 그렇게 판정 ($- == *l*
)한다.
~/.zshrcif [[ ! -n $TMUX && $- == *l* ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
요약
Solution 6을 zshrc에 써서 언제든지 tmux 안에 있는 안심감을 누릴 수 있게 되었다(갑자기 분할하고 싶어지는 건가요?). 여러분도 단말의 탭 기능은 사용하지 말고, 꼭 부디.
그 외의 앨리어스등은 이쪽
if [[ ! -n $TMUX ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
tmux에없는 상태에서,
$ zsh
와 같이 대화형 쉘을 시작할 때도 위와 같이 tmux를 시작할지 묻는 거동을 한다.
점점 중첩되어 가면 기분 나쁘기 때문에 로그인 쉘이 아닌 경우에는 tmux의 세션을 기동 or 선택하는 기능을 끊기로 한다.
로그인 쉘에서
$ echo $-
569XZghiklms
인터랙티브 쉘에서
$ echo $-
569XZghikms
에서 알 수 있듯이 대화 형 쉘에서는 옵션 '-l'이 지정되지 않았 음을 알기 때문에 그렇게 판정 (
$- == *l*
)한다.~/.zshrc
if [[ ! -n $TMUX && $- == *l* ]]; then
# get the IDs
ID="`tmux list-sessions`"
if [[ -z "$ID" ]]; then
tmux new-session
fi
create_new_session="Create New Session"
ID="$ID\n${create_new_session}:"
ID="`echo $ID | $PERCOL | cut -d: -f1`"
if [[ "$ID" = "${create_new_session}" ]]; then
tmux new-session
elif [[ -n "$ID" ]]; then
tmux attach-session -t "$ID"
else
: # Start terminal normally
fi
fi
요약
Solution 6을 zshrc에 써서 언제든지 tmux 안에 있는 안심감을 누릴 수 있게 되었다(갑자기 분할하고 싶어지는 건가요?). 여러분도 단말의 탭 기능은 사용하지 말고, 꼭 부디.
그 외의 앨리어스등은 이쪽
Reference
이 문제에 관하여([tmux] 터미널이 시작될 때 자동으로 새 세션 만들기 or 기존 세션에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ssh0/items/a9956a74bff8254a606a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)