tmuxの使い方|読み方・インストール(Windows/Mac/Linux)・コマンドと画面分割を解説

tmuxとは何か?複数のターミナルを一画面で管理できるツールの特徴と活用シーンを詳しく解説

エンジニアの開発作業を効率化してくれるtmuxとは、一体どのようなツールなのでしょうか。本章ではtmuxの概要とその基本機能、さらに利用するメリットや想定されるユースケースについて解説します。複数のターミナル画面をまとめて扱えるtmuxの特徴を理解し、日々の開発作業に役立ててみましょう。

tmuxの概要と基本機能:複数のターミナルを単一画面にまとめる仕組みと特徴を解説

tmux(ティーマックス)「ターミナルマルチプレクサ(Terminal Multiplexer)」と呼ばれる種類のソフトウェアです。簡単に言えば複数のターミナルセッションを1つのウィンドウ内で開き、切り替えながら操作できるツールです。通常、ターミナルを複数開く場合はタブやウィンドウを増やしますが、tmuxを使えば1つのターミナル内で複数の作業環境を扱えるようになります。

tmuxの基本機能として、1つのセッション内で複数のウィンドウを作成し、それぞれのウィンドウ内で画面を分割してペインを複数表示できます。つまり、tmuxは1つの端末画面を仮想的に区切り、複数の端末(シェル)を同時に操作できる仕組みを提供します。また、tmuxセッションはバックグラウンドで保持されるため、後述するようにセッションをデタッチ(切り離し)して端末を閉じても、セッション内のプロセスは継続して実行されます。

tmuxはリモートサーバ上でコマンドを実行し続けたい場合や、ローカルで複数の作業を並行して行いたい場合に重宝します。各ウィンドウやペインごとに別々の作業(編集、ビルド、ログ監視など)を配置でき、開発環境の統合管理が可能です。後述するキーボードショートカットを使えば高速に画面を切り替えられるため、マウスに触れることなく効率的な操作が実現できます。

tmuxを使うメリットとユースケース:セッションの永続化や複数環境の一元管理による開発効率化

tmuxを利用する最大のメリットは、ターミナルセッションを永続化できる点です。通常のターミナルではSSH接続が切れたり端末を閉じたりすると、そのセッションで動かしていたプロセスは終了してしまいます。しかしtmux上でコマンドを実行しておけば、セッションをデタッチ(切り離し)して端末を閉じても、プロセスはバックグラウンドで動き続けます。後から再度アタッチ(再接続)すれば、途中の状態から作業を再開できるため、リモートサーバでの長時間実行ジョブやビルド作業に最適です。

また、tmuxは開発環境の一元管理を可能にします。複数のプロジェクトや作業コンテキストごとにセッションを分けておき、必要に応じてセッションを切り替えることで、ウィンドウやタブだらけにならず整理された環境を維持できます。例えば「プロジェクトA用のセッション」「サーバ監視用のセッション」など用途別にtmuxセッションを作成し、各セッション内で必要なウィンドウやペインを開いて作業すると効率的です。

その他、tmuxはペアプログラミングリモート作業でも活躍します。複数人で同じtmuxセッションにアタッチすれば、同じターミナル画面を共有して共同作業が可能です。SSH経由で接続した先でtmuxを動かせば、不安定なネットワーク環境でもセッションが維持されるため、ネット切断に強い作業環境を構築できます。こうしたユースケースにより、tmuxはエンジニアにとって強力な生産性向上ツールとなっています。

tmuxのインストール方法:Linux・macOS・Windows各OSでの導入手順を解説

tmuxはさまざまなOS環境で利用できますが、そのインストール方法は環境によって異なります。この章ではLinux、macOS、Windows環境ごとにtmuxを導入する手順を説明します。多くの場合、パッケージマネージャ経由で簡単にインストールできますが、環境固有のポイントも押さえておきましょう。

Linux環境でのtmuxインストール:UbuntuやCentOSなど主要ディストリでの導入手順

Linux環境では、多くのディストリビューションでtmuxがパッケージとして提供されています。例えばDebian系のUbuntuDebianでは、パッケージマネージャから簡単にインストール可能です。具体的にはsudo apt install tmuxというコマンドを実行するだけで、リポジトリからtmuxがインストールされます。CentOSやFedoraなどRHEL系のディストリではsudo yum install tmux(Fedoraの場合はdnfコマンド)で同様に導入できます。

インストール後は、tmux -Vコマンドでインストールされたtmuxのバージョンを確認しておきましょう。多くの最新ディストリビューションではtmuxが標準リポジトリに含まれており、特別な設定は不要です。もしシステムに古いtmuxが入っている場合や最新版を使いたい場合は、公式サイトからソースコードをダウンロードしてビルドする方法もありますが、基本的にはパッケージ管理経由のインストールで十分でしょう。

macOS環境でのtmuxインストール:Homebrewを利用したインストール手順とポイント

macOSでは、tmuxは標準ではインストールされていないため、Homebrewなどのパッケージマネージャを使うのが一般的です。Homebrewが導入済みであれば、ターミナルでbrew install tmuxと実行するだけでtmuxをインストールできます。Homebrewは依存関係も自動で解決してくれるため、特別な手順を踏む必要はありません。

インストールが完了したら、tmuxコマンドがパスに通っていることを確認しましょう。通常は/usr/local/bin/tmux(M1/M2 Macでは/opt/homebrew/bin/tmux)にバイナリが配置され、環境変数PATHが設定されていればそのままtmuxコマンドを使えるようになります。なお、macOSではLinuxと比べキーボード配列や修飾キー(例えばOptionキーの扱い)が異なるため、tmux上でのキー操作が多少変わる場合があります。その点についてはショートカットキーの章で補足します。

Windows環境でのtmux利用:WSL上でのインストール方法とWindowsネイティブでの代替手段

Windows向けには、Unix系OSのように直接tmuxを動かすことはできませんが、WSL(Windows Subsystem for Linux)上でLinux版tmuxを利用する方法があります。WSLにUbuntuなどのLinuxディストリを導入し、その中で前述のapt install tmuxコマンドを実行すれば、Windows上でもtmuxを使うことが可能です。WSL経由でtmuxを起動すれば、Windows TerminalなどからLinux上のtmuxセッションにアクセスでき、ほぼネイティブのように利用できます。

また、Windowsネイティブ環境でtmuxに似た機能を実現するツールも存在します。例えばPuTTYKiTTYといったターミナルエミュレータにはスクリーン分割機能があり、tmuxほど柔軟ではないものの類似の操作が可能です。最近ではWindows Terminal自体がタブやペインの分割機能を備えているため、Windowsユーザーはそちらを活用する手もあります。ただし、これらはtmuxそのものではなく代替手段となります。Windowsで本格的にtmuxを使いたい場合は、WSL上で動かすのが現状では最も安定した方法と言えるでしょう。

