Существующие ответы не соответствуют более широкой картине.
Если вы не используете графическое окружение (то есть вы входите в системную консоль без окон и т. Д .; вы входите удаленно с текстового терминала через SSH или аналогичный, например, с компьютера под управлением Windows, на котором установлен PuTTY), тогда GUI не задействован и DISPLAY
обычно не устанавливается. Единственным средством связи с компьютером является командная строка (хотя могут быть способы перехода в сеанс графического интерфейса, если вы знаете, как).
Если вы входите в систему через консоль с графическим интерфейсом (в Ubuntu обычно используется GDM-приветствие) или с помощью графического терминала (например, с компьютера под управлением Windows, на котором работает eXceed или mobaX, или с помощью программного обеспечения для удаленного рабочего стола, такого как клиент VNC), DISPLAY
переменная устанавливается программой, которая управляет вашим графическим сеансом, чтобы указать графическим клиентам, к каким устройствам ввода / вывода подключаться.
Традиционно графический интерфейс на компьютере с Ubuntu работал под управлением X.org, реализации X11, хотя совсем недавно Canonical представила модернизированную замену под названием Mir; и даже совсем недавно, я полагаю, Мир будет заброшен в пользу другого проекта с широко схожими целями под названием Wayland . Эти замены призваны уменьшить сложность полного стека X11, о котором мы не будем здесь говорить - они придерживаются того же DISPLAY
соглашения, которое, в конце концов, и обсуждается здесь.
На X11 хост-часть DISPLAY
может быть удаленным сервером, и вы будете использовать свой компьютер Ubuntu в качестве «графического терминала» для доступа к файлам и программам на этом удаленном сервере (в этом случае ваш компьютер является «сервером», который служит клавиатурой мыши и одного или нескольких устройств отображения для «клиентских» программ, запущенных на удаленном ... сервере). Чаще всего на вашем компьютере работают сервер X11 (или Mir, или Wayland) и клиентские программы (менеджер рабочего стола и различные графические клиенты, такие как веб-браузер, почтовый клиент, программа-календарь и т. Д.). На это указывает «серверная» часть DISPLAY
значения, которая в последнем случае обычно пуста (что подразумевает значение по умолчанию localhost
).
Сервер X11 может запустить один или несколько графических сеансов - например, ваш логин консоли и удаленный сеанс VNC могут выполняться одновременно. В этом случае (если ими управляет один и тот же экземпляр сервера X11) у вас есть несколько «отображений» в терминах X11. На практике один сеанс (одно событие входа в систему и экземпляр рабочего стола, порожденный этим) - это один дисплей в X11.
Один такой дисплей может иметь один или несколько экранов. Традиционно это означало один монитор, хотя в оригинальной архитектуре были некоторые прискорбные черты, такие как невозможность перемещения окна с одного экрана на другой. Надстройки, такие как Xinerama и Xrandr, еще больше запутали ситуацию до такой степени, что один экран часто соединяет несколько мониторов различными способами.
Если вы играли с системами с несколькими мониторами, вы, вероятно, обнаружили, что вы можете расположить мониторы различными способами и получить прямоугольную область, где ваши мониторы отображают некоторые ее части, а другие части не назначаются никаким мониторам. Это «экран», который создает X11, и если у вас более одной видеокарты, у вас может быть несколько таких экранов, каждый из которых назначен одному или нескольким мониторам (или теоретически работает без монитора; Xvfb использует это для разрешения чтобы запустить X11 без каких-либо мониторов, просто сопоставьте графический интерфейс с областью памяти для любых целей).
echo $DISPLAY
печатается:0
НЕ:0.0