はじめまして。Qiita初投稿です。
まんがでわかるLinux シス管系女子を読んで「便利そう!」と思ったので自分なりに使いそうな機能に限定してまとめてみました。
tmuxとは
tmux - wikipedia
tmuxは端末マルチプレクサであり、ユーザが単一の端末ウィンドウまたはリモート端末セッション内の複数の別々の端末セッションにアクセスできるようにします。
簡単に言うと、コンソール環境の先に新しくセッションを作り(追加でブラウザを立ち上げるイメージ)、さらに複数のウィンドウを作り(新しいタブを開くイメージ)、それらを自由に切り替える事ができます。
また、vimでテキストを編集中に何らかの理由でssh接続が切断された場合・・・等でも、実行中のプロセスはtmuxセッションの中で続行され続けるので、セッションへ再接続し作業を再開することが可能です。
使用方法
下記環境にて検証
vagrant box bento/centos-7.3 (virtualbox, 201708.22.0)
tmuxインストール
$ sudo yum install tmux
セッションを作成する
$ tmux
端末の画面の下に[0] 0:root@localhost:~*
のようなものが表示されるかと思います。これで1つ目のセッションおよびウィンドウができました。
[0]
はセッション名
その次の0:
はウィンドウの番号
root@localhost:~
はウィンドウ名
*
は現在操作中のウィンドウであることを意味します
ウィンドウを追加作成
ctrl+b
c
新規ウィンドウを作成、移動します。
端末の画面の下は
[0] 0:root@localhost:~- 1:root@localhost:~*
こんな感じになります。
前のウィンドウに移動
ctrl+b
p
次のウィンドウに移動
ctrl+b
n
ウィンドウをリスト化して移動
ctrl+b
w
ウィンドウ名の変更
ctrl+b
,
ウィンドウを閉じる
ctrl+b
&
ウィンドウを全部閉じると、そのtmuxセッションを削除したことになります。
現在のtmuxセッションをデタッチ(バックグラウンドでは引き続き稼働)
ctrl+b
d
デタッチして再度$ tmux
を実行すると、既存セッションへの接続ではなく新規セッションの作成になってしまいます。
既存セッションへの再接続(アタッチ)は次の方法で。
tmuxセッションに再接続
$ tmux attach
最後に操作していたセッションに再接続します。
tmuxセッションを一覧表示
$ tmux ls
0: 1 windows (created Fri May 4 15:29:58 2018) [140x49]
1: 1 windows (created Fri May 4 15:30:24 2018) [140x49]
2: 1 windows (created Fri May 4 15:30:31 2018) [140x49]
上記の例では0
1
2
の3セッションが存在することを示していて、アタッチの際には
$ tmux attach -t 0
のように-t
に続けてセッション番号を指定することもできます。
また、あるセッションに接続した状態で
ctrl+b
s
とすると、既存セッションをリスト表示して移動することができます。
現在のセッションの削除
$ tmux kill-session
全セッションの削除
$ tmux kill-server
現在の画面(ペイン)を上下に分割
ctrl+b
"
ウィンドウを画面上で分割する。
現在の画面(ペイン)を左右に分割
ctrl+b
%
ペイン間の移動
ctrl+b
カーソルキー(↑↓←→)
ペインサイズの変更
ctrl+b
ctrl+カーソルキー(↑↓←→)
Macではデフォルトでctrl+カーソルキー(↑↓←→)
にショートカットが割り当てられているため、システム環境設定
-キーボード
-ショートカット
で解除するとよい。
ペインを閉じる
ctrl+b
x
$ exit
でもo.k.
ペインに時計を表示する
ctrl+b
t
ちょっとかっこいい(笑)
おわりに。
お客様先にてKVM(Keyboard Video Mouse)はあるけどCUI(multi-user.target)オンリーという環境を多く見るのですが、そんな時に/var/log/messages
をtail -f
してエラーメッセージの出力を確認しつつ、ウィンドウを切り替えて他作業をする、という風に活用できそうです。
しかし、そのようなサーバはそもそもtmuxが入っていないかもですが;;
そんな時はscreenでしょうか。