画面-1つのSSHセッションに複数の画面があります。 画面-1つのSSHセッションでの複数の画面Ubuntu画面の異なるユーザー

5,958ビュー

Screenの作成者は、ユーティリティを(疑似)端末マネージャと呼びます。 アイデアは、「実際の」TTYで作業しているかのように、1つの単一端末からこれらの端末へのアクセスを提供し、Alt-Fnを使用して1つから別の端末に切り替えることです。

実際、Screenはさらに多くのことを行います。 その主な利点を2つ挙げます。


米。 2. 2つの別々に開いているウィンドウ(下)ではなく、1つの画面ウィンドウ(上)にある両方の疑似端末。

ユーティリティの説明に進む前に、用語について合意しておくと便利です。これにより、Screenがどのように機能するかを理解しやすくなります。

1.用語と定義

-独自のbash(非ログイン)を備えた疑似端末。 ウィンドウには0から9までの番号が付けられています(ウィンドウ番号は再定義できます)。 それらには名前を付けることができます(そしてできれば)。

領域-ウィンドウの1つが表示されている画面の長方形の領域。 画面は、垂直方向と水平方向の両方の領域に分割できます。

画面レイアウト(レイアウト)。これは、端末画面が分割される領域のセットです。 各レイアウトに名前を付けて構成ファイルに追加すると、レイアウトコマンドグループを使用してScreenセッション内でレイアウトをすばやく選択できます(以下を参照)。

2.コマンドの説明

キーボードショートカットを制御します。画面に制御コマンドを入力するモードに切り替えるには、デフォルトでCtrl-aを使用します。 この組み合わせを押すと、実際の制御文字または組み合わせが入力されます。たとえば、? (コマンドヘルプ)またはCtrl-I(次の領域に移動)。 簡単にするために、以下では、Ctrl-aスイッチなしでコントロールショートカット自体についてのみ説明します。

Windows(疑似端末、PTS)の操作 bashが実行されているウィンドウを作成します。Kウィンドウを閉じるAウィンドウの名前を変更rターミナルでの行の折り返しを有効/無効にする" リストウィンドウ 画面の領域での作業 s領域を水平方向に2つに分割私(パイプ)エリアを垂直方向に2つに分割しますタブ画面の次の領域に切り替えますQ他のすべての領域を閉じて、最新の状態に保ちます(これが焦点です) スクリーンセッションの操作 dセッションをバックグラウンドに戻し、システムコンソールに戻ります

内部画面コマンド。制御文字を入力すると使用可能:(コロン)。

マウストラックオンエリアを切り替えるためのマウスサポートを有効にします。 同時に、Puttysshクライアントウィンドウでマウスを右クリックしてコピー/貼り付けする機能がブロックされます。 何らかの理由で、この関数はScreenセッションを「切り離して」、それに戻った後に消えます。レイアウトショー構成ファイルで定義されている画面レイアウトのリストを表示するレイアウト選択構成ファイルで番号(n)またはタイトル(タイトル)のいずれかで指定された名前付き画面レイアウトを選択します。レイアウト保存XXX構成ファイルに名前付きマークアップが書き​​込まれていない場合(たとえば、screenをインストールしたばかりの場合)、Screenセッションをデタッチする前に、このコマンドを実行して現在のレイアウトをXXXという名前で保存する必要があります。 この場合のみ、システムコンソールからScreenセッションに再度入ると、最後のマークアップが復元されます。レイアウトの自動保存autosaveマークアップコマンドは通常、構成ファイルに書き込まれます。 Screenセッションが「デタッチ」されたときに画面に表示されていた名前付きレイアウトを記憶しています。 このコマンドは、構成ファイルで明示的に指定されているマーキングに対してのみ機能します。 それ以外の場合は、現在のレイアウトをlayout save XXXコマンドで保存する必要があります(上記を参照)。終了するすべてのウィンドウを閉じてセッションを終了します

/ *ここで現在のテーブルにカスタムCSSを追加できます* / / * CSSの詳細:https://en.wikipedia.org/wiki/Cascading_Style_Sheets * / / *他のテーブルへのスタイルの使用を防ぐには、「# supsystic-table-1 "例:ベースセレクターとして:#supsystic-table-1(...)#supsystic-table-1 tbody(...)#supsystic-table-1 tbody tr(...)* //

3.構成ファイルの例.screenrc

