ホーム > 環境・ユーティリティ > screen

screen: マルチターミナルセッション管理

GNU Screenは、単一のターミナルで複数の独立したシェルセッションを管理できるターミナルマルチプレクサです。ネットワーク接続が切断されてもセッションを維持し、複数のタスクを同時に実行し、他のユーザーとセッションを共有するなどの強力な機能を提供します。サーバーで長時間実行されるタスクをバックグラウンドで安全に維持する場合に特に役立ちます。

概要

screenは、ターミナルセッションをバックグラウンドで維持し、複数のセッションを作成・切り替え、セッション共有まで可能な強力なツールです。特にSSH接続が切断されても作業が中断されないようにする場合に役立ち、一つのターミナルウィンドウで複数の仮想ターミナルを使用するのと同様です。

主な機能

  • セッションの切り離しと再接続 (Detaching and Reattaching)
  • マルチウィンドウ管理 (Multiple Windows)
  • セッション共有 (Session Sharing)
  • ログ記録 (Logging)
  • スクロールバックバッファ (Scrollback Buffer)

主なオプション

screenコマンド実行時に使用される主なオプションと、screenセッション内で使用される主なショートカットキーを説明します。

コマンド実行オプション

セッション内ショートカットキー (Ctrl+a プレフィックス)

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`screen` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

screenコマンドの様々な活用例です。

新規screenセッション開始

screen

最も基本的な使い方で、新しいscreenセッションを開始します。

名前を指定してセッション開始

screen -S my_long_running_task

セッションに名前を付けることで、後で簡単に識別し再接続できます。

セッション切り離し (Detach)

screen -d <session_name_or_pid>

screenセッション内でCtrl+a dを押してセッションを切り離し、ターミナルに戻ります。または、外部から実行中のセッションを強制的に切り離すこともできます。

セッション再接続 (Reattach)

screen -r

切り離されたセッションに再接続します。セッションが一つだけの場合は自動的に接続されます。

名前で特定セッション再接続

screen -r my_long_running_task

指定した名前のセッションに再接続します。

実行中セッション一覧表示

screen -ls

現在アクティブなscreenセッションの一覧を確認します。

セッション強制終了

screen -X <session_name_or_pid> quit

不要になったセッションを強制的に終了します。(注意: 作業が中断される可能性があります)

インストール

GNU Screenは、ほとんどのLinuxディストリビューションにデフォルトで含まれているか、パッケージマネージャを通じて簡単にインストールできます。

Debian/Ubuntu

sudo apt update && sudo apt install screen

APTパッケージマネージャを使用してインストールします。

CentOS/RHEL/Fedora

sudo yum install screen
# または
sudo dnf install screen

YUMまたはDNFパッケージマネージャを使用してインストールします。

Arch Linux

sudo pacman -S screen

Pacmanパッケージマネージャを使用してインストールします。

ヒントと注意点

screen使用時の役立つヒントと注意点です。

.screenrc ファイルの活用

ユーザーのホームディレクトリにある`.screenrc`ファイルを通じて、screenのデフォルト設定をカスタマイズできます。例えば、デフォルトシェル、スクロールバックバッファサイズ、ステータスバーなどを設定できます。

  • 場所: ~/.screenrc
  • 設定例: defscrollback 10000 caption always '%{= gk}%H %L=%-w%?%F%fn%W%? %t %{-}%+w %-= %D %m/%d %C%a'

Ctrl+a プレフィックスの記憶

screenのすべての内部コマンドは、デフォルトでCtrl+aをプレフィックスとして使用します。この組み合わせを覚えることがscreen使用の鍵となります。もしCtrl+aが他のプログラムと競合する場合は、`.screenrc`で別のプレフィックスに変更できます(例: `escape ^Jj`でCtrl+jに変更)。

セッション名指定の重要性

`screen -S `でセッションに意味のある名前を付けると、複数のセッションを管理する際に混乱を減らし、特定のセッションに簡単に再接続できます。

スクロールバックバッファの使用

Ctrl+a [ を押してスクロールモードに入り、矢印キーまたはPageUp/PageDownキーで以前の出力を確認できます。qを押してスクロールモードを終了します。


同じカテゴリのコマンド