tmux を解説していきます。
-
tmux をサーバ側で立ち上げると、端末からのssh接続が落ちたとき、または長くかかるコマンドを実行中に端末を閉じたいときなどに当該sshセッション続行し、後ほど都合の良いときにそのsshセッションに戻ることができます。
-
tmux は CentOS7では おそらく
yum install tmux
で入ります。
とりあえずインストールしたら tmux
で起動してためしてみましょう。
起動するとこんな感じでステータスラインが出ると思います。
というわけで、まずは tmux を起動後に
mysql -uhoge -p < BIG_DATA.sql ; date
とか時間がかかるコマンドを実行しちゃいます。あるいはわかりやすく top
とか継続されるコマンドでも良いです。
それでもってコマンド実行中に ctrl+b
をタイプしてから ctrl
から手を離して d
をタイプすると、tmux から抜けることができます。これをデタッチと言います。
で、もう抜けられたので、正しく exit
としてコンソールを終了します。
ほとぼりが冷めた頃 あらためてssh接続し、 tmux a
とすると、さきほどデタッチしたセッションに接続できます。どうでしょうか、そのコマンド、すでに終了している、といいですね…
ウインドウ分割について
-
ctrl+b
をタイプしてからctrl
から手を離して"
をタイプすると、ウインドウが上下に分割されます。 -
ctrl+b
をタイプしてからctrl
から手を離して%
をタイプすると、ウインドウが左右に分割されます。 -
ctrl+b
をタイプしてからctrl
から手を離してq
をタイプすると、分割されたウインドウそれぞれに番号がついていることがわかります。(それぞれをペインというそうです)
-
ctrl+b
をタイプしてからctrl
から手を離して上下左右のカーソルキーで分割されたウインドウ(ペイン)間を移動することができます。
ウインドウについて
-
ctrl+b
をタイプしてからctrl
から手を離してc
をタイプすると、新しいウインドウを開きます。ステータスラインでウインドウを一覧できます。 -
ctrl+b
をタイプしてからctrl
から手を離してw
をタイプすると、ウインドウ一覧が表示されます。カーソルキーで移動したいセッションを選び、エンターでそのウインドウに入れます。 - 二つ以上のウインドウ間を移動したいときは、
ctrl+b
をタイプしてからctrl
から手を離してn
またはp
をタイプします。
セッションについて
- 二つ以上のセッションからデタッチしてる場合は、
tmux a -t 0
とかtmux a -t 1
とかでそれぞれのセッションに戻れます。 -
tmux ls
をまだ紹介してなかったですね。セッション一覧が出ます。 -
ctrl+b
をタイプしてからctrl
から手を離してs
をタイプすると、セッション一覧が表示されます。カーソルキーで移動したいセッションを選び、エンターでそのセッションに入れます。
はたしてウインドウとセッションはどう違うのか?
セッション -> ウインドウ -> ペイン というハイアラーキーと理解できるのでは。
-
ctrl+b
をタイプしてからctrl
から手を離して:
をタイプすると、コマンドモードに入ります。ステータスラインにコマンドが入力できるようになります。
- いくつかペインを開いてから、上記コマンドモードに入り、
set synchronize-panes on
とすると、以降、入力が全てのペインに反映されるようになります。いくつかのサーバに同時に同一コマンドを発行するとき、便利ですね。
ほかに参考にできるtmux解説一覧。 特に二番目の "カビパン男と私" がたいへんおもしろかったです。
- https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b
- https://www.kabipan.com/densan/tmuxmemo.html
- https://tech.visasq.com/introduce-tmux-powerful-features
- https://docs.oracle.com/cd/E62101_01/html/E62874/tmux-1.html
- https://qiita.com/vintersnow/items/be4b29652ff665c45198
- https://www.task-notes.com/entry/20150711/1436583600
- https://linuc.spa-miz.com/2020/09/13/tmux/