グローバル画面構成ファイルは/ etc / screenrcにありますが、便宜上、ユーザーのホームディレクトリ〜/ .screenrcにあるカスタムファイルを作成することをお勧めします。 ローカルファイル名の先頭にドットがあることに注意してください。

基礎として、Github(joaopizaniによる.screenrc)からファイルを取得し、ニーズに合わせて調整しました。


したがって、Screenが起動すると、Total Commanderスタイルの画面が表示されます。これは、別のレイアウトを選択することでいつでも変更できます。 システムコンソールから画面セッションに戻ると、自動保存機能のおかげで、マークアップは「固定を解除」したときと同じになります。

あなたはssh経由でリモートサーバーにログインし、キーボードを楽しくノックし、独自の管理作業を行い、おっと! 文字の印刷が停止し、メッセージそのものが抜け落ちたため、キーボードを壊したいという魅力的な欲求が生じることがありました。 接続が閉じられました。 おなじみの状況? はい、セッションがクラッシュしたばかりで、もう一度やり直す必要があります...これはscreenを使用することで回避できます。 これにより、セッションを安全で健全な状態に保つことができるだけでなく、1つのターミナルウィンドウで複数のセッションを開いたままにすることもできます。

画面とは何ですか?
まず、マニュアルページを見てください。「Screenは、物理端末を複数の独立したプロセス(通常はインタラクティブシェル)に分割できるフルスクリーンウィンドウマネージャーです。」
Screenには、sshを介してリモートサーバーでタスクを実行するときに非常に役立ついくつかの特徴的な機能があります。 マルチウィンドウ、ロギング、セッションの3つの最も頻繁に使用される機能について説明します。 詳細については、manページを参照してください。

インストール画面
ほとんどの場合、画面はすでにシステム上にあります。 これはコマンドで確認できます

それでも問題が解決しない場合は、システムのパッケージマネージャーを使用してscreenをインストールしてください。 私のサーバーは主にCentOSとDebianなので、次のような画面を表示します。

#yumインストール画面(CentOSの場合)
#apt-get install screen(Debianの場合)

FreeBSDも出くわします。この場合、私はポートを使用します。

#cd / usr / Ports / sysutils / screen
インストールをクリーンにする

画面の使用
画面は、他のアプリケーションと同じようにコマンドラインから起動されます:)

画面が実行されているというメッセージが表示される場合と表示されない場合があります...システムによって異なります。 メッセージを受け取っていない場合は、何も起こらなかったと思うかもしれません。 ただし、そうではありません。 君 すでに画面で実行されている端末の内部。 これは、いくつかの特別なコマンドを除いて、通常の完全に機能するシェルです。 Screenは、キーボードショートカットのCtrl + Aを使用して、画面内の端末にコマンドを発行します。 Ctrl + Aを押してから?
次のようなものが表示されます。

画面キーのバインド、1/2ページ。

コマンドキー:^ Aリテラル^ A:a

