LoginSignup
9
7

More than 5 years have passed since last update.

SSH ログインしたときに tmux を開く

Posted at

動機

  • 踏み台ホストの上でいちいちログインするとき、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 でできるのはいいですねヽ(*´∀`)/
9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7