\r\n\r\n
Linuxユーザーであれば、いつかはLinuxターミナルを使い始めなければなりません。ターミナルコマンドの中にはポピュラーなものもあれば、曖昧なものもありますが、多くの場合、GUIからコマンドを実行するよりも、ターミナルウィンドウからコマンドを実行する方が簡単なのです。
しかし、一度に複数のコマンドを実行する必要がある場合はどうなるでしょうか。 GNU screen はターミナルのマルチタスク化をとても簡単にします。
GNU-Screen は Linux ターミナル用のツールで、ターミナルを複数のターミナルに分割します。つまり、次のようなコマンドを実行することができます。
wget秒間実行に切り替えながら、画像ファイルをダウンロードする、など。
systemctlをクリックして、ドライブのS.M.A.R.T.ステータスを確認することができます。
このような別々のコマンドを別々のセッションで実行することができ、接続と切断を自由に行うことができるのです。
自分のパソコンだけでなく、遠隔地のサーバーを管理する場合には、ほぼ必須です。SSH経由でサーバー上でコマンドを実行した場合、切断するとどうなるのでしょうか?コマンドはまだ実行されているかもしれませんが、それを簡単に監視したり操作したりすることはできません。
画面は、あなたに代わってこれを行います。接続が切れた場合は、画面セッションに再接続するか、画面セッションを切断して、再びアクセスする必要があるまでバックグラウンドで実行したままにしておくことができます。
ScreenはほとんどのLinuxディストリビューションに付属していませんが、Linuxより前に開発されたものなので、サポートは充実しています。
UbuntuまたはDebianベースのディストリビューションにインストールする場合は、以下のコマンドを実行します。
sudo apt-get updatesudo apt-get install screen同様に、Arch を起動している場合は、シェルウィンドウを開いて実行してください。
sudo pacman -Syusudo pacman -S screenFedoraをお使いの方は、以下のコマンドを実行してください。
sudo yum updatesudo yum install screenスクリーンセッションの開始は簡単です。ターミナルを開くか、SSH接続を確立して、screenと入力します。画面紹介のウィンドウが表示されますので、スペースバーまたはエンターキーを押して閉じます。
この操作を行うと、端末の画面は通常の状態に戻ります。画面セッションを実行していることは目に見える形で表示されませんが、これ以降に実行するすべてのコマンドはセッションで実行され、そのセッションを自由に切り離したり再接続したりできるようになりました。
画面セッションを再び使用する場合は、画面セッションの接続と切断の方法を知っておく必要があります。すでにスクリーンセッション中の場合は、Ctrl+aを押した後、d(小文字)を押してください。
セッションとその中で実行中のコマンドは、後日再接続できるようにバックグラウンドで実行されるように分離されます。実行中の画面セッションが1つだけであると仮定して、次のように入力します。
screen -rリモートで強制的にセッションを切り離し、その後自分で再接続する必要がある場合は、次のように入力します。
screen -rd特定のセッションに再接続するには、セッションのプロセス ID 番号を見つける必要があります。
screen -lsまたは
screen -rリストアップしてください。
上記のように、タイプ
screen -rそして、各セッションの開始時に初期ID番号があります。
screen -r 25407セッションを終了し、その中で実行中のコマンドをキャンセルするには、セッションに再接続して、次のように入力します。
exit.
そんな方のために、Screenにはちょっとしたコツがあります。ここでは、覚えておきたい代表的なターミナルコマンドをご紹介します。
他の優れた端末プログラムと同様に、Screenにもキーボードショートカットが用意されています。すでにCtrl+Aやdで既存の画面を分離していますね。
残りを見たい場合は、Ctrl+A の後に ? を入力すると、処理できるものの一覧が表示されます。
コマンドを実行するためにセッションを切り替える必要はありません。また、セッション内でウィンドウを切り替えることも可能です。
セッションで新しいウィンドウを作成するには、Ctrl+aを押した後、c(小文字)を押してください。最初のウィンドウは0から始まり、次のウィンドウは1、といった具合です。
Ctrl+Aを押しながら0~9の数字で絞り込みます。 各セッションを一覧表示するには、Ctrl+Aを押しながらw(小文字)で、1つのIDを持つセッションの一覧を表示します。
ランダムに生成されるIDは覚えにくいので、セッションに名前を付けると楽になるかもしれません。
screen -S examplenameこのセッションに名前を付けて再接続するには、次のように入力します。
screen -X examplename同僚や友人と端末を共有したいですか? スクリーンのおかげで、タイプすることができます。
screen -rx現在このセッションに接続している人を切り離すのではなく、単にセッションに参加するのです。他のユーザーは、あなたが何を入力し、どのようなコマンドを実行したかを見ることができます。また、他のユーザーが同じことをした場合、それを監視することもできます。
メンテナンスまたは監査上の理由から、画面出力をファイルに記録する必要がある場合があります。これを行うには、次のように入力します。
screen -Lセッションは、ホームディレクトリにあるscreenlog.x(xは0から始まる数字)というファイルにログインできる状態で開始されます。セッションでログを開始するには、Ctrl+a の後に H (Shift+H) を入力します。
画面セッションを保護したい場合は、既存のLinuxパスワードでセッションをロックすることができます。
Ctrl+A、x(小文字)の順に入力すると、現在のセッションが接続されている間、セッションをロックすることができます。
これにより、現在のターミナルウィンドウにロックされます。ロック解除するには、アカウントのパスワードを入力してください。
GNUスクリーンのおかげで、ターミナルコマンドの完了を待つ心配はありません。遠隔地のサーバーを操作する場合にも便利ですが、自宅のパソコンでも、1つのウィンドウから複数のコマンドを実行する必要がある場合には、とても便利なツールです。
システム管理者に最適なツールです。しかし、Linux端末のツールボックスの中にある唯一のコマンドではないので、この重要なLinuxコマンドのメモ一覧をブックマークしておくとよいでしょう。