この質問にはすでに回答があります:
コメント
回答
DISPLAY=:0 gnome-panel
は、環境変数iv id = “5ca7dd145a”を指定して外部コマンドgnome-panel
を実行するシェルコマンドです。 “>
を:0
に設定します。シェル構文VARIABLE=VALUE COMMAND
は、指定されたコマンドの期間のみ、環境変数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パネルがあります(Gnomeパネルがあり、ユーザーがそれにアクセスすることを許可されていることを前提としています)。 DISPLAY=:0
を明示的に設定することは、通常、リモートアクセスやcronジョブなど、ローカルセッションの外部からマシンのローカルディスプレイにアクセスする方法です。
これは、シェル全体ではなく、そのプログラムにのみ渡される環境変数です。これは、コマンドと同じ行に変数を設定した場合に発生します。
X11プログラムは、クライアント/サーバーシステムであり、リモートマシンに表示できるため、ウィンドウを表示する場所を認識する必要があります。これは単に、ローカルマシンの最初のディスプレイを使用することを意味します。
これは通常、デスクトップ環境にログインするときに自動的に設定されます。たとえば、グラフィカル端末を開いてecho $DISPLAY
。
コメント