रिमोट मशीन और बैक में ssh-ing के दौरान टर्मिनल रंग बदलना


8

जब ssh-ing को दूरस्थ मशीन में बदलते हैं और ssh सत्र से बाहर निकलते समय डिफ़ॉल्ट रंगों में वापस लौटते हैं, तो स्वचालित रूप से टर्मिनल रंग बदलते हैं। बस, मुझे एक और रंग चाहिए जब मैं रिमोट मशीन पर काम कर रहा हूँ।

कोई उपाय?

पीएस: iTerm2 का उपयोग नहीं करना चाहते, लेकिन मानक Terminal.app

जवाबों:


9

मैं निम्नलिखित का उपयोग कर रहा हूँ।

एक शेल कमांड है, जिसे mysshसामग्री के साथ कहा जाता है:

PROFILE="$1";shift;
DEF="Basic" #the default profile name
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${PROFILE}\""|osascript
ssh $@
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${DEF}\""|osascript

और कनेक्ट के लिए बैश उपनाम का उपयोग करें, जैसे:

alias ssweb='myssh Homebrew user@web.example.com'
alias ssmail='myssh Ocean me@mail.example.com'

जब मैं वेब सर्वर में ssh करना चाहता हूं, मैं बस sswebटर्मिनल में लिखता हूं और मुझे "Homebrew" प्रोफाइल मिला। जब ssh सत्र समाप्त होता है, AppleScript वापस "मूल" पर सेट होता है।

उपनामों को आपके $ HOME / .profile या इसी तरह के बैश-स्टार्टअप फ़ाइल में जाना चाहिए।

"होमब्रे", "ओशन" आदि टर्मिनल.एप्प प्राथमिकताओं से सेटिंग प्रोफाइल हैं। आप विभिन्न फोंट, एनकोडिंग आदि भी सेट कर सकते हैं।

बेशक, आप इसे सीधे (बिना उपनाम के) उपयोग कर सकते हैं जैसे:

myssh Pro user@another.machine.example.com
       ^        ^
       |        ssh command arguments
       terminal profile name

आप iterm2 के लिए यह कैसे करेंगे? धन्यवाद!
कॉसु

मैंने iTerm का उपयोग करना बंद कर दिया जब कुछ पाठ का चयन करने के बाद "vim" में इसे कॉपी के बजाय चयन को काट दिया जाता है ..; (तो, दुर्भाग्य से, मुझे iTerm2 समाधान के बारे में कोई विचार नहीं है।
jm666

धन्यवाद! मैं कुछ समय के लिए इसे करने के लिए विभिन्न कठिन तरीकों को देख रहा हूं, लेकिन आपकी विधि सरल और लचीली है। एक छोटे ढांचे को विकसित करने के लिए बोनस अंक जो हार्ड-कोडित वरीयता सेट के साथ अलग-अलग लिपियों के एक समूह के आसपास फेंकने के बजाय विभिन्न उपनामों से प्रोफाइल और कमांड ले सकते हैं।
अष्टक

2

मुझे पता है कि पहले से ही कुछ उत्तर हैं, लेकिन यहां एक विकल्प है:

पृष्ठभूमि का रंग बदलने का कोई सामान्य तरीका नहीं है, लेकिन हम विंडो शीर्षक को बदलने के लिए एक मानक तरीके का उपयोग कर सकते हैं। यदि आप बहुत सारे गैर- "यूनिक्स सर्वर" उपकरणों (जैसे नेटवर्क डिवाइस, राउटर, स्विच, फायरवॉल आदि) के लिए लॉग इन कर रहे हैं, तो आपको उनके गोले का उपयोग करना होगा और अपने स्वयं के शेल वेरिएबल को स्थापित नहीं कर सकते। तो, यहाँ एक और तरीका है:

function ssh() {
  H=$(echo $@ | sed -e 's/.*@//g;s/ .*//g')
  echo $@ | grep '@' && U=$(echo $@ | sed -e 's/@.*//g;s/.* //g')
  echo -ne "\033]0;${U:=$(whoami)}@${H%%.*}\007"
  unset H
  unset U
  /usr/bin/ssh $@
}

इसे अपने में जोड़ें .bashrc

असल में, चूंकि फ़ंक्शंस और अलाइज़ को रास्ते में देखना पसंद किया जाता है, यह ssh कमांड लेता है और HOST और USER वैरिएबल सेट करने के लिए "@" से पहले और बाद में टेक्स्ट का उपयोग करता है, जो तब ASCII कोड को इको करने के लिए उपयोग करता है जिसे मान्यता प्राप्त है। टर्मिनल और शीर्षक सेट करने के लिए उपयोग किया जाता है।

आपको इसके लिए "ssh user@host.blah" का उपयोग करना चाहिए न कि "ssh -l उपयोगकर्ता host.blah" का

यदि आप एक उपयोगकर्ता नाम प्रदान नहीं करते हैं तो यह आपके वर्तमान उपयोगकर्ता नाम के रूप में सेट हो जाएगा (जाहिर है यदि आप एक कस्टम .ssh / config (जो मैं बहुत उपयोग करता हूं) का उपयोग कर रहा हूं तो यह सटीक नहीं होगा, लेकिन मुझे लगता है कि यह काफी अच्छा है उपयोगी होना।

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