baicai

白菜

一个勤奋的代码搬运工!

Linux/MacでGNU Screenを使用する小技

学習基本的 GNU Screen ターミナルの再利用技術、そして私たちのターミナルコマンドのチートシートをダウンロードして、よく使われるショートカットに慣れることができます。

一般のユーザーにとって、コマンドラインターミナルウィンドウは混乱し、神秘的なものかもしれません。しかし、Linux ターミナルについての理解が深まるにつれて、その効率性とパワフルさに気づくことができるでしょう。ただし、ターミナルをより効率的にするためには、ターミナルを増やすだけでなく、他にも何か良い方法があるはずです。

ターミナルの再利用#

ターミナルの多くの利点の 1 つは、それが集中制御のインターフェースであることです。それは数百のアプリケーションにアクセスするためのウィンドウであり、それぞれのアプリケーションとの対話にはキーボードだけが必要です。しかし、現代のコンピュータはほとんど常に余分な処理能力を持っており、現代のコンピュータのエキスパートはマルチタスクを好むため、1 つのウィンドウで数百のアプリケーションを処理する能力は非常に限られています。

この問題を解決するための一般的な答えは、ターミナルの再利用です。つまり、仮想ターミナルを重ねて配置し、それらの間を移動する能力です。ターミナルの再利用により、集中制御を維持しながら、マルチタスクを実行できます。さらに良いことに、ターミナル内で画面を分割して、同時に複数の画面ウィンドウを表示できます。

適切なリユーザーを選択する#

一部のターミナルは同様の機能を提供しますが、タブ形式のインターフェースや分割ビューがあり、微妙な違いがあります。まず、これらのターミナルの機能は、グラフィカルなデスクトップ環境に依存しています。さらに、多くのグラフィカルなターミナル機能は、マウスの操作が必要であり、または使いにくいキーボードショートカットを使用する必要があります。ターミナルの再利用機能は、テキストコンソール上とグラフィカルデスクトップ上で同じくらい便利であり、キーバインディングは一般的なターミナルシーケンスに対して設計されていますので、非常に便利です。

現在、2 つの人気のあるリユーザーがあります:tmux と GNU Screen。それらとの対話方法は若干異なるかもしれませんが、それらは同じことをしており、ほとんど同じ機能を備えています。この記事は GNU Screen の入門ガイドです。tmux に関する詳細な紹介については、Kevin Sonney の tmux に関する記事をお読みください。

GNU Screen の使用#

GNU Screen の基本的な使用法は非常に簡単です。screen コマンドを使用して起動すると、Screen セッションの最初のウィンドウに入ります。新しいターミナルプロンプトが必要になるまで、何か変化があるかどうかに気づくのは難しいかもしれません。

ターミナルウィンドウが何かのアクティビティで占有されている場合(たとえば、テキストエディタ VimJove を起動したり、音声やビデオを処理したり、バッチタスクを実行したりする場合など)、新しいウィンドウを作成することができます。新しいウィンドウを開くには、Ctrl+A を押してから離し、c を押します。これにより、既存のウィンドウを基に新しいウィンドウが作成されます。

新しいウィンドウに移動したことがわかるでしょう。デフォルトのプロンプト以外には何も表示されません。もちろん、別のターミナルはまだ存在しており、新しいウィンドウの後ろに隠れているだけです。開いているウィンドウを切り替えるには、Ctrl+A を押してから離し、n(次へ)またはp(前へ)を押します。2 つのウィンドウしか開いていない場合、np の機能は同じですが、いつでもさらにウィンドウを開くことができます(Ctrl+A、そして c )。

画面分割#

GNU Screen のデフォルトの動作は、デスクトップではなく、モバイルデバイスの画面に似ています:1 度に 1 つのウィンドウしか表示できません。GNU Screen を使用してマルチタスクを行うためにターミナルを使用している場合、1 つのウィンドウに集中することは退屈に感じるかもしれません。幸いなことに、GNU Screen では、ターミナルをウィンドウ内のウィンドウに分割することができます。

水平にウィンドウを分割するには、Ctrl+A を押してからs を押します。これにより、ウィンドウがパネルのように重ねられます。ただし、表示する内容を指定するまで、分割されたスペースは使用されません。したがって、分割ウィンドウを作成した後、Ctrl+A を押してから Tab キーを押して分割ウィンドウに移動します。一度入ると、Ctrl+A を押してから n を押して使用可能なすべてのウィンドウを参照し、表示したいコンテンツが分割パネルに表示されるまで移動します。

垂直にウィンドウを分割するには、Ctrl+A を押してから |(パイプ文字、ほとんどのキーボードでは shift キーと \ キーを押します)を押します。

GNU Screen のカスタマイズ#

GNU Screen は Ctrl+A ベースのショートカットキーを使用します。習慣によっては、行の先頭に移動するために Ctrl+A を使用することが非常に自然に感じるかもしれませんが、非常に不便に感じるかもしれません。GNU Screen では、.screenrc 設定ファイルを使用してさまざまなカスタマイズを行うことができます。これを使用して、トリガーキーのバインディング(「エスケープ」キーバインディングとも呼ばれる)を変更できます。

escape ^jJ

また、自分自身が迷子にならないようにするために、ステータス行を追加することもできます。

    # status bar, with current window highlighted
    hardstatus alwayslastline
    hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]'



    # enable 256 colors
    attrcolor b ".I"
    termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
    defbce on

複数のウィンドウが開いているセッションでは、どのウィンドウがフォーカスされているか、どのウィンドウがバックグラウンドでアクティブであるかを常に表示するステータスバーは特に便利です。これはターミナルのタスクマネージャーのようなものです。

チートシート#

GNU Screen の使用方法を学ぶ際には、多くの新しいキーボードコマンドを覚える必要があります。いくつかのコマンドはすぐに覚えることができますが、あまり使用しないコマンドは覚えるのが難しいかもしれません。GNU Screen のヘルプ画面にアクセスするには、Ctrl+A を押してから ? を押します。

GNU Screen の学習は、お気に入りのターミナルエミュレータの効率と機敏さを向上させるための良い方法です。ぜひ試してみてください!

参考文献#

Linux tips for using GNU Screen [1]

使用 GNU Screen 的小技巧 [2]

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。