tmuxの基本的な使い方:セッション作成、デタッチ・アタッチなど基礎操作を初心者にもわかりやすく解説

tmuxをインストールしたら、まずは基本的な使い方を覚えましょう。ここではtmuxセッションの開始と終了、セッションからのデタッチ(切り離し)アタッチ(再接続)、そしてその他の基本操作について説明します。初めてtmuxを使う方向けに、実際のコマンドやキー操作を交えながら分かりやすく解説していきます。

tmuxセッションの開始と終了:新規セッションを開始し終了するまでの基本手順

tmuxを利用する際は、まずセッションを開始します。最も簡単な方法はターミナル上でtmuxコマンドを実行することです。何もオプションを付けずにtmuxを起動すると、新規セッションが作成され、1つめのウィンドウ(デフォルトでは0番ウィンドウ)が開いた状態になります。画面下部にはステータスバーが表示され、セッション名やウィンドウ番号などが確認できます。

新しくtmuxセッションを開始したら、画面は一見通常のターミナルと変わりませんが、この状態でtmuxの機能が使えるようになっています。tmux上でシェル作業を行った後、セッションを終了するにはいくつか方法があります。1つは、tmux内で開いている各ペインのシェルでexitコマンド(またはCtrl+D)を実行し、全てのウィンドウを閉じる方法です。全ウィンドウのシェルが終了すると、そのtmuxセッション自体も終了します。また、外部からtmux kill-session -t セッション名コマンドで特定のセッションを強制終了させることも可能です。

複数のtmuxセッションを同時に起動することもできます。その場合、tmux new -s セッション名という形式で名前付きセッションを作成しておくと管理が容易です。セッション名を指定しない場合、自動で01といった番号が振られます。終了時は前述の方法で各セッションを終了するか、ログアウト時に自動終了されないようデタッチしておくのが安全です(後述)。

セッションのデタッチとアタッチ:バックグラウンドへの切り離しと再接続の方法

tmuxの特徴であるデタッチとアタッチについて説明します。デタッチ(detach)とは、現在接続中のtmuxセッションから切り離してバックグラウンドで実行し続ける操作です。例えばリモートサーバで長時間の処理を実行しつつ、一旦接続を切りたい場合に、tmuxセッションをデタッチしておけば処理を継続できます。デタッチするにはプレフィックスキー(デフォルトではCtrl+B)を押した後にDキーを押します。正しくデタッチされるとターミナル上にメッセージが表示され、tmuxから抜けて通常のシェル画面に戻ります。

アタッチ(attach)はデタッチしたセッションに再接続する操作です。再びtmuxセッションに戻りたいときは、ターミナル上でtmux attachコマンドを実行します。複数セッションが存在する場合はtmux attach -t セッション名のように対象を指定します。最近デタッチしたセッションが1つだけであれば、単にtmux a(attachの短縮形)でも再接続できます。アタッチすると、デタッチ前と同じ状態で作業を再開できます。例えば編集していたファイルの内容や実行中のプログラムのログがそのまま残っており、まるで画面を閉じていなかったかのように続きができるのです。

なお、1つのtmuxセッションに複数のクライアント(端末)から同時にアタッチすることも可能です。この機能を利用すると、同僚と同じセッションを共有して一緒に画面を見るペアプロ作業などができます。ただし、同時アタッチ時はどちらの入力も画面に反映されるため注意が必要です。基本的なdetach/attach操作をマスターしておくと、tmuxの恩恵を最大限に活用できるでしょう。

その他の基本操作:tmuxのヘルプ表示やバージョン確認、tmux自体の終了方法

tmux内で使えるキーバインドのヘルプを表示したい場合は、プレフィックス押下後に?キーを押します。すると、新しいウィンドウに現在利用可能なすべてのショートカットキーの一覧が表示されます(Spaceでページ送り、Qで終了)。初めのうちはこのヘルプ画面を確認しながら操作すると良いでしょう。またtmuxコマンド自体のオプションヘルプが必要な場合は、シェルでtmux -hを実行すると使用可能なサブコマンドの一覧が表示されます。さらに詳しい情報はman tmuxでマニュアルページを参照できます。

tmuxのバージョン確認tmux -Vコマンドで行えます。環境によっては古いバージョンが入っている場合もあるので、トラブルシューティングの際などにバージョン情報を把握しておくと役立ちます。

最後にtmux自体を終了する方法についてです。基本的には、前述の通りtmuxセッション内の全てのウィンドウを閉じる(各シェルを終了させる)ことでtmuxは終了します。万が一tmuxのプロセスが残ってしまった場合やクリティカルな状況では、外部からtmux kill-serverコマンドを実行するとすべてのセッションを強制終了できます。ただし、このコマンドは開いている全セッションを破棄するため注意して使用してください。通常の利用では、適切にデタッチやセッション終了を行っていればkill-serverを使う場面はほとんどないでしょう。

セッションの作成・管理方法:tmuxセッションの新規作成、一覧表示、名前変更、切替方法などを徹底解説

tmuxの基本操作に慣れてきたら、複数のセッションを使い分けたり管理したりする方法も覚えておくと便利です。この章では、新しいセッションの作成方法セッション一覧の確認と切り替え、さらにセッションの名前変更終了といった管理作業について解説します。複数の作業コンテキストを整理するテクニックとして、tmuxセッションの効果的な活用方法を学びましょう。

新しいセッションを作成する方法:セッション名を指定したtmux起動と複数セッションの作成

既に1つのtmuxセッションが動いている状態でも、別のセッションを新規に立ち上げることができます。例えば開発中のプロジェクトA用のセッションと、サーバ監視用のセッションを分けたい場合などに有用です。新しいセッションを作成するには、端末上でtmux new -s セッション名と実行します。こうすると、指定した名前で新規セッションがバックグラウンドで起動し、そのセッションにアタッチした状態になります。セッション名には任意の識別しやすい文字列を付けられます(例:tmux new -s ProjectA)。

また、tmux起動中に別セッションを並行して開始することも可能です。現在のセッションからプレフィックス(Ctrl+B)を押し、続けて:キーを押すと、画面下部にコマンド入力ラインが表示されます。ここでnew-session -s 新セッション名と入力してEnterを押すと、新たなセッションが作成されます。ただしこの方法で新規作成した場合、今使っているセッションからはデタッチされません(一見何も起こらないように見えます)。新しいセッションに移るには、後述のセッション切り替え操作を行う必要があります。基本的には、tmuxを別ウィンドウで2つ起動するような場合でなければ、シェルからtmux newコマンドを使ってセッションを増やす方が分かりやすいでしょう。

セッション一覧の確認と切り替え:実行中セッションの一覧表示と特定セッションへの接続

複数のセッションを運用していると、今どんなセッションが動いているか把握する必要があります。そんな時は、tmux ls(またはtmux list-sessions)コマンドを実行すると、現在稼働中のtmuxセッション一覧が表示されます。各行にセッション名、ウィンドウ数、(アタッチされている場合は)接続数などが表示され、セッションの状態を確認できます。

