Sık sık os x terminal penceremden farklı sunuculara giriş yapıyorum.
Terminal pencerelerimin daha kolay anlaşılması için farklı ana bilgisayarlar için bir renk şeması atamak istiyorum. Bu otomatik olarak yapılabilir mi?
Sık sık os x terminal penceremden farklı sunuculara giriş yapıyorum.
Terminal pencerelerimin daha kolay anlaşılması için farklı ana bilgisayarlar için bir renk şeması atamak istiyorum. Bu otomatik olarak yapılabilir mi?
Yanıtlar:
İşte tam bir çözüm. Sunucularınızın IP adreslerinin ve / veya alan adlarının ve onlar için istediğiniz renklerin listesini ~ / .server_colors içinde tutun:
192.168.122.102, Kızıl Kumlar 192.168.122.103, Okyanus www.foo.com, Çim foo.com, Çim
Sonra ssh komutunu ele geçirmek için bu satırı ~ / .profile dosyasına ekleyin:
takma ad ssh = "~ / bin / safe_ssh $ 1"
Ardından ssh hedefinizdeki @ işaretinden sonra gelenleri listenizle karşılaştırın. Bir eşleşme varsa, ekranı karşılık gelen renge değiştirmek için bir AppleScript çalıştırın. İşte ~ / bin / safe_ssh:
#! / Bin / bash ip = `yankı $ 1 | kes -d "@" -f2` match = `kedi ~ / .server_colors | grep $ ip | wc -l` [$ match -gt 0] ise sonra renk = `kedi ~ / .server_colors | grep $ ip | kes -f2 -d "," ` osascript ~ / bin / change_terminal_color.scpt "$ renk" 2> / dev / null fi / usr / bin / ssh $ 1
Ve son olarak, işte ~ / bin / change_terminal_color.scpt
koşarken argv "Terminal" uygulamasına pencere 1'in seçili sekmesinin geçerli ayarlarını şu şekilde ayarlamasını söyleyin: (adı ilk ayar grubu (argv öğesinin 1'i)) son koşu
Bu kodun çoğunu bu blog yazısından aldım .
Evet.
Örneğin, "ekran" kullanın ve özelleştirin: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
Ya da mümkünse SSH İstemcinizde yapmayı başarabilirsiniz.
Bunu da deneyebilirsiniz: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
@ Muirbot'un çözümü benim için gerçekten iyi çalışıyor. Bu konuda bazı küçük iyileştirmeler yaptım. Yeterli üne sahip olduğumda yazısının altına ekleyeceğim.
Çizgiyi değiştirin
ip =echo $1 | cut -d"@" -f2
ile ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
Bu değişiklik, ssh komutunuza "ssh -p 1111 userName @ host" gibi ek argümanlar verilmesini sağlar
Normal ifade basit ipv4 adreslerine ve alan adlarına izin verir.
Birden fazla argümanı daha da desteklemek için son satırı şu şekilde değiştirin:
/ usr / bin / ssh $ @
Sadece aynı şeyi arıyordum ve bu makaleyi buldum:
http://akrabat.com/php/osx-terminal-colours/
El yazısıyla terminal renklerini değiştirmek için bir php betiği kullanır. Her sunucu için farklı renk eşlemeleri ayarlayabilirsiniz. Php şeyler ruby içine yeniden yazma dürtüsü hissediyorum rağmen benim için harika çalışıyor :)
fk
Farklı bg / fg renklerle xterm pencerelerinde SSH başlatan bir komut dosyası kullanıyorum. Yapılandırmaya gerek kalmaması için renkleri renk adından ana bilgisayar adının karmasına göre seçer.
Betik Ruby'de yazılmıştır: https://github.com/mickeyil/ssx
İTerm2 kullanıyorsanız ~/bin/ssh-host-color.sh
, https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57 adresindeki içeriklerle bir dosya oluşturun :
set_term_bgcolor(){
local R=$1
local G=$2
local B=$3
/usr/bin/osascript <<EOF
tell application "iTerm"
tell the current window
tell the current session
set background color to {$(($R*65535/255)), $(($G*65535/255)), $(($B*65535/255))}
end tell
end tell
end tell
EOF
}
if [[ "$@" =~ "production.example.com" ]]; then
set_term_bgcolor 40 0 0
elif [[ "$@" =~ "qa.example.com" ]]; then
set_term_bgcolor 0 40 0
fi
trap "set_term_bgcolor 0 0 0" EXIT
ssh $@
Ve ~/.aliases.sh
dosyanıza aşağıdaki satırı ekleyin :
alias ssh="~/bin/ssh-host-color.sh $@"