端末マルチプレクサーの概要:tmuxおよびdvtm

マトリックスアーキテクト

ターミナルは、最も一般的に使用される管理ツールの1つです。 多くの場合、操作中にターミナルの複数のタブを同時に開いたままにする必要があります。1つはWebサーバーの管理用、もう1つはデータベースの管理用、3つ目はファイルのコピー用など 開いているタブが多数ある場合、すべてのプロセスを同時に追跡するのが難しくなり、作業が非常に複雑になります。 複数の端末の問題を解決できる特別なプログラムがあります。 それらはターミナルマルチプレクサと呼ばれます。

端末マルチプレクサを使用すると、1つのウィンドウで複数の端末セッションを同時に操作できます。 彼らの仕事の原則は次のとおりです。複数のタブを持つ端末がリモートマシン上に作成されます。 ローカルマシンでは、ターミナルウィンドウはいくつかの部分に分割され、各部分でアプリケーションとプロセスを起動できます。 リモートマシンから切断して(現在のセッションが保存されます)、再接続して作業を続けることができます。

最も有名で一般的な端末マルチプレクサは、もちろん、GNU Screenです。 すべての利点を備えているため、作業上の不便さが異なります。 たとえば、画面をパーツに分割する操作などの実装が失敗しました。現在のセッションから切断され、その後の再開が行われると、パーツの配置は保存されません。

最近、より視覚的で使いやすい他のターミナルマルチプレクサ、たとえば、この記事の対象となるtmuxおよびdvtmが広く使用されています。

Tmux


TmuxはLinuxおよびMacOSで動作します。 最新のほとんどのLinuxシステムの公式リポジトリに含まれており、標準パッケージマネージャーを使用してインストールできます。

次のコマンドでtmuxを実行します。

 $ tmux

画面の下部にステータスバーが表示されます。

tmux

すべてのターミナルマルチプレクサは、次のように制御されます。最初に、いわゆるプレフィックスキーの組み合わせが押され、その後、この機能またはその機能を制御するキーが押されます。 tmuxでは、デフォルトの組み合わせはCtrl + Bです。 端末画面を縦棒で2つに分割するには、まずCtrl + Bを押してから、%(つまり、Shift + 5)を押す必要があります。

tmux 1

