👻

Screenコマンド

2025/03/12に公開

screen コマンドの使い方

screen は、ターミナル上で複数の仮想セッションを管理できるツールです。リモート接続時にセッションを維持したり、複数の作業を並行して進めるのに便利です。

基本操作

セッションの作成・接続・一覧

screen -S mysession   # セッション作成
screen -ls            # 実行中のセッション一覧
screen -r mysession   # デタッチしたセッションに再接続
screen -d -r mysession # 他の場所で接続中のセッションを奪う

セッションの切り離し・終了

screen 内で以下のキーを押す:

  • Ctrl + A → D :セッションをデタッチ(切り離し)
  • exit :セッションを終了

セッションの削除

不要になった screen セッションを削除する方法:

screen -X -S mysession quit  # 指定したセッションを終了

または、全てのセッションを削除するには:

screen -ls | awk '/Detached/ {print $1}' | xargs -I{} screen -X -S {} quit

screen 内での操作

コマンド 説明
Ctrl + A → C 新しいウィンドウを作成
Ctrl + A → N 次のウィンドウへ移動
Ctrl + A → P 前のウィンドウへ移動
Ctrl + A → " ウィンドウ一覧を表示
Ctrl + A → [ スクロールモード
Ctrl + A → K 現在のウィンドウを閉じる

screen の活用例

リモートサーバーでプロセスを維持

screen -S longprocess
python myscript.py  # スクリプト実行
# Ctrl + A → D でデタッチ

切断後も screen -r longprocess で再接続可能。

複数の作業を並行実行

screen -S multitask
# Ctrl + A → C で新しいウィンドウを作成
# Ctrl + A → N で次のウィンドウへ移動

.screenrc でのカスタマイズ

設定ファイル ~/.screenrc を編集すると、快適な環境を構築できます。

defscrollback 5000  # スクロールバッファ増加
hardstatus alwayslastline "%{= kg}Screen: %H | %Lw"

screentmux の比較

項目 screen tmux
ウィンドウ管理 シンプル 高度(ペイン分割可能)
マウスサポート なし あり
設定の柔軟性 限定的 高機能

まとめ

  • screen は仮想ターミナルを管理するツール。
  • 長時間実行プロセスを維持し、複数の作業を並行実行可能。
  • Ctrl + A キーを活用すると効率的に操作できる。

リモート作業やターミナル作業をより快適にしたい人におすすめです。

Discussion