banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

終端多重化ツールscreenの使用記録

概要#

screen は強力なターミナルマルチプレクサであり、1 つの物理的な端末で複数のフルスクリーンパネル(仮想端末)を実行することができます。これは、長時間実行するプロセスが必要な場合や、リモートセッションでセッションが切断されないようにする必要がある場合に特に便利なツールです。screen を使用すると、起動したアプリケーションをバックグラウンドで実行できます。

インストール#

Linux でのインストール

sudo apt install screen

Mac でのインストール

brew install screen

パラメータ#

オプション説明
-4ホスト名を IPv4 アドレスにのみ解決します。
-6ホスト名を IPv6 アドレスにのみ解決します。
-A -[r|R]すべてのウィンドウを新しい表示の幅と高さに合わせます。
-c file'.screenrc' ではなく、設定ファイルを読み込みます。
-d (-r)実行中の screen をデタッチします(ここで再接続します)。
-dmS nameデーモンモードで起動し、screen セッションをデタッチします。
-D (-r)リモート接続をデタッチしてログアウトします(ここで再接続します)。
-D -RRscreen セッションを取得するために必要な操作を実行します。
-fフロー制御をオンにします。-fn = オフ、-fa = 自動。
-h linesスクロールバッファのサイズを設定します。
-iフロー制御がオンの場合、出力を早めに中断します。
-lログインモードをオンにします(/var/run/utmp を更新します)、-ln = オフ。
-ls [match]何もせず、SockDir をリストアップします [可能な一致項目で]。
-L出力ログをオンにします。
-Logfile fileログファイル名を設定します。
-m$STY 変数を無視し、新しい screen セッションを作成します。
-O正確な vt100 エミュレーションではなく、最適な出力を選択します。
-p window存在する場合、指定した名前のウィンドウを事前選択します。
-qクワイエットモードで起動します。失敗した場合は終了し、非ゼロのリターンコードを返します。
-r [session]デタッチされた screen プロセスに再接続します。
-R可能な場合は再接続し、それ以外の場合は新しいセッションを開始します。
-s shell実行するシェル($SHELL ではなく)を指定します。
-S socknameこのセッションを<pid>.socknameではなく<pid>.<tty>.<host>として名前付けます。
-t titleタイトル(ウィンドウの名前)を設定します。
-Uscreen に UTF-8 エンコーディングを使用するように指示します。
-xデタッチされていない screen にアタッチします(マルチディスプレイモード)。
-X指定したセッションで<cmd>を screen コマンドとして実行します。

#

  • 新しい screen セッションを起動する
screen
  • screen セッションに名前を付けて、セッションの管理を容易にする
screen -S <name>
  • 実行中の screen セッションをデタッチしてバックグラウンドに移動する(セッション内で操作)
ctrl + a; d

image

  • 実行中の screen セッションをリストアップする
screen -ls

image

  • 指定した PID で実行中の screen に再接続する
screen -r <pid>

image

  • 指定した名前で実行中の screen に再接続する
screen -r <name>

image

  • screen セッションをロックする
ctrl + a; x

セッションを開くにはパスワードを入力する必要があります

  • デタッチされた screen セッションを終了する
screen -S <name-or-pid> -X kill

image

  • デタッチされた screen セッションを終了する
screen -S <name-or-pid> -X quit

image

一般的なショートカットキー#

  • 現在のセッションで新しいウィンドウを作成する
ctrl + a;c

ウィンドウの切り替え

次のウィンドウに切り替える:

ctrl-a;n

前のウィンドウに切り替える:

ctrl-a;p

すべてのウィンドウを一覧表示する:

ctrl-a;w

ウィンドウを閉じる

現在のウィンドウを閉じる:

Ctrl-a;k

ウィンドウの名前を変更する

現在のウィンドウの名前を変更する:

Ctrl-a;A

画面を分割する

水平に画面を分割する:

Ctrl-a;S

垂直に画面を分割する(新しい screen バージョンでサポートされています):

Ctrl-a;|

次の分割画面に切り替える:

Ctrl-a;TAB

現在の分割画面を閉じる:

Ctrl-a;X

便利な例#

リモートセッション#

ssh 経由でリモートサーバーにアクセスし、セッションを切断せずに操作を継続する場合は、screen を使用できます:

ssh user@server_ip
screen -S remotesession

screen セッション内で操作を行うと、ネットワーク接続が切断されてもセッションは実行され続けます。再接続する場合は:

ssh user@server_ip
screen -r remotesession

マルチタスク処理#

同じ screen セッションで複数のタスクを処理する:screen -S multitask

最初のウィンドウでタスクを実行する、例えばシステムログの監視:tail -f /var/log/syslog

新しいウィンドウを作成する:Ctrl-a;c

新しいウィンドウで他のタスクを実行する、例えばファイルの編集:vim /etc/hosts

Ctrl-a;nCtrl-a;pを使用して 2 つのウィンドウ間を切り替えます。

screen セッションの終了#

exitまたはCtrl-dを使用してすべてのウィンドウを閉じると、screen セッションは自動的に終了します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。