【超便利】screenコマンドの基本|一覧や実例付きでわかりやすい

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔このような方へ向けて書かれた記事となります

「screenコマンドって何だろうか?」

「screenコマンドの基本が知りたい」

「screenコマンドでは何ができるのかな?」

✔当記事を通じてお伝えすること

  • screenコマンドとは?
  • screenコマンドの基本・書き方
  • screenコマンドの実例

当記事では、screenコマンドの基本やその書き方についてだけでなく、実例を用いて、さまざまなケースでどのように役立つかを解説しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

screenコマンドの基礎知識

screenコマンドの基本を見ていきます。

必ず目を通し、簡単にでも理解しておきましょう。

  • screenコマンドとは?
  • screenコマンドが役立つシチュエーション
  • screenセッションの開始方法
  • screenセッション内での操作
  • screenセッションの終了方法

screenコマンドとは?

screenコマンドは、ターミナル上で複数のセッションやウィンドウを管理できるツールです。

これにより、一つのターミナル画面で複数の作業を同時におこなうことや、一時中断して後から再開できるようになります

screenコマンドが役立つシチュエーション

screenコマンドは、以下のようなシチュエーションで役立ちます。

  • リモートサーバーで長時間かかる作業を行う際
  • 複数のコマンドラインプログラムを同時に実行・監視したい場合
  • ターミナルを閉じても作業を継続したい場合

screenセッションの開始方法

screenコマンドを実行することで、新しいscreenセッションを開始できます。

例として、ターミナルで以下のコマンドを入力して新しいセッションを開始しましょう。

 screen

新しいscreenセッションが開始されると、通常のターミナルと同様にコマンドを入力して操作できます。

例えば、新しいセッションで “top” コマンドを実行して、システムのリソース使用状況を監視できます。

top

screenセッションに名前を付けられます。

これは後でセッションを特定しやすくするために役立ちます。

以下のコマンドで、名前付きのscreenセッションを作成します。

screen -S mysession

この例では、新しいセッションに “mysession” という名前が付けられます。

screenセッション内での操作

screenセッション内では、通常のターミナル操作と同じようにコマンドを実行できます。

また、screenのショートカットキー(デフォルトでは “Ctrl+a” )を使って、ウィンドウの切り替えやセッションの管理が可能です。

例えば、新しいウィンドウを作成するには、”Ctrl+a” に続けて “c” を入力します。

これにより、新しいウィンドウが作成され、現在のウィンドウとは別の作業が可能になります。

新しく作成されたウィンドウで、例えば “ping google.com” コマンドを実行して、インターネット接続を確認しましょう。

この状態で、元の “top” コマンドを実行しているウィンドウに戻るには、”Ctrl+a” の後に “n” を入力して次のウィンドウに切り替えます。

同様に、”Ctrl+a” の後に “p” を入力することで、前のウィンドウに戻ることができます。

screenセッションの終了方法

screenセッションを終了するには、ウィンドウ内のプロセスをすべて終了させます。

通常は “exit” コマンドを入力すればセッションが終了します。

例えば、先ほどの “top” コマンドを実行しているウィンドウでは、”q” キーを押して “top” コマンドを終了させた後、”exit” コマンドを入力してウィンドウを閉じます。

すべてのウィンドウが閉じられると、screenセッションも自動的に終了します。

もしscreenセッションを一時的にバックグラウンドに移動させたい場合は、”Ctrl+a” の後に “d” を入力してセッションをデタッチします。

デタッチ後も、セッション内のプロセスは引き続き実行されます。

後でデタッチしたセッションに戻るには、”screen -r” コマンドを使います。

名前付きセッションの場合は、”screen -r mysession” のようにセッション名を指定します。

screenコマンドのインストール

screenがインストールされていない方は、OSに適したやり方でインストールしましょう。

  • Linuxでのインストール方法
  • macOSでのインストール方法
  • Windowsでのインストール方法

