MoshとTmuxを使用してLinuxでより良いリモートセッションを実現する
Moshを使ってSSH経由でLinuxデバイスへのリモートアクセスを改善し、Tmuxを使って複数のセッションを実行しましょう。
Linuxの強みの一つはネットワーキングへの意向であり、これは主にそのUnixの遺産に起因しています。Linuxがサーバーの選ばれるオペレーティングシステムである理由があります。
Linuxサーバーにリモートアクセスする主な方法はSSH、つまりセキュアシェルです。それは便利で安全ですが、Wi-Fiや携帯電話の接続が一般的になる前の時代に設計されました。
コンピュータを別のWi-Fiネットワークに移動させたりスリープ状態にしたりすると、フリーズした端末画面で切断されることがあるかもしれません。
なぜMoshとTmuxなのか?
幸運なことに、SSHを使用したリモートコンピューティングをより使いやすく、より信頼性の高いものにするいくつかのツールがあります。これらのツールは、データセンターの物理ターミナルから、ホームサーバー、クラウドサーバー、さらにはUnixまたはBSDオペレーティングシステムを実行している別のデスクトップマシンまで、あらゆるものに使用できます。
MoshはSSHの上にあるツールで、変化するネットワーク接続を認識させるもので、tmuxは異なるログイン間でシェルセッションを保持し、さらにはそれを共有できる「端末の多重化プログラム」です。
モッシュとの始め方
Moshは、SSHがローミングおよび断続的な接続で動作するようにするオープンソースプロジェクトであり、多くの無線接続はその両方の特徴を持っています。
あなたはコンピュータを有線ネットワークから別の無線ネットワークに切り替えることができ、接続は維持されます。また、接続中にノートパソコンをスリープモードにしても、ネットワークが再接続された後にターミナルウィンドウに入力することができます。
ネットワーク接続を失うと、Moshはリモートサーバーからの応答がないことを知らせます。サーバーが文字をエコー返すのが遅い場合、最新の画面が戻るまで、あなたが入力した内容に下線を引きます。
著者が書いた論文にはより技術的な詳細がありますが、ユーザーとしてのインストールは非常に簡単です。MoshはほとんどのLinuxディストリビューションのパッケージマネージャで広く利用可能です。また、Google Chromeアプリとしても利用可能です。
LinuxにMoshをインストールする
例えば、Ubuntuにインストールするには:
sudo apt install moshもちろん、サーバーにはMoshサーバーもインストールする必要があります。Moshの利点は、サーバーコンポーネントがユーザーモードで実行できるため、インストールするのにrootである必要がないことです。
モッシュを使用する
リモートマシンに接続したいときは、次のように入力してください:
mosh username@server明らかに、あなたは「username」と「server」をあなたのユーザー名と接続しようとしているマシンの名前に置き換えたいと思うでしょう。
異なるポートに接続するなど、より専門的なニーズがある場合は、ドキュメントを参照してください。
すべてが正しく動作すれば、SSHを使ってリモートターミナルセッションを持つことができるようになります。同じようにコマンドを発行できますが、接続がより信頼性の高いものになります。
Tmuxを始める
あなたは無線ネットワークの変更に耐えられるリモートターミナル接続を持っていますが、ついに接続されたときはどうなりますか?
ソフトウェアのインストールや長いコンパイルジョブなど、時間がかかる作業を実行しているかもしれません。もし接続が切れたらどうなりますか?ターミナルが終了すると、ジョブもおそらく終了します。
さらに、端末ではジョブ制御があっても一度に一つの作業しかできません。フルスクリーンエディタを実行したい場合、端末全体を占有してしまいます。
Tmuxはこれらの問題に対する一つの答えです。それは「ターミナル・マルチプレクサ」と呼ばれ、一つのウィンドウ内で複数のターミナルを実行できるようにします。Linuxデスクトップのタブ付きターミナルのようですが、はるかに柔軟性があります。
セッションを切り離してログアウトすると、後で戻ってきて、前の作業を続けられます。複数のターミナルウィンドウを開くことができます。一つのウィンドウでエディターを使ってプログラムを編集し、別のウィンドウでコマンドラインでテストすることができます。
tmuxのインストールも非常に簡単です。Moshと同様に、多くのLinuxディストリビューションのパッケージマネージャに含まれています。Ubuntuでは、次のように入力するだけです:
sudo apt install tmux明らかに、これをリモートマシンにインストールする必要がありますが、ローカルでも非常に便利です。
インストールされたら、次のコマンドを使用してtmuxを起動します:
tmuxその後、ローカルで起動したものと同様のターミナルウィンドウが立ち上がります。どのウィンドウにいるかを示すステータスバーが表示されます。
Tmuxは画面を「ウィンドウ」に分割し、それぞれの「ペイン」に自分のターミナルを表示します。これらのペインは再配置およびサイズ変更が可能で、無限のウィンドウを持つことができます。
tmuxはターミナルベースのプログラムであるため、完全にキーボードから操作されます。tmuxでコマンドを実行するためのデフォルトのプレフィックスコマンドはCtrl+Bです。これは設定ファイルで変更できます。
ユーザー設定ファイルは、ホームディレクトリ内の .tmux.conf です。ドキュメントには詳細が含まれていますが、実行できるカスタマイズの数は膨大です。
Tmuxには学習曲線がありますが、Linux/Unixの他の「難しい」プログラムと同様に、多くのユーザーはこれらのプログラムを学ぶのに費やした時間が、それによってできることに対して十分に価値があると感じています。
最も強力なオプションの1つは、セッションを切り離し、後で再接続する能力です。これを行うには、Ctrl+Dと入力します。再接続するには、シェルで「tmux attach」と入力すると、再びセッションに戻ります。
これは、セッションがマシンが動作している限り持続することを意味します。この方法は、IRCのようなチャットアプリを実行するためにも人気があります。人々は長時間チャットルームに留まることができます。また、ペアプログラミングのために他の人とセッションを共有することも可能です。
MoshとTmuxの組み合わせ
リモートセッションの真の力は、Moshとtmuxの組み合わせから生まれます。
Moshを使用すると、どこからでもリモートマシンにログインでき、接続の信頼性について心配する必要がありません。時間がかかりそうな作業を実行したい場合は、セッションを切り離して後で戻ることができます。
Moshとtmuxの組み合わせは、リモートログインにおいて最大の信頼性と柔軟性をもたらします。tmuxだけでも、ターミナルセッションの力を引き出すためのさらに多くのことがあります。



