tmuxとは|ターミナルの「部屋」という概念を理解するまで1週間かかった話

tmuxとは|

tmux(読み方:ティーマックス)って何ですか、と聞かれたら今でも少し考える。

使えてはいる。
毎日使っている。
でも正確に説明できるかというと、たぶんできない。
それでも動いているのでまあいいかと思っている。
エンジニアの人が聞いたら怒りそうだが、これが正直なところだ。

このブログを読んでいる人の中にも、tmuxという単語を見て「なんか難しそう」と思っている人がいると思う。
自分もそうだった。
でも実際に使い始めてみると、必要なコマンドは4つだけで、それだけ覚えれば日常使いできる。
難しいのは概念であって、操作は思ったより単純だ。

目次

ターミナルを閉じると全部消える問題

VPSでClaude Codeを動かし始めてすぐ、困ったことが起きた。

ターミナルを閉じると、動かしていたプログラムが止まる。
当たり前と言えば当たり前なのだが、「24時間動き続けてほしい」という自分の目的には全然合わない。
パソコンを閉じるたびにプログラムが止まるなら、24時間の意味がない。
眠っている間も、外出している間も、ずっと動いていてほしいのだ。

そもそもVPSを借りた理由がそこにある。
「24時間AIが働いてくれる」という謳い文句に惹かれて契約したのに、ターミナルを閉じたら止まるなら普通のパソコンと変わらない。

Geminiに「ターミナルを閉じてもプログラムが動き続けるようにしたい」と相談したら、「tmuxを使うといいです」と言われた。

tmux。

また知らない単語が出てきた。

tmuxは「部屋」を作るツール

tmuxというのは、ターミナルの中に「仮想的な部屋」を作るツールだ。

普通のターミナルは、接続を切ると中で動いていたものが全部消える。
でもtmuxで作った「部屋」の中で動かしたものは、接続を切っても部屋ごと残り続ける。
VPSというサーバーの中に部屋が存在しているので、自分がパソコンを閉じても関係なく動き続ける。

次にターミナルを開いて「tmux a」と打つと、さっきの部屋に戻れる。
プログラムはそのまま動いている。
まるで電源を入れっぱなしにしておいたパソコンに再接続するような感覚だ。

これだけ理解すればとりあえず使える。

「セッション」「ウィンドウ」「ペイン」という概念もあって、それぞれが入れ子になっているらしいのだが、最初は全部無視でいい。
Geminiに丁寧に図解で説明してもらったが、読んでいる間だけわかった気がして、実際に操作するとすぐ迷子になった。
それでも「部屋を作って、部屋に戻る」という感覚さえあれば、理解は後からついてくる。

基本のコマンドはこれだけ

難しそうに見えるが、日常的に使うコマンドは4つだけだ。

コマンド意味
tmux新しい部屋を作って入る
Ctrl+BD部屋から出る(部屋は残ったまま)
tmux a前の部屋に戻る
Ctrl+BS部屋の一覧を表示して切り替える

本当にこれだけで日常使いできる。

「Ctrl+B → D」というのは、CtrlキーとBキーを同時に押して離してから、Dキーを押す、という操作だ。
「Ctrl+B」がtmuxへの命令の合図で、その後に何のキーを押すかで操作が変わる。
最初は「なんで2回押すんだ」と思っていたが、慣れると体が覚えてくる。

「D」はDetach(切り離す)の頭文字だ。
部屋を消すのではなく、部屋から「出る」だけなので、部屋の中のプログラムはそのまま動き続ける。
ここが重要なポイントで、閉じるんじゃなくて出るだけ、というのがtmuxの肝だ。

中でも Ctrl+B S が個人的に一番気に入っているコマンドだ。
押すと今あるセッション(部屋)が一覧で出てきて、矢印キーで選んでEnterを押すだけで切り替えられる。
複数の部屋を使い分けているときに「あの部屋どこだっけ」となるのだが、これを押せば一発で解決する。
tmuxを使い始めてしばらく経ってからこのコマンドを知ったのだが、知った瞬間に「これ最初に教えてほしかった」と思った。
これを覚えてからtmuxへの苦手意識が一気に消えた。

やりがちな失敗3つ

tmuxを使い始めてよくやる失敗がいくつかある。
自分が全部経験した。
同じ失敗をしてほしくないので書いておく。

