GNU Screenの使用方法はすでに学習しました 複数のターミナルセッションを管理します。今日は、 "Tmux"という名前のもう1つの有名なコマンドラインユーティリティを紹介します。 、複数のターミナルセッションの管理にも使用されます。このガイドでは、Linuxでの例を使用してTmuxとTmuxコマンドの使用法について説明します。
1。 Tmuxとは何ですか?
GNU Screenと同様に、Tmuxもターミナルマルチプレクサであり、単一のターミナルウィンドウ内で多数のターミナルセッションを作成し、複数のプログラムまたはプロセスを同時に実行できます。
Tmuxは、Linux、OpenBSD、FreeBSD、NetBSD、およびMacOSXをサポートする無料のオープンソースおよびクロスプラットフォームプログラムです。
2。 LinuxにTmuxをインストールする
Tmuxは、ほとんどのLinuxディストリビューションの公式リポジトリで利用できます。
Alpine LinuxにTmuxをインストールするには、次のコマンドを実行します:
$ sudo apk add tmux
Arch Linuxと、EndeavourOSやManjaro Linuxなどのその亜種では、次のコマンドを実行してインストールします。
$ sudo pacman -S tmux
Debian、Ubuntu、Linux Mint、Pop_OS!:
$ sudo apt-get install tmux
Fedora、RHEL、CentOS、AlmaLinux、Rocky Linuxの場合:
$ sudo dnf install tmux
または、
$ sudo yum install tmux
SUSE / openSUSEの場合:
$ sudo zypper install tmux
さて、Tmuxをインストールしました。先に進んで、Tmuxの使用方法の例をいくつか見てみましょう。
3。 Tmuxコマンドの使用例と例
TmuxのすべてのコマンドへのデフォルトのプレフィックスショートカットはCtrl + b
です 。 Tmuxを使用するときは、このキーボードショートカットを覚えておいてください。
ヘッズアップ: すべての画面のデフォルトのプレフィックス コマンドはCtrl+ a 。
3.1。 Tmuxセッションの作成
新しいTmuxセッションを作成して接続するには、ターミナルから次のコマンドを実行します。
$ tmux
または、
$ tmux new
Tmuxセッションに入ると、下部に緑色のバーが表示されます。 下のスクリーンショットに示すように。

Tmuxセッション内にいるかどうかを確認するのは非常に便利です。
3.2。 Tmuxセッションからの切り離し
現在のTmuxセッションから切り離すには、 Ctrl + b
を押すだけです。 およびd
。この両方のキーボードショートカットを一度に押す必要はありません。最初に"Ctrl+ b"
を押します 次に、 "d"
を押します 。
セッションから切り離されると、次のような出力が表示されます。
[detached (from session 0)]
3.3。名前付きセッションの作成
複数のセッションを使用すると、どのプログラムがどのセッションで実行されているか混乱する可能性があります。このような場合は、名前付きセッションを作成するだけです。
たとえば、セッションでWebサーバーに関連するいくつかのアクティビティを実行する場合は、カスタム名( "webserver" など)を使用してTmuxセッションを作成するだけです。 (または任意の名前)。
$ tmux new -s webserver
これが新しい名前のTmuxセッションです。

上のスクリーンショットでわかるように、Tmuxセッションの名前はウェブサーバーです。 。このようにして、どのプログラムがどのセッションで実行されているかを簡単に識別できます。
切り離すには、 Ctrl + b
を押すだけです。 およびd
。
3.4。 Tmuxセッションを一覧表示する
開いているTmuxセッションのリストを表示するには、次のコマンドを実行します:
$ tmux ls
出力例:

ご覧のとおり、2つの開いているTmuxセッションがあります。
3.5。デタッチセッションの作成
場合によっては、単にセッションを作成し、それに自動的に接続したくない場合があります。
"ostechnix"という名前の新しいデタッチセッションを作成するには 、実行:
$ tmux new -s ostechnix -d
上記のコマンドは「ostechnix」と呼ばれる新しいTmuxセッションを作成しますが、それに接続しません。
tmux ls
を使用してセッションが作成されているかどうかを確認できます コマンド:

