画面コマンド Linuxで、1つのシェル内に複数のターミナルシェルを起動して配置するために使用される非常に一般的なコマンドです。
画面はほとんどの場合、2つの目的で使用されます。
複数のシェルを整理するために使用できます。 簡単に移動できます。
リモートサーバーで長時間実行されるコマンドを使用するためにも使用できます。 。
実際、突然のネットワーク停止の場合に遠くの作業が失われないようにするために、画面が起動されます。
このチュートリアルでは、Linuxでのscreenコマンドとは何か、およびそれを効果的に使用する方法の完全な概要を説明します。
準備はいいですか?
前提条件
新しいパッケージをインストールするには、sudoユーザーである必要があります 。
Debianのsudoersにユーザーを追加する必要がある場合は、そのチュートリアルがあります。
RedHatベースのディストリビューション用のものもあります。
準備ができたら、このコマンドを入力して、sudo権限があることを確認します。
$ sudo -l
User user may run the following commands on localhost:
(ALL) ALL
LinuxへのScreenのインストール
screenをインストールするには、次のいずれかのコマンドを実行する必要があります。
Debianベースのディストリビューションについて 、実行できます
$ sudo apt-get install screen
RedHatベースのディストリビューションの場合 、実行する必要があります
$ sudo yum install -y screen
完了したら、このコマンドを実行して、現在の画面バージョンを確認できます。
$ screen -v
Screen version 4.06.02 (GNU) 23-Oct-17
LinuxでのScreenとの対話
前述のように、screenは、複数のシェルを再配置できるインタラクティブシェルを開始するために使用されます。
最初の画面を開始するには、次のコマンドを入力するだけです。

ご覧のとおり、ヘッダーが書き込むという事実を除いて、以前のシェルとの違いはありません
screen 0: [email protected]:~
そこから、bashインタープリターがscreenユーティリティを介して別のbashインタープリター内で実行されることを意味します。
コマンドを実行するには、通常どおりにコマンドを入力するだけです。

画面のヘルプを取得する
画面コマンドを操作するときは、画面セッション内でアクションを実行するためにキーボードでショートカットを実行する必要があります。
デフォルトでは、「Ctrl+A」 キーストロークは、画面と対話するように設計されています。
例として、「Ctrl + A」、次に「?」と入力します。 画面のヘルプを取得するために。

ご覧のとおり、画面を操作するためのさまざまなオプションがあります。
最も人気のあるものはおそらく次のものです:
- 「Ctrl+A」 次に「d 」:デタッチモード 。このオプションを使用して、切り離し(元のシェルに戻ることを意味します)、画面をバックグラウンドで実行させることができます。これは、ホストで長いタスクを実行している場合に特に便利です。
- 「Ctrl+A」 次に「x 」:ロック画面 。これは、別のユーザーが使用する画面セッションを保護するために使用されます。結果として、パスワードがセッションに設定されます。
- 「Ctrl+A」 次に「c 」:画面コマンド 。これまでで最も使用されているコマンドの1つであるこれらのバインディングは、画面インスタンス内に新しいウィンドウを作成するために使用されます。
- 「Ctrl+A」 次に「| 」:垂直分割 。デフォルトでは、このコマンドは現在のウィンドウを操作可能な2つの異なる領域に分割します。
- 「Ctrl+A」 次に「S 」:水平分割。
- 「Ctrl+A」 次に「n 」:インデックスが最も低いものからインデックスがより高いものまで、さまざまなウィンドウセッション間を移動するために使用されます。
- 「Ctrl+A」 次に「タブ 」:入力カーソルを画面内のさまざまな領域の1つに移動するために使用されます。
ほとんどの場合、これらは画面で使用するコマンドです。
screenコマンドで領域を分割する
例として、Linuxでscreenコマンドを使用して次のレイアウトを作成します。