一覧を確認したら、特定のセッションに切り替え(アタッチ)してみましょう。既に説明したように、tmux attach -t セッション名コマンドで指定のセッションに接続できます。ただ、今動かしているターミナル自体が別のセッションに接続済みの場合、一度デタッチするか別の端末からアタッチする必要があります。tmux内から別のセッションに移りたい場合は、プレフィックスCtrl+B後に:でコマンドラインを開き、switch-client -t 切り替え先セッション名と入力する方法もあります。

tmuxにはセッションを一覧表示して選択できる便利なショートカットもあります。例えばプレフィックスCtrl+Bに続けてsキーを押すと、セッションの一覧をダイアログ形式で表示し、その中から矢印キーで選択して移動することが可能です。この機能を使うと、コマンドをいちいち入力しなくても直感的にセッションを切り替えられます。複数セッションを活用する場合は、ぜひ覚えておきたい操作です。

セッションの名前変更と終了:renameコマンドによる名称変更とkill操作によるセッション終了

一度作成したtmuxセッションの名前を変更したくなった場合も、tmuxには対応するコマンドがあります。tmuxにアタッチしている状態でプレフィックスCtrl+Bに続けて$キーを押すと、現在のセッション名を変更するプロンプトが表示されます。新しい名前を入力してEnterを押せばセッション名が更新されます。または、外部のシェルからtmux rename-session -t 旧名 新名とコマンドを実行することでも変更可能です。セッション名をわかりやすく整理しておくと、一覧表示した際に目的のセッションを見分けやすくなります。

不要になったtmuxセッションを終了(削除)する方法も確認しておきましょう。最も安全な方法は、そのセッションにアタッチして中の全ウィンドウを閉じることです(つまりシェルを全て終了する)。これでセッションは自動的に終了します。外部から明示的に終了させたい場合は、tmux kill-session -t セッション名を実行すれば対象のセッションが即座に終了します。同様に、現在アタッチ中のセッションを終了したい場合はプレフィックスCtrl+Bに続けて:キーでコマンドモードに入り、kill-sessionと入力して実行することもできます。

複数セッションを扱っていると、誤って必要なセッションを終了してしまうリスクもあります。大事なセッションは名前を付けて区別し、終了させる際も対象をよく確認しましょう。また、定期的にtmux lsでセッション一覧を見て、不要なセッションが残っていないか整理することをお勧めします。セッションを適切に管理することで、tmuxをより快適に利用できるようになります。

ウィンドウとペインの操作方法:新規ウィンドウ作成、ペイン分割、移動・リサイズなどの操作手順を詳しく解説

tmuxの真価は、1つのセッション内で複数のウィンドウやペインを自在に操れる点にあります。この章では、ウィンドウの作成と切り替えウィンドウ名の変更、そしてtmuxならではのペイン分割ペイン操作(移動・リサイズ・クローズ)の方法を説明します。実際の操作手順を学び、画面を有効活用した効率的なターミナル作業を実現しましょう。

新しいウィンドウの作成と切り替え:複数ウィンドウを開いて素早く移動する方法

tmuxセッション内では、ウィンドウと呼ばれる仮想ターミナル画面を複数開くことができます。新しいウィンドウを作成するには、プレフィックスCtrl+Bを押した後にcキーを押します(create windowのc)。これで現在のセッションに新規ウィンドウが追加され、そのウィンドウに切り替わります。ステータスバーを見ると、ウィンドウのリストに今追加した番号が表示され、アスタリスクで現在表示中のウィンドウが示されます。

複数のウィンドウを開いたら、次はウィンドウ間の移動です。基本操作として、プレフィックス後にnキーで次のウィンドウへ、pキーで前のウィンドウへ移動できます(next/previous)。また、09の数字キーを押すと対応する番号のウィンドウに直接ジャンプできます。ウィンドウが増えて番号を覚えきれない場合は、プレフィックスCtrl+Bに続けてwキーを押すと、ウィンドウ一覧がポップアップ表示され、矢印キーで選択して移動することも可能です。

なお、新規ウィンドウを作成する際に名前を付けておくと便利です。tmuxコマンドを使って作成する場合、tmux new-window -n 名前-nオプションでウィンドウ名を指定できます。名前を付けておけばステータスバーに表示されるため、目的のウィンドウを識別しやすくなります。ウィンドウ操作に慣れてくると、作業内容ごとに複数ウィンドウをパッと開いて切り替えることで、生産性が格段に向上するでしょう。

ウィンドウの名前変更と整理:リスト表示や名前設定でウィンドウを整理する方法

作業が進むとウィンドウの数が増え、何番に何を開いたか分からなくなることがあります。そんなときは、ウィンドウにわかりやすい名前を付け直すと良いでしょう。ウィンドウ名の変更は、プレフィックスCtrl+Bに続けて,(カンマ)キーを押すことで可能です。画面下に名前入力プロンプトが表示されるので、新しい名前(例:「編集」「サーバログ」など)を入力してEnterを押せばウィンドウ名が更新されます。ウィンドウ名はステータスバーに常に表示されるため、命名しておくと一目で内容を把握でき整理に役立ちます。

ウィンドウを整理するもう1つの方法は、ウィンドウ一覧を活用することです。前述のプレフィックス+wで表示される一覧では、各ウィンドウの番号と名前(設定していれば)が表示されます。上下キーで選択後Enterでそのウィンドウへ移動できます。大量のウィンドウを開いている場合でも、この一覧から目的のウィンドウを探せるため便利です。また、不要になったウィンドウを積極的に閉じて整理することも大切です。ウィンドウの閉じ方は、後述のペインとウィンドウの閉じ方の節で説明しますが、プレフィックス+&で現在のウィンドウを閉じることができます。

なお、tmuxにはウィンドウを並び替えるコマンドもあります。デフォルトでは作成順に番号が振られますが、tmux move-window -t 新しい番号でウィンドウの番号を変更できます(プレフィックス+.からのプロンプト入力でも可能)。これにより、関連するウィンドウを隣接した番号にまとめるといった整理もできます。しかし、基本的な利用ではそこまでしなくとも名前付けと不要ウィンドウのクローズで十分整理できるでしょう。

ペインの水平・垂直分割:画面を上下左右に分割して同時表示する方法

tmuxの強力な機能の一つが、ウィンドウ内の画面を複数のペインに分割できることです。1つのウィンドウを上下や左右に区切って複数のコンソール画面を同時表示できるため、ログを見ながらコマンドを打つといった並行作業が容易になります。ペインの水平分割(上下に画面を並べる)は、プレフィックスCtrl+Bに続けて"(ダブルクオーテーション)キーを押します。すると現在のペインが上下二つに分割され、上下にシェルが表示されます。次に垂直分割(左右に並べる)は、プレフィックスに続けて%キーを押します。現在のペインが左右に分割され、左と右にシェルが配置されます。

