ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章

複数のリモートサーバーで作業を開始すると、開いているターミナルセッションの数が圧倒的に感じられるようになります。 多くの場合、たとえば、コードをコンパイルするとき、端末が長時間実行されるプロセスによって占有されるときです。 これを回避し、動作を継続するために新しいSSHセッションに接続する必要をなくすために、ターミナルマルチプレクサが発明されました。

ターミナルマルチプレクサを使用すると、単一の「マスター」セッション内で複数のターミナルウィンドウを管理できます。 グラフィカルウィンドウマネージャーと同じように、ウィンドウを簡単に配置して操作できます。 このための2つの最も人気のあるツールは、GNU画面tmuxマルチプレクサです。

このガイドでは、別のアプローチについて説明します。 他の2つのオプションは多くの人にとって良いものですが、ほとんどのユーザーが必要とするよりも少し重い義務であり、いくつかの素晴らしいプレゼンテーションが欠けています。 これらの問題に対処するために、ウィンドウ管理を処理する動的仮想端末マネージャーであるdvtmと、セッションを切り離すことができるユーティリティdtachの組み合わせの使用方法を示します。永続性。 これははるかに軽量なソリューションであり、一部の人々により適しています。

Ubuntu 12.04 VPSインスタンスでのこれらのインストールと使用法について説明しますが、ほとんどのディストリビューションでは、少し変更を加えることでこれらの手順を使用できるはずです。

コンポーネントをインストールします

Linuxサーバーでほとんどのことを行うための最初のステップは、必要なツールがあることを確認することです。

この場合、dtachdvtmの両方をダウンロードしてインストールする必要があります。 幸い、Ubuntu 12.04リポジトリでは、これらのユーティリティの両方を利用できます。 ローカルパッケージインデックスを更新する必要があります。その後、必要なものをインストールできます。

sudo apt-get update
sudo apt-get install dvtm dtach

必要なのはそれだけです! これで、これらの各ツールがどのように機能するかを調べ始めることができます。

dvtmターミナルマネージャーの使用方法

dvtmターミナルマネージャーは、awesomewmdwmi3xmonadなど。 これにより、ウィンドウを簡単に整理し、ニーズに合わせて画面スペースを操作できます。

dvtmセッションを開始するには、コマンドラインから呼び出す必要があります。

dvtm

