brand new note

ジャズ屋が技術の話をするところ

tmuxのはじめの一歩

tmux歴1年くらいになったのでちょっとまとめ。ずいぶん前から書こうとしていたのですが放置していました。

tmuxとは

1つのターミナルで複数のサーバにログインし、同時にセッションを保ちながら作業ができます。これがないと複数のサーバに一度にアクセスして作業したいときに1つずつターミナルを立ち上げなきゃいけないので、あるととても便利。一度このサーバとこのサーバに入って作業がしたい!ってなったら、未使用中でもその作業環境を保存できます。

参考サイト

自分の記事より100万倍参考になるサイトを先に紹介しておきます。

概念はここ読めばいいと思います。

基本的にはこのへん読めば使えます。

強い人はこういうことしてるらしいです。

とりあえず、基本的な説明も以下に示します。


セッション、ウィンドウ、ペイン

まずtmuxには3つのキーワードがありますので頭にいれましょう。

  • セッション:tmux全体で管理しているサーバへのセッション情報(接続情報)

  • ウィンドウ:接続した先のウィンドウ。

  • ペイン:ウィンドウは分割することができる。分割したものの一部をペインという。

次に実際にtmux実行時の画面を使って説明します。みんなもやってみよう!!

ペインを割る

# tmux

f:id:frazz:20180328170349p:plain

起動しました、下が緑色になってウィンドウの名前を表示しています。このようにただコマンドを打つだけでも起動しますがこれでは使う意味がありませんので、ペインを分割してみます。Ctrl+b→%と入力してみます。

f:id:frazz:20180328171149p:plain

ウィンドウが横に割れました。次にCtrl+b→” と入力してみます。

f:id:frazz:20180328172401p:plain

そこからウィンドウが縦に割れました。このように一つの画面で複数のターミナルを開くことができます。あと、隣のペインに移動する時はCtrl+b→矢印キーです。ペインを消すときはCtrl+b→xです。まずはこれだけ覚えると作業してる感に満ち溢れてテンションが上がると思います(?)。

ウィンドウを増やす

しかしペインを割るだけではどんどんひとつの作業スペースが狭まります。新しいウィンドウを作るにはCtrl+b→cです。

f:id:frazz:20180328173205p:plain

新しいウィンドウが作られ、下にウィンドウ0とウィンドウ1が見えますね。このように作業スペースが確保できない場合はウィンドウを増やします。ウィンドウ間を移動する時はCtrl+b→n もしくは Ctrl+b→p です。(nextとprevだと思います)

Ctrl+b ってなに

散々出てきているCtrl+bはプレフィクスキーと呼ばれます。要するにtmuxの処理を行うために必要な最初のコールのようなものです。使いこなせるようになったら独自のキーバインドを作ることも可能ですので、段々自分の作業がしやすいようにカスタマイズできると楽しいと思います。

セッション管理

ここまでできたら普通にターミナルを開くよりも、確実に一度に様々なアクセスができるようになっていると思いますが、こことここにアクセスした記録をそのまま残して次回以降は一瞬で立ち上げたいという欲が湧いてきます。

ここで使えるのがセッション管理の概念です。

本記事を見ながら手を動かしている方はCtrl+b→dしてみてください。

f:id:frazz:20180328174949p:plain

tmuxが消えて元の画面に戻りました。これをセッションを抜ける、デタッチするといいます。今作業していた直前のセッションにもう一度入る、アタッチするには以下です。

# tmux attach

過去に名前を付けて保存したセッションに再度入るには以下です。

# tmux attach -t [session name]

はい、セッション名の話もしないといけませんね。直前の環境だけでなく、この作業環境とこの作業環境を分かりやすく残しておきたい。。。という場合は起動時に予めセッション名をつけます。

f:id:frazz:20180328180257p:plain

ここからは上図の説明になりますが、tmux new -s hogehogeというセッション(作業環境)を作成しています。tmux ls することで現在作られているセッションを見ることができます。いらないセッションはtmux kill-session -t [セッション名]で消すことができます。

注意事項

ここまで覚えたらあとはもっと便利に使えるように調べていくのがいいと思います。ただ、セッションの概念を理解せず普通にexitとかしてtmuxを閉じてしまうと、一度作った作業環境が保存されず作り直しになったりすることになります。

また、exitもせずCtrl+b→xでペインだけ消してそのまま全部作業環境を消してしまうと、サーバに接続している情報が残ったまま作業環境が消えてしまうことになります。こうなるとログアウト作業が別に発生してしまいます。(自分はこれで2週間サーバに知らずにログインしっぱなしになって注意されたことがあります、勉強にはなりましたが。。。)

というわけで、tmux初めての皆さんもこちらに気を付けて作業していただければと思います。では。