LinuxのScreenコマンドを使用すると、ユーザーは複数の仮想端末を作成して、名前で保存し、キーボードショートカットを使用して再度開くことができます。
画面を使用してワークフローを改善することを検討する必要がありますか?試してみたい理由をいくつか見てみましょう。
ターミナルで多くの時間を過ごす場合、一度に複数のターミナルを使用してさまざまなタスクを実行することに気付くかもしれません。
たとえば、SSH経由でリモートサーバーにログインし、そこでいくつかのタスクを実行できます。同時に、ローカルシステムで作業を行っている間、サーバーのRAMとCPUの使用率を把握することもできます。
Screenを使用すると、1つの「画面」からすべてを実行できます。現在のワークフローを中断することなく、実行中のプロセスとセッションをバックグラウンドに送信できます。
いいですね? Screenについてもっと見てみましょう。
LinuxディストリビューションにScreenをインストール
まず、このソフトウェアがLinuxディストリビューションにすでに含まれているかどうかを確認する必要があります。最近の多くのディストリビューションにはそれが含まれていますが、通常は他の方法で簡単にインストールできます。
次のコマンドを実行して、インストールされているかどうかを確認できます。
screen --version
aptパッケージマネージャーを使用するDebian派生ディストリビューションであるPopOSを使用しています。画面はデフォルトではインストールされていないので、次のように入力します:
sudo apt install screen
別のパッケージマネージャーを使用している場合は、明らかにこのコマンドが異なる可能性があります。
画面はかなり使いやすいですが、ターミナルのキーボードショートカットに完全に依存しているため、特に新しいユーザーにとっては少し混乱する可能性があります。
いくつかの基本的な機能を説明する表を作成しました。完全なリストについては、キーバインド画面にアクセスすることもできます。
関数 | ショートカット |
---|---|
画面のデタッチ | [ctrl + a] + d |
[ctrl + a] + k | |
[ctrl + a] + n | |
[ctrl + a] + p | |
[ctrl + a] +? |
一度にすべてのキーを押すわけではありません。代わりに、[ctrl + a]を押してから、the specified key
を押します。 。
これらのショートカットでは大文字と小文字が区別されることに注意してください。 Linuxのほとんどのものと同様に、それらもカスタマイズできます。これは、.screenrc
を編集することで実現できます。 通常は/etc/screenrc
にあるファイル 。
LinuxでScreenを使用する方法
これらの一般的な管理タスクを、わかりやすい線形の方法で見ていきます。これにより、機能をデモするときに効果的に運転席に座ることができます。
画面を開始して、覚えやすい名前を付けることができます。
screen -S top
この例では、topという名前を作成しました(コマンドtopと混同しないでください。任意の名前を付けることができます)。名前付きセッションが自動的に起動し、必要なタスクを実行できます。
topコマンドのインスタンスを開始します。次に、[ctrl + a] + d
を使用します それを切り離すためのキーボードショートカット。 Topは引き続きバックグラウンドで実行されますが、画面アプリケーションに戻ります。
ここから、別のセッションを開始できます。これを「無料」と呼び(ここでは無料コマンドを使用しますが、session2などの名前を付けることができるため)、次のように入力します。
watch free
watchコマンドとfreeを組み合わせると、RAMの使用状況を常に監視できます。
Every 2.0s: free pop-os: Sun Dec 22 02:25:32 2019
total used free shared buff/cache available
Mem: 32596848 5500212 22689952 894876 4406684 25801480
Swap: 0 0 0
[ctrl + a] + d
を使用してもう一度切り離します キーボードショートカット。したがって、2つのプロセスがバックグラウンドで実行されています。
プロセスをチェックするために、どのようにプロセスに戻りますか?それを説明します。
セッション名を使用すると、オプション-rを使用して画面を簡単に再接続できます。
screen -r free
上記の動作でこれを見ることができます。同じ結果が得られない場合は、セッションの名前を間違えた可能性があります(またはすべて一緒に忘れた可能性があります)。これは慌てる必要はありません。
次のコマンドを使用して、開いているすべての画面セッションを一覧表示できます。
screen -ls
これを入力するために無料セッションを再度切り離したので、次の出力が得られます。
セッションに名前を付けなかった場合は、割り当てられたPIDとコンピューターIDでセッションを識別できます。名前付きセッションの場合と同じように、プロセスID(PID)を使用して目的の画面にアクセスできます。
screen -r 685
これは、私が「無料」と名付けた画面に関連付けられたPIDです。
さて、あなたがフォローしているなら、あなたは「無料セッション」を開いているべきです。それを取り除き、実行を停止しましょう。
[ctrl + a]+ k
を使用します アクティブな画面を強制終了します。左下に確認プロンプトが表示されたメッセージが表示されます。 y
と入力します セッションを終了します。しばらくすると、次のようなものが残ります:
[email protected]:~$ screen -r free
[screen is terminating]
-ls
を使用してすべてのセッションを一覧表示することで確認できます もう一度。
ご覧のとおり、「フリースクリーンセッション」はアクティブではなくなりました。
画面を本当に不可欠なものにしているのは、水平または垂直に配置された1つのセッション内で端末を複数のウィンドウに分割する機能です。
画面はアクティブエリアを使用して分割機能を実行し、画面機能を作成します。スプリットが作成されると、それがアクティブエリアになります。ただし、アクティブなウィンドウには何も入力できない場合があります。そのためには、画面を作成する必要があります。 [ctrl + a] + c
を使用してシェルを初期化できます 。
ターミナルウィンドウの管理とナビゲートに不可欠なキーボードショートカットは他にもあります:
関数 | ショートカット |
---|---|
水平分割(左/右) | [ctrl + a] + S |
垂直分割(上/下) | [ctrl + a] + | |
画面の作成/シェルの開始 | [ctrl + a] + c |
ウィンドウIDで切り替える | [ctrl + a] +0,1、etc。 |
ウィンドウの名前を変更 | [ctrl + a] + A |
アクティブウィンドウを閉じる | [ctrl + a] + X |
非アクティブなウィンドウをすべて閉じる | [ctrl + a] + Q |
次のウィンドウに切り替える | [ctrl + a] + [tab] |
自由に独自のアレンジメントを作成して探索してください。多くのセッションに分割できますが、個人的には、象限を超えるとテキストが読みにくくなることがわかりました。
表には、ウィンドウの名前を変更するオプションが表示されています。これは、screen -S [name]
を使用して以前に実行した画面の名前付けとは異なります。 。左下隅にウィンドウ名が表示されます。 [ ctrl + a ] + ["]
と入力すると、対応する名前とIDを持つウィンドウのリストを取得できます。 。
新しいウィンドウ内でも、前に調べたすべての機能を使用できることを忘れないでください。探索する可能性はたくさんあります。
画面は好きですか?
GNUScreenを使用して端末をカスタマイズする方法はたくさんあります。これは、コマンドラインを介して管理タスクを実行するときに、生産性を向上させ、ワークフローを少し簡単にするための非常に優れた方法です。特に、リモートマシンで作業している場合。
これが初めての場合は、コメントを残して、チュートリアルを楽しんだかどうかをお知らせください。経験が豊富な場合は、他の読者と簡単に設定を共有してください。読者からのフィードバックが大好きです。