Uzak makineye ve arkaya sshing yaparken Terminal renklerini değiştirme


8

Uzak makineye ssh yaparken terminal renklerini otomatik olarak değiştirmek ve ssh oturumundan çıkarken varsayılan renklere geri dönmek için bir yol arıyorsunuz. Basitçe, uzak makinede çalışırken başka renkler elde etmek istiyorum.

Herhangi bir fikir?

ps: iTerm2 kullanmak istemiyorum, ama standart Terminal.app

Yanıtlar:


9

Aşağıdakileri kullanıyorum.

mysshİçeriği olan bir kabuk komutuna sahip olun:

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

ve bağlanmak için bash diğer adlarını kullanın, örneğin:

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

Web sunucusuna ssh istediğimde ssweb, Terminal'e yazıyorum ve "Homebrew" profilini aldım. Ssh oturumu sona erdiğinde, AppleScript "Temel" e geri döner.

Takma adlar $ HOME / .profile veya benzeri bash-startup dosyanıza girmelidir.

"Homebrew", "Ocean" vb. Terminal.app tercihlerinin ayar profilleridir. Farklı yazı tipleri, kodlamalar vb. De ayarlayabilirsiniz.

Tabii ki, doğrudan kullanabilirsiniz (takma adlar olmadan) gibi:

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

iterm2 için bunu nasıl yapardın? Teşekkürler!
Cosu

Bazı metni seçtikten sonra "vim" de iTerm kullanmayı bıraktım , kopya yerine seçimi keser ..; (Yani, Ne yazık ki, iTerm2 çözümü hakkında hiçbir fikrim yok.
jm666

Teşekkür ederim! Bir süredir bunu yapmak için çeşitli yollara bakıyorum, ancak yönteminiz basit ve esnektir. Sabit kodlu tercih kümelerine sahip bir dizi ayrı komut dosyasının etrafında dolaşmak yerine, farklı takma adlardan profiller ve komutlar alabilen küçük bir çerçeve geliştirmek için bonus puanlar.
Octern

2

Zaten birkaç cevap olduğunu biliyorum, ama burada bir alternatif var:

Arka plan rengini değiştirmenin genel bir yolu yoktur, ancak pencere başlığını değiştirmek için standart bir yol kullanabiliriz. Çok sayıda "Unix sunucusu" olmayan cihazda (ağ cihazları; yönlendiriciler, anahtarlar, güvenlik duvarları vb.) Oturum açıyorsanız, kabuklarını kullanmanız gerekir ve kendi kabuk değişkenlerinizi yükleyemezsiniz. İşte başka bir yol:

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 $@
}

Blogunuza bu ekleyin .bashrc.

Temel olarak, fonksiyonlar ve takma adlar yola bakmak için tercih edildiğinden, bu ssh komutunu alır ve "@" işaretinden önce ve sonra metni kullanır ve daha sonra, terminali ve başlığı ayarlamak için kullanılır.

Bunun için "ssh user@host.blah" kullanmalısınız, "ssh -l user host.blah" değil

Bir kullanıcı adı sağlamazsanız, mevcut kullanıcı adınız olarak ayarlayacaktır (açıkçası özel bir .ssh / config (ki çok kullanıyorum) kullanıyorsanız, bu doğru olmayacaktır, ancak bence yeterince iyi kullanışlı olmak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.