ウェブサイト検索

Linux ターミナルを管理するための 20 の画面コマンドの例


概要: このガイドでは、screen コマンドの便利な例をいくつか説明します。このガイドを終えると、 ユーザーは単一の Linux ターミナル ウィンドウを使用して複数のシェル セッションを操作できるようになります

Linux ユーザーは、大きなファイルのダウンロードやコピー、時間のかかるデータベース クエリの実行など、長時間実行されるタスクに取り組む必要があることがよくあります。場合によっては、これらの重要なタスクがセッション タイムアウトにより突然終了することがあります。

このようなシナリオを軽減するには、screen コマンドを使用します。これは、複数のプロセス (通常は対話型シェル) 間で物理コンソールを多重化するために使用できる全画面ソフトウェア プログラムです。これにより、ユーザーは単一のターミナル ウィンドウ マネージャー内で複数の個別のターミナル インスタンスを開くことができます。

コマンド ライン インターフェイスから複数のプログラムを処理する場合や、プログラムを端末シェルから分離する場合、スクリーン アプリケーションは非常に便利です。また、セッションを他のユーザーと共有したり、端末セッションをデタッチ/アタッチしたりすることもできます。

このガイドでは、Linux システムでscreen コマンドをインストール、設定、使用する方法について説明します。このガイドでは、実践的な例を使用してscreen コマンドの使用法と利点を理解します。

それでは始めましょう。

Linux に Screen コマンドをインストールする

私のUbuntu サーバー エディションでは、screen コマンドがデフォルトでインストールされています。ただし、Linux Mint にはデフォルトでスクリーンがインストールされていないため、使用する前にapt-get コマンドを使用してインストールする必要があります。 。

ディストリビューションのインストール手順に従って画面をインストールしてください。

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

次に、コマンドが正常にインストールされたことを確認してみましょう。

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

実際、スクリーンは Linux の非常に優れたターミナル マルチプレクサ プログラムで、何百もの Linux コマンドの中に隠されています。

次の例で、Linux でのscreen コマンドの使用法を見てみましょう。

画面コマンドの構文

screen コマンドの構文は次のとおりです。

screen [OPTIONS] [ CMD [ ARGS ] ]

上記の構文では、すべてのパラメーターがオプションであり、角括弧 ([]) で表されていることがわかります。

1. 初回起動画面

コマンド プロンプトで画面と入力するだけです。すると画面にはコマンドプロンプトとまったく同じインターフェイスが表示されます。

screen

2. 画面パラメータの表示

画面に入ると、通常のコマンドライン環境と同じようにすべての作業を行うことができます。ただし画面はアプリケーションなのでコマンドやパラメータがあります。

Ctrl-A」と「?」を引用符なしで入力します。すると、すべてのコマンドまたはパラメータが画面上に表示されます。

ヘルプ画面を終了するには、「スペースバー」ボタンまたは「Enter」を押します。 (「Ctrl-A」を使用するすべてのショートカットは引用符なしで実行されることに注意してください)。

3. 開いているすべてのウィンドウを一覧表示する方法

前の例では、screen コマンドを使用して新しいシェル セッションを開始しました。次に、ctrl-a + " キーの組み合わせを使用して、現在の画面セッションで開いているすべてのウィンドウを一覧表示します。

上記の出力では、ウィンドウの番号と名前がわかります。最初の列はウィンドウ番号を表し、0 から始まります。

次の列はウィンドウの名前を表し、そのデフォルト形式は @: です。

4. スクリーンウィンドウセッションを終了する方法

ctrl-a + k キーの組み合わせを使用して、アクティブなウィンドウ セッションを終了できます。このアクションにより、現在の仮想ウィンドウからのコマンドの実行が中断されることに注意することが重要です。

上記の出力では、screen コマンドがユーザーの確認を待っていることがわかります。左下隅に警告メッセージが表示されます。

