multiplexer)と呼ばれるソフトウェアです。複数のセッションを一つの画面で管理できる、プロセス管理機能を担う一面も持っています。上の画像では、1画面で3つのターミナルを操作しています。種類の異なるログをリアルタイムで表示するなど、様々な使い道があります。tmuxは非常に多機能なので、初学者にはとっつきにくいかもしれませんが、テキストエディタで設定ファイルを編集し、すぐに設定を反映させる場合など、複数画面の方が便利な場面が多いので、是非とも学習環境に導入していただきたいです。詳細「ログアウト後にも実行が継続されるようにプログラムにシグナルを送信する。」で重要なコマンドに位置づけられています。試験に出ると言うことだけでなく、本当に便利なコマンドなので普段でも使いこなせるようになりましょう。ver.5.0でも試験範囲てす。目次tmuxを使うメリットtmuxのインストールtmuxの起動と基本的な使い方tmuxで使われる特殊な用語セッション管理ウインドウとペインの管理デタッチとアタッチtmuxの代表的なサブコマンドtmuxを使うメリット複数のターミナルを管理するのに便利なtmuxですが、それ以上に使われる理由となっているのがリモートでの作業においてです。リモートでの作業中に、何らかの理由でホストへの接続が切れてしまった場合、作業が途中で終了してしまったり、大事なデータが保存されなかったり、様々なトラブルが発生する可能性があります。tmuxはこうした接続が切れた場合でも、作業に復帰できるデタッチ、アタッチ機能があります。普通に、作業途中でデタッチしたとしても、それまでの作業を記憶しており、アタッチ後にすぐに作業に復帰できるのがtmuxの魅力です。tmux参考:CentOS8ではパッケージ管理コマンドはyumからdnf推奨に変わりました。yumでも動作します。tmux目次へ戻るtmuxの起動と基本的な使い方tmuxの起動は同名コマンドの入力で行います。続けてサブコマンドを入力することで各種セッション操作が可能です。サブコマンドの詳細については後述します。[サブコマンド]それでは、早速tmuxを使ってみましょう。ターミナルでtmuxを入力します。tmux起動後は、プロンプトが表示されコマンド待機状態になっていますが、下に緑色のバーが表示されています。このバーはステータスラインと呼ばれており、ここでtmuxの状態を把握できます。細かく言うと、tmuxによってセッションが新たに開始され、1つのウインドウが表示されている状態です。現在はターミナルのプロンプトが表示されていますので、ステータスラインには「0:bash*」と表示されています。最後の「*」はアクティブな状態である事を示しています。0:bash*この状態で、次にtopコマンドを入力してみます。topはシステムとプロセスの状況を数秒間に1回の割合で継続的に表示し続けるコマンドですので、画面一杯に表示され、qキーで終了させない限りシェル操作はできません。ステータスラインには「0:top*」と表示されています。0:top*topを起動させたまま他の操作をしたい場合にtmuxが活躍してくれます。tmuxの様々な機能を使いこなすには独自のキー操作が必要になります。b」に続けて「c」キーを入力すると、tmuxは新たなセッションを呼び出します。ステータスラインには、0:topの右隣に「1:bash」が追加されています。1:bash*topが動作したまま裏側に映り、表に新たなターミナルが追加されたようなイメージです。b」のような独自のキー操作は「プレフィックスキー」と呼ばれており、tmuxではこのプレフィックスキーに続いて任意のキーやオプションを入力することで様々な操作ができます。b」が割り当てられています。Ctrlとbは同時押し、またはCtrlを押したまま追ってbを押しても有効です。b」に続いて「p」キーを押します。b」に続いて「n」キーを押します。pは「戻る」を意味するprevious、nは「次」を意味するnextの頭文字です。ちなみに、今回は2つのセッションの行き来なのでpでもnでも同じ動作をします。プレフィックスキーにcで新規セッションを追加。rootユーザーに切り換えて、tailコマンドで直近のシステムログを表示させてみます。/var/syslog/messagesこのように、何か作業をしながらでも、ウインドウを切り換えることで、リアルタイムで更新されるログを瞬時に確認できるのがtmuxの魅力です。ちなみに、今回のウインドウの切替は、アクティブなウインドウを起点にpとnで前後に移動できますが、ウインドウが増えた場合は、プレフィックスキーに数字が便利です。bに続いて0を押します。目次へ戻るtmuxで使われる特殊な用語ここでtmuxでよく使われる特殊な用語を整理してみます。プレフィックスキー:操作のために最初に押すキーセッション:tmuxによって管理される複数端末の集合体ウインドウ:セッションで管理される個別のウインドウペイン:ウインドウ内部で分割された領域デタッチ:セッションから切断アタッチ:デタッチしたセッションに再度接続tmuxでは様々なショートカットキー(プレフィックスキーに続く特定のキー操作)によって、ウインドウやペインを操作することで、目的に応じてターミナルを構成することができます。セッション管理セッションはtmuxコマンド入力する度に生成されます。GUI環境下でターミナルを複数立ち上げたりしている場合、それぞれのターミナルでtmuxコマンドを入力するとそれぞれが別のセッションになります。上で紹介しているウインドウが一つだけの状態で、新規にターミナルを立ち上げ、tmuxコマンドを入力します。一つ新規にターミナルを立ち上げ、tmuxコマンドの後にlsを入力してみましょう。lsで動作しているセッションとウインドウの状態が確認できます。上の例では、セッションが2つあり、1つめのセッションではウインドウが3つ動作していることがわかります。セッションの状態はtmuxのセッション上からも確認できます。プレフィックスキーの後に「s」キーを入力します。こちらでも、セッションが2つあり、1つめのセッションではウインドウが3つ動作していることがわかりますね。カーソルキーを押し、0番のセッションを選択してみましょう。3つのウインドウの概要も表示され内容が確認しやすくなっています。ウインドウとペインの管理tmuxを最も特徴付けているのが1つのウインドウを複数のペインに分ける機能です。それでは、上の3つのウインドウの内容を新たに1画面に表示させてみましょう。新規にセッションを開始して、プレフィックスキーに続いて「”」キーを押します。ウインドウが上下に分割されました。プレフィックスキーに続いて「%」キーを押します。アクティブだったウインドウが今度は左右に分割されました。3つに分割されたものそれぞれがペインです。ペインにも番号が振られており、プレフィックスキーに続いて「q」キーで確認できます。0のペインにtopを、1のペインにtailを入力してみます。ちなみに、ペイン間を移動する場合は、プレフィックスキーに続いて「o」を押します。プレフィックスキーに続いて上下左右のカーソルキーでも移動が可能です。当初別々のウインドウで表示していた情報を一つの画面に収めることができました。このように、複数のペインで構成したウインドウを複数動かしたり、目的に応じてセッションを分けるなど、実に多様な使い方ができるのがtmuxの魅力です。デタッチとアタッチtmuxで設定した状態を維持したまま、tmuxを抜けることも簡単です。これをデタッチと呼んでいます。プレフィックスキーに続いて、「d」キーを押します。2)]と表示されています。セッションに接続することをアタッチと呼びます。アタッチする場合はtmuxの後にサブコマンド「attach-session」を入力します。サブコマンドは、attach、またはaだけでもいけます。このデタッチとアタッチ機能がリモート接続時に威力を発揮するわけです。リモートホストにsshログインして、tmuxを動かしていれば、何らかのトラブルで接続が切れてしまっても、アタッチすることで作業に復帰できるというわけです。tmuxの代表的なサブコマンド他にもtmuxには様々なサブコマンドが用意されています。新しいセッションを作成する全ては紹介しきれませんので詳細は割愛しますが、興味のある方はこれまでの例を参考に実際に試してみてどのような動作をするかを確認してみてください。最後に、プレフィックスキーと組み合わせて使う代表的なショートカットキーをまとめておきます。helpを表示ショートカットキーは他にもたくさんありますが、上記のキーが一通り使えれば、自分好みのターミナルに仕上げることができるのではないでしょうか。tmuxを使いこなしてLinuxライフを充実させてください。LinuCレベル1バージョン10.0でもtmuxコマンドは試験範囲に入っていますので受験する方は要チェックです。bではなく、任意のキーの組合せに変更することもできますが、それについてはまた別の機会に解説します。(17)エスパ水澤(LinuCエバンジェリスト)日経新聞やソニー関連会社、商社などへの転職を重ねたのち起業。10数年にわたり情報まとめサイトの運営に携わる。キュレーションサイト運営会社、TSUTAYA関連企業への転籍を経てフリーランスに。2018年、LinuC資格取得を機にエンジニア育成に関わる事を決意。2020年、コロナ禍の中、エンジニアスクール講師などを務めつつリナスク立ち上げ。