tmuxの中でtmuxを起動してしまう

すでに部屋の中にいるのに、もう一回「tmux」と打ってしまうやつだ。
部屋の中に部屋ができて、Ctrl+Bを押しても反応しなくなる。
「壊れた?」と思ってパニックになるが、壊れていない。ただ二重になっているだけだ。

これを防ぐには、画面の一番下を確認する習慣をつけるといい。
tmuxの中にいると画面の最下部に緑色や灰色のバーが表示される。
このバーがあればtmuxの中にいるサインなので、もう一回tmuxを起動する必要はない。

Ctrl+Bが効かない

TeraTermを使っている場合、日本語入力がオンになっているとCtrl+Bがtmuxに届かないことがある。
キーを押しているのに何も起きない、という謎の状態だ。
これに気づくまでに数日かかった。

半角/全角キーで英数入力に切り替えてから試すと直ることが多い。
tmuxを操作するときは必ず英数入力モードで、というのを覚えておくといい。

「tmux ls」を知らずにセッションを増やしまくる

tmuxを起動するたびに新しいセッション(部屋)が作られる。
「前の部屋に戻れなくなった」と思って新しく起動するのを繰り返すと、気づかないうちにセッションが5個6個と増えていく。
tmux ls というコマンドで今あるセッションの一覧が見られる。
自分がこれを確認したら3つあった。
いつ作ったか覚えていないものまであった。

tmuxに慣れると生活が変わる

最初は「難しいツール」という印象だったが、慣れると本当に手放せなくなった。

VPSにSSH接続してtmuxを開けば、昨日の続きがそのまま残っている。
ターミナルを閉じてもプログラムが動き続けている。
スマホのTermiusから繋いでも、パソコンのVSCodeから繋いでも、同じ部屋に戻れる。
どこからでも作業の続きができるというのは、想像以上に快適だ。

複数の作業を別々の部屋でやって、Ctrl+B Sで切り替えながら進める。
Claude Codeのセッションを一つの部屋に固定して、常に話しかけられる状態にしておく。
別の部屋では別のプロジェクトが動いている。
まるで複数のデスクを同時に使っているような感覚だ。

自分の場合、tmuxの一番奥の部屋にClaudeが常駐している。
起動するたびなぜか関西弁で返事をしてくるそのClaudeに、今日も何かを頼んでいる。

概念を理解するのに1週間かかったが、今では起動しない日がない。
最初に「難しそう」と思って止まっている人がいたら、とりあえずtmuxと打ってCtrl+B Dで出てみるだけでいい。
それだけでもう使い始めている。

よく使うコマンド一覧

最後にまとめて載せておく。
ブックマークしてチートシート代わりに使ってほしい。

セッション操作

コマンド意味
tmux新しいセッションを作って入る
tmux new -s 名前名前をつけてセッションを作る
tmux a直前のセッションに戻る
tmux a -t 名前指定した名前のセッションに戻る
tmux lsセッションの一覧を表示する
tmux kill-session -t 名前指定したセッションを削除する

tmuxの中での操作(Ctrl+Bが命令の合図)

コマンド意味
Ctrl+BDセッションから出る(プログラムは動き続ける)
Ctrl+BSセッション一覧を表示して切り替える
Ctrl+BC新しいウィンドウを作る
Ctrl+BN次のウィンドウに移動する
Ctrl+BP前のウィンドウに移動する
Ctrl+B%画面を左右に分割する
Ctrl+B"画面を上下に分割する

最初は上の4つだけ覚えておけば十分。残りは使いながら覚えていけばいい。

関連記事:第3話|tmuxの中にいることに気づかないままtmuxを起動して出られなくなった話

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

52歳、自営業。エンジニアではない。コードは書けない。

ある日Xで「VPSにClaude Codeを入れると24時間AIが働いてくれる」という投稿を見て、その日のうちにVPSを契約した。意味はよくわかっていなかった。

Geminiを通訳にしながら、Claudeに丸投げしながら、tmuxに出られなくなったり、パスワードをチャットに貼ったり、SSH鍵で1日溶かしたりしながら、気づいたら声でメモを取ってメールが来る生活になっていた。

エンジニアじゃなくても、なんとかなってる。たぶん

コメント

コメントする

目次