ご覧のとおり、ターミナルを垂直方向と水平方向の両方に分割します。
コマンドを実行するために1つのウィンドウが使用されます(たとえば、長時間実行されるコマンドなど)。
topコマンドを使用してシステムパフォーマンスを監視するために、2番目のウィンドウが使用されます。
最後に、別のウィンドウを使用して、nanoエディターを介してファイルを編集できます。
画面ウィンドウの作成
まず、次のコマンドを実行してスクリーンセッションを作成します。
$ screen -S user-screen
-Sオプションは、画面環境用の名前付きセッションを作成します。
複数の管理者が同じシステムで作業している場合は、セッションに名前を付けて、セッションを他のセッションと区別することをお勧めします。
次に、3つのシェルセッションを操作するため、2つの追加画面が必要になります。
「作成」を実行します 」コマンドを2回実行します(「Ctrl+A」次に「c」 )。次の画面が表示されます。
現在セッションで3つの画面がアクティブになっているため、ヘッダーまたはターミナルシェルに「画面2」が表示されていることに注意してください。

画面ウィンドウを垂直方向と水平方向に分割する
次のステップは、現在のウィンドウにさまざまなリージョンを作成することです。
これを実現するには、最初に「Ctrl + A」を押してから「|」を押して、現在の領域を垂直に分割します。
最終的に次の出力が得られるはずです。

次に、「Ctrl + A」、「S」の順に押して、レイアウトを水平方向に分割します。
これはあなたが得るべきものです。

「Ctrl+A」、「Tab」の順に押して、2番目のリージョンに移動します。デフォルトでは、リージョンは空である必要があるため、「Ctrl+A」を押してから「n」を押して画面0セッションに移動できます。
そこから、実行したいコマンドを実行します。

他のリージョンでコマンドを実行するには、前の手順を繰り返します。
分割領域に最初に入るときは、画面ウィンドウ間を移動する必要があることに注意してください。

素晴らしい!完全なカスタム画面セッションを作成しました。
スクリーンセッションからの切り離し
画面セッションから切り離すために 、次のキーストロークを押すだけです。
$ Ctrl + A then d

スクリーンセッションはまだバックグラウンドで実行されています。
これは、画面コマンドの主要な側面の1つです。
SSH経由でリモートホストを作成し、いくつかのアクションを実行し、終了して後でそれらに戻るために使用できます。
このように、現在の端末を閉じることで失う可能性のある背景と前景を操作する必要はありません。
スクリーンセッションがまだ実行中であることを確認するには、次のコマンドを実行します
$ pstree | grep -A 2 -E "screen-"

画面セッションへの再接続
まず、次のコマンドを実行して、画面ウィンドウを一覧表示できます。
$ screen -ls

スクリーンセッションに名前を付けた場合は、次のコマンドを実行するだけです
$ screen -r <session_name>
上記の例では、セッションに戻るためにこのコマンドを実行する必要があります。
$ screen -r user-screen
lsコマンドの左端にある画面IDを使用して、セッションに戻ることもできることに注意してください。
$ screen -r 3600
残念ながら、視覚的な変更はすべて失われ、ウィンドウを再度分割する必要があります。
ただし、十分に練習すれば、ショートカットについて非常に簡単に学ぶことができます。
画面セッションのロック
他のユーザーが画面セッションを操作できないようにしたい場合があります。
画面をロックするには、「Ctrl+A」を押してから「x」を押します。

ロックを解除するには、スクリーンセッションを所有しているユーザーのパスワードを入力する必要があります。
結論
今日のチュートリアルでは、Linuxでscreenコマンドを簡単に操作して、共通のシェル内にカスタムシェル環境を作成する方法を学びました。
セッションを終了し、作業を保存できるようにするために、リモートサーバーで使用できることを学びました(たとえば、フォアグラウンドで長時間実行されているコマンドがある場合)。
Linuxシステム管理に興味がある場合は、Webサイトに専用の完全なセクションがあります。