ブレーク^ Bbロックスクリーン^ XxリセットZ
C logH画面をクリア^ C c
コロン:ログインL選択” ‘
コピー^ [[メタ沈黙_
デタッチ^ DdモニターMスプリットS
digraph ^ V next ^ @ ^ N sp n suspend ^ Z z
*数値N回^ Ttを表示します
フィットFのみQタイトルA
フロー^ Ffその他^ A vbell ^ G
フォーカス^私はpow_breakBバージョンv
ヘルプ? pow_detachD幅W
履歴()prev ^ P p ^? 窓^ W w
info i readbuf< wrap ^R r
Kill K redisplay ^ L l writebuf>
lastmsg ^ M m remove X xoff ^ S s
ライセンス、removebuf = xon ^ Q q

Ctrl + Aを押した後、画面はコマンドキーボードショートカットを受け入れます。 この動作は、構成ファイル$ HOME /.screenrcを使用して変更できます。

複数のウィンドウ
Screenは、ほとんどのウィンドウマネージャーと同様に、複数のウィンドウをサポートしています。 これは、新しいsshセッションを開かずに並列タスクを実行するのに非常に便利です。 たとえば、私は常に4つまたは5つのセッションを開いており、それぞれにいくつかのタスクがあります。 以前は、約15の端末、ログイン、セッションを開かなければならなかったでしょう..疲れますね? これらの不便は、画面によって完全に解決されます。 これで、1つの端末で簡単に処理できます。

「Ctrl + ac」というキーの組み合わせで新しいウィンドウが開きます。 クリックすると、同じウィンドウにプロンプ​​トが表示された新しい端末が表示されます。 この場合、以前のウィンドウも引き続き機能します。 それを試してみましょう:画面を実行し、その上に

Mem:506028K av、500596K使用、5432K無料、
0K shrd、11752Kバフ
393660Kがキャッシュされました


6538ルート250 1892 1892 596 R 49.1 0.3
6614ルート160 1544 1544 668 S 28.3 0.3
7198管理者150 1108 1104 828 R 5.6 0.2

次に、「Ctrl + ac」を押して新しいウィンドウを開きます

Ctrl + anを押して戻る

Mem:506028K av、500588K使用、5440K無料、
0K shrd、11960Kバフ
スワップ:1020116K av、53320K使用、966796K無料
392220Kがキャッシュされました

PIDユーザーPRINIサイズRSS共有統計%CPU%ME
6538ルート250 1892 1892 596 R 48.3 0.3
6614ルート150 1544 1544 668 S 30.7 0.3

トップは同じままです。 複数のウィンドウを作成し、Ctrl + a nを使用して次のウィンドウに切り替え、Ctrl + a pを使用して前のウィンドウに切り替えることができます。 この場合、起動された各プロセスは正常に機能し続けます。

画面から切断する
画面からログアウトするには2つの方法があります。1つは単にログアウトする方法です。 キーボードショートカットのCtrl + Kを使用するか、exitと入力するだけです。 このメソッドは、複数の画面がある場合、または画面を完全に停止している場合に、現在のウィンドウを「強制終了」します。
2番目の方法は 切断..。 この方法では、現在のプロセスが実行されたままになり、ターミナルから切断されます。 たとえば、注意を必要としないsshセッションを介して非常に長いプロセスを開始する場合は、Ctrl + adを使用して画面から切断するだけです。 これにより、元のシェルに戻ります。 画面で拡張されたすべてのプロセスは実行されたままであり、後でそれらに接続できます。

セッションに接続する
screenを使用してリモートサーバー上で大きなプログラムをコンパイルしています。 そしてもちろん、マーフィーの法則によれば、接続はあなたの制御が及ばない理由で終了します。 慌てる必要はありません。画面によってすべてが保存されました:)サーバーに再度接続して、画面の下で実行されているプロセスを確認してください。

#screen -ls
次の画面があります。
31619.ttyp2.server(切り離された)
4731.ttyp2.server(切り離された)
/ tmp / screens / S-rootの2つのソケット。

この例では、2つの画面セッションが実行されています。 目的の接続に接続するには、次のコマンドを使用します

#screen -r 31619.ttyp2.server

rフラグとセッション名が付いたscreenを使用するだけで、再接続できます。 とても快適です。 たとえば、仕事で長いプロセスを開始し、家に戻ってその実装の監視を続けることができます。

ロギング
あなたの行動の完全なログを保持することは時々非常に重要であるように私には思えます。 幸い、screenはこれを簡単に実行します。 Ctrl + a Hを押してログをアクティブにするだけです。画面は、プロセス全体を通してログを継続します。 戻って、必要なアクションの順序を確認すると非常に便利です。

そしてもう少し…
画面はウィンドウのアクティビティを監視できます。 大きなものをダウンロードしたり、プログラムをコンパイルしたり、長いプロセスを実行したりしている場合は、長時間アクティビティの兆候がない空の端末が表示されることがあります。 その間、プロセスは実行され続けます。 または、逆に、プロセスの終了を待って、デバッグ情報のフローを確認します。 追跡を開始するには、監視する端末に移動し、Ctrl + Mを押してアクティビティを追跡するか(新しい情報が表示されたときにトリガーされます)、Ctrl + a _を押して非アクティブを追跡します(端末が情報の受信を停止したときにトリガーされます)。 その後、別のウィンドウに安全に切り替えるか、新しいウィンドウを作成できます。 イベントが発生すると、画面に端末タイトルにウィンドウ番号が記載されたメッセージが表示され、警告が表示されます。 このウィンドウにすばやく切り替えるには、Ctrl + a”(これは引用記号です)を使用します。 現在アクティブなすべてのウィンドウのリストが表示されます。 目的のウィンドウに移動するには、矢印を使用するか、目的のウィンドウの番号をダイヤルするだけです。 監視を停止するには、必要なウィンドウに移動し、同じコマンドで監視をキャンセルします。 たとえば、アクティビティの監視を停止するには、Ctrl + aMを押します

1年以上の間、クラスメートは私に仕事をしながらスクリーンを使い始めるように勧めました。 時が経つにつれ、私はまだそれを手に入れることができませんでした。 しかし無駄に...

Screenは、1つのターミナルセッションから一度に複数のウィンドウを操作できるフルスクリーンウィンドウマネージャーです。 つまり、sshを介してリモートマシンに接続することにより、ctrl + alt + f1、ctrl + alt + f2を押すなど、1つのセッション内で一度に複数のウィンドウを操作できます。プログラムには1つの重要な機能があります。接続が切断されたり、接続が実行されている「画面」プロセスから切断されたりしても、停止せず、いつでも接続に戻ることができます。 これには多くの用途があります。 たとえば、リモートサーバーを使用すると、接続が突然切断された場合でも、起動されたプログラムのコンパイルが確実に終了します。

インストール

プログラムは通常どおりにインストールされます。たとえば、Ubuntuには次のようにインストールされます。

apt-getインストール画面

私のUbuntu10.04デスクトップでは、このパッケージがすでにシステム上にあることにも注意してください。

Screenの使用

プログラムの起動:

プログラムを開始すると、プログラムに関する簡単な情報が表示されます。 削除するには、Enterキーまたはスペースキーを押します。 何も起こらなかったと思うかもしれませんが、そうではありません。画面で実行されている端末の内部にいます。 その後、私たちが慣れているコンソールが表示されます。

画面コマンドを発行するには、Ctrlキーとキーの組み合わせを使用します。 以下は、シェルを制御するために使用される主なコマンドのリストです。

  • c-新しいウィンドウを作成します
  • n-次のウィンドウに切り替えます
  • p-前のウィンドウに切り替えます
  • k-ウィンドウを閉じます
  • d-画面から切断します
  • "-画面で実行されているウィンドウのリスト

たとえば、新しいウィンドウを作成するには、ctrl + aを押してcを押します。

画面から切断すると、その中で実行されているすべてのウィンドウとプロセスが引き続き実行されます。 実行中の画面を表示するには、次のコマンドを使用します。

コマンド出力は次のようになります。

次の画面があります。
18388.pts-4.asid-ubuntu-vm(09/23/2010 05:05:30 AM)(切り離された)
18272.pts-0.asid-ubuntu-vm(09/23/2010 04:54:23 AM)(切り離された)
/ var / run / screen / S-rootの2つのソケット。

実行中の画面に接続するには、screen-rコマンドを実行します ..。 たとえば、次のようになります。

screen -r 18388.pts-4.asid-ubuntu-vm

以下:

別のマシンから画面から切断するのを忘れた場合(画面の出力で-lsの横に碑文が表示されます)、-rdパラメーターを使用してそれを傍受できます。

画面-rd18388

最後の画面に接続するには、次のようにするだけです。

まあ、それがすべてのようです。 いつものように、マナでこれらと他のコマンドについての詳細。

  • SSHターミナルで複数のウィンドウを作成します。
  • ネットワークが停止しているときでも、セッションをアクティブに保ちます。
  • 異なる場所からセッションを切断して再接続します。
  • アクティブなセッションを維持せずに、長いプロセスを実行します。

Yumを使用したScreenのインストール

おそらく、システムにはすでにLinux画面があります。 ほとんどのRedHatおよびCentOSディストリビューションでは、ScreenLinuxは/ usr / bin / screenにあります。 Screenがそこにあるかどうかを確認するには、次のコマンドを使用できます。

#どの画面
/ usr / bin / screen

Screenがない場合は、システムのRPMまたはパッケージファイルからインストールできます。 たとえば、CentOSでは、yumを使用してScreenをインストールできます。

#yumインストール画面
...
完了!

すでにScreenを持っているか、RPMを使用できる可能性が高いため、リソースからScreenをインストールする方法については説明しません。 画面の使い方は次のとおりです。

ScreenLinuxの起動

画面は、他のコマンドと同じようにコマンドラインから実行されます。

[メール保護]〜]#画面

