happiness.検索...screenコマンド2015年8月21日KUJIRAこんにちはKUJIRAです。タイトルの通りscreenコマンドというものを知って便利だなぁと思ったので、使い方などをログっておきます。screenって?screenコマンドを実行してみる(プロセスを起動する)screenコマンドが入っていなかったらプロセスに名前をつけて起動する新しい仮想端末を作る仮想端末の一覧を表示する仮想端末を切り替える仮想端末を閉じるプロセスをデタッチするプロセスをアタッチするプロセスに名前を後付けする仮想端末に名前をつけるscreenって?screenコマンドはlinuxのコマンドライン上で仮想のウィンドウを提供してくれるツールです。プロセス起動と同時に仮想端末を作成し、その上で作業を行います。そのため、作業途中に仮想端末から離れなくてはならなくなっても、デタッチすることで状態が保持され、再度アタッチすることにより元の作業場へと戻ってくることができます。screenコマンドを実行してみる(プロセスを起動する)screenコマンドは以下のように実行することで使用できます。screenこのコマンドを実行すると今まで打っていたコマンドの実行結果やら何やらが全てなくなりプロンプトが綺麗になるかと思います。これでプロセスが起動し仮想端末が表示されたことになります。screenコマンドが入っていなかったらもしscreenコマンドがlinuxに入っていなかったら以下のようにインストールしましょう。トランザクションの確認を実行しています。依存性解決を終了しました。これで再度screenコマンドを打つと実行できると思います。名前をつけてプロセスを起動する「1.」のコマンドだとプロセスは起動されますが、そのプロセスに名前が付いておりません。別に付いていなくても死ぬほど困るわけではないのですが、あった方がどのプロセスでどんな作業をしていたのかというのが一目で分かるようになります。これが分かると後から説明するプロセスのデタッチとアタッチの時に役立ちます。名前付きのプロセスを作成するには以下のようにコマンドを実行します。name]に入れた名前がプロセスの名前になります。新しい仮想端末を作るプロセスを立ち上げて作業を行っているともう一つウィンドウが欲しくなる時があります。プロンプトは基本GUIと違ってマルチウィンドウにはできません。別のプロンプトが欲しくなっても諦めてしまいがちですが、screenで起動したプロセス中でマルチウィンドウとまではいきませんが、タブ切り替えのように複数の仮想端末を移動したり新たな仮想端末を作って表示したりすることができます。仮想端末の作成は以下のコマンドで行います。c仮想端末の一覧を表示する仮想端末の一覧を表示する方法は以下の2種類あります。wこのコマンドを実行するとvimで「:ls」を実施した時に表示されるバッファリストのように仮想端末の一覧が表示されます。現在作業している端末には「*」が仮想端末名につきます。"このコマンドを実行すると、画面が全面的に変わり、仮想端末の一覧がリストとして表示されます。選択用カーソルも表示されておりカーソルを上下することにより選択をすることができます。選択した後Enterキーを入力すると選択した仮想端末に移動します。仮想端末を切り替える仮想端末の切り替えも一覧を表示するのと同じで方法が2種類あります。仮想端末番号このコマンドを実行すると指定した番号に紐付いている仮想端末に切り替わります。w」コマンドで仮想端末の一覧を表示して確認してください。実施し仮想端末の一覧画面になった状態でカーソルを移動させ「Enter」キーを入力する。“」コマンドを実施した時に表示される仮想端末一覧の画面で行います。カーソルの移動方法はキーボードの上下ボタンか、vimのように「j」「k」ボタンで上下します。(「j」が下方向、「k」が上方向)仮想端末を閉じる仮想端末を閉じるには色々とありますが、一番簡単なのは仮想端末上でログアウトを行うことです。(exitコマンドやCtrl+dなどを実施し端末を終了する)このやり方の場合、複数の仮想端末が一つのプロセスの上で立ち上がっている時、任意の端末が狙って落とすことができます。このやり方で最後の一つの仮想端末を閉じるとプロセスは終了します。別の手段としては以下のコマンドを実施する方法があります。kこのコマンドはプロセスを終了します。先ほどのやり方との違いは仮想端末がいくつ立ち上がっていようとプロセスごと落とすところにあります。そのため、普段はこのやり方は極力使わない方がいいでしょう。プロセスをデタッチするプロセスをデタッチします。dこのコマンド実施すると以下のように表示されプロセスから操作が切り離されます。これは何をしているかというと、プロセスをバックグランドで実行しています。そのため仮想端末上で操作していた内容はこのプロセスが生きている限り残っております。プログラムや、スクリプトなんかも止めるまで実施され続けます。現在、バックグラウンドで実行されているプロセスの一覧を表示する以下のコマンドを実施することでコマンドのプロセスIDやプロセスの名前などを見ることができます。/var/run/screen/S-root.$結果の先頭についているのがプロセスIDです。このプロセスIDはこの後のアタッチでも使用します。プロセスをアタッチするデタッチがあるならアタッチもあります。プロセスをアタッチする場合は以下のコマンドを実行します。id]このコマンドを実行するとプロセスIDを元にバックグラウンドにいたプロセスの操作が戻ってきます。バックグラウンドで実施していたので、仮想端末上で継続的に行っていたものはそのままの継続し続けております。この状況は言ってしまえばリモートデスクトップのようなものでPCが起動していたりプロセスが残っている限り保持されます。プロセスに名前を後付けする作成したプロセスに後から名前をつけることができます。name]には任意の文字が入ります。仮想端末に名前をつける仮想端末に名前をつけるときには以下のコマンドを実施し名前をつけます。Aこのコマンドを実行すると現在の仮想端末名が表示されます。名前を変える場合などはBackspaceで消してから名前をつけましょう。駆け足で書きましたが、これは便利なのでこれからたくさん使う機会があると思います。これで作業の効率化を図れればいいなと思っております。defined」というエラーが出力される。コメントデータの処理方法の詳細はこちらをご覧ください。note%d人のブロガーが「いいね」をつけました。