OSX टर्मिनल गलत होस्टनाम दिखा रहा है


30

जब मैं टर्मिनल खोलता हूं तो मुझे उम्मीद है कि यह दिखाने के लिए कि मेरा PS1 क्या सेट है \h:\W \u\$

हालाँकि यह मेरे होस्टनाम को प्रदर्शित नहीं कर रहा है Eriks-MacBook, जैसा कि सिस्टम प्राथमिकता में प्रदर्शित किया गया है।

इसके बजाय, यह एक यादृच्छिक स्ट्रिंग दिखा रहा है unknownb88d120cd4b2

इसे कैसे ठीक या रीसेट किया जा सकता है?

यह मशीन एकदम नई है, और वरीयताएँ / सेटिंग्स नहीं बदली गई हैं।


hostnameप्रॉम्प्ट में टाइप करें और एंटर दबाएं। आपको क्या मिलेगा?
ब्लेंडर

unknownb88d120cd4b2: ~ एरिक $ होस्ट नाम unknownb88d120cd4b2 unknownb88d120cd4b2: ~ एरिक $

लेकिन यह वह नहीं है जो मेरे कंप्यूटर का नाम सिस्टम प्रीफ़्स - शेयरिंग में है। मैंने इसे डिफ़ॉल्ट से "एरिक-माबा" में बदल दिया, उम्मीद है कि मदद मिलेगी, लेकिन कोई पासा नहीं।

जवाबों:


25

गॉर्डन आपके मेजबाननाम की उत्पत्ति का एक अच्छा जवाब देता है ।

यदि आप चाहते हैं कि जो नाम आप सिस्टम प्रेफरेंस में सेट करें -> शेयरिंग -> कंप्यूटर का नाम अपने प्रॉम्प्ट में दिखाए, तो उसके \hसाथ बदलें $(scutil --get ComputerName)। जैसे मेरा संकेत के साथ सेट है

PS1="[\u@:$(scutil --get ComputerName) \W]\\$ "

19

टर्मिनल आपको अपने BSD होस्टनाम का पहला लेबल दिखा रहा है (मान लें कि आपका शेल BASH है)। यदि आपका बीएसडी होस्टनाम है yourhostname.mynetwork.comतो टर्मिनल केवल प्रदर्शित करेगा yourhostname-

तो बीएसडी होस्टनाम कहां से आता है? यह कई स्थानों से आ सकता है:

• फ़ाइल से: /etc/hostconfig

• फ़ाइल से और: /Library/Preferences/SystemConfiguration/preferences.plist( सिस्टम ▸ सिस्टम the होस्टनाम )

• आपके प्राथमिक आईपी पते के लिए एक रिवर्स डीएनएस क्वेरी का परिणाम (इसलिए जब आप घर पर कनेक्ट होने की तुलना में इंटरनेट कैफे पर जाते हैं तो आपको पूरी तरह से अलग होस्टनाम दिखाई दे सकता है)

सिस्टम वरीयताएँ में आपका "बोनजोर" होस्टनाम > साझा करना ( preferences.plistफिर से ... सिस्टम ▸ नेटवर्क N होस्टनाम ame LocalHostName )

• अंत में, यदि उपरोक्त में से कोई भी सेट नहीं किया गया है, तो बीएसडी होस्टनाम बस होगा localhost

वैसे, मैंने यहां कुछ समय पहले उसी सवाल का जवाब दिया था: मैक ओएस एक्स टर्मिनल - शीघ्र नाम कहां से आता है


1
क्या यह संभव है कि रिवर्स डीएनएस लुकअप मेरे सिस्टम पर अन्य सभी विन्यासों पर पूर्वता लेता है?
13

मैंने अपने सिस्टम पर जाँच की: / etc / hostconfig मौजूद नहीं है। वरीयताएँ। सिस्टमसिस्टम ▸ सिस्टम ame होस्टनाम को परिभाषित नहीं किया गया है (हालाँकि कंप्यूटरनेम है)। रिवर्स डीएनएस लुकअप मैं अपने टर्मिनल विंडो में देख रहा हूँ, गिबरिंग लौटाता है। सिस्टम H नेटवर्क ▸ होस्टनाम ▸ LocalHostName परिभाषित किया गया है। इसलिए यदि आपका सिस्टम मेरा जैसा ही दिखा रहा है, तो रिवर्स DNS लुकअप पहला मैच था, और LocalHNName पर पूर्वता लेता है ।
एडवर्ड फॉक

12

ओएस एक्स अपने "होस्टनाम" को खोजने के लिए कई चीजों की कोशिश करता है। दुर्भाग्य से मुझे सटीक सूची (और आदेश) नहीं पता है, लेकिन मुझे लगता है कि यहां क्या हो रहा है कि यह अपने आईपी पते के साथ जुड़े एक DNS नाम की खोज कर रहा है, और बोंजौर नाम के बजाय इसका उपयोग खुद के लिए विज्ञापन कर रहा है (एक में परिभाषित) प्राथमिकताएं साझा करना)।

तो यह एक DNS नाम क्यों खोज रहा है? मेरा अनुमान है कि आपका स्थानीय राउटर / डीएचसीपी सर्वर / डीएनएस सर्वर गतिशील रूप से इसे एक प्रदान कर रहा है, जो इसके ईथरनेट हार्डवेयर पते (संभवतः b8: 8d: 12: 0c: d4: b2) पर आधारित है। आप ऐसा करने से रोकने के लिए राउटर की सेटिंग्स को समायोजित करने में सक्षम हो सकते हैं, या आप संभवतः यह निर्दिष्ट कर सकते हैं कि कंप्यूटर का डीएचसीपी क्लाइंट आईडी (नेटवर्क वरीयताएँ, उन्नत सेटिंग्स) में यह नियंत्रित करने के लिए कि वह आपको क्या नाम देता है।


2
यह मेरे लिए सबसे ज्यादा मददगार था। मेरी मशीन इस व्यवहार को प्रदर्शित कर रही थी, मुख्य बिंदु, ऐसा प्रतीत हो रहा था कि SPONTANEOUSLY नाम बदल गए हैं, क्योंकि मैंने पहले कभी एक अलग नहीं देखा था। इसलिए मैंने वायरस और डिस्क के मुद्दों और इस तरह की जांच के लिए सिर्फ 90 मिनट बर्बाद किए। मुझे खुशी है कि मैं समय बर्बाद करना बंद कर सकता हूं।
षड्यंत्र

1

यकीन नहीं होता कि आपको अभी भी समस्या है या नहीं, ऐसा प्रतीत होता है कि योसेमाइट और सिएरा के बीच कुछ समय के लिए तय किया गया है।

नए कंप्यूटर के लिए, मैं साझाकरण सिस्टम वरीयताएँ से शुरू करता हूं, [नया नाम] दर्ज करते हुए कंप्यूटर नाम वांछित है। मैं प्रत्येक नेटवर्क इंटरफ़ेस के लिए सक्रिय डीएचसीपी क्लाइंट आईडी फ़ील्ड के सभी में [नया नाम] दर्ज करता हूं। यह करने के बाद कि मैं टर्मिनल खोलता हूं, यह पुष्टि करने के लिए कि यह एक समान नाम की रिपोर्ट करता है, कुछ वर्णों को अनुमति नहीं है, इसलिए यदि आवश्यक हो तो सिस्टम नाम को संशोधित करेगा। आप नीचे दिए गए चरणों का उपयोग करके नाम बदल सकते हैं, बस अपने इच्छित कंप्यूटर नाम के साथ [नया नाम] ब्लॉक को बदल सकते हैं।

  1. टर्मिनल खोलें
  2. प्रॉम्प्ट पर निम्नलिखित दर्ज करें- sudo scutil --set HostName [नया नाम]
  3. नए नाम की पुष्टि के लिए एक नई टर्मिनल विंडो खोलें।

यदि नाम मेरे पसंद के अनुसार नहीं है, तो मैं इसे सक्रिय डोमेन से बाँधने से पहले उपरोक्त के साथ आगे बढ़ता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.