Tips

新しいセッションを作成し、名前を付ける(例: my_dev_session)

`tmux`は、一つのターミナルウィンドウ内で複数のセッション、ウィンドウ、ペイン(分割画面)を管理できる強力なターミナルマルチプレクサです。これにより、SSH接続が切断されても作業状態を維持したり、複数の異なる作業を同時に一つの画面で効率的に進めたりすることが可能になります。

技術・言語・ツール: tmux

tmuxは、一つのターミナルウィンドウ内で複数のセッション、ウィンドウ、ペイン(分割画面)を管理できる強力なターミナルマルチプレクサです。これにより、SSH接続が切断されても作業状態を維持したり、複数の異なる作業を同時に一つの画面で効率的に進めたりすることが可能になります。

tmuxで開発環境を永続化・多窓化する

tmuxは、特にリモートサーバー上での開発においてその真価を発揮します。長時間かかるコマンドの実行中に安心してSSHを切断したり、エディタ、ビルドログ、テスト結果、REPLなどを一つの画面に分割して表示し、あたかもIDEのように統合された開発環境をターミナル上に構築できます。

# 新しいセッションを作成し、名前を付ける(例: my_dev_session)
tmux new -s my_dev_session

# 既存のセッションにアタッチする
tmux attach -t my_dev_session

# セッションをデタッチする(作業はバックグラウンドで継続)
# (デフォルトのプレフィックスキー: Ctrl-b の後に d を押す)

# 全てのセッションを一覧表示する
tmux ls

# 新しいウィンドウを作成する
# (プレフィックスキー + c)

# 垂直にペインを分割する
# (プレフィックスキー + %)

# 水平にペインを分割する
# (プレフィックスキー + ")

# ペイン間を移動する
# (プレフィックスキー + 矢印キー)

注意点やおすすめポイント:

  • 作業の永続化: SSH接続が不意に切断されても、tmuxセッションはサーバー上で生き残り続けます。再接続後すぐにtmux attachコマンドで作業を中断した時点から再開できます。
  • 効率的な多窓化: 複数のウィンドウやペインを駆使することで、コード編集、ログ監視、テスト実行、データベース操作など、様々なタスクを切り替えずに同時に視界に収めることができます。
  • 学習コスト: 最初はデフォルトのプレフィックスキー(Ctrl-b)とその後のコマンドに慣れる必要がありますが、一度習得すればターミナルでの開発効率が飛躍的に向上します。
  • .tmux.confファイルをカスタマイズすることで、キーバインド、ステータスバー、配色などを自分好みに設定し、よりパーソナルな開発環境を構築できます。