はじめに
このチュートリアルでは、強力なターミナルマルチプレクサである Linux Screen の基本について概説します。このツールを使用すると、1 つのウィンドウ内で複数のターミナルセッションを作成、管理、および移動することができます。Screen セッションの開始、デタッチ、再接続の方法を学び、この汎用性の高いツールの実用的なアプリケーションを探索します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
このチュートリアルでは、強力なターミナルマルチプレクサである Linux Screen の基本について概説します。このツールを使用すると、1 つのウィンドウ内で複数のターミナルセッションを作成、管理、および移動することができます。Screen セッションの開始、デタッチ、再接続の方法を学び、この汎用性の高いツールの実用的なアプリケーションを探索します。
Linux Screen は強力なターミナルマルチプレクサで、1 つのウィンドウ内で複数のターミナルセッションを作成、管理、および移動することができます。これにより、複数のコマンドやアプリケーションを同時に実行し、バックグラウンドで実行し続け、それらの間をシームレスに切り替えることが可能です。
Linux Screen の主な使用例の 1 つは、永続的なセッションを可能にすることです。つまり、長時間実行されるプロセスを開始し、セッションからデタッチし、後で別の場所やデバイスからでも再接続することができます。これは、リモートサーバー管理、自動化スクリプトの実行、または中断されてはならない長時間実行されるプロセスの維持などのタスクに特に有用です。
Linux Screen のもう 1 つの重要な機能は、共有セッションをサポートする能力です。これにより、複数のユーザーが同じ Screen セッションに接続でき、コラボレーションやリモート支援が可能になります。これは、複数のチームメンバーが同じプロジェクトに取り組んだり、一緒に問題をトラブルシューティングする必要があるシナリオで特に役立ちます。
Linux Screen の基本的な使い方を説明するために、次の例を考えてみましょう。
## 新しい Screen セッションを開始する
screen
## Screen セッション内でコマンドを実行する
top
## Screen セッションからデタッチする(コマンドは実行したまま)
Ctrl+A, d
## 実行中のすべての Screen セッションをリストする
screen -ls
## 既存の Screen セッションに再接続する
screen -r
この例では、まず新しい Screen セッションを開始し、top
コマンドを実行してシステムプロセスを監視します。次に、Ctrl+A, d
のキーコンビネーションを使用してセッションからデタッチし、top
コマンドをバックグラウンドで実行したままにします。後で実行中のすべての Screen セッションをリストし、既存のセッションに再接続して作業を再開することができます。
複数の Screen セッションを管理および移動する能力は、このツールの重要な側面です。ユーザーは新しいセッションを作成し、それらの間を切り替え、さらには他のユーザーとセッションを共有することができ、実行中のプロセスの状態を維持したままです。
Screen セッションを管理し、移動することは、このターミナルマルチプレクサを効果的に使用するために重要です。Screen セッションを制御し、切り替えるためのいくつかの重要なコマンドとテクニックを探ってみましょう。
新しい Screen セッションを作成するには、ターミナルで screen
コマンドを実行するだけです。これにより新しいセッションが開始され、その中に入ります。
screen
Screen セッションを終了するには、セッション内で exit
コマンドを使用するか、外部から screen -X -S [session_id] quit
コマンドを使用します。
## 現在の Screen セッションを終了する
exit
## 特定の Screen セッションを終了する
screen -X -S 12345 quit
Screen の最も強力な機能の 1 つは、セッションからデタッチし、後で再接続する機能です。これにより、ターミナルをアクティブに使用していないときでも、プロセスをバックグラウンドで実行し続けることができます。
Screen セッションからデタッチするには、Ctrl+A, d
のキーコンビネーションを使用します。
## 現在の Screen セッションからデタッチする
Ctrl+A, d
Screen セッションに再接続するには、screen -r
コマンドを使用します。複数の Screen セッションが実行中の場合は、screen -ls
を使用してそれらをリストし、screen -r [session_id]
を使用して特定のセッションに再接続することができます。
## 実行中のすべての Screen セッションをリストする
screen -ls
## 最新の Screen セッションに再接続する
screen -r
## 特定の Screen セッションに再接続する
screen -r 12345
複数の Screen セッションが実行中の場合、Ctrl+A, [session_number]
のキーコンビネーションを使用してそれらの間を切り替えることができます。これにより、開いているセッション間を素早く移動することができます。
## 次の Screen セッションに切り替える
Ctrl+A, 2
## 前の Screen セッションに切り替える
Ctrl+A, 1
これらのコマンドとテクニックを習得することで、Screen セッションを効果的に管理し、移動することができ、長時間実行されるプロセスや共同作業が常にアクセス可能で、制御下にあることを保証することができます。
Linux Screen には幅広い実用的なアプリケーションがあり、開発者、システム管理者、上級ユーザーにとって価値のあるツールとなっています。Screen を使用する主要なユースケースと利点のいくつかを探ってみましょう。
Screen の主なユースケースの 1 つは、リモートサーバー管理です。リモートサーバーで作業する際に、Screen セッションを開始し、長時間実行されるコマンドやスクリプトを実行してから、セッションをデタッチすることができます。これにより、ローカルのネットワーク接続が切断されたり、マシンからログアウトする必要があっても、サーバーへの永続的な接続を維持することができます。その後、後で Screen セッションに再接続して、タスクの状態を確認したり、追加の変更を加えることができます。
## リモートサーバーで Screen セッションを開始する
ssh user@remote-server screen
## Screen セッション内で長時間実行されるコマンドを実行する
./backup.sh
## Screen セッションからデタッチする
Ctrl+A, d
## 後で Screen セッションに再接続する
ssh user@remote-server screen -r
Screen は、生産性とマルチタスク能力を向上させるための価値あるツールにもなります。1 つのウィンドウ内で複数のターミナルセッションを実行できるようにすることで、Screen を使うと、コンテキストを失ったりワークフローを中断したりすることなく、異なるタスクやアプリケーション間を切り替えることができます。これは、複数のプロセスやサービスを同時に監視する必要がある複雑なプロジェクトで作業する際に特に有用です。
## 新しい Screen セッションを開始する
screen
## Screen セッションを複数のペインに分割する
Ctrl+A, "
## ペイン間を切り替える
Ctrl+A, tab
## 各ペインで異なるコマンドを実行する
top
htop
Screen のもう 1 つの実用的なアプリケーションは、共同トラブルシューティングと共有セッションを可能にする機能です。複数のユーザーが同じ Screen セッションに接続できるようにすることで、一緒に問題を診断して解決し、知識を共有し、リモート支援を提供することができます。これは、チームが問題について共同作業する必要があるシナリオや、ユーザーがサポートエンジニアからの助けを必要とする場合に特に有用です。
## Screen セッションを開始し、セッション ID を共有する
screen -S shared-session
## 別のユーザーをセッションに招待する
screen -x shared-session
Linux Screen の汎用性と機能を活用することで、ワークフローを合理化し、生産性を向上させ、コラボレーションを強化することができ、Linux ユーティリティのアーセナルの中でも価値のあるツールとなります。
Linux Screen は、永続的なターミナルセッションを管理および維持するための価値あるツールです。Screen セッションの作成、デタッチ、再接続の方法を理解することで、長時間実行されるプロセスを実行し、チームメンバーと協力し、ターミナルに直接接続していない場合でも重要なタスクが実行され続けることを保証することができます。このチュートリアルでは、Linux Screen を使用するための基本的な概念と実用的な例をカバーし、生産性を向上させ、ターミナルベースのワークフローを合理化するための知識を提供しました。