これで、Screenのウィンドウが表示されます。 いくつかの特殊文字を除いて、通常のシェルとまったく同じように機能します。

経営陣

チーム: 「Ctrl-a」
Screenはコマンド「Ctrl-a」を使用します。これは「CTRL」キーであり、小文字の「a」はシェルではなくScreenにコマンドを送信するための信号として機能します。 たとえば、「Ctrl-a」、「?」の順になります。 画面のヘルプページが表示されます。

キーバインドは、Ctrl-aを押した後にScreenが受け入れるコマンドです。 .screenrcファイルを使用して、これらのキーを好きなようにオーバーライドできますが、私はデフォルトを使用しています。

ウィンドウを作成する

チーム: 「Ctrl-a」「c」..。 新しいウィンドウを作成するには、「Ctrl-a」「c」を使用します。

この組み合わせは、デフォルト設定で、新しいウィンドウを作成します。 古いウィンドウは引き続きアクティブです。
たとえば、topを実行してから、新しいウィンドウを開いて別のことを行うことができます。 トップは機能し続けます! 試してみるには、画面を起動してからtopを実行します。 (注:スペースを節約するために、いくつかのスクリーンショットをカットしました。)

走る ...

top-09:10:3​​3 up 35日、17:26、1ユーザー、ロードaverag
タスク:合計131、ランニング1、睡眠130、ストップ0
CPU(s):0.4%us、0.2%sy、0.0%ni、99.4%id、0.0%wa、0
Mem:合計12302040k、使用済み6363652k、無料5938388k、
スワップ:合計1052248k、使用済み12k、無料1052236k、

