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/


