टर्मिनल / ssh का उपयोग करते समय अलग-अलग रंग विभिन्न मशीनों के लिए संकेत देते हैं?


11

मेरे पास 5 मशीनें हैं जो मैं लगातार काम करने के लिए ssh करता हूं। जब मैं गलत बक्सों पर गलत कमांड जारी कर रहा हूं तो इसकी तेजी से निराशा हो रही है। सौभाग्य से मैंने कुछ भी बुरा नहीं किया। मैं जानना चाहता था कि क्या कोई हैक है जिसे मैं हार्डकोड कर सकता हूं जो कि मैं जिस मशीन में स्थित हूं, उसके आधार पर विभिन्न रंगों में अपना संकेत प्रदर्शित करूंगा? जैसे कि Desktop1 के लिए नीला, लैपटॉप के लिए बैंगनी, सर्वर के लिए लाल आदि? क्या यह संभव है?

वर्तमान में मैं इस कमांड निर्यात PS1 = "\ e [0; 31m [\ u @ \ h \ W] \ $ \ e [m" का उपयोग कर रहा हूँ यहाँ से लिया गया है http://www.cyberciti.biz/faq/bash-shell -चेंज-ऑफ-द-कलर-ऑफ-माय-शेल-प्रांप्ट-अंडर-लिनक्स-ऑर-यूनिक्स / लेकिन यह स्पष्ट रूप से ssh भर में काम नहीं करता है।

इसके अलावा, अगर आपके पास मेरी मदद करने के लिए कोई और कूल बैश टिप्स हो तो मेरी दृष्टि अद्भुत होगी। मुझे यह टिप मिली है जो मैन पेजों को रंगती है।

http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/


1
name@ ** server** प्रत्येक आदेश से पहले लाइन व्यक्त नहीं करता है कि आपके पर सर्वर? यह कुछ करने के लिए इस्तेमाल किया जा रहा है, लेकिन इसका सबसे अच्छा मौजूदा तरीका है
TheLQ

आपका लैपटॉप किस ऑपरेटिंग सिस्टम पर काम कर रहा है?
समक

1
नाम @ सर्वर अमेज़ॅन क्लाउड जैसी चीजों का उपयोग करते समय विशेष रूप से अनहेल्दी है, क्योंकि यह हर बूट को बदलता है और बॉक्स के उद्देश्य या आसानी से यादगार नाम (उपयोगकर्ता @ आईपी-एक्सएक्सएक्सएक्स) को व्यक्त नहीं करता है। तो इस सवाल के लिए +1 :)
रफीक मनीर

जवाबों:


11

मेरे द्वारा उपयोग की जाने वाली विधि होस्टनाम से होस्टनाम के लिए एक रंग उत्पन्न करने के लिए है। चुनने के लिए कई रंग नहीं हैं, इसलिए यह आसानी से झड़पें पैदा करेगा, लेकिन यह उन छोटी मशीनों के लिए उपयोगी है जिन्हें मैं प्रबंधित करता हूं।