結果の各タブは、Ctrl + B +のキーの組み合わせを使用して、水平線で2つの部分に分割することもできます(最初にCtrl + Bを押し、次に ")。

次のコマンドを使用して、ウィンドウを2つの部分に分割することもできます。

 $ tmux split-window -h

(水平に2つの部分に分割)

 $ tmux split-window -v

(垂直に2つに分割)

ウィンドウのある部分から別の部分に切り替えるには、まずCtrl + Bを押してから、←、↑、→、および↓キーを押します。

新しいウィンドウを作成するには、キーの組み合わせCtrl + B + Cを押します。 1つのセッション内で、使用できるウィンドウの数に制限はありません。 それぞれを順番に分割することができます。 ウィンドウ間の切り替えは、次の組み合わせを使用して実行されます。



Ctrl + B + Dのキーの組み合わせを押すと、現在のtmuxセッションを中断できます。 中断されたセッションを再開するには、次のコマンドを入力します。
  $ tmux接続 


中断されたセッションが復元されます。 すべてのデータとプロセスが保存されます。
このコマンドは、短縮形で入力できます。

  $ tmux -a 


セッションのリストを表示するには、次のコマンドを実行します。

  $ tmux ls 


次のコマンドを使用して、開いているセッションを完了します。

  $ tmux kill-session -t [セッション名] 


開いているすべてのセッションを同時に完了するには、次のコマンドを入力します。

  $ tmux kill-server 


セットアップの推奨事項



画面下部のステータスバーはオフにできます。 これを行うには、次のコマンドを入力します。

  $ tmux set -g status off 


そして、無効化されたステータスバーが再び表示されるように-コマンド:

  $ tmux set -g status on 


ステータスバーの位置を変更して、画面の下部ではなく上部に表示されるようにできます。

  $ set -g status-position top 


ステータスバーの色は、次のコマンドを使用して変更されます。

  tmux set -g status-bg blue 


DVTM



Dvtm(動的仮想端末マネージャ)は、多くの点でtmuxと機能が似ている端末マルチプレクサです。
また、最新のLinuxシステムの公式リポジトリにも含まれており、標準のパッケージマネージャーを使用してインストールされます。
dvtmを起動すると、画面の上部にステータスバーが表示されます。

dvtm

dvtmの管理は、tmuxの管理と同じ方法で編成されています。 キーの組み合わせはCtrl + Gです。 dvtmのウィンドウの概念は、tmuxと比較してまったく異なって解釈されます。 新しいウィンドウを作成するには、Ctrl + G + Cのキーの組み合わせを使用します。 この組み合わせをクリックすると、画面は2つの部分に分割されます。 それぞれが個別のウィンドウです。

dvtm

同じキーの組み合わせを使用して、追加のウィンドウを作成できます。

dvtm

ウィンドウの順序は変更できます。 次のロケーションオプションが区別されます。


Ctrl + G +スペースバーの組み合わせを押すと、ウィンドウ配置のあるモードから別のモードに切り替えることができます。

次のキーボードショートカットを使用してウィンドウを制御します。


dvtmには、既知のターミナルマルチプレクサにはない興味深い機能が1つあります。現在のウィンドウでキーを押すと、開いている他のすべてのウィンドウで自動的に再生できます。 キーの組み合わせCtrl + G + Aを押します。 その後、任意のキーを押すと、すべてのウィンドウで一度に押すことができます。 (UPD。私たちの読者は、tmuxにも同じ機能があると報告しました:tmux set synchronize-panes on)。

現在のウィンドウでコマンドを入力すると、開いているすべてのウィンドウで同時に実行されます。 たとえば、この機能を使用すると、同じ方法で複数のリモートサーバーを同時に構成できます。

tmuxとは異なり、dvtmはセッションの保存と再開をサポートしていません。 これを行うには、dtachが使用されます。これは、現在のセッションから切断し、コンソールアプリケーション用に接続する機能を提供する補助ユーティリティです。 標準パッケージマネージャーを使用してインストールされます。

セッションを切断して再接続するには、dtachでdvtmを実行する必要があります。

  $ dtach -c / tmp / dvtm-session -r winch dvtm 


dtachを使用する場合、セッションを識別するソケットを明示的に指定する必要があります。 セッションへのアクセスは、ソケットへのアクセスによって完全に決定されます。

dtachを終了するには、Ctrl + \の組み合わせを押す必要があります。 次のコマンドを使用して、既存のセッションへの接続を実行します。

  $ dtach -a / tmp / dvtm-session -r winch 


dtachの詳細については、公式manページをご覧ください

最後に、画面、tmux、dvtmで使用される主なコマンドとキーボードショートカットの表である小さなチートシートを示します。

コマンドとキーボードショートカットの比較表



セッション管理


運営スクリーンtmuxdvtm
新しいセッションを開始するスクリーンtmux
tmux新しいセッション
tmux new-session -s [セッション名]
セッションを保存および再開する機能はサポートされていません。このため、この機能をすべてのコンソールアプリケーションに実装するdtachユーティリティをインストールする必要があります。 dtachでdvtmを実行するには、次のコマンドを使用します。
dtach -c / tmp / dvtm-session -r winch dvtm
作成済みのセッションに接続する画面-rtmux接続
tmux attach-session -s [セッション名]
tmux -a
dtach -a / tmp / dvtm-session -r winch
現在のセッションから切断するCtrl + ADtmux detachまたはCtrl + BDCtrl + \
アクティブなセッションのリストを表示する画面-lstmux lsps aux | grep dtach
セッションを削除screen -r [セッション名] -X quittmux kill-session -t [セッション名]-
すべてのセッションを削除Ctrl + A \tmux kill-server-


ウィンドウ管理


運営スクリーンtmuxdvtm
新しいウィンドウを作成するCtrl + ACCtrl + BCCtrl + GC
指定されたウィンドウに移動Ctrl + A 0 .... 9Ctrl + B 0 .... 9Ctrl + G 0 .... 9
前のウィンドウに移動Ctrl + APCtrl + BPCtrl + GJ
次のウィンドウに移動Ctrl + ANCtrl + BNCtrl + GK
最後のアクティブなウィンドウに移動Ctrl + ALCtrl + BL-
開いているすべてのウィンドウのリストを表示するCtrl + A "Ctrl + BW-
ウィンドウ幅を広げる-Ctrl + B Ctrl + N→またはCtrl + B Alt +→(大幅に増加)Ctrl + GL
ウィンドウ幅を縮小する-Ctrl + B Ctrl +←Ctrl + GH
開いているすべてのウィンドウでキーストロークを再生する-tmuxは、同期ペインをオンに設定しましたCtrl + GA
現在のウィンドウを閉じるCtrl + AXCtrl + BXCtrl + GX


Habréの投稿にコメントできない読者は、私たちのブログを歓迎します。

Source: https://habr.com/ru/post/J209130/


All Articles