ペイン分割のコマンドは、tmuxのバージョンによっては少し異なるオプションもあります。コマンドラインから実行する場合、tmux split-window -hで左右に、tmux split-window -vで上下に分割する、といった指定も可能です(-hはhorizontalの略で左右、-vはverticalで上下と覚える)。ただ、多くの場合はショートカットキー経由で分割する方が素早く便利です。

こうして複数のペインに分割すると、同一ウィンドウ内で複数のターミナル画面が並びます。例えば上部ペインでコードエディタを開き、下部ペインでサーバを起動し、そのログをリアルタイムに見る、といった使い方ができます。また、右側ペインで別のディレクトリに移動してファイルを参照しながら、左側ペインで作業するといったことも可能です。ペイン分割によって、一つの画面上で様々な情報を同時に確認できるため、複数のウィンドウを切り替える手間が減り、効率的な作業が実現します。

ペイン間の移動とサイズ調整:複数ペイン間を移動し、大きさを調整する方法

分割したペインは、自由に移動・フォーカス切り替えができます。今アクティブでない隣のペインに移動したいときは、プレフィックスCtrl+Bに続けて矢印キー(←→↑↓)を押します。方向キーに対応した隣接ペインへフォーカスが移動し、そのペインでキーボード入力ができるようになります。複数ペインがある場合、素早く移動できるこのショートカットは頻繁に使うことになるでしょう。また、Ctrl+Bに続けてoキーを押すと、現在のペインから次のペインへ順番にフォーカスを移動できます(サイクル切り替え)。

ペインのサイズ調整も可能です。デフォルト状態では、各ペインは自動で均等配置されますが、手動で広さを変えたい場合は、プレフィックスCtrl+Bを押しながら矢印キーを押してみてください。上下左右にペインの境界が少しずつ移動し、ペインサイズを拡大縮小できます(このショートカットはtmuxのバージョンや設定によります。もし動作しない場合は後述の設定ファイルで有効化も可能です)。または、プレフィックスCtrl+B後に:でコマンドモードに入り、resize-paneコマンドを使って細かくサイズ指定することもできます。

複数ペインを扱っていると、ペインのレイアウトをリセットしたくなる場合もあります。そんなときは、プレフィックスCtrl+Bに続けてSpaceキーを押すことで、tmuxが用意する複数のレイアウト(均等配置、上下3分割など)に切り替えることができます。自動レイアウトを活用すれば、たとえサイズ調整で崩れた配置でも一発で綺麗に整えられるので便利です。

ペインとウィンドウの閉じ方:不要になったペインやウィンドウを閉じる手順

使い終わったペインウィンドウは適時閉じて整理しましょう。ペインを閉じるには、そのペインで実行中のシェルを終了すればOKです。具体的にはexitコマンドを入力するか、Ctrl+Dでシェルを閉じます。するとペインが消えて残りのペインが自動的に画面全体に拡大されます。また、ショートカットを使う場合は、閉じたいペインにフォーカスを当て、プレフィックスCtrl+Bに続けてxキーを押します。すると「Kill pane? (y/n)」と確認が出るので、yを押せばそのペインが閉じられます。

ウィンドウを閉じる場合も似ています。現在表示中のウィンドウを閉じたいときは、プレフィックスCtrl+Bに続けて&キーを押します(Kill windowの意味)。確認メッセージが出るのでyで実行すれば、そのウィンドウ内の全ペイン(シェル)が終了しウィンドウが閉じられます。なお、tmuxを終了せずに単にウィンドウを減らしたい場合は、exitでシェルを抜ける方法よりも&キーのほうが一度に全ペインを閉じてくれるので便利です。

万が一、閉じたくないウィンドウやペインを誤って閉じてしまった場合、基本的には元に戻せません(エディタで作業中だった場合はファイルの内容が消える恐れもあります)。大事な作業中のウィンドウを閉じる際は十分注意してください。一方で、開きっぱなしで不要になったウィンドウやペインは積極的に閉じることで、リソースの無駄遣いや混乱を防げます。tmuxでの作業に一区切りついたら、適切に画面を片付けておく習慣をつけると良いでしょう。

よく使うtmuxコマンド集:セッション管理やウィンドウ操作など頻出コマンドとその用途を一挙に紹介・解説

tmuxには多数のコマンドが用意されていますが、日常的によく使う基本的なものは限られています。この章では、tmux利用時によく登場する主要なコマンド群をカテゴリー別にまとめ、その用途や効果について説明します。セッション管理、ウィンドウ・ペイン操作、その他便利機能に分けて紹介しますので、チートシート的に活用してください。

セッション管理に役立つ主要コマンド:新規セッション作成や一覧表示、デタッチ/アタッチなど

まずはセッションの管理に関するコマンドです。セッションを作ったり切り替えたりする際によく使うものを挙げます。

  • tmux new -s 名前:名前を指定して新規セッションを作成します(tmux new-sessionでも同等)。
  • tmux lstmux list-sessions):現在実行中のセッション一覧を表示します。セッション名やウィンドウ数が確認できます。
  • tmux attach -t 名前:指定した名前のセッションにアタッチ(接続)します。最後にデタッチしたセッションならtmux attachだけでも可。
  • tmux detach:現在接続中のセッションからデタッチします。こちらはtmux内から実行するコマンド版で、通常はCtrl+BDのキー操作で行います。
  • tmux switch-client -t 名前:現在の端末を別のセッションに切り替えます。tmux内のコマンドモードから使用することもできます。
  • tmux rename-session -t 旧名 新名:セッションの名前を変更します。tmux内ならCtrl+B$で対話的に変更可能です。
  • tmux kill-session -t 名前:指定したセッションを強制終了します。

セッション管理系のコマンドは、tmuxをマルチセッションで活用する際に欠かせません。特にtmux ls(list-sessions)で現在の状況を把握し、tmux attachで戻りたいセッションに接続する操作は頻繁に行われます。また、セッション名を工夫して運用すると、コマンド入力の手間が減り便利です。

ウィンドウ・ペイン操作の主要コマンド:ウィンドウ作成、分割、切替、クローズなど

次にウィンドウやペインの操作に関するコマンドです。キーボードショートカットでも紹介した内容と重複しますが、tmuxコマンドとして覚えておくとスクリプトで自動操作したい場合などにも役立ちます。

  • tmux new-window -n 名前:新しいウィンドウを作成します(名前は任意指定)。
  • tmux split-window -h:現在のペインを左右に分割します(-vオプションなら上下分割)。
  • tmux select-window -t 番号:指定した番号のウィンドウにフォーカスを移動します。
  • tmux select-pane –方向:指定方向(L,R,U,D=左/右/上/下)に隣接するペインへ移動します。
  • tmux swap-pane -t ターゲット:現在のペインを他のペイン位置と入れ替えます(レイアウト整理に便利)。
  • tmux kill-window -t 番号:指定したウィンドウを閉じます(kill-paneでペイン個別終了)。