次に、「Ctrl-a」「c」で新しいウィンドウを開きます。

メインウィンドウはまだ実行中です。 必要に応じて、それに切り替えることができます。

ウィンドウを切り替える

コマンド: "Ctrl-a" "n"

画面を使用すると、前後に移動できます。 「Ctrl-a」「n」を使用して戻ることができます。 このコマンドは次のウィンドウに切り替わります。

カルーセルのように機能します-最初のウィンドウに円を描くようにループバックします。 複数のウィンドウを作成し、次のウィンドウの場合は「Ctrl-a」「n」、前のウィンドウの場合は「Ctrl-a」「p」に切り替えることができます。 ウィンドウを閉じるまで、各プロセスは実行を継続します。

画面から切断する

コマンド: "Ctrl-a" "d"

この画面では、ウィンドウから切り離して、後でウィンドウに戻ることができます。 ネットワーク接続が失われると、Screenは自動的にセッションを切断します!

「Ctrl-a」「d」で切り離すことができます。

すべての画面ウィンドウはまだそこにあり、それらに再接続できます。 これは、rsyncを使用してサーバーを移行する場合に役立ちます。

画面への再接続

接続が失われた場合、またはScreenから切断した場合は、次のコマンドを実行するだけで再接続できます。

$ screen -r

これにより、画面に再接続されます。 ただし、複数の画面がある場合は、次のように取得できます。

$ screen -r
にいくつかの適切な画面があります:
31917.pts-5.office(切り離された)
31844.pts-0.office(切り離された)
「screen [-d] -r tty.host」と入力して、そのうちの1つを再開します。

その場合は、必要な画面を定義するだけです。

$ screen -r 31844.pts-0.office

画面アクションの登録

他の人のサーバーで自分が行っていることをキャプチャすることが重要だと思います。 幸い、Screenを使用するとこれが簡単になります。
使用する 「Ctrl-a」「H」、セッション登録を開始します。 画面は、複数のセッションにわたってファイルにデータを追加し続けます。 登録機能を使用すると、特に多くの変更を行う場合に、何をしているかを追跡するのに非常に役立ちます。 何かがうまくいかない場合、間違いを見つける機会が常にあります。

通知を受け取る

画面は、ウィンドウがアクティブか非アクティブかに関係なく、ウィンドウを監視できます。 この機能は、大きなファイルをアップロードする場合、コンパイルする場合、または出力を待つ場合に必要です。

「長い」プログラムからの応答を待っている場合は、「Ctrl-a」「M」を使用してアクティビティを追跡できます。 画面に応答が記録されると、画面の下部に警告が表示されます。
時間がかかるコマンドを実行するときに使用します。 コマンドを実行して別のウィンドウに切り替えるだけで、毎回戻ってステータスを確認する必要はありません。

大きなファイルをダウンロードしたり、プログラムをコンパイルしたりする場合は、完了時に通知が届きます。 これは、タスクが完了したことを示すシグナルになります。 画面を表示せずにそのような瞬間を制御するために、私は 「Ctrl-A」「_」.

スクリーンセッションロック