他の Linux コマンドと同様に、'y' を使用して操作を続行するか、'n' を使用して操作を中止できます。

5. 名前を指定してスクリーンセッションを開始する方法

screen コマンドを使用すると、ユーザー定義の名前でセッションを作成できます。これは、複数のセッションが利用可能な場合に便利です。

そこで、コマンドの -S オプションを使用して、名前付きセッションを作成しましょう。

screen -S demo-screen

上記のコマンドのデモ画面はセッションの名前です。

6. Screen を使用してターミナル セッションを切断する

取り外しができるスクリーンの利点の 1 つです。その後、画面上で行ったことを失うことなく復元できます。サンプルシナリオは次のとおりです。

サーバー上でSSHの途中です。 wget コマンドを使用してシステムの400MBパッチをダウンロードしているとします。

ダウンロード プロセスには2 時間かかると予想されます。 SSH セッションを切断したり、誤って接続が突然失われた場合、ダウンロード プロセスは停止します。もう一度最初から始めなければなりません。それを避けるために、スクリーンを使用してそれを取り外すことができます。

このコマンドを見てください。まず、画面に入らなければなりません。

screen

その後、ダウンロードプロセスを実行できます。たとえば、Linux Mint では、apt コマンドを使用してdpkg パッケージをアップグレードしています。

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

ダウンロードの進行中に、「Ctrl-A」と「d」を押すことができます。これらのボタンを押しても何も表示されません。出力は次のようになります。

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Screen を使用してターミナル セッションを再接続します。

画面を切り離した後、SSH セッションを切断して家に帰るとしましょう。自宅でサーバーへのSSHを再度開始し、ダウンロード プロセスの進行状況を確認したいとします。これを行うには、画面を復元する必要があります。次のコマンドを実行できます。

pungki@mint ~ $ screen -r

そして、終了したプロセスがまだ実行中であることがわかります。

複数の画面セッションがある場合は、画面セッションのIDを入力する必要があります。利用可能な画面の数を確認するには、screen -ls を使用します。

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

画面 7849.pts-0.mint を復元する場合は、次のコマンドを入力します。

pungki@mint ~ $ screen -r 7849

8. 複数画面のターミナル ウィンドウの使用

仕事をするために複数の画面が必要な場合、それは可能でしょうか?はい、そうです。複数の画面ウィンドウを同時に実行できます。それには 2 つの方法があります。

まず、最初の画面を切り離し、実際の端末で別の画面を実行できます。次に、図に示すように、ネストされた画面を作成します。

新しいウィンドウを作成するには、ctrl-a + c キーの組み合わせを 2 回使用して、2 つの新しいウィンドウを作成します。次に、ctrl-a + " キーの組み合わせを使用して、アクティブなウィンドウをすべて一覧表示します。

上記の出力では、ウィンドウが 3 つあることがわかります。

9. スクリーンウィンドウの名前を変更する方法

前の例では、2 つの新しいウィンドウを作成しました。ただし、それらのデフォルト名には詳細が示されていません。そのような場合、それらに意味のある名前を割り当てることができます。

ctrl-a + A キーの組み合わせを使用して、現在のウィンドウ セッションの名前を変更できます。このキーの組み合わせにより、ユーザーはウィンドウ タイトルを設定するように求められます。

10. Screen Terminal ウィンドウの切り替え

前の例では、複数のウィンドウを作成しました。次に、それらを切り替える方法を見てみましょう。

まず、ctrl-a + " キーの組み合わせを使用して、アクティブなウィンドウをすべてリストします。次に、上または下矢印キーを使用して、適切なウィンドウを選択します。最後に、Enter キーを押して、選択したウィンドウに切り替えます。窓。

この例では、db-query というタイトルのウィンドウを選択しました。

11. 次の画面ウィンドウへの移動方法

ctrl-a + n キーの組み合わせを使用して、次のウィンドウに移動できます。これを例で理解してみましょう。