一般的な操作はショートカットで事足りますが、tmuxコマンドとして知っておくと、.tmux.confでカスタムキーを設定する際やスクリプトでtmux操作を自動化する際に活用できます。例えば、開発環境起動時に決まったレイアウトのtmuxセッションを立ち上げたい場合、new-windowsplit-windowを順次呼ぶシェルスクリプトを用意することも可能です。

その他知っておきたい便利なコマンド:コピーモードやプラグイン管理など拡張機能

最後に、tmuxのその他の便利機能に関するコマンドをいくつか紹介します。

  • tmux list-keys:現在のすべてのキーバインド(ショートカット)一覧を表示します。カスタマイズを確認したいときに便利です。
  • tmux list-commands:tmuxで利用可能な全コマンドの一覧を表示します。内部的なコマンドも含め確認できます。
  • tmux capture-pane -p:現在のペイン内容をバッファにコピーします(-pはstdout出力)。ログを取る際などに使用できます。
  • tmux show-options -g:現在のグローバルオプション設定を一覧表示します(-wでウィンドウ単位、-sでセッション単位のオプション)。
  • tmux source-file ファイル名:指定した設定ファイルを読み込み、設定を反映します。~/.tmux.confを再読み込みしたいときにも使います。
  • tmux run-shell スクリプト:tmuxからシェルスクリプトを実行します。プラグインマネージャ(後述)をインストールする際などに利用されます。

tmuxには他にも多彩なコマンドがありますが、まずはここで挙げた基本的・便利なものから使ってみてください。特にlist-keysshow-optionsは、tmuxの挙動を理解・カスタマイズする上で非常に役立ちます。また、tmuxはプラグインによって機能拡張も可能で、その際にrun-shellでスクリプトを呼び出すケースがよくあります。高度な使い方は必要になったときに徐々に覚えていけば問題ありません。

設定ファイル(.tmux.conf)の書き方:基本的なカスタマイズ手順と便利な設定例、注意点も含めて解説

tmuxを自分好みに使いやすくするには、ホームディレクトリに配置する設定ファイル(.tmux.conf)を編集します。この章ではtmuxの設定ファイルの基本的な書き方から、よく行われるカスタマイズの例、そして設定変更を反映する方法や注意点について説明します。デフォルトの挙動に不便を感じたら、設定ファイルを見直して快適な環境を構築しましょう。

tmux設定ファイルの基本構文:.tmux.confにおけるオプション設定の書式と記述ルール

tmuxの設定ファイルは、通常ホームディレクトリ直下に~/.tmux.confという名前で配置します(システム全体では/etc/tmux.confも読み込まれますが、個人用設定はホーム下でOKです)。このファイルにはtmux起動時に読み込ませたい各種設定コマンドを記述します。基本的な書式は、tmuxコマンドと同じ内容を記載するだけです。

例として、オプションを設定する場合はset-optionコマンド(短縮形set)を使います。書式はset -スコープ オプション名 です。スコープには-g(グローバル全セッション共通)、-s(セッション単位)、-w(ウィンドウ単位)などがあります。例えば「マウス操作を有効化する」設定はset -g mouse onと記述します。また、ショートカットキーの設定変更にはbind-keyコマンドを使用します。こちらはbind キー アクションのように書き、既存のバインドを無効にする場合はunbind-keyコマンドを使います。

設定ファイル内では、#を先頭に付けるとコメント行となり、その行は無視されます。他のプログラミング言語の設定ファイルと同様に、必要に応じてコメントを入れておくと後で見直す際に便利です。tmux.confはスペースやタブもそのまま解釈されるので、整形のためにインデントを付けることも可能ですが、あまり複雑なネスト構造はないため基本は行ごとに1設定を書いていくスタイルになります。

よく使われる設定項目の例:プレフィックスキー変更やマウス有効化など基本設定

tmux.confで真っ先に検討されるのが、プレフィックスキー(リーダーキー)の変更です。デフォルトではCtrl+Bですが、人によっては押しにくかったり他のツール(GNU ScreenではCtrl+Aがデフォルト)との兼ね合いで変更したい場合があります。例えばCtrl+Aに変えたい場合、設定ファイルに次の2行を追加します。

unbind C-b
set -g prefix C-a

これで旧プレフィックスCtrl+Bを無効化し、新たにCtrl+Aをプレフィックスキーに設定できます。注意: prefixキーを変更した場合、以後tmux内の全ショートカットはCtrl+A(新prefix)で始まるようになるので、慣れるまで混乱しないよう気を付けましょう。

次によく行われる設定は、マウス操作の有効化です。デフォルトではtmux内でマウスを使った選択やスクロールが無効になっていますが、設定でオンにできます。set -g mouse onと記述すれば、ペイン間の境界をマウスでドラッグしたり、ウィンドウやペインをクリックして選択したりといった操作ができるようになります。マウスコピーもこの設定で有効になりますが、tmux独自のコピー機能とターミナルエミュレータ側のコピー機能が競合する場合があるため、マウスを使うかキーボード操作中心かは好みで設定してください。

他にも基本的な設定項目として、スクロールバックバッファの行数を増やすset -g history-limit 5000(5000行分保持)や、ペインやウィンドウ移動時にアニメーション効果を無効化して動作を軽快にするset -g pane-active-border-style fg=green(アクティブペインの枠色変更で視認性向上)等があります。これらは必要に応じて適宜追加すると良いでしょう。

ステータスバーのカスタマイズ:ステータスラインの配色変更や情報表示の設定

tmux画面下部のステータスバーもカスタマイズ可能です。デフォルトではセッション名、ウィンドウ一覧、日時などが表示されていますが、これを自分好みに変更できます。例えば色の変更は以下のように行います。

set -g status-bg colour4
set -g status-fg white

上記の例ではステータスバー背景をブルー系(colour4)、文字色を白に設定しています。colour0colour255までのカラーコードや、red/green等の色名が利用できます。

また、ステータスバーに表示する情報の内容も設定可能です。status-leftstatus-rightオプションで左右に表示する文字列を指定できます。例えば左側にセッション名とホスト名を表示するには:

set -g status-left "[#S] #(hostname) "

#Sはtmuxで定義された変数でセッション名に展開され、#(hostname)はホスト名コマンドの出力を埋め込んでいます。このように、ステータスバーには任意のテキストやコマンド実行結果を埋め込めるため、工夫次第でシステム情報やGitブランチ、バッテリー残量などを表示させることも可能です。

ステータスバー周りの設定は凝り始めるとキリがありませんが、作業に有用な情報を厳選して表示することで、tmux環境をより便利にすることができます。

設定ファイルの適用方法:tmux起動時の自動読み込みと手動での設定リロード

