とは DISPLAY=:0
とはどういう意味ですか?
コマンドじゃないですか? (gnome-panel
はコマンドです。)
DISPLAY=:0 gnome-panel
DISPLAY=:0 gnome-panel
は、外部コマンドgnome-panel
を環境変数DISPLAY
を:0
に設定して実行するシェルコマンドです。シェル構文VARIABLE=VALUECOMMAND
は、指定されたコマンドの間のみ環境変数VARIABLE
を設定します。 (export VARIABLE=VALUE; exec COMMAND)
とほぼ同じです。
環境変数DISPLAY
は、GUIプログラムとGUIとの通信方法を指示します。 Unixシステムは、複数の Xサーバー 、つまり複数のディスプレイを実行できます。これらのディスプレイは、物理ディスプレイ(1つ以上のモニター)、リモートディスプレイ(ネットワーク経由で転送、SSHなど)、または Xvfb などの仮想ディスプレイにすることができます。ディスプレイを指定する基本的な構文は、 Host:NUMBER
; Host
の部分を省略した場合、ローカルの表示になります。
ディスプレイには0から番号が付けられているため、:0
は最初に起動されたローカルディスプレイです。通常のセットアップでは、これはコンピュータのモニターに表示されるものです。
すべての環境変数と同様に、DISPLAY
は親プロセスから子プロセスに継承されます。たとえば、GUIセッションにログインすると、ログインマネージャーまたはセッションスターターがDISPLAY
を適切に設定し、変数はセッション内のすべてのプログラムによって継承されます。 X転送を使用してSSH接続を開くと、SSHはDISPLAY
環境変数を転送された接続に設定し、リモートマシンで実行するプログラムがローカルマシンに表示されるようにします。転送されたX接続がない場合(SSHが設定されていないため、またはローカルXサーバーがないため)、SSHはDISPLAY
を設定しません。
DISPLAY
を明示的に設定すると、通常は表示されない場所にプログラムが表示されます。たとえば、SSH接続でDISPLAY=:0 gnome-panel
を実行すると、リモートマシンのローカルディスプレイでGnomeパネルが起動します(パネルが1つあり、ユーザーがそれにアクセスする権限を持っていると想定)。 DISPLAY=:0
を明示的に設定することは、通常、リモートアクセスやcronジョブなど、ローカルセッションの外部からマシンのローカルディスプレイにアクセスする方法です。
シェル全体ではなく、そのプログラムにのみ渡される環境変数です。これは、コマンドと同じ行に変数を設定すると発生します。
X11プログラムはクライアント/サーバーシステムであり、リモートマシンに表示できるため、ウィンドウを表示する場所を知る必要があります。これは、単にローカルマシンの最初のディスプレイを使用することを意味します。
これは通常、デスクトップ環境にログインすると自動的に設定されます。たとえば、グラフィカルターミナルを開き、echo $DISPLAY
と入力します。