Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

How to Use Linux’s screen Command (日本語)

By admin on 2月 23, 2021

  • Dave McKay

    @TheGurkha

  • 2020年3月27日、8:00am EDT
ラップトップ上のLinux端末と、その背後に重ねられた他の端末セッションです。
fatmawati achmad zaenuri/

Linuxのscreenコマンドを使うと、実行中のターミナルアプリケーションをバックグラウンドに押しやり、見たいときには前方に引き出すことができます。 また、分割画面表示にも対応しており、SSH 接続では、接続を解除して再接続した後でも動作します!

screen コマンドとは

screen コマンドは、ターミナルのマルチプレクサであり、非常に多くのオプションを備えています。 たくさんのことができるというのは、控えめな表現の最たるものです。

screenコマンドを使用する最も一般的なケースは次のとおりで、この記事ではこれらをさらに詳しく説明します。 自分のプロセスがどうなっているかを確認したいときは、ウィンドウを再びフォアグラウンドに戻して(「リアタッチ」)、再び使うことができます。

  • いったん screen セッションが実行されると、新しいウィンドウを作成して、その中で他のプロセスを実行できます。 ウィンドウ間を簡単に行き来して、進行状況を監視することができます。
  • リモート マシンに接続し、screen セッションを開始して、プロセスを起動することができます。
  • 2つの異なるSSH接続間でscreenセッションを共有することで、2人が同じものをリアルタイムで見ることができます。
  • screenのインストール

    ubuntuでscreenをインストールするには、次のコマンドを使用します:

    sudo apt-get install screen

    ターミナルウィンドウで「sudo apt-get install screen」コマンドを実行します。"sudo apt-get install screen" command in a terminal window.

    Manjaroでscreenをインストールするには、次のコマンドを使用します:

    sudo pacman -Sy screen

    ターミナルウィンドウで "sudo pacman -Sy screen "コマンドを実行します。"sudo pacman -Sy screen" command in a terminal window.

    Fedoraの場合、次のように入力します:

    sudo dnf install screen

    ターミナルウィンドウで "sudo dnf install screen "コマンドを実行します。"sudo dnf install screen" command in a terminal window.

    Getting Started with screen

    screenを起動するには、以下のように入力してEnterキーを押すだけです:

    screen

    ターミナルウィンドウで「screen」コマンドを実行します。"screen" command in a terminal window.

    広告

    ライセンス情報のページが表示されます。

    The "screen" command license information in a terminal window."screen" command license information in a terminal window.

    あなたはコマンドプロンプトのままで、特に何も起こっていないように見えます。 しかし、あなたは今、多重化されたターミナル エミュレーター内でシェルを実行しています。 これはなぜ良いことなのでしょうか? さて、完成までに長い時間がかかりそうなプロセスを始めましょう。 最新の Linux カーネルのソース コードをダウンロードして、latest_kernel.zipというファイルにリダイレクトします。

    そのためには、次のように入力します:

    curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

    ターミナル ウィンドウで「curl latest_kernel.zip」コマンドを実行します。"curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

    ダウンロードが開始され、curl出力が進行状況を示しています。

    ターミナル ウィンドウでの「curl latest_kernel.zip」コマンドの出力。"curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

    広告

    次の部分はキーストロークの連続なので、画像をお見せすることはできません。

    ダウンロード プロセスはまだ実行されていますが、ダウンロードを表示するウィンドウは削除されます。 screenscreen23167.pts-0.howtogeekウィンドウが取り外されたことを伝えています。

    ウィンドウを再び取り付けるには、ウィンドウ名の先頭からの番号が必要です。

    screen -ls

    ターミナル ウィンドウで「screen -ls」コマンドを実行します。"screen -ls" command in a terminal window.

    準備ができたら、-r (reattach)オプションとセッションの番号を使って、次のように再接続することができます。

    screen -r 23167

    ターミナルウィンドウで「screen -3 23167」コマンドを実行します。"screen -3 23167" command in a terminal window.

    広告

    バックグラウンドで作業していたウィンドウが、まるで何事もなかったかのようにターミナルウィンドウに戻ってきました。

    ターミナルウィンドウに戻ってきたスクリーンセッション。 継続的なプロセスであれば、最終的には終了させたいと思うでしょう。 いずれにしても、プロセスが終了したら、と入力して、screenを終了させます。

    次のコマンドを入力してください:

    exit

    ターミナル ウィンドウでの「exit」コマンド"exit" command in a terminal window.

    以前のターミナル ウィンドウに戻り、ウィンドウを再接続するために使用したコマンドが表示されたままになります。 唯一の切り離されたウィンドウを閉じたので、screenが終了するというメッセージが表示されます。

    ターミナル ウィンドウでの「screen」コマンドの終了メッセージ。"screen" command terminating message in a terminal window.

    RELATED: How to Use curl to Download Files from the Linux Command Line

    Using Named screen Sessions

    -S (session name)オプションを使用して、screenセッションに名前を付けることができます。 セッションの数値IDではなく、覚えやすい名前を使うと、セッションに再接続するときに便利です。 次のように入力して、セッションに「bigfile」という名前を付けます:

    screen -S bigfile

    ターミナルウィンドウで「screen -S bigfile」コマンドを実行します。"screen -S bigfile" command in a terminal window.

    広告

    screenがセッションを起動すると、コマンドプロンプトが表示された空白のウィンドウが表示されます。

    次のように入力します。

    curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

    ターミナル ウィンドウで「curl bigfile."curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip" command in a terminal window.

    ダウンロードが始まったら、Ctrl+Aを押して、Dを押してセッションを切り離します。

    -lsscreen を使って、切り離したセッションの詳細を見るために、次のように入力します。

    数字の識別子(23266)の後ろには、セッションの名前(bigfile)が表示されています。

    screen -r bigfile

    ターミナル ウィンドウで "screen -r bigfile" コマンドを入力します。"screen -r bigfile" command in a terminal window.

    ダウンロード ウィンドウに再接続され、長いダウンロードがまだ進行中であることがわかります。

    ターミナル ウィンドウで再接続されたスクリーン セッションでの Curl ダウンロード出力。

    広告

    ダウンロードが完了したら、exitと入力してセッション ウィンドウを閉じます。

    複数のウィンドウで screen を使用する

    これまでは、screenscreenには、それ以上の機能があります。

    次のように入力して、「monitor」と呼ばれる画面セッションを開始します。

    screen -S monitor

    ターミナル ウィンドウで「screen -S monitor」コマンドを実行します。"screen -S monitor" command in a terminal window.

    新しいウィンドウ セッションのコマンド プロンプトで、dmesg-H-w (新しいメッセージを待つ)オプションを使用します。

    次のように入力します。

    dmesg -H -w

    ターミナルウィンドウで「dmesg -H -w」コマンドを実行します。"dmesg -H -w" command in a terminal window.

    広告

    既存のメッセージが表示されます。 コマンドプロンプトに戻らないのは、dmsegが新しいメッセージを待っていて、到着すると表示するからです。

    ターミナルウィンドウでの「dmesg」出力。"dmsesg" output in a terminal window.

    RELATED: Linux での dmesg コマンドの使い方

    別のアプリケーションを実行したいので、新しい screen ウィンドウが必要になります。 Ctrl+A、そしてCを押して、新しいウィンドウを作成します。 ここでは watchvmstat を繰り返し実行し、コンピューター上の仮想メモリの使用状況を頻繁に表示するようにします。

    新しいコマンド プロンプトで次のように入力します。

    watch vmstat

    ターミナル ウィンドウで「watch vmstat」コマンドを実行します。"watch vmstat" command in a terminal window.

    vmstat出力が表示され、2秒ごとに更新されます。

    ターミナルウィンドウでの「vmstat」出力。"vmstat" output in a terminal window.

    2つのプロセスが実行されています。 screenウィンドウの間をホップするには、Ctrl+Aを押して、ウィンドウの番号を入力します。 最初に作ったのがウィンドウゼロ(0)、次がウィンドウ1、という具合です。 最初のウィンドウ (dmesg) にホップするには、Ctrl+A と 0 を押します。

    ターミナル ウィンドウの「dmesg」画面に戻る。"dmesg" screen in a terminal window.

    Ctrl+Aと1を押すと、vmstat ウィンドウに戻ります。

    ターミナル ウィンドウの「vmstat」画面に戻ります。"vmstat" screen in a terminal window.

    広告

    これはかなり気が利いていますね。 Ctrl+A、そしてDを押すと、このセッションから切り離すことができ、後で再接続することができます。 両方のセッションが実行されたままになります。

    次のステップでは、2つの画面を1つのウィンドウで表示してみましょう。 このとき、ターミナルウィンドウをこのステップが有効になるような大きさに引き伸ばします。

    この例では、スクリーンショットのサイズに制限されているため、ウィンドウは少し窮屈に見えるでしょう。

    これを行うには、Ctrl+A、そして Shift+S (大文字の “S” が必要です) を押します。”

    ターミナル ウィンドウで 2 つの水平領域に分割された「スクリーン」ウィンドウ セッション。"screen" window session split into two horizontal regions in a terminal window.

    上部の領域には vmstat が表示されたままで、下部の領域は空白です。 下のスクリーンショットでは、カーソルが強調表示されています。

    ターミナル ウィンドウの下部領域にカーソルがある状態で、2 つの水平領域に分割された「スクリーン」ウィンドウ セッション"screen" window session split into two horizontal regions with cursor in the bottom region in a terminal window.

    広告

    カーソルは下部領域に移動しますが、これは本当にただの空のスペースです。 これはシェルではないので、何も入力できません。

    「スクリーン」セッションでは、水平方向に分割されたペインで、ターミナル ウィンドウ内の各領域に異なるプロセスが表示されます。 Ctrl+AとDを押してウィンドウを切り離し、再び貼り付けると、分割ウィンドウの表示が失われます。"screen" session with a horizontal split pane showing a different process in each region in a terminal window.

    • Ctrl+A, S: ウィンドウを水平に分割します。
    • Ctrl+A, Tab: 下の領域に移動します。
    • Ctrl+A, 0: 下の領域にウィンドウのゼロを表示

    さらに一歩進めてみましょう。 今度は下の領域を縦に分割して、3つ目の処理をディスプレイに追加してみましょう。 カーソルが下の領域にある状態で、Ctrl+A と C を押して、シェルが入った新しいウィンドウを作成します。

    水平方向に分割されたペインで、下の領域にターミナル ウィンドウの新しいウィンドウを表示している「スクリーン」セッションです。"screen" session with a horizontal split pane showing a new window in the lower region in a terminal window.

    次に、ファイル システムの使用状況を確認するために df コマンドを実行します。

    df

    水平方向に分割されたペインを持つ「画面」セッションで、ターミナル ウィンドウの下部領域に「df」と入力されています。"screen" session with a horizontal split pane, and "df" typed in the lower region in a terminal window.

    広告

    dfが実行されているのを確認したら、Ctrl+Aとパイプ文字(|)を押します。 これで、下の領域が垂直に分割されます。 Ctrl+A と Tab を押して、新しいリージョンに移動します。

    ターミナル ウィンドウに 3 つのペインを表示した「スクリーン」セッション"screen" session showing three panes in a terminal window.

    また、リージョンからリージョンへ移動し、さらに垂直または水平方向の分割を追加することもできます。

    • Ctrl+A: 現在のリージョンと前のリージョンの間を行き来する。
    • Ctrl+A, Q: 現在のリージョン以外のすべてのリージョンを閉じる。

    SSH での screen の使用

    screen を使用すると、ウィンドウ セッションを開始し、バックグラウンドで実行されているように切り離し、ログオフまたは再ログインして、セッションを再接続することができます。

    では、sshコマンドを使って、別のコンピュータから自分のコンピュータに SSH 接続してみましょう。

    この例では、次のように入力します。

    ssh [email protected]

    ターミナル ウィンドウで「ssh dave@192.168.4.30」コマンドを実行します。"ssh dave@192.168.4.30" command in a terminal window.

    広告

    リモートコンピューターで認証してログインした後、以下のように入力して「ssh-geek」というscreenセッションを開始します。

    screen -S ssh-geek

    ターミナルウィンドウで「screen -S ssh-geek」コマンドを実行します。"screen -S ssh-geek" command in a terminal window.

    デモのために、topscreenを実行しますが、長時間実行されるプロセスや無限に続くプロセスを開始することもできます。

    次のように入力します。

    top

    ターミナル ウィンドウで「top」コマンドを実行します。"top" command in a terminal window.

    ウィンドウ内でtopが実行されたら、Ctrl+A、そしてDを押してウィンドウを切り離します。

    ターミナルウィンドウの「スクリーン」ウィンドウ内で実行される「top」プロセスです。"top" process running in a "screen" window in a terminal window.

    元の、リモートのターミナルウィンドウに戻りました。

    ユーザーが元のターミナルウィンドウに戻った

    以下のようにexitと入力すると、SSHセッションが切断され、ローカルコンピュータに戻ります。

    exit

    ターミナルウィンドウでの「exit」コマンドです。"exit" command in a terminal window.

    次のように入力して再接続します。

    ssh [email protected]

    ターミナルウィンドウで「ssh dave@192.168.4.30」コマンドを実行します。"ssh dave@192.168.4.30" command in a terminal window.

    広告

    再接続してログインした後、次のように入力して、screenセッションを再接続します。

    screen -r ssh-geek

    ターミナル ウィンドウで "screen -r ssh-geek" コマンドを実行します。"screen -r ssh-geek" command in a terminal window.

    これで、まだ実行中の top のインスタンスに再接続されました。

    ターミナルウィンドウで実行されている「top」プロセスです。"top" process running in a terminal window.

    これは、あるマシンでプロセスを開始し、別のマシンで中断したところから再開したい場合に最適です。

    RELATED: How to Create and Install SSH Keys From the Linux Shell

    Sharing a screen session

    また、screenセッションを使用することで、2人の人間が同じウィンドウを見て操作することができます。 例えば、Fedoraを使用している人が、私たちのUbuntuサーバーに接続したいとします。

    その人は次のように入力します。

    ssh [email protected]

    ターミナルウィンドウで「ssh dave@192.168.4.30」コマンドを実行します。"ssh dave@192.168.4.30" command in a terminal window.

    接続後、-S (セッション名)オプションを使って「ssh-geek」というスクリーンセッションを開始します。 また、-d (detach) および -m (enforced creation) オプションを使用して、すでに切り離されている新しい screen セッションを作成します。

    彼は次のように入力します:

    screen -d -m -S ssh-geek

    ターミナル ウィンドウで「screen -d -m -S ssh-geek」コマンドを実行します。"screen -d -m -S ssh-geek" command in a terminal window.

    広告

    彼は、-X (マルチスクリーンモード)オプションを使用してセッションを添付しながら、次のように入力します:

    screen -X ssh-geek

    ターミナルウィンドウで「screen -X ssh-geek」コマンドを実行します。"screen -X ssh-geek" command in a terminal window.

    Manjaro のコンピューターで、別の人が同じアカウントの認証情報を使って Ubuntu のコンピューターに接続します。

    ssh [email protected]

    ターミナル ウィンドウで "ssh dave@192.168.4.1" コマンドを実行します。"ssh dave@192.168.4.1" command in a terminal window.

    接続されたら、screen コマンドを入力し、-X (マルチスクリーン モード) オプションを使用して、次のように同じウィンドウ セッションに参加します。

    screen -X ssh-geek

    ターミナル ウィンドウで "screen -X ssh-geek" コマンドを実行します。"screen -X ssh-geek" command in a terminal window.

    これで、どちらかが入力したものは、もう一方にも表示されるようになります。

    ターミナル ウィンドウでの「date」コマンド"date" command in a terminal window.

    ターミナル ウィンドウでの「date」コマンドからの出力。"date" command in a terminal window.

    広告

    二人は今、リモートの Ubuntu コンピューター上で実行されている screen セッションを共有しています。

    1987 年に初めて日の目を見たソフトウェアであるにもかかわらず、screen はいまだに生産性に優れています。

    RELATED: 37 Important Linux Commands You Should Know

    Dave McKay
    Dave McKay氏は、パンチングテープが流行っていた頃に初めてコンピューターを使い、それ以来ずっとプログラミングを続けています。 IT業界での30年以上の経験を経て、現在はフルタイムの技術ジャーナリストとして活躍しています。 その間、フリーランスのプログラマー、国際的なソフトウェア開発チームのマネージャー、ITサービスのプロジェクトマネージャー、そして最近ではデータ保護責任者として活躍しています。 また、Linuxのエバンジェリストであり、オープンソースの提唱者でもあります。Read Full Bio ”

    投稿ナビゲーション

    Why Are My Supplements Making Me Nauseous? (日本語)
    高山病とは

    コメントを残す コメントをキャンセル

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    最近の投稿

    • Firebush (日本語)
    • 9 Best Dog Vitamins And Supplements For Enhanced Health
    • 2021年のCDレート予測。 金利はおそらく低水準で推移するが、年の後半には上昇するかもしれない
    • 慢性骨盤痛症候群と前立腺炎:症状、診断と治療
    • ミックスベリー・クリスプ
    • Low-Carb Chocolate Pudding Recipe
    • 1歳を過ぎた母乳育児のメリット
    • Is it Safe to Dump Coffee Grounds Down the Sink|Atomic Plumbing
    • Cool-Down After Your Workout (日本語)
    • Our Work (日本語)

    メタ情報

    • ログイン
    • 投稿フィード
    • コメントフィード
    • WordPress.org

    アーカイブ

    • 2021年3月
    • 2021年2月
    • 2021年1月
    • 2020年12月
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski
    • 日本語日本語
    ©2021 Info Cafe | WordPress Theme by SuperbThemes.com