(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「screenコマンドって何だろうか?」
「screenコマンドの基本が知りたい」
「screenコマンドでは何ができるのかな?」
✔当記事を通じてお伝えすること
- screenコマンドとは?
- screenコマンドの基本・書き方
- screenコマンドの実例
当記事では、screenコマンドの基本やその書き方についてだけでなく、実例を用いて、さまざまなケースでどのように役立つかを解説しています。
ぜひ最後までご覧ください。
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コマンドをマスターし、ターミナル操作をさらに効率的に行いましょう。