─[demouser@dvtm: ~ #1]────────────────────────────────────────────────
demouser@dvtm:~#

ご覧のとおり、新しいターミナルセッションがありますが、その上にヘッダーがあります。 このヘッダーは基本的にウィンドウのタイトルバーです。 管理しているセッションとウィンドウ番号が表示されます。

最初に知っておく必要があるのは、すべてのdvtmコマンドが「mod」キーシーケンスで始まることです。 このシーケンスを押すと、dvtmにリッスンを開始し、次のキー押下をインターセプトする必要があることを通知します。

デフォルトでは、modシーケンスは「CTRL-g」です。 したがって、dvtmの各コマンドの形式は次のとおりです。

CTRL-g [キーを押す]

基本的なウィンドウ管理

すぐに飛び込んで、複数のウィンドウで作業を始めましょう。 学習する最初のシーケンスでは、2番目のウィンドウを作成できます。

CTRL-g c

「control」キーを押しながら「g」キーを押してから、両方のキーを放して「c」を押す必要があります。 次のように、環境が垂直方向に分割されていることがわかります。

──[demouser@dvtm: ~ | #1]──────────┬──[demouser@dvtm: ~ | #2]──────────
demouser@dvtm:~#                   │demouser@dvtm:~#
                                   │
                                   │

ご覧のとおり、2つのウィンドウがあります。 いくつかの文字を入力すると、それらがウィンドウの1つに表示されます。 フォーカスのあるウィンドウを切り替えるには、次のように入力します。

CTRL-g j        #   Cycle forward through windows
CTRL-g k        #   Cycle backward through windows

特定のウィンドウにジャンプしたい場合は、そのウィンドウ番号を参照してください。

CTRL-g [window #]

たとえば、フォーカスをウィンドウ3に移動するには、CTRL-g 3と入力します。

フォーカスのあるウィンドウを破棄するには、次のように入力します。

CTRL-g x

すべてのウィンドウを破棄し、dvtmセッションを終了するには、次のように入力します。

CTRL-g q

タイリングレイアウトの調整

より多くのウィンドウを作成すると、デフォルトでは1つの領域が大きくなり、追加のウィンドウが片側に積み重ねられることに気付くでしょう。 これはタイリングレイアウトによるものです。

デフォルトでは、ウィンドウはいわゆる「垂直スタック」タイリングレイアウトでレイアウトされます。 これにより、1つの「マスター」ウィンドウが作成され、他のすべてのウィンドウが残りのスペースを分割します。

ただし、他にも利用可能なレイアウトオプションがあります。 4つまたは5つのウィンドウを作成し、いくつかのウィンドウでいくつかのプログラムを起動して、それらを区別できるようにします。

レイアウトを循環するには、次のシーケンスを使用します。

CTRL-g [SPACE]

デフォルトでは、順番に循環できるレイアウトは次のとおりです。

  • 垂直スタック:デフォルトのレイアウト。 マスターウィンドウは左側にあり、他のすべてのウィンドウは右側のスペースを共有しています。
  • grid :すべてのウィンドウがウィンドウ領域で同じスペースを占有しようとします。 関連するマスターウィンドウはありません(技術的には左上のスペースです)。
  • ボトムスタック:マスターウィンドウは画面の上半分にあります。 残りのウィンドウは下半分を占めます。
  • フルスクリーン:現在フォーカスされているウィンドウを最大化します。 最大化された状態で、通常どおり各ウィンドウを循環できます。

「スペース」キーを使用してこれらのレイアウトを循環し続けることができますが、特定のキーシーケンスを使用して個別に参照することもできます。

CTRL-g t    # Switch to vertical stack
CTRL-g g    # Switch to grid
CTRL-g b    # Switch to bottom stack
CTRL-g m    # Switch to fullscreen

現在フォーカスされているウィンドウを新しいマスターウィンドウにするには、次のように入力します。

CTRL-g [ENTER]

現在のマスターウィンドウでこれを使用すると、次のウィンドウと単純に交換されます(時計回り)。

ウィンドウとウィンドウ領域の操作

これらの機能は便利ですが、追加の機能が必要になる場合があります。

たとえば、マスターウィンドウが占めるサイズを調整する必要がある場合があります。 これを行うには、次のキーを使用できます。

CTRL-g l    # Increase master window space
CTRL-g h    # Decrease master window space

これは、目前のタスクに基づいて画面の領域を調整できることを意味します。

場合によっては、しばらくの間ウィンドウを処理する必要はありませんが、それでもウィンドウを使用可能にする必要があります。 従来のウィンドウシステムでは、ウィンドウを最小化するため、一時的に邪魔にならないようにすることができます。

dvtmでも同じことが可能です。 最小化したいウィンドウに焦点を合わせて、次のように入力します。

CTRL-g .

これにより、現在フォーカスされているウィンドウが最小化されます。

これは実際にはトグル機能です。 CTRL-g jCTRL-g kを使用するか、番号(CTRL-g #)で参照することにより、ウィンドウを簡単に循環して最小化されたウィンドウを選択できます。 ウィンドウを復元するには、ウィンドウをもう一度選択して、CTRL-g .をもう一度押します。

最小化されたウィンドウを循環する機能は、ウィンドウを操作および参照できるため、優れた機能です。 ただし、現在ウィンドウ領域内にあるウィンドウのみを循環させたい場合があります。

これを実現するために、dvtmには、最小化されていないウィンドウにのみ影響するサイクリングコマンドの別のセットが含まれています。 したがって、ウィンドウ1〜5があり、2と4が最小化されている場合、これらはウィンドウ1、3、および5を循環します。

CTRL-g u    # Cycle forward through un-minimized windows
CTRL-g i    # Cycle backward through un-minimized windows

ときどき便利になる可能性のある追加のコマンドの1つは、キーボード出力をターミナルウィンドウのすべてに同時に送信する機能です。 これは、dvtmに含まれるトグルで実現できます。

CTRL-g a

これにより、キーボードからのすべての出力が個々のウィンドウに送信されます。 これは、この機能をオフにするコマンドを再度発行するまで続きます。

dtachを使用してセッションを永続化する方法

dvtm内のこの機能はすべて素晴らしいです。 これにより、アプリケーションをscreenまたはtmuxよりも集中させ、その長所に集中することができます。 ただし、このため、ウィンドウ管理に限定されます。

多くのユーザーがターミナルマルチプレクサに求める機能の1つは、永続的なセッションを持つ機能です。 これは、セッションから切り離して、ウィンドウとその中のすべてのものを実行したままにする機能を意味します。 後で、セッションに再度接続して作業を続けることができます。

dvtmは設計上この機能を備えていませんが、取り外し可能性の提供のみに焦点を当てている他のツールとうまく連携します。 適切に「dtach」と呼ばれるこれらのツールの1つは、私たちの目的に最適です。

まず、現在のdvtmセッションをまだ終了していない場合は、終了します。 作業を保存する必要がない場合は、CTRL-g qと入力できます。

これで、dtachセッションを開始できます。 次のようなコマンドを渡す必要があります。

dtach -A /tmp/dvtm -r winch dvtm

ここで何が起こっているのか説明させてください。 まず、dtachコマンド自体を呼び出します。 これは自明のはずです。

  • -A :大文字の「A」フラグは、既存の指定されたセッションが存在する場合はそれにアタッチします。存在しない場合は、新しいセッションを作成してそれにアタッチします。
  • / tmp / dvtm :これは、dtachが情報を格納および渡すために使用するソケットです。 このソケットのアクセス許可によって接続できるユーザーが決まります。そのため、サーバー上の他のユーザーがセッションを使用できないようにする場合は、ユーザーがアクセスできない場所にセッションを配置します。
  • -r winch :再描画方法を指定します。 再接続後にセッションが正しく表示されるようにするには、dtachにWINCH信号をプログラムに送信するように指示する必要があります。
  • dvtm :これは、セッションが開始されたら、内部でdvtmを起動する必要があることを指定します。

このコマンドを入力すると、dvtmセッションがdtachセッション内で開始されます。 通常のdvtmセッションとまったく同じように見えます。

唯一の違いは、すべてのウィンドウを実行したまま、セッションから切り離すことができることです。 これを行うには、次のように入力します。

CTRL-\

切り離した後でセッションに戻るには、同じコマンドをもう一度呼び出すだけです。

セッションを開始して再接続するコマンドは同じであり、コマンドが少し面倒なので、これを簡単に管理できるエイリアスを作成できます。

テキストエディタでシェルの設定ファイルを開きます。

nano ~/.bashrc

下部にエイリアスを追加して、1つの単語でセッションを簡単に開始またはアクセスできるようにします。 たとえば、構成でシーケンス「wm」(ウィンドウマネージャーの場合)を選択しています。

alias wm="dtach -A /tmp/dvtm -r winch dvtm"

ファイルを保存して閉じます。 今すぐファイルを入手して、変更を取得できます。

source ~/.bashrc

ここで、wmと入力すると、dtachセッションが存在しない場合はそれを作成し、その中でdvtmを開始します。 セッション存在する場合、このコマンドは単にセッションに再接続します。

結論

ご覧のとおり、dvtmを使用してウィンドウを管理し、dtachを使用して永続性を追加することで、複数のウィンドウで効率的に作業できる非常に便利な環境をセットアップできます。 多くのユーザーにとって、これは必要なすべての機能を提供し、screenまたはtmuxよりも優れたウィンドウ管理レイアウトを備えています。 サーバーの1つで試して、これがニーズに合った多重化ソリューションであるかどうかを確認することを検討してください。

ジャスティン・エリングウッド