Saya baru mengenal shell scripting. Saya tidak mengerti apa $DISPLAY
variabel lingkungan itu.
Saya memiliki Ubuntu 13.10 dan saya menggunakan /bin/bash
shell. Saya punya dua monitor.
Pertanyaan:
Perintah
echo $DISPLAY
akan mencetak:0.0
pada mesin saya (pada kedua monitor). Apa artinya ini?Dalam kasus apa
$DISPLAY
variabel akan kosong atau NULL?Apakah ada artikel atau tutorial tentang ini?
xorg
environment-variables
Chandrayya GK
sumber
sumber
echo $DISPLAY
sedang mencetak:0
BUKAN:0.0
Jawaban:
Kata ajaib dalam sistem X window adalah DISPLAY. Tampilan terdiri dari (disederhanakan) dari:
Tampilan dikelola oleh program server, yang dikenal sebagai server X. Server berfungsi menampilkan kemampuan ke program lain yang terhubung dengannya.
Server jarak jauh tahu di mana ia harus mengarahkan lalu lintas jaringan X melalui definisi variabel lingkungan DISPLAY yang umumnya menunjuk ke server Tampilan X yang terletak di komputer lokal Anda.
Nilai variabel lingkungan tampilan adalah:
dimana:
hostname adalah nama komputer tempat server X berjalan. Nama host yang dihilangkan berarti localhost.
D adalah nomor urut (biasanya 0). Ini dapat bervariasi jika ada beberapa layar yang terhubung ke satu komputer.
S adalah nomor layar. Tampilan sebenarnya dapat memiliki beberapa layar. Biasanya hanya ada satu layar di mana 0 adalah default.
Contoh nilai
hostname:D.S
berarti layar S pada tampilan D nama host host; server X untuk tampilan ini mendengarkan pada port TCP 6000 + D.host/unix:D.S
berarti layar S pada tampilan D host host; server X untuk tampilan ini mendengarkan pada soket domain UNIX /tmp/.X11-unix/XD (sehingga hanya dapat dijangkau dari host).:D.S
setara dengan host / unix: DS, di mana host adalah nama host lokal.: 0,0 berarti bahwa kita berbicara tentang layar pertama yang terpasang pada tampilan pertama Anda di host lokal Anda
Baca lebih lanjut di sini dan di sini dan di sini .
Dari halaman manual X (7):
sumber
/dev/tty1
), saya mendapatkan yang kosong$DISPLAY
.:0
untuk$DISPLAY
.Jawaban yang ada gagal menjawab gambaran yang lebih luas.
Jika Anda tidak menggunakan lingkungan grafis (mis. Anda masuk pada konsol sistem tanpa jendela dll; atau Anda masuk dari jarak jauh dari terminal hanya teks di atas SSH atau serupa, seperti dari komputer Windows yang menjalankan Putty) maka tidak ada GUI yang terlibat, dan
DISPLAY
biasanya tidak disetel. Satu-satunya cara Anda berkomunikasi dengan komputer adalah baris perintah (meskipun mungkin ada cara untuk berputar ke sesi GUI jika Anda tahu caranya).Jika Anda masuk pada konsol dengan antarmuka grafis (pada Ubuntu, biasanya penyapa GDM digunakan) atau menggunakan terminal grafis (seperti dari komputer Windows yang menjalankan eXceed atau mobaX, atau perangkat lunak desktop jarak jauh seperti klien VNC)
DISPLAY
variabel diatur oleh program yang mengelola sesi grafis Anda untuk menunjukkan kepada klien grafis yang terhubung dengan perangkat I / O.Secara tradisional, GUI pada komputer Ubuntu menjalankan X.org, sebuah implementasi X11, meskipun baru-baru ini, pengganti modern yang disebut Mir diperkenalkan oleh Canonical; dan bahkan lebih baru-baru ini, saya percaya Mir akan ditinggalkan demi proyek lain dengan tujuan yang secara umum mirip yang disebut Wayland . Penggantian ini dimaksudkan untuk mengurangi kompleksitas tumpukan X11 penuh, yang tidak akan
DISPLAY
kita bahas di sini - mereka mematuhi konvensi yang sama , yang setelah semua yang kita bahas di sini.Pada X11, bagian host
DISPLAY
bisa menjadi server jarak jauh, dan Anda akan menggunakan komputer Ubuntu Anda sebagai "terminal grafis" untuk mengakses file dan program di server jauh itu (dalam hal ini komputer Anda adalah "server" yang melayani keyboard , mouse, dan satu atau lebih perangkat tampilan ke program "klien" yang berjalan di server ... jarak jauh). Lebih umum, server X11 (atau Mir, atau Wayland) dan program klien (manajer desktop dan berbagai klien grafis seperti browser web, klien email, program kalender, dll) semuanya berjalan di komputer Anda. Ini ditunjukkan oleh bagian "server" dariDISPLAY
nilai, yang dalam kasus terakhir biasanya kosong (yang menyiratkan nilai default,localhost
).Server X11 dapat menjalankan satu atau beberapa sesi grafis - misalnya, login konsol Anda dan sesi VNC jarak jauh dapat berjalan pada saat yang sama. Dalam hal ini (jika dikelola oleh instance server X11 yang sama) Anda memiliki lebih dari satu "tampilan" dalam istilah X11. Dalam praktiknya, satu sesi (satu peristiwa login dan instance desktop muncul dari ini) adalah satu tampilan di X11.
Satu tampilan seperti itu dapat memiliki satu layar atau lebih. Secara tradisional, ini berarti satu monitor, meskipun arsitektur aslinya memiliki beberapa sifat yang kurang menguntungkan seperti ketidakmampuan untuk memindahkan jendela dari satu layar ke layar lainnya. Add-on seperti Xinerama dan Xrandr semakin memperkeruh situasi ke titik di mana satu layar sering menghubungkan banyak monitor dengan berbagai cara.
Jika Anda telah bermain dengan sistem multi-monitor, Anda mungkin menemukan bahwa Anda dapat mengatur monitor dengan berbagai cara dan berakhir dengan area persegi di mana monitor Anda menampilkan beberapa bagiannya dan bagian lain tidak ditugaskan ke monitor mana pun. Ini adalah "layar" yang dibuat X11, dan jika Anda memiliki lebih dari satu kartu tampilan, Anda dapat memiliki beberapa layar ini, masing-masing ditugaskan untuk satu atau lebih monitor (atau secara teori, berjalan tanpa monitor; Xvfb mengeksploitasi ini untuk memungkinkan Anda menjalankan X11 tanpa monitor, cukup memetakan GUI ke wilayah memori untuk tujuan apa pun).
sumber
Dari https://help.ubuntu.com/community/EnvironmentVariables :
Variabel- DISPLAY
Contoh Nilai:
Untuk apa ini?
sumber
: 0,0 berarti tampilan nomor 0 dan nomor layar 0
Jika terjadi kesalahan dalam $ DISPLAY Anda dan ini tidak terjadi secara normal
Beberapa tutorial dan sumber dapat ditemukan di sini:
sumber