まず、最初のウィンドウに切り替え、ctrl-a + " キーの組み合わせを使用して確認します。

次に、ctrl-a + n キーの組み合わせを 2 回押して 3 番目のウィンドウに移動し、ctrl-a + " キーの組み合わせを使用して同じことを確認してみましょう。

上記の出力では、現在 3 番目のウィンドウが表示されていることがわかります。

12. 前画面ウィンドウへの移動方法

同様に、ctrl-a + p の組み合わせを使用して、前のウィンドウに切り替えることができます。

現在、3 番目のウィンドウにいます。そこで、ctrl-a + p キーの組み合わせを 2 回使用して、再び最初のウィンドウが表示されていることを確認してみましょう。

上記の出力では、最初のウィンドウに戻ったことがわかります。

13. 現在のウィンドウと前のウィンドウを切り替える方法

場合によっては、2 つのウィンドウを切り替えたい場合があります。このような場合は、ctrl-a + ctrl-a キーの組み合わせを使用できます。

これを理解するには、まず最初のウィンドウに切り替えます。

次に、最後のウィンドウに切り替えます。

最後に、ctrl-a + ctrl-a キーの組み合わせを使用して、最初のウィンドウに再度ジャンプします。

14. 特定の画面ウィンドウにジャンプする方法

前の例では、ウィンドウを切り替えるさまざまな方法を見てきました。ただし、特定のウィンドウにジャンプしたい場合もあります。このようなシナリオでは、ウィンドウ番号を使用できます。

まず、ctrl-a + " キーの組み合わせを使用してウィンドウ番号を見つけてみましょう。

上記の出力では、最初の列はウィンドウ番号を表します。 screen コマンドの番号は 0 から始まることに注意することが重要です。

ここで、ctrl-a + 2 キーの組み合わせを使用して 3 番目のウィンドウにジャンプし、正しいウィンドウにいることを確認してみましょう。

15. 画面ウィンドウを水平に分割する方法

通常の端末と同様に、画面ウィンドウを分割することもできます。 ctrl-a + S キーの組み合わせを使用して、ウィンドウを水平に分割できます。

これで、ctrl-a + tab キーの組み合わせを使用してリージョン間をジャンプできるようになりました。

最後に、ctrl-a + X キーの組み合わせを使用して、現在の領域を削除できます。ここでは大文字の X 文字を使用する必要があることに注意することが重要です。

16. 画面ウィンドウを垂直に分割する方法

同様に、ctrl-a + | キーの組み合わせを使用して、現在のウィンドウを垂直に分割できます。

これに加えて、ctrl-a + tab キーの組み合わせを使用してリージョンを切り替えたり、ctrl-a + X キーの組み合わせを使用して現在のリージョンを閉じることもできます。

17. Linux で画面ログを有効にする

場合によっては、 本体を使用している間に行ったことを記録することが重要です。あなたが多数の Linux サーバーを管理するLinux 管理者だとしましょう。

この画面のログを使用すると、実行したコマンドをすべて書き留める必要がなくなります。画面ログ機能を有効にするには、「Ctrl-A」と「H」を押すだけです。 (大文字の「H」を使用していることに注意してください。大文字以外の「h」を使用すると、画面のスクリーンショットがハードコピーという名前の別のファイルに作成されるだけです) 。

画面の左下に、「ログファイル「screenlog.0」を作成しています」という通知が表示されます。ホーム ディレクトリに screenlog.0 ファイルがあります。

この機能は、画面ウィンドウ内での操作すべてを追加します。実行中のアクティビティを記録する画面を閉じるには、「Ctrl-A」と「H」をもう一度押します。

ロギング機能を有効にするもう 1 つの方法は、画面を初めて実行するときにパラメータ「-L」を追加することです。コマンドはこのようになります。

pungki@mint ~ $ screen -L

18. Linux ターミナル画面をロックする