3.6。 Tmuxセッションへの接続
次のコマンドを実行して、最後に作成されたセッションに接続できます。
$ tmux attach
または、
$ tmux a
「ostechnix」などの特定の名前付きセッションに接続する場合は、次を実行します。
$ tmux attach -t ostechnix
または、まもなく:
$ tmux a -t ostechnix
3.7。 Tmuxセッションを強制終了します
完了してTmuxセッションが不要になったら、コマンドを使用していつでもTmuxセッションを強制終了できます:
$ tmux kill-session -t ostechnix
接続時に強制終了するには、 Ctrl + b
を押します およびx
。 "y"
を押します セッションを強制終了します。
tmux ls
でセッションが閉じられているかどうかを確認できます コマンド。
すべてのTmuxセッションとともにTmuxサーバーを強制終了するには、次のコマンドを実行します:
$ tmux kill-server
気をつけて!これにより、セッション内に警告なしに実行中のジョブがある場合でも、すべてのTmuxセッションが終了します。
実行中のTmuxセッションがなかった場合、次の出力が表示されます。
$ tmux ls no server running on /tmp/tmux-1000/default
3.8。 Tmuxセッションウィンドウの分割
Tmuxには、単一のTmuxセッションウィンドウをTmuxペインと呼ばれる複数の小さなウィンドウに分割するオプションがあります。 。
このようにして、各ペインでさまざまなプログラムを実行し、それらすべてを同時に操作できます。
各ペインは、他のペインに影響を与えることなく、サイズ変更、移動、および閉じることができます。 Tmuxウィンドウを水平または垂直、あるいはその両方に一度に分割できます。
3.8.1。ペインを水平に分割する
ペインを水平方向に分割するには、 Ctrl + b
を押します および"
(一重引用符)。

同じキーの組み合わせを使用して、ペインをさらに分割します。
3.8.2。ペインを垂直に分割する
ペインを垂直に分割するには、 Ctrl + b
を押します および%
。

3.8.3。ペインを水平方向と垂直方向に分割します
ペインを水平方向と垂直方向に同時に分割することもできます。次のスクリーンショットを見てください。

まず、 Ctrl + b
を押して水平分割を行いました "コード>
次に、 Ctrl + b を押して、下部ペインを垂直に分割します
%
。
上のスクリーンショットにあるように、私は各ペインで3つの異なるプログラムを実行しています。
3.8.4。ペインを切り替える
ペインを切り替えるには、 Ctrl + bを押します および矢印キー(左、右、上、下) 。
3.8.5。すべてのペインにコマンドを送信する
前の例では、各ペインで3つの異なるコマンドを実行します。ただし、同じコマンドをすべてのペインに一度に送信して実行することもできます。
これを行うには、 Ctrl + b
を押します 次のコマンドを入力して、 ENTER
を押します。 :
:setw synchronize-panes
次に、任意のペインで任意のコマンドを入力します。同じコマンドがすべてのペインに反映されていることがわかります。
3.8.6。ペインを入れ替える
ペインを入れ替えるには、 Ctrl + b
を押します およびo
。
3.8.7。ペイン番号を表示する
Ctrl + b
を押します およびq
ペイン番号を表示します。
3.8.8。ペインを殺す
ペインを強制終了するには、 exit
と入力するだけです。 およびENTER
鍵。または、 Ctrl + b
を押します およびx
。確認メッセージが表示されます。 "y"
を押すだけです ペインを閉じます。

4。 Tmuxペインをズームインおよびズームアウトします
Tmuxペインをズームして、現在のターミナルウィンドウのフルサイズに合わせて、テキストの視認性を高め、そのコンテンツをより多く表示することができます。
より多くのスペースが必要な場合や特定のタスクに集中する場合に便利です。そのタスクを完了した後、Tmuxペインをズームアウト(ズーム解除)して通常の位置に戻すことができます。詳細については、次のリンクをご覧ください。
- テキストの視認性を高めるためにTmuxペインをズームする方法
5。 Tmuxセッションの自動開始
SSH経由でリモートシステムを操作する場合は、Tmuxセッション内で長時間実行されるプロセスを実行することをお勧めします。
これは、ネットワーク接続が突然切断されたときに、実行中のプロセスの制御を失うことを防ぐためです。
この問題を回避する1つの方法は、Tmuxセッションを自動開始することです。詳細については、次のリンクを参照してください。
- SSH経由でログインするときにリモートシステムでTmuxセッションを自動開始する
結論
このガイドでは、Tmuxコマンドの使用法について例を挙げて説明しました。この段階で、Tmuxコマンドラインユーティリティの基本的な考え方と、Tmuxを使用して複数のターミナルセッションを管理する方法を学びます。詳細については、manページを参照してください。
$ man tmux
GNU ScreenユーティリティとTmuxユーティリティはどちらも、SSHを介してサーバーをリモートで管理する場合に非常に役立ちます。 ScreenコマンドとTmuxコマンドを徹底的に学び、プロのようにリモートサーバーを管理します。