tmux
Terminal Multiplexer
github
tmuxを起動すると、バックグラウンドでtmuxサーバープロセスが立ち上がる
ターミナルはそのサーバに接続するクライアントにすぎない
ターミナルを閉じてもサーバプロセスは生き続けるので、セッション内で走っているプロセスも継続する
後から tmux attach で再接続できる
ターミナルのwindow管理をできる
作業環境の保存・再現をできる
#wip
https://speakerdeck.com/momeemt/tmux-nixnoshi-zhuang-wotong-sitexue-bunixosmoziyuru
tmuxの基本操作
操作はすべて プレフィックスキー Ctrl+b の後にキーを押します。
セッション
table:_
操作 コマンド
新規セッション tmux new -s 名前
デタッチ(抜ける) Ctrl+b → d
一覧 tmux ls
アタッチ(戻る) tmux a -t 名前
セッション切替 Ctrl+b → s
ウィンドウ(タブ的なもの)
table:_
操作 キー
新規 Ctrl+b → c
次/前 Ctrl+b → n / p
番号指定 Ctrl+b → 0〜9
名前変更 Ctrl+b → ,
ペイン(画面分割)
table:_
操作 キー
横分割 Ctrl+b → %
縦分割 Ctrl+b → "
移動 Ctrl+b → 矢印キー
閉じる exit or Ctrl+d
サイズ変更 Ctrl+b 長押し → 矢印キー
よく使う流れ
code:bash
tmux new -s work # セッションを作って入る
# 作業する
# Ctrl+b → d # デタッチして抜ける
tmux a -t work # 後で戻る
デタッチしてもプロセスは生き続けるので、SSH切断後も作業を維持できるのが最大の利点です。
tmux send-keys
指定したペインに対してキーボード入力を送る
例
$ tmux send-keys -t 0 "ls -la" Enter
ペイン0に ls -la を入力して実行
tmux list-panes
$ tmux lsp
現在のウィンドウ内のペイン一覧を表示
tmux has-session
指定したセッションが存在するかチェック
挙動
存在する → exit code 0
存在しない → exit code 1
tmux list-sessions
$ tmux ls
tmux内のセッション一覧を表示
tmux capture-pane