मैं gedit
Windows पर SSH टर्मिनल से चलाने की कोशिश कर रहा हूं , Ubuntu 12.04 सर्वर चलाने वाले Amazon EC2 उदाहरण से जुड़ा हुआ है और मुझे यह त्रुटि मिल रही है:
Cannot open display:
मैं इसे कैसे ठीक करूं?
मैं gedit
Windows पर SSH टर्मिनल से चलाने की कोशिश कर रहा हूं , Ubuntu 12.04 सर्वर चलाने वाले Amazon EC2 उदाहरण से जुड़ा हुआ है और मुझे यह त्रुटि मिल रही है:
Cannot open display:
मैं इसे कैसे ठीक करूं?
जवाबों:
चूंकि आप अपनी तरफ से विंडोज का उपयोग कर रहे हैं, तो आपको एक एसएसएच-क्लाइंट की आवश्यकता होगी जो आपकी स्क्रीन पर दूर से सर्वर से चित्रमय एप्लिकेशन को चलाने के लिए विंडोज पर एक स्थानीय एक्स सर्वर चलाता है।
अनुभव से, मैं मुफ्त MobaXTerm की सिफारिश करूंगा जिसमें यह कार्यक्षमता अंतर्निहित है। कृपया इसे डाउनलोड करें और इसे आज़माएं:
यदि आपको कोई त्रुटि मिलती है, तो ऐसा इसलिए है क्योंकि कभी-कभी एक्स-फॉरवर्डिंग की अनुमति देने के लिए एक न्यूनतम सर्वर छवि स्थापित नहीं की जा सकती है। उस मामले में, कृपया टिप्पणी करें और मैं इसे हल करने में आपकी मदद करूंगा; मैंने उबंटू / डेबियन चलाने वाले बहुत से न्यूनतम वीपीएस के साथ ऐसा किया है।
तो आप अपने होम पीसी से कनेक्ट कर रहे हैं (चलो इसे अपनी मशीन कहते हैं ) एक सर्वर (चलो इसे सर्वर कहते हैं ) ssh के माध्यम से ? आप अपनी मशीन के माध्यम से सर्वर पर एक ग्राफिकल विंडो के साथ एक कार्यक्रम शुरू करना चाहते हैं? अगर वह सभी माध्यमों से सही है, तो पढ़ें।
चलो कार्यक्रम को शुरू करने के लिए कहते हैं gedit
लेकिन प्रक्रिया सभी के लिए समान है। इस पर निर्भर करते हुए कि आप ग्राफ़िकल विंडो को सही हेडिंग पर छोड़ना चाहते हैं।
यदि आप अपने दूरस्थ मशीन पर gedit की विंडो देखना और उसका उपयोग करना चाहते हैं, लेकिन सर्वर पर शुरू करते हैं, तो आप अपने शेल सत्र को इस रूप में देखना चाहेंगे:
user@remote-machine:~$ ssh -X user@server
Last login: Tue Aug 14 13:47:04 2012 from clientXX
*******************************************************************************
M O T D (Message Of The Day)
*******************************************************************************
user@server:~$ gedit .bash_aliases
** (gedit:7851): WARNING **: Could not load theme icon gtk-home: Icon 'gtk-home' not present in theme
(gedit:7851): Gtk-WARNING **: Attempting to store changes
चेतावनियों को बुरा न मानें, वे सामान्य हैं - जीएडिट विंडो आपकी रिमोट मशीन की स्क्रीन पर पॉप अप हो जाएगी जैसे कि यह सर्वर पर दिखेगा। चाल "-X" -ओपियन का उपयोग करना है ssh -X
जिसमें एक्स-टनलिंग सक्षम करता है और DISPLAY
चर को सही सेट करता है।
यह मानता है कि आप एक SSH क्लाइंट का उपयोग कर रहे हैं जो X11 का समर्थन करता है और आपके सर्वर में एक X- सर्वर चल रहा है (कुछ GUIs की आवश्यकता के बिना एक X- सर्वर नहीं चलता है)। विशेष रूप से खिड़कियों पर यह कोई मुद्दा सबसे खिड़कियों के रूप में टर्मिनल कार्यक्रमों एक्स के रूप में की जरूरत नहीं है हो सकता है izx कहा MobaXTerm खिड़कियां एक एक्स सर्वर हालांकि है कि के लिए कई SSH ग्राहकों में से एक है।
X11 की कमी वाले सर्वर के लिए, आपको इसे स्थापित करना होगा।
आप इस तरह gedit कॉल करके अपने सर्वर की स्क्रीन पर एक उदाहरण शुरू कर सकते हैं:
ssh user@server
DISPLAY=:0.0 gedit
आपको :0.0
सही एक्स-स्क्रीन पर इसे प्राप्त करने के बजाय सही मूल्य को प्रतिस्थापित करना होगा (केवल महत्वपूर्ण अगर कई स्क्रीन आपके सर्वर से जुड़े हैं या यदि यह इसके कॉन्फ़िगरेशन में कुछ अजीब है)।
यहाँ काम नहीं करने के लिए सबसे सामान्य परिदृश्य यह होगा कि यदि सर्वर में X11- सर्वर की कमी है, लेकिन इससे कोई मॉनिटर जुड़ा नहीं होगा या कोई ग्राफिकल यूजर इंटरफेस नहीं होगा और आप इसे नहीं पढ़ रहे होंगे: D।
मैं इस पर कोई विशेषज्ञ हूँ, लेकिन जिस तरह से मैं यह काम करता है लगता है, एक व्यक्ति के कंप्यूटर से जुड़ा प्रत्येक मॉनिटर है कि प्रत्येक भौतिक स्क्रीन, यानी के रूप में एक चल नंबर प्राप्त करता है 0.0
, 1.0
, 2.0
, ...
यह नंबर X-Window-System aka X11 द्वारा दिया गया है। यह एक नेटवर्क और बुनियादी ग्राफिकल इंटरफ़ेस प्रदान करने के लिए एक परत है जो यूनिटी, गनोम, केडीई और जैसे पर बना सकता है।
आप देख सकते हैं कि किसी दी गई मशीन में कितने डिस्प्ले हैं और मशीन में कौन-कौन सी संख्याएँ चल रही हैं for x in /tmp/.X11-unix/X*; do echo ":${x##*X}"; done
, यह सवाल मशीन में चल रहा है । * फिर प्रत्येक कंप्यूटर जो अपनी स्क्रीन को उपलब्ध करने के लिए कॉन्फ़िगर किया गया है और एक एक्स सर्वर चलाता है एक होस्टनाम है। आप अपने DISPLAY
चर को तदनुसार सेट करके उसी नेटवर्क में किसी भी मशीन से एक होस्ट स्क्रीन का उपयोग कर सकते हैं DISPLAY=hostname:0.0
। यदि आप -X
विकल्प प्रदान करते हैं तो Ssh आपके लिए यह समझदारी से करता है।
* नोट: मुझे लगता है कि इसके लिए बेहतर तरीका है लूप।
शेल टेक्स्ट एडिटर का उपयोग करें। vi
, vim
, nano
और emacs
सबसे आम हैं और उनमें से कम से कम एक स्थापित और संचालन किया जाएगा। उनमें nano
से सबसे आसान और सबसे आत्म व्याख्यात्मक है।
for
लूप को थोड़ा संशोधित किया है। अब यह केवल डिस्प्ले एड्रेस दिखाएगा :0
:0.0
। बेझिझक वापस लौटें अगर आपको लगता है कि आपको वह नहीं चाहिए जो आप चाहते हैं ..
मूल रूप से आपके पास SSH के माध्यम से एक टर्मिनल है और Gedit एक GUI कार्यक्रम है। con-f-use का उत्तर इसे Linux GUI क्लाइंट सेशन से काम करेगा।
अन्य विकल्प नैनो, वीआई या कई अन्य जैसे गैर जीयूआई संपादक का उपयोग करना होगा।