編集したtmux.confの内容を反映させるには、通常tmuxを再起動する必要があります。tmuxは起動時に~/.tmux.confを読み込むため、一度セッションを全て終了し、再度tmuxを起動すれば新しい設定が適用されます。ただし、現在実行中のセッションを維持したまま設定を読み込み直したい場合もあるでしょう。その場合は、tmux内でプレフィックスCtrl+Bに続けて:キーを押し、コマンドモードで次を入力します。

source-file ~/.tmux.conf

これで現在のセッションに対し、設定ファイルの内容が即座に適用されます。ただし、一部の設定(プレフィックスキー変更など)は既に実行中のセッションでは完全には反映されないことがあります。その場合は全セッションを再起動するのが確実です。

tmux.confを編集する際の注意点としては、スペルミスやオプション名の間違いがあると起動時にエラーが出たり設定が無視されたりすることです。tmux起動時に「unexpected character」などのエラーが表示された場合、設定ファイルの該当行を見直してください。また、バージョン差異によって利用できないオプションも存在します。自分のtmuxバージョンに合った設定かどうか、公式マニュアル等で確認すると安心です。

よく使われるショートカットキー:tmuxで覚えておくべき主要キー操作(プレフィックスや分割切替など)の一覧

tmuxを快適に操作するには、キーボードから直接操作できるショートカットキーの活用が欠かせません。ここでは、tmux初心者がまず覚えるべき主要なキー操作を、カテゴリ別に一覧で紹介します。セッション操作、ウィンドウ操作、ペイン操作、コピー&ペースト操作の各グループに分け、それぞれ代表的なショートカットとその動作を説明します。手が覚えるまで繰り返し使ってみましょう。

セッション操作のショートカットキー:セッション作成・終了・デタッチ・アタッチなど

  • tmuxコマンド実行:新規セッションを開始(シェル上でコマンド入力)
  • Ctrl+B D:現在のセッションをデタッチ(バックグラウンド実行に切り替え)
  • tmux attachコマンド:デタッチ済みセッションに再接続(最後のセッションへ)
  • Ctrl+B s:セッション一覧を表示し、選択してアタッチ
  • Ctrl+B $:現在のセッション名を変更(プロンプトで新名入力)

セッション関連では、tmuxコマンド自体(新規開始・アタッチ)と、デタッチ操作が特に重要です。セッション一覧表示のCtrl+Bsは、複数セッションを管理するときに便利なので覚えておきましょう。

ウィンドウ操作のショートカットキー:新規ウィンドウ作成・移動・名前変更・クローズなど

  • Ctrl+B c:新しいウィンドウを作成
  • Ctrl+B n/p:次のウィンドウ/前のウィンドウに移動
  • Ctrl+B 0-9:指定番号のウィンドウにジャンプ
  • Ctrl+B ,:現在のウィンドウ名を変更(プロンプトで入力)
  • Ctrl+B w:ウィンドウ一覧を表示して選択
  • Ctrl+B &:現在のウィンドウを閉じる

ウィンドウ操作はtmuxの基本です。新規ウィンドウ作成Ctrl+Bcと、移動系のCtrl+Bn/p、そしてCtrl+B&(閉じる)は特によく使います。ウィンドウ名変更の,も余裕があれば活用しましょう。

ペイン操作のショートカットキー:分割・移動・サイズ変更・閉じるなど

  • Ctrl+B ":現在のペインを水平(上下)分割
  • Ctrl+B %:現在のペインを垂直(左右)分割
  • Ctrl+B 矢印キー:隣のペインに移動(←↑↓→方向)
  • Ctrl+B o:他のペインにフォーカスを移す(順送り切替)
  • Ctrl+B Ctrl+矢印:ペインのサイズを調整(※設定により有効)
  • Ctrl+B x:現在のペインを閉じる
  • Ctrl+B Space:ペインのレイアウトを自動整列(複数回押して変更)

ペイン操作はウィンドウ内でのマルチタスクに不可欠です。水平・垂直分割の"%、ペイン移動の矢印キー、ペイン閉じのxは頻出操作となります。サイズ変更用のCtrl+矢印はデフォルトで動かない場合もありますが、必要に応じて設定で有効化できます。

コピーとペーストのショートカットキー:コピーモードでのテキスト選択・貼り付け操作

  • Ctrl+B [:コピーモード開始(画面スクロール・テキスト選択が可能に)
  • コピーモード中:矢印キーやPageUp/PageDownで画面スクロール
  • コピーモード中:Spaceキーでコピー範囲開始、Enterキーで範囲終了(テキストコピー)
  • Ctrl+B ]:コピーしたテキストを貼り付け(ペースト)
  • Ctrl+B ?:すべてのキーバインド一覧を表示(コピー操作の確認にも便利)

tmuxのコピー&ペーストは独自のバッファを使う点がポイントです。Ctrl+B[でコピーモードに入り、キーボードでテキストを選択してコピーし、Ctrl+B]で貼り付ける、という流れになります。慣れないうちは操作が難しく感じるかもしれませんが、キーボードだけで完結できる利点があります。マウスでのコピーを多用する場合は前述のmouse設定をオンにするか、OS側のクリップボードとtmuxのバッファを連携させるプラグインの利用も検討すると良いでしょう。

開発環境でのtmux活用例:効率的な開発フローを実現するtmuxの利用シーン紹介(ペアプロやサーバ監視など)

tmuxの具体的な活用例をいくつか挙げてみましょう。エンジニアの開発現場では、tmuxを使うことで効率化できるシーンが多々あります。ここでは、長時間実行するプロセスの管理、複数ウィンドウを使った並行作業、ペアプログラミングでの使用、そしてリモート開発環境でのtmux活用といった例を紹介します。これらの例を参考に、自身の作業フローにtmuxを取り入れてみてください。

長時間実行プロセスの管理:tmuxでコマンドを実行しつつセッションを切り離して後で再接続

ソフトウェアのビルドやデータ処理など、実行に時間がかかるコマンドを動かす際にtmuxは大いに役立ちます。例えば大規模なプロジェクトのビルドをターミナルで開始したものの、完了まで数十分〜数時間かかる場合、tmuxセッション内でビルドを実行しておけば、その間ターミナルを閉じたりPCの作業を中断したりできます。具体的にはビルド開始後にCtrl+BDでデタッチし、PCをスリープしたり場所を移動したりしても、ビルドはサーバ上で継続します。後で戻ってきてtmux attachすれば、ログの続きを確認でき、ビルド結果をその場で確認できます。

同様に、サーバ上で動かす長時間の機械学習ジョブやデータベースのマイグレーション処理などもtmux経由で実行しておけば、途中で接続が切れても安心です。通常のSSH接続ではネットワーク断でジョブが止まってしまうことがありますが、tmuxを使っていればセッション切断に影響されず、プロセスは完走します。大事な長時間ジョブは「tmuxで走らせる」が定石と言えるでしょう。

