<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Terminal on Blog</title><link>https://blog.wtnqk.org/tags/terminal/</link><description>Recent content in Terminal on Blog</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Wed, 14 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.wtnqk.org/tags/terminal/index.xml" rel="self" type="application/rss+xml"/><item><title>tmux学習</title><link>https://blog.wtnqk.org/posts/2026-01-14/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.wtnqk.org/posts/2026-01-14/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;開発作業をしていると、複数のターミナルセッションを効率的に管理したいと思うことはありませんか？SSHで作業中に接続が切れて、実行中のプロセスが止まってしまった経験はないでしょうか？&lt;/p&gt;
&lt;p&gt;今回は、そんな悩みを解決してくれるターミナルマルチプレクサ「tmux」の魅力について紹介します。&lt;/p&gt;
&lt;h2 id="tmuxとは"&gt;tmuxとは&lt;/h2&gt;
&lt;p&gt;tmuxは、1つのターミナルで複数のセッションを管理できるターミナルマルチプレクサです。
以下がtmuxの特徴になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;セッションの永続化&lt;/strong&gt;: デタッチ・アタッチ機能により、ターミナルを閉じても作業を継続可能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;画面分割&lt;/strong&gt;: 1つの画面を複数のペインに分割して作業効率UP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSHセッションの保護&lt;/strong&gt;: 接続が切れても実行中のプロセスは継続&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="なぜtmuxを選ぶのか"&gt;なぜtmuxを選ぶのか&lt;/h2&gt;
&lt;h3 id="設計思想コアは薄く拡張性は高く"&gt;設計思想：「コアは薄く、拡張性は高く」&lt;/h3&gt;
&lt;p&gt;tmuxの最大の魅力は、必要最小限の機能だけを提供し、ユーザーが自由に拡張できる設計にあります。これにより、&lt;strong&gt;&amp;ldquo;for me&amp;quot;な環境&lt;/strong&gt;を自分で作る楽しさを体験できます。&lt;/p&gt;
&lt;h3 id="プロセスとターミナルの分離"&gt;プロセスとターミナルの分離&lt;/h3&gt;
&lt;p&gt;tmuxはクライアント・サーバーアーキテクチャを採用しており、ターミナル（表示）とプロセス（実行）が分離されています。通常のターミナルでは、ターミナルを閉じるとそこで実行中のプロセスも一緒に終了してしまいますが、tmuxではサーバー側でプロセスが動作し続けるため、ターミナルの切断がプロセスに影響しません。&lt;/p&gt;
&lt;p&gt;これが特に活きる場面として：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;バッチ実行中のSSH切断&lt;/strong&gt;: 長時間かかるデプロイやビルドの途中でSSH接続が切れても、プロセスはtmuxサーバー上で動き続ける&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ネットワーク不安定な環境&lt;/strong&gt;: 再接続して&lt;code&gt;tmux attach&lt;/code&gt;するだけで、作業状態がそのまま復元される&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;意図的なデタッチ&lt;/strong&gt;: 重い処理を走らせたまま&lt;code&gt;Ctrl-b d&lt;/code&gt;でデタッチし、別の作業に移れる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;nohup&lt;/code&gt;や&lt;code&gt;disown&lt;/code&gt; でも同様のことは可能ですが、tmuxなら実行中の出力をいつでも確認でき、対話的な操作も再開できる点が大きな違いです。&lt;/p&gt;
&lt;h3 id="豊富なプラグインエコシステム"&gt;豊富なプラグインエコシステム&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/tmux-plugins/list"&gt;tmux-plugins&lt;/a&gt;では、数多くのプラグインが公開されています：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;tmux-resurrect&lt;/strong&gt;: セッションの保存・復元&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tmux-continuum&lt;/strong&gt;: 自動保存機能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tmux-yank&lt;/strong&gt;: コピー機能の拡張&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tmux-fzf&lt;/strong&gt;: fuzzy finderとの連携&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tmuxの基本概念"&gt;tmuxの基本概念&lt;/h2&gt;
&lt;p&gt;tmuxは3つの階層で管理されます：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;セッション
├── ウィンドウ1（タブのような概念）
│ ├── ペイン1
│ └── ペイン2
└── ウィンドウ2
└── ペイン1
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;セッション&lt;/strong&gt;: プロジェクトごとなどの作業単位&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ウィンドウ&lt;/strong&gt;: ブラウザのタブのような概念&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ペイン&lt;/strong&gt;: 画面分割の単位&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="基本的な使い方"&gt;基本的な使い方&lt;/h2&gt;
&lt;h3 id="セッション管理"&gt;セッション管理&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 新規セッション作成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new -s session-name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# セッション一覧&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux ls
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# セッションにアタッチ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux attach -t session-name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# セッションからデタッチ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# セッション内で: Ctrl-b d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="よく使うキーバインド"&gt;よく使うキーバインド&lt;/h3&gt;
&lt;p&gt;デフォルトのプレフィックスキーは &lt;code&gt;Ctrl-b&lt;/code&gt; です：&lt;/p&gt;</description></item></channel></rss>