Linux端末を管理するための10画面コマンドの例


Screenは、複数のプロセス(通常はインタラクティブシェル)間で物理コンソールを多重化するために使用できるフルスクリーンソフトウェアプログラムです。これにより、ユーザーは1つのターミナルウィンドウマネージャー内で複数の個別のターミナルインスタンスを開くことができます。

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

私のUbuntu10.04 Server Editionでは、Screenがデフォルトでインストールされています。ただし、Linux Mintにはデフォルトで画面がインストールされていないため、使用する前にapt-getコマンドを使用してインストールする必要があります。ディストリビューションのインストール手順に従って、画面をインストールしてください。

# apt-get install screen (On Debian based Systems)
# yum install screen (On RedHat based Systems)

実際、ScreenはLinuxで非常に優れたコマンドであり、何百ものLinuxコマンドの中に隠されています。 Screenの機能を見てみましょう。

初めて画面を開始

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

[email protected] ~ $ screen

画面パラメータを表示

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

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

                                                             Screen key bindings, page 1 of 1.

                                                             Command key:  ^A   Literal ^A:  a

  break       ^B b         flow        ^F f         lockscreen  ^X x         pow_break   B            screen      ^C c         width       W
  clear       C            focus       ^I           log         H            pow_detach  D            select      '            windows     ^W w
  colon       :            hardcopy    h            login       L            prev        ^H ^P p ^?   silence     _            wrap        ^R r
  copy        ^[ [         help        ?            meta        a            quit        \            split       S            writebuf    >
  detach      ^D d         history     { }          monitor     M            readbuf     <            suspend     ^Z z         xoff        ^S s
  digraph     ^V           info        i            next        ^@ ^N sp n   redisplay   ^L l         time        ^T t         xon         ^Q q
  displays    *            kill        K k          number      N            remove      X            title       A
  dumptermcap .            lastmsg     ^M m         only        Q            removebuf   =            vbell       ^G
  fit         F            license     ,            other       ^A           reset       Z            version     v

^]  paste .
"   windowlist -b
-   select -
0   select 0
1   select 1
2   select 2
3   select 3
4   select 4
5   select 5
6   select 6
7   select 7
8   select 8
9   select 9
I   login on
O   login off
]   paste .

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

画面を切り離します

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

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

ダウンロードプロセスには2時間かかると推定されています。 SSHセッションを切断した場合、または誤って接続が突然失われた場合、ダウンロードプロセスは停止します。あなたは最初からやり直さなければなりません。これを回避するために、screenを使用して切り離すことができます。

このコマンドを見てください。まず、画面に入る必要があります。

[email protected] ~ $ screen

次に、ダウンロードプロセスを実行できます。 Linux Mintの例では、apt-getコマンドを使用してdpkgパッケージをアップグレードしています。

[email protected] ~ $ sudo apt-get 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]
[email protected] ~ $

画面を再接続します

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

[email protected] ~ $ screen -r

そして、あなたが残したプロセスがまだ実行されていることがわかります。

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

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

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

[email protected] ~ $ screen -r 7849

複数画面の使用

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

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

画面の切り替え

ネストされた画面を実行する場合、コマンド「Ctrl-A」と「n」を使用して画面を切り替えることができます。次の画面に移動します。前の画面に移動する必要がある場合は、「Ctrl-A」と「p」を押すだけです。

新しい画面ウィンドウを作成するには、「Ctrl-A」と「c」を押すだけです。

あなたがすることは何でも記録する

コンソールにいる間に行ったことを記録することが重要な場合があります。あなたが多くのLinuxサーバーを管理しているLinux管理者であるとしましょう。

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

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

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

ロギング機能をアクティブにする別の方法として、画面を初めて実行するときにパラメータ「-L」を追加できます。コマンドは次のようになります。

[email protected] ~ $ screen -L

ロック画面

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

Screen used by Pungki Arianto  on mint.
Password:

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

ロック画面にパスワードを追加する

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

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

password crypt_password

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

[email protected] ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

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

password l2BIBzvIeQNOs

次にscreenを実行してデタッチすると、次に示すように、再アタッチしようとしたときにパスワードが要求されます。

[email protected] ~ $ screen -r 5741
Screen password:

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

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

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

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

画面を離れる

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

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