複数ウィンドウによる同時作業:コード編集・ビルド・ログ確認を一画面で並行実行

tmuxのマルチウィンドウ・マルチペイン機能は、開発中の並行作業に力を発揮します。例えばWeb開発を想定すると、一つのtmuxセッション内で以下のように環境を構築できます。

  • ウィンドウ0:コードエディタを起動(vimやnano等でソース編集)
  • ウィンドウ1:ビルドやテストの実行用(コンパイルコマンドやユニットテストを実行)
  • ウィンドウ2:開発サーバの起動(ローカルサーバを立ち上げてアプリを実行)
  • ウィンドウ2内ペイン分割:サーバのログ出力を監視するtailコマンド実行

上記のように、編集・ビルド・実行・ログ確認といった工程をそれぞれ別ウィンドウ/ペインで開いておけば、画面を切り替えるだけで状況を把握できます。特にログ監視をしながらコードを修正するといった場合、tmuxペインでログのtail -fを流しつつ、別ペインでvim編集→保存→ビルド→即座にログ確認、といったサイクルを一瞬で回せます。これにより、複数のターミナルウィンドウを行き来するよりも集中して効率的に作業ができるでしょう。

また、tmuxのレイアウトを使って画面を縦横に分割配置すれば、一つのモニタ上で複数の端末情報を視認できます。例えば横長のディスプレイでは左右にコード編集とログ、縦方向にさらにペイン分割して別コマンド、というように配置すると非常に作業しやすくなります。tmuxはGUIのIDEとは異なりテキストベースですが、使いこなせばIDEのようなマルチウィンドウ環境をターミナル上で実現できるのです。

ペアプログラミングでの活用:セッション共有によるリアルタイム共同作業

リモートでのペアプログラミングやチームでのデバッグ作業にもtmuxは活用できます。同じtmuxセッションに複数人が同時にアタッチすると、全員が同じターミナル画面を共有できます。一人が入力したコマンドや編集内容がそのまま他のメンバーの端末にも表示されるため、まるで隣で同じ画面を見て作業しているかのような共同作業が可能です。

具体的な手順としては、共有したいtmuxセッションを立ち上げ、そのセッション名を他のメンバーに伝えます。メンバーはSSH等で同じサーバに接続し、tmux attach -t セッション名で参加します。既に誰かがアタッチ中でも複数クライアント接続が可能なので、全員が同じ画面を見ながら作業できます。これにより、「画面共有ツールを使って口頭で操作を伝える」といった手間を省き、直接同じターミナルにアクセスして議論しながらコーディングやデバッグができます。

注意点として、同一セッションでは全員がコマンド入力できるため、操作が競合しないように役割分担や声掛けをしながら進める必要があります。また、閲覧に徹するメンバーはtmux attach -r(read-onlyモード)で接続すると誤入力を防げます。tmuxを使ったペアプロはリモートワーク時代において非常に有用なテクニックなので、機会があれば是非試してみてください。

リモート開発環境での利用:SSH先でtmuxを使った安定した作業セッション管理

クラウド上や社内サーバ上のリモートマシンで開発を行うケースでも、tmuxは重宝します。SSHでリモートマシンに接続して作業する際、tmuxを使うことでネットワークの不安定さによる作業中断を防ぐことができます。例えばSSH接続中に一時的に回線が切れても、tmux上で作業していればセッションはサーバ側で存続しているため、再接続してtmux attachするだけで元の状態に復帰できます。ネットワーク越しの開発では、tmuxはセッションの保険とも言える存在です。

さらに、リモートサーバ上で複数の作業を並行したり監視したりする際もtmuxが威力を発揮します。例えばサーバAにSSH接続してtmuxセッションを開始し、そこでアプリケーションの起動、ログ監視、データ確認用のSQLコンソールなど複数ペインを開いて作業を進める、といったことができます。一連の作業が終わらなくても、一旦tmuxをデタッチしてSSHを切断し、自分のPCを持ち帰り、後で再度SSH接続して続きから再開する、といった柔軟な働き方も可能です。

リモート環境では、tmuxを使うことで作業セッションをサーバ側に保持できるため、クライアント側(自分のPCやネット環境)の影響を最小限に抑えられます。これは効率面だけでなく安全面でもメリットがあります(作業途中での不意な切断による中途半端な状態を防ぐ)。リモートマシンでターミナル操作を行う際は、ぜひtmuxを活用して安定した開発セッションを維持してください。

トラブルシューティング・よくあるエラーと対処法:tmuxで起こりがちな問題とその解決策を徹底解説!

便利なtmuxですが、使い始めの頃につまずきやすいポイントや、よく遭遇する問題もいくつか存在します。この章では、tmux利用中によくあるトラブルとその対処法について解説します。セッションが消えてしまった場合の対応、プレフィックスキーが効かない場合の確認事項、画面表示の乱れや文字化けへの対処、コピー&ペーストの問題、その他一般的なエラーについて順に見ていきましょう。適切な対処法を知っておけば、いざ問題が発生しても落ち着いて対応できます。

セッションが切断・消失する場合:デタッチ忘れやサーバ再起動時のセッション維持対策

tmuxセッションが思いがけず消えてしまった、という経験はないでしょうか。一般的に、tmuxセッションはデタッチしておけばバックグラウンドで残るはずですが、いくつかの場合でセッションが終了してしまうことがあります。まず考えられるのは、サーバ側が再起動したケースです。OSの再起動や意図しないプロセスkillが発生すると、当然tmuxセッションも失われてしまいます。この場合、残念ながら再起動後に新たにセッションを作り直すしかありません。重要なセッションの場合は事前にサーバ再起動がないか注意しましょう。

次に、SSH接続先でtmuxを使っている場合にデタッチし忘れて接続を閉じたケースです。本来、SSHセッションが切れてもtmuxセッションは残る設計ですが、環境によっては親プロセス(SSH)が切れた際に子プロセスであるtmuxが終了してしまうことがあります。安全策として、SSHを切る前にはCtrl+BDで確実にデタッチする習慣をつけると良いでしょう。そうしておけば、仮にネットワークが突然切断された場合でもtmuxセッションは残っているはずです。

デタッチしたはずなのにtmux attachしても「no sessions」などと表示されセッションが見つからない場合、既にセッションが終了している可能性が高いです。この場合、新規にセッションを作り直すしかありません。なお、複数人でtmuxを共有しているときに他の人がtmux kill-server等を実行すると全セッションが終了してしまうので注意してください。tmuxセッションが予期せず消える原因を切り分け、適切に対処することで、貴重な作業状態を失わずに済みます。

プレフィックスキーが反応しない場合:キーバインドの競合や設定ミスの確認方法