Linuxでのインストール方法

ほとんどのLinuxディストリビューションでは、パッケージ管理システムを使ってscreenコマンドを簡単にインストールできます。例えば、UbuntuやDebianでは以下のコマンドでインストールできます。

sudo apt install screen

macOSでのインストール方法

macOSでは、Homebrewを使ってscreenコマンドをインストールできます。

Homebrewがインストールされていない場合は、公式サイト(https://brew.sh/)からインストールしてください。

次に、以下のコマンドでscreenをインストールします。

brew install screen

Windowsでのインストール方法

Windows 10では、Windows Subsystem for Linux (WSL) を使ってLinux環境を実行できます。

WSLをインストールした後、Linuxディストリビューション(例: Ubuntu)のパッケージ管理システムを使ってscreenコマンドをインストールできます。

よく使うscreenコマンドのショートカットキー

ショートカットキー説明
Ctrl+a, c新しいウィンドウを作成
Ctrl+a, n次のウィンドウに移動
Ctrl+a, p前のウィンドウに移動
Ctrl+a, [0-9]ウィンドウ番号に直接移動(例:Ctrl+a, 0でウィンドウ0に移動)
Ctrl+a, “ウィンドウの一覧を表示し、選択して移動する
Ctrl+a, dセッションをデタッチ(一時的にバックグラウンドへ移動)
Ctrl+a, A現在のウィンドウの名前を変更
Ctrl+a, k現在のウィンドウを閉じる
Ctrl+a, ?screenコマンドのショートカットキー一覧を表示
Ctrl+a, Sウィンドウを水平に分割
Ctrl+a, |ウィンドウを垂直に分割
Ctrl+a, Tab分割ウィンドウ間を切り替える
Ctrl+a, Q分割ウィンドウを解除
Ctrl+a, [コピーモードを開始し、テキストをコピーする
Ctrl+a, ]コピーしたテキストをペーストする

screenコマンドの便利な機能

screenコマンドの便利な機能をまとめました。

ひとつずつ確認していきましょう。

  • 複数のウィンドウを使う
  • ウィンドウの切り替え
  • screenセッションの一覧表示とアタッチ・デタッチ
  • screenセッションの名前付けと検索

複数のウィンドウを使う

screenコマンドでは、複数のウィンドウを使って作業できます。

これにより、同じターミナル画面で複数の作業を並行して実行することが可能です。

先ほどの例では、”top” コマンドと “ping” コマンドを別々のウィンドウで実行しました。

新しいウィンドウを作成するには、”Ctrl+a” に続けて “c” を入力します。

ウィンドウの切り替え

screenコマンドを使って、複数のウィンドウ間で簡単に切り替えができます。

次のウィンドウに移動するには “Ctrl+a” の後に “n” を、前のウィンドウに戻るには “Ctrl+a” の後に “p” を入力します。

また、特定のウィンドウ番号に直接移動することもできます。

例えば、ウィンドウ0に移動するには “Ctrl+a” の後に “0” を入力します。

screenセッションの一覧表示とアタッチ・デタッチ

システム上で複数のscreenセッションが実行されている場合、”screen -ls” コマンドでセッションの一覧を表示できます。

セッションにアタッチして作業を再開するには、”screen -r [セッションID]” コマンドを使います。

セッションを一時的にバックグラウンドに移動させるには、”Ctrl+a” の後に “d” を入力してデタッチします。

screenセッションの名前付けと検索

セッションに名前を付けることで、複数のセッションを簡単に識別できます。

セッション作成時に名前を付けるには、”screen -S [セッション名]” コマンドを使います。

名前付きセッションを検索するには、”screen -ls” コマンドの出力でセッション名を確認できます。

また、名前を指定してセッションにアタッチするには、こちら。

screen -r [セッション名]

screenコマンドの設定ファイルをカスタマイズする

screenコマンドをカスタマイズすることも可能。

設定ファイルを編集する方法はこちらです。

  • 設定ファイルの場所と基本構成
  • 便利な設定例
  • カスタマイズの実践例

設定ファイルの場所と基本構成

screenコマンドの設定ファイルは、ホームディレクトリの “.screenrc” というファイルで管理されています。

このファイルを編集することで、screenの挙動をカスタマイズできます。

便利な設定例

 設定ファイルには、様々な便利な設定が追加できます。

例えば、以下の設定を追加することで、ステータスバーに現在のウィンドウ名や時刻が表示されるようになります。

hardstatus on
hardstatus alwayslastline

hardstatus string "%{= kG}[%{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m/%d %c %{g}]"

これにより、screenセッション内での作業がより効率的になります。

カスタマイズの実践例

実際にカスタマイズを行った例を紹介します。

例えば、ショートカットキー “Ctrl+a” が他のアプリケーションと競合する場合、以下の設定を “.screenrc” に追加することで、代わりに “Ctrl+b” を使用できるようになります。

escape ^Bb

このようなカスタマイズを活用することで、screenコマンドを自分の作業スタイルに合わせて最適化できます。

screenコマンドと他のターミナルマルチプレクサの比較

screenコマンドと似たツールの比較をしてみましょう。

以下の2つについてです。

  • tmuxとの比較
  • byobuとの比較

tmuxとの比較

tmuxは、screenコマンドに似たターミナルマルチプレクサですが、より新しいツールであり、多くの点で機能が強化されています。

例えば、tmuxでは、ウィンドウを水平・垂直に分割して表示できるパネル機能があります。

一方で、screenとtmuxは操作方法や設定が若干異なるため、どちらを選択するかは好みやニーズに応じて決めることが望ましいです。

byobuとの比較

byobuは、screenコマンドやtmuxをラップしたターミナルマルチプレクサで、より便利なデフォルト設定やカラフルなインターフェイスが特徴です。

初心者にも扱いやすく、独自の機能が追加されています。

ただし、byobuはscreenやtmuxの上位互換ではないため、どれを選択するかは好みやニーズに応じて決めることが望ましいです。

よくある質問と回答

よくある質問と回答をまとめました。

事前に目を通しておけば、回避できるトラブルもあるはずです。

Q: screenコマンドとtmuxの違いは何ですか?

tmuxは、screenコマンドに似ていますが、より新しいツールであり、機能が強化されています。

例えば、tmuxではパネル機能を使ってウィンドウを水平・垂直に分割表示が可能。

操作方法や設定が異なるため、好みやニーズに応じて選択することが望ましいです。

Q: セッションを一時停止して、後で再開できますか?

はい、Ctrl+a, dを押すことでセッションをデタッチ(一時停止)できます。

後で再開するには、”screen -r [セッションID or セッション名]” コマンドを使用してください。

Q: 複数のscreenセッションを同時に開くことができますか?

はい、複数のscreenセッションを同時に開くことができます。

新しいセッションを開始するには、”screen” コマンドを実行してください。

Q: screenコマンドで開いたウィンドウ間を切り替える方法は?

Ctrl+a, nで次のウィンドウに、Ctrl+a, pで前のウィンドウに移動します。

また、Ctrl+a, [0-9]を使ってウィンドウ番号に直接移動することも可能です。

Q: screenセッションの名前を変更する方法は?

セッションの作成時に名前を付けるには、”screen -S [セッション名]” コマンドを使用します。

既存のセッション名を変更するには、セッション内でCtrl+a, Aを押してから新しい名前を入力してください。

まとめ

当記事では、初心者向けにscreenコマンドの基本的な使い方から応用までを解説しました。

具体的な例やショートカットキー、よくある質問と回答を通じて、効率的にターミナルで作業を切り替える方法を学びます。

これらの知識を活用して、screenコマンドをマスターし、ターミナル操作をさらに効率的に行いましょう。

タイトルとURLをコピーしました