画面には、 画面をロックするショートカットもあります。 「Ctrl-A」および「x」ショートカットを押すと、画面をロックできます。これは、画面をすぐにロックしたい場合に便利です。ショートカットを押した後のロック画面の出力例を次に示します。

Screen used by Pungki Arianto  on mint.
Password:

Linux パスワードを使用してロックを解除できます。

19. スクリーンセッションにパスワードを追加する

セキュリティ上の理由から、Screen セッションにパスワードを設定することをお勧めします。画面を再接続するたびに、パスワードの入力を求められます。このパスワードは、 上記のロック画面のメカニズムとは異なります。

画面をパスワードで保護するには、「$HOME/.screenrc」ファイルを編集します。ファイルが存在しない場合は、手動で作成できます。構文は次のようになります。

password crypt_password

上記の「crypt_password」を作成するには、Linux で「mkpasswd」コマンドを使用できます。以下はパスワード「pungki123」を使用したコマンドです。

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

上記のように、mkpasswd はハッシュ パスワードを生成します。ハッシュ パスワードを取得したら、それを「.screenrc」ファイルにコピーして保存できます。したがって、「.screenrc」ファイルは次のようになります。

password l2BIBzvIeQNOs

次回画面を実行して画面を切り離し再接続しようとすると、以下のようにパスワードの入力を求められます。

pungki@mint ~ $ screen -r 5741
Screen password:

パスワード「pungki123」を入力すると、 画面が再び再接続されます。

この画面パスワードを実装し、「Ctrl-A」と「x」を押すと、出力は次のようになります。

Screen used by Pungki Arianto on mint.
Password:
Screen password:

パスワードは 2 回 求められます。最初のパスワードはLinux パスワードで、2 番目のパスワードは.screenrc ファイルに入力したパスワードです。

20. 画面ターミナルセッションを終了する

画面を終了するには 2 通りの方法があります。まず、「Ctrl-A」と「d」を使用して画面を切り離しています。次に、exit コマンドを使用して画面を終了します。 「Ctrl-A」と「K」を使用して画面を強制終了することもできます。

画面コマンドのチートシート

screen -S <session_name>

セッション名で新しいセッションを開始します。

screen -ls

実行中のセッション/画面を一覧表示します。

screen -x

実行中のセッションに接続します。

screen -r <session_name>

実行中のセッションに名前を付けてアタッチします。

screen -d <session_name>

実行中のセッションを接続解除します。

Ctrl-a c

新しいウィンドウを作成します。

Ctrl-a Ctrl-a

最後にアクセスしたアクティブなウィンドウに変更します。

Ctrl-a <number>

番号ごとにウィンドウを変更します。

Ctrl-a ' <number or title>

番号または名前でウィンドウに変更します。

Ctrl-a n or Ctrl-a <space>

リスト内の次のウィンドウに移動します。

Ctrl-a p or Ctrl-a <backspace>

リスト内の前のウィンドウに移動します。

Ctrl-a "

ウィンドウリストを参照してください。

Ctrl-a w

ウィンドウバーを表示します。

Ctrl-a k

現在のウィンドウを強制終了します。

Ctrl-a \

すべてのウィンドウを強制終了します。

Ctrl-a A

現在のウィンドウの名前を変更します。

Ctrl-a S

水平に分割表示します。

Ctrl-a | or Ctrl-a V

垂直に分割表示します。

Ctrl-a tab

次の表示領域にジャンプします。

Ctrl-a X

現在のリージョンを削除します。

Ctrl-a Q

現在のリージョンを除くすべてのリージョンを削除します。

Ctrl-a H

screen セッションでのログ記録を有効にします。

Ctrl-a x

表示をロック(パスワードプロテクト)します。

これは、 日常的に使用される画面コマンドの一部です。 screen コマンドにはまだ多くの機能があります。詳細については画面のマニュアル ページをご覧ください。

Linux の screen コマンドの他の最良の例を知っていますか?以下のコメント欄であなたのご意見をお聞かせください