tmux操作の起点であるプレフィックスキー(デフォルトではCtrl+B)がうまく反応しないという相談もしばしばあります。まず確認すべきは、自分でtmuxのprefixを変更していないかです。~/.tmux.confset -g prefix C-aのような設定を入れたまま忘れていると、Ctrl+BではなくCtrl+AがプレフィックスになっているためCtrl+Bが効きません。設定ファイルを確認し、意図しない変更が入っていないか確認しましょう。

次に、ターミナルエミュレータ側でのキー競合がないかも見てみます。例えば、ターミナルソフトの設定でCtrl+Bに何か別の機能(ペイン切り替えなど)を割り当てていると、tmuxにはそのキーが届きません。TerminalやiTerm2、Windows Terminalなどのキーバインド設定を確認し、Ctrl+Bが予約されていないかチェックします。

また、多重(ネスト)tmuxの場合も注意が必要です。既にtmux内にいる状態でさらに別のtmuxを起動すると、両方でCtrl+Bがプレフィックスとして機能するため、意図しない動作になります。内側のtmuxではプレフィックスを別キー(例えばCtrl+A)に変えるなど工夫しないと操作が困難です。ネストしてtmuxを使うシチュエーションは多くありませんが、SSH先でtmuxを開き、さらにそこから別ホストにSSHしてまたtmux…という時に起こりえます。可能な限り二重にはせず、一つのtmuxで複数ホストを見るような構成をとると良いでしょう。

もしプレフィックスキーが効かなくなった場合でも、tmuxコマンドを直接叩けば操作は可能です(例:tmux detachでデタッチなど)。根本原因を特定し、適切に対処することで快適なキーバインド操作を取り戻せます。

画面表示の乱れや文字化け:端末のTERM設定や文字コードの不一致への対処

tmux使用中に画面表示が崩れる、文字化けが起こる、といった現象も時折報告されます。例えば罫線(境界線)の表示がおかしくなったり、←[2;5Rのような制御コードが表示されてしまったりする場合です。まず疑うべきは環境変数TERMの設定です。tmuxは内部的にscreen互換の端末として動作するため、デフォルトではTERM=screenscreen-256colorを使用します。SSH先のシェルやローカル端末でTERMが不適切に設定されていると、ターミナルの互換性問題で表示乱れが発生することがあります。対策として、tmux内ではTERMscreen-256color(カラー対応の場合)になっているか確認し、必要ならexport TERM=screen-256colorを設定してみてください。

次に文字コードの不一致による文字化けです。日本語環境ではUTF-8が主流ですが、サーバ側のロケール設定が合っていないとtmux上で日本語が「���」のように文字化けすることがあります。localeコマンドで環境の文字コードを確認し、不一致があればLANGLC_CTYPEを適切なUTF-8に設定してください。また、ターミナルフォントが特殊文字(例:パワーライン記号など)に対応しておらず■に見えてしまう場合もあります。その場合はフォントを変えるかシンボリックリンクで代替文字を設定する必要があります。

画面の乱れに関しては、一時的なものであればCtrl+BCtrl+L(画面再描画)を試す手もあります。tmux内の描画がリフレッシュされ、崩れが直ることがあります。それでも改善しない根本的な問題は、大抵TERMやlocale設定に起因するので、そこを見直してみましょう。

コピー&ペーストができない場合:マウスモード設定やクリップボード連携ツールの導入

tmuxでのコピー&ペーストがうまくいかない、という声も多く聞かれます。具体的には「tmux内でコピーしたはずのテキストを他のアプリに貼り付けできない」「マウスで範囲選択してもコピーできない」といったケースです。これはtmuxが独自のコピー機構を持つためで、デフォルトではtmux内でコピーした内容はtmux内部のバッファに保存され、システムのクリップボードとは連動しません。

対処法はいくつかあります。まず、tmux内のテキストをシステムクリップボードにコピーしたい場合、Linux環境であればxclipxselといったコマンドラインツールを使う方法があります。tmuxの設定で、コピー操作時にrun-shellxclipに内容を渡すようにすれば、選択テキストが自動でクリップボードにコピーされます。macOSでは同様にpbcopyコマンドを使う、またはtmuxとmacOS間のペーストボード橋渡しを行うreattach-to-user-namespaceというユーティリティを導入すると改善します。

マウスでのコピーができない問題については、tmuxのmouseモード設定に注意が必要です。mouseをonにするとtmux内の選択はtmux管理になります。この状態で普通にドラッグしてもシステムにはコピーされず、tmuxのコピー動作になります。システム標準のコピーを使いたい場合は、一時的にShiftを押しながらドラッグするとtmuxを介さず選択できます。または、いっそset -g mouse offにしておき、通常はマウス未使用で、コピー時だけマウスでドラッグしてコピー→ペーストする、と割り切る手もあります。

tmuxとクリップボード連携は少々難解ですが、プラグイン(tmux-yankなど)を利用すると比較的簡単に解決できます。そうしたツールの導入も視野に入れつつ、自分の使用スタイルに合ったコピー&ペースト手段を確立しましょう。

その他の一般的なエラー:tmux起動エラーやソケット権限問題への対処法

上記以外にもtmuxで遭遇しがちなエラーメッセージと対処法を簡単に紹介します。

「open terminal failed: missing or unsuitable terminal: xterm-256color」
tmux起動時にこのエラーが出る場合、TERM環境変数の値に対応するターミナル情報がシステムに無いことが原因です。端末のTERMscreen-256colorに変えるか、ncurses-termパッケージをインストールしてxterm-256colorを利用可能にすると解決します。

「failed to connect to server: Connection refused」
tmuxコマンド実行時にこのエラーが出る場合、既存のtmuxサーバプロセスに接続できない状態です。古いセッションが異常終了してソケットファイルが残っている可能性があります。tmux lsでもセッションがない場合、/tmp/tmux-$UID/ディレクトリ配下のソケットファイルを削除してから再度起動してみてください。

「can’t create socket: Permission denied」
tmuxのソケットファイル(デフォルト/tmp/tmux-$UID/default)に対して権限エラーが発生しているケースです。過去にrootでtmuxを動かした後、そのソケットが残っていると通常ユーザーでアクセスできずこのエラーになります。対応策は/tmp/tmux-$UIDディレクトリごと削除(または所有権変更)してからtmuxを起動し直すことです。

その他、設定ファイルの誤りでtmuxが起動しないこともあります。その際はtmux -vv newでデバッグログを出力し、原因を突き止めると良いでしょう。いずれにせよ、エラーメッセージを落ち着いて読み、必要なら環境設定やファイルの状態を確認することで、多くの問題は解決できます。

以上、tmuxの基本から応用、トラブルシューティングまでを総合的に解説しました。tmuxは最初こそとっつきにくい部分もありますが、一度ワークフローに組み込めば手放せない強力なツールとなります。本記事を参考に、自分なりのtmux活用術をぜひ見つけてみてください。

資料請求

RELATED POSTS 関連記事