๐งท tmux ์ด๊ธฐ ์
์
์ฉ ์ธ์
/์๋์ฐ/ํจ๋ ์คํฌ๋ฆฝํธ
main/sub ์ธ์
์ ๋๋๊ณ , main์ 2๊ฐ window๋ก ๋ถ๋ฆฌํ ๋ค ์ฒซ window์์ ์ข/์ฐ + ์ค๋ฅธ์ชฝ ์/ํ ๋ถํ ์ ๋ง๋๋ ์ด๊ธฐ ์
์
๊ธฐ๋ก. ํ์ํ ๋ ํ์ผ ํ๋๋ก ๋ฐ๋ก ๋์ฐ๋ ๋ชฉ์ .
1. ์คํฌ๋ฆฝํธ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| #!/usr/bin/env bash
set -euo pipefail
MAIN_SESSION="main"
SUB_SESSION="sub"
# ์ด๋ฏธ main ์ธ์
์ด ์์ผ๋ฉด ๋ฐ๋ก ๋ถ๊ธฐ
if tmux has-session -t "$MAIN_SESSION" 2>/dev/null; then
tmux attach -t "$MAIN_SESSION"
exit 0
fi
# 1) main ์ธ์
์์ฑ + ์ฒซ ์๋์ฐ
tmux new-session -d -s "$MAIN_SESSION" -n "main"
# 2) ์ฒซ ์๋์ฐ: ์ข/์ฐ ๋ถํ + ์ค๋ฅธ์ชฝ ์/ํ ๋ถํ (์ด 3 panes)
tmux split-window -h -t "$MAIN_SESSION":0
tmux split-window -v -t "$MAIN_SESSION":0.1
# ํ์ํ๋ฉด ์ปค๋งจ๋ ์๋ ์คํ
tmux send-keys -t "$MAIN_SESSION":0.0 "cd ~/" C-m
tmux send-keys -t "$MAIN_SESSION":0.1 "cd ~/" C-m
tmux send-keys -t "$MAIN_SESSION":0.2 "cd ~/" C-m
# 3) main ๋ ๋ฒ์งธ ์๋์ฐ
tmux new-window -t "$MAIN_SESSION" -n "secondary"
tmux send-keys -t "$MAIN_SESSION":1 "cd ~/" C-m
# 4) sub ์ธ์
์์ฑ
tmux new-session -d -s "$SUB_SESSION" -n "sub"
tmux send-keys -t "$SUB_SESSION":0 "cd ~/" C-m
# 5) main ์ฒซ ์๋์ฐ๋ก ์ด๋ ํ attach
tmux select-window -t "$MAIN_SESSION":0
tmux attach -t "$MAIN_SESSION"
|
2. ์คํ ๋ฐฉ๋ฒ
1
2
3
4
5
6
7
8
9
| # ํ์ผ ์ ์ฅ
mkdir -p ~/bin
vi ~/bin/tmux-work.sh
# ์คํ ๊ถํ
chmod +x ~/bin/tmux-work.sh
# ์คํ
~/bin/tmux-work.sh
|
3. ๊ตฌ์กฐ ๋ณ๊ฒฝ ์์
โ ์๋์ฐ ์ด๋ฆ ๋ณ๊ฒฝ
1
2
3
| tmux new-session -d -s "$MAIN_SESSION" -n "editor"
tmux new-window -t "$MAIN_SESSION" -n "api"
tmux new-window -t "$MAIN_SESSION" -n "ops"
|
โ ํจ๋ ์ด๋ฆ(ํ์ดํ) ์ง์
pane ์์ฒด์ โ์ด๋ฆโ์ ๋ถ์ด๋ ๊ฐ๋
์ ์๊ณ , ๋์ pane title์ ์ค์ ํด์ ํ์ํ๋ค. ํ์ ์์น๋ pane-border-format์ผ๋ก ์ ์ดํ๋ค.
1
2
3
4
5
6
7
8
| # pane title ์ง์
tmux select-pane -t "$MAIN_SESSION":0.0 -T "editor"
tmux select-pane -t "$MAIN_SESSION":0.1 -T "logs"
tmux select-pane -t "$MAIN_SESSION":0.2 -T "shell"
# ํ์ดํ ํ์(ํ๋จ). ํ์ํ๋ฉด .tmux.conf์ ๋ฃ์ด๋ ๋จ
tmux set -g pane-border-status bottom
tmux set -g pane-border-format " #P: #T "
|
โ ํจ๋ ๋ ์ด์์ ๋ณ๊ฒฝ (์ข์ฐ 2๋ถํ )
1
| tmux split-window -h -t "$MAIN_SESSION":0
|
โ ํน์ ํ๋ก์ ํธ ํด๋๋ก ์ด๋
1
2
| tmux send-keys -t "$MAIN_SESSION":0.0 "cd ~/project" C-m
tmux send-keys -t "$MAIN_SESSION":1 "cd ~/project" C-m
|
4. ์ฐธ๊ณ
tmux has-session์ ์ธ์
์กด์ฌ ์ฌ๋ถ๋ง ํ์ธํ๋ค.- ๊ธฐ์กด main ์ธ์
์ด ์์ผ๋ฉด ๊ตฌ์กฐ๋ฅผ ๋ค์ ๋ง๋ค์ง ์๊ณ attach๋ง ์ํํ๋ค.
- ์ธ์
์ด๋ฆ๋ง ๋ฐ๊ฟ๋๋ฉด ์ฉ๋๋ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋ค์ด๋๊ธฐ ์ข๋ค.