コンピュータを数分間離れる必要がある場合は、次を使用してセッションをブロックできます。 「Ctrl-a」「x」..。 セッションに再度アクセスするには、パスワードが必要です。

ルートが使用する画面 .
パスワード:

停止画面

終わったら、後でセッションを終了するのではなく、セッションを終了することをお勧めします。 Screenを停止するには、通常どおり、シェルから「Exit」と入力するだけです。 画面が閉じます。 セッションを終了するには、すべてのウィンドウを閉じる必要があります。

すべてのウィンドウを閉じるとすぐに、画面のシャットダウンが開始されたことを示すメッセージが表示されます。

または、 「Ctrl-a」「k」.

そのような素晴らしいユーティリティがあります 画面今まで知らなかった! 今はいつも使ってみています。 そして、うまくいけば、この記事を読んだ後、あなたもそれを使うでしょう。

それで、それは何のためですか?

SSH経由でターミナルで作業しているときに、切断が発生し、すべての開発(オープン構成またはコピープロセス)が失われたという状況が何度もありました。 Screenを使用すると、その環境でユーザーセッションを起動し、さまざまな仮想コンソールを使用してそれらにアクセスできます。 任意のサービスの構成を開いたままにし、営業日の終わりに切断し、家に帰って家から同じセッションに接続することができます。履歴、開いているエディター、等 コミュニケーションの中断はもはや障害ではありません。 あなたはいくつかの異なるセッションを持ち、それらに任意に接続することができます!

それがどのように機能するか見てみましょう:

ユーティリティはすでにインストールされており、コマンドは次のことを喜んで知らせてくれました。

#dpkg情報| grep画面

OK、これですべてです。 これで作業を開始できます。

スクリーンセッションの操作

コンソールにこのプログラムの名前を入力すると、画面を開始できます。 すぐにターミナルまたは招待ウィンドウに移動します。そこから、スペースバーを押すか、ターミナルに再び入ると、そこから移動します。

次のようなすべての画面セッションを表示できます。

セッションが開いている場合は、次のように接続できます。

#screen-x名前

または、セッションが1つしかない場合は、名前なし。

次のような特定の名前でセッションを作成できます。

#画面-S「名前」

さらに、次のように入力することで、画面セッションでプログラムをすぐに起動できます。

#画面<команда>

画面を操作しました。これで、セッションを強制終了するか(シェルを終了する)、セッションから切断する(Ctrl + D)ことができます。 この場合、セッションにあったすべてのものがさらに実行され続けます。

さらに、1つの画面ウィンドウで複数のコンソールを使用できます。

コマンドでセッションを強制終了できます その後 k.

画面制御

画面には非常に特殊なコントロールがあります。 組み合わせが先行するものを除いて、すべてのキーストロークはその中で実行されているプログラムに送信されます Ctrl + a(ディフォルト)。 それらの。 画面を制御するには、最初にこの組み合わせを押してから、Ctrlキーを入力する必要があります。

したがって、画面セッション内に新しいウィンドウを作成します。

# c

このウィンドウの名前を変更して、すばやく見つけられるようにすることができます。

# A

テキストを入力して、Enterキーを押します。

次のようにすべてのウィンドウを表示できます。

#

番号と名前の付いたウィンドウのインタラクティブなリストが表示されます。任意のウィンドウに切り替えることができます。

非対話型リストを選択するオプションがあります w、および次への切り替え nまたは前のウィンドウに p..。 または、既知のウィンドウ番号に直接 2 ..。 番号付けはゼロに基づいていることに注意してください。

これは、次の場合に非常に便利です。プロセスをリアルタイムで監視する必要があるとします。 ログファイルを常に聞きたいとします。 このためにコマンドが必要です

#tail -f / path / to / log

これにより、最新の10レコードがリアルタイムで取得され、画面に表示されます。 次のような新しいコンソール画面を作成しましょう。

#screen -d -m -S tail-log tail -f /var/log/nginx/error.log

-これにより、新しい画面セッションが作成されます。 画面がまだ起動されていないとき。 一見すると、このコマンドを入力しても何も起こりません。 実際、そうです。 コマンド「tail-f / var / log / nginx / error.log」が実行される「tail-log」という名前の新しいセッションを作成(-m)し(最後の10個のログエントリをリアルタイムで表示します)、このセッションすでに最小化されて開始されています(-d)。

すでに画面を実行している場合は、新しいウィンドウを作成できます。

# c

名前をtail-logに変更します

# A

そして、そこで必要なコマンドを実行します。

#tail -f /var/log/nginx/error.log

また、別のウィンドウで、同様の方法でファイアウォールルールエディタを開き、明らかに望ましくないユーザーをDENYに追加します。ウィンドウからウィンドウにすばやく切り替える必要がある場合は、その他の同様のアプリケーションを使用します。

ウィンドウの変更を監視する

しかし、それだけではありません。 アメニティはまだ始まったばかりです。 ウィンドウの出力が長時間変化しない場合があります。 たとえば、一部の情報がログに記録されるまで待機するのに非常に長い時間がかかる場合があります。 そして、画面はそれと関係があります!

ログファイルがリッスンされる2つのLOGウィンドウと、コンソールであるUSERを起動しました。 コンソールを待っています。 リスニングログに何かが来たら反応します。 しかし、変化を捉えるために、絶えず前後に切り替えないでください。

組み合わせを押します:

# M

ウィンドウアクティビティの監視を有効にします。 これで、ウィンドウのテキストが変更されると、その名前の横にあるウィンドウのリストに記号「@」が表示され、ウィンドウの下部に「ウィンドウ番号のアクティビティ…」という碑文が数秒間表示されます。表示されます!

「無音」を監視する逆の機能もあります。これには、次のコマンドが使用されます。 _ .

一度に2つのウィンドウ

一度に2つのコンソールウィンドウを開くことは可能ですか? もちろんできます! 画面では、ウィンドウを分割できます。 これが私たちのやり方です。

ウィンドウをパーツに分割します。

# S

これにより、現在のウィンドウが一番上に移動します。

下位レベルの領域への切り替え(すでに最下部にある場合は最初の領域への切り替え)は、次のように実行されます。

# タブ

そこで別のコンソールを開きます。

#

名前で選択します。 ウィンドウ名は、混乱しないように強調表示されています(0 LOG、1 USER)。
一度に2つのウィンドウ? 簡単

上記のように、入力フォーカスをTabで移動することにより、最終的に十分な数になります。 窓を閉めます。

# バツ-現在のリージョンを閉じます。 Q現在のものを除く他のすべてを閉じます。 それはあなたが必要とするものに依存します。

ウィンドウ間でテキストをコピーする

別の興味深い可能性があります-特別なバッファを使用してウィンドウ間でテキストをコピーします。

これにはコマンドがあります

# [ 、この場合、カーソルキーを使用してウィンドウ内を移動し、テキストフラグメントの開始を確認するには、スペースバーを押します。 カーソルの矢印を移動し、選択範囲の終わりをマークして、スペースバーをもう一度押します。 これで、フラグメントがコピーされます。 を押すと、同じウィンドウまたは別のウィンドウに挿入されます ] ..。 とても簡単です!

ロギングと印刷画面

ウィンドウに出力されたすべてのテキストを特別なファイルにトレースすることもできます。 スクリーンログ。 ここで、Nはウィンドウ番号です。

#H

これで、作業のすべての結果がログに記録され、入力だけでなく出力の履歴も表示できます。

また、現在のウィンドウを削除するためのコマンド

#h

ファイルに転送 ハードコピー。 I / Oを常に監視するのではなく、現在のウィンドウの内容のみ。 印刷画面のアナログ。

構成

Screenは非常に柔軟に構成できます。 起動後、ユーザーのディレクトリにある/ etc / screenrcconfigsおよびpersonal.screenrcのコマンドが実行されます。

各キーボードコマンドには、ヘルプで表示できる構成のテキストバージョンもあります。

しかし、たとえば、これは、挨拶をオフにし、タイトルとステータス行を作成し、対応するディレクトリを開く2つのUSERウィンドウとLOGウィンドウを作成し、最初のUSERウィンドウをアクティブにするような構成です。
startup_message off
キャプションは常に「%(= 45)%(+ b w)画面:%n |%h%=%t%c」
hardstatus alwayslastline "%-Lw%(= BW)%50>%n%f *%t%(-)%+ Lw%<"
chdir / root /
screen -tUSER
chdir / var / log / nginx /
画面-tログ
0を選択

これで、画面を開始するだけで、次のようになります。

リファレンス

あなたがこのように見ることができる他の可能性があります。

トピックの続き:
スマートテレビ

WordPressサイトはありますが、現在よりも強力なホスティングが必要ですか? 次に、WordPressVPSホスティングが役立ちます。 私の...