動機
- 踏み台ホストの上でいちいちログインするとき、tmux を開き直すのもめんどいし、
tmux ls
打つのもダルい - どうせ同じセッション名で開くならば、常に開いておいていいじゃない
- tmux が自動的に立ち上がって不便なことないし (ここ重要)
- 自動的に立ち上がると困る人もいるとは思う
- けど、自分はあまりそこは重視していないので見切る
実現方法
- 前提として bash です。zsh などの人は適宜書き換えてください
-
.bashrc
なり.bash_profile
に以下の行を追加する
SESSION_NAME=ope
if [[ -z "$TMUX" && -z "$STY" ]] && type tmux >/dev/null 2>&1; then
option=""
if tmux has-session -t ${SESSION_NAME}; then
option="attach -t ${SESSION_NAME}"
else
option="new -s ${SESSION_NAME}"
fi
tmux $option && exit
fi
解説
-
SESSION_NAME=ope
としているので、ここでのセッション名は ope です- 気になる人は
tmux ls
をしてください
- 気になる人は
- tmux で起動しているときには環境変数
TMUX
に値がセットされます- それを利用して、現在 tmux 環境で開いているかどうかを判別します。
- しないと、tmux 環境で立ち上がっているときに、さらに tmux で立ち上げようとする(かも)
- has-session を利用してすでにセッションが作成済みかどうかチェックします
- 作成済みの場合にはすでにあるセッションに attach します
- なかった場合には
new -s
でセッション名を作成します
まとめ
- かなり楽になりました。ターミナルをタブで開くのもいいのですが、ウィンドウ切り替えを tmux bind でできるのはいいですねヽ(*´∀`)/