hostnamecolor=$(hostname | od | tr ' ' '\n' | awk '{total = total + $1}END{print 30 + (total % 6)}')

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[${hostnamecolor}m\]\]\h \[\e[32m\]\w\[\e[0m\]\n$ '

पहली पंक्ति मशीन के होस्टनाम से 30 (inc) और 36 (exc) के बीच एक संख्या उत्पन्न करती है। दूसरी पंक्ति इसे उपयोगकर्ता नाम और हरे रंग में पथ (32) और उत्पन्न रंग में होस्ट नाम के साथ प्रॉम्प्ट पर लागू होती है।

कोई पृष्ठभूमि रंग सेट नहीं है, और मैं उपयोग किए गए टर्मिनलों की पृष्ठभूमि के साथ संघर्ष से बचने के लिए अग्रभूमि से सियान (36) और सफेद (37) को बाहर करता हूं।


तो यह अग्रभूमि और पृष्ठभूमि दोनों के लिए एक ही रंग उत्पन्न कर सकता है?
क्रिस एस।

कोई पृष्ठभूमि रंग उत्पन्न नहीं होता है। लेकिन आप सही हैं कि उत्पन्न रंग पृष्ठभूमि से मेल खा सकता है। मैं सफेद (37) और सियान (36) को बाहर करता हूं क्योंकि वे मेरे द्वारा उपयोग की जाने वाली टर्मिनल पृष्ठभूमि के साथ अच्छी तरह से काम नहीं करते हैं। मैंने उत्तर स्पष्ट करने के लिए संपादित किया है।
डैन मिडवुड

3

आप सही रास्ते पर हैं। मैंने आपके द्वारा लिंक किए गए पृष्ठ पर विस्तृत विधि का उपयोग किया है, और मेरे ब्लॉग पर बिल्कुल विस्तृत है । यह मेरे लिए एक विंडोज बॉक्स से PuTTY का उपयोग करता है, और एक सेंटोस सर्वर से दूसरे में एसएसएच भी। यदि यह आपके लिए काम नहीं कर रहा है, और आपको यकीन है कि आपको सिंटैक्स सही मिला है, तो यह आपके एसएसएच क्लाइंट के लिए नीचे हो सकता है।


नमस्ते, मैंने .bashrc बदल दिया है और मैं समझता हूं कि मैं स्थानीय रूप से रंग बदल सकता हूं। मैं जो चाहता था, जब मैं एक अलग कंप्यूटर के लिए ssh, शीघ्र रंग बदल जाता है। मुझे पता है कि टर्मिनल को स्वचालित रूप से नहीं पता होगा इसलिए मैं ऐसा करने के लिए पॉइंटर्स की तलाश कर रहा था।
14

1
संपादित करें: ठीक है, हाँ आप सही हैं। यदि प्रत्येक कंप्यूटर पर .bashrc फ़ाइल बदली जाती है, जब आप ssh करते हैं, तो यह उसके कॉन्फ़िगर किए गए रंगों को प्रदर्शित करेगा। मैं सही फ़ाइल संपादित नहीं कर रहा था। धन्यवाद। इसे हल करने पर विचार करें।
bcrawl

2
यदि यह उत्तर आपको समाधान के लिए सीधे ले जाता है, तो उत्तर के बाईं ओर एक चेकमार्क की रूपरेखा पर क्लिक करके इसे स्वीकृत उत्तर के रूप में चिह्नित करने पर विचार करें।
केविन एम

1

मेरी नौकरी पर हमारे पास सर्वरों के विभिन्न चरण हैं

उत्पादन मंचन विकास

मैं मंचन के लिए ठेस और हरे रंग के रूप में एक लाल संकेत का उपयोग करता हूं। अब सभी स्टेजिंग मशीनें डोमेन में stg हैं।

तो ठेस होगी

web1.domain.com
web2.domain.com

मंचन / देव होगा

stg-web1.domain.com
stg-web2.domain.com
dev-web1.domain.com
etc

यह वास्तव में केवल redhat / centos के लिए काम करेगा

लेकिन ठेस सर्वर के लिए मैं निम्नलिखित में है

/etc/sysconfig/bash-prompt-xterm

अंदर है

export PS1="\[[\e[1;31m\]\u@\[\e[1;31m\]\h\[\e[0m\] \W] "

यह शीघ्र लाल हो जाएगा .. अब आप स्पर्श नहीं कर सकते / etc / bashrc और अन्य सभी गैर-ठेस मशीनें आपके द्वारा उपयोग किए जाने वाले सामान्य अग्रभूमि रंग रहेंगी .. लेकिन मैंने उन्हें हरा बना दिया

if [ "$PS1" ]; then
    case $TERM in
        xterm*)
                if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
                        PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
                else
                        PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
                fi
                ;;

कि अगर ब्लॉक होना चाहिए .. तो मैंने हरे होने के लिए दूसरे हिस्से पर रंग बदल दिया है .. 33 हरा है


0

आप प्रत्येक मशीन पर bash.rc बदल सकते हैं ताकि अलग-अलग प्रांप्ट रंग दिए जा सकें। या यदि आपके पास पर्याप्त विशेषाधिकार हैं, तो PermitUserEnvironmentनिर्देश के माध्यम से उपयोगकर्ता पर्यावरण हस्तांतरण की अनुमति देने के लिए sshd config को बदल दें ।


0

हम में एक अधिक व्यापक होस्ट नाम स्ट्रिंग चेकसम आधारित समाधान पर काम कर रहे इस सार incl। 256 रंग संगतता। उस मामले के अलावा जहां आप वास्तव में अपने प्रत्येक सर्वर के लिए एक विशिष्ट रंग का निर्धारण करने में रुचि रखते हैं, मुझे लगता है कि यह उन लोगों में से एक है "यह है कि हमारे पास" समस्याओं के लिए कंप्यूटर हैं, इसलिए आपके आधार पर निर्धारित "यादृच्छिक" रंग प्राप्त करना। चेकसम एक अच्छा दृष्टिकोण होना चाहिए।

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