Saya sering masuk ke berbagai server dari jendela os x terminal saya.
Saya ingin menetapkan skema warna untuk host yang berbeda sehingga windows terminal saya lebih mudah untuk dibedakan. Bisakah ini dilakukan secara otomatis?
Saya sering masuk ke berbagai server dari jendela os x terminal saya.
Saya ingin menetapkan skema warna untuk host yang berbeda sehingga windows terminal saya lebih mudah untuk dibedakan. Bisakah ini dilakukan secara otomatis?
Jawaban:
Inilah solusi lengkapnya. Simpan daftar alamat ip dan / atau domain server Anda dan warna yang Anda inginkan di ~ / .server_colors:
192.168.122.102, Red Sands 192.168.122.103, Samudera www.foo.com, Rumput foo.com, Rumput
Kemudian tambahkan baris ini ke ~ / .profile untuk membajak perintah ssh:
alias ssh = "~ / bin / safe_ssh $ 1"
Kemudian bandingkan apa pun setelah @ di target ssh Anda ke daftar Anda. Jika ada kecocokan, jalankan AppleScript untuk mengubah layar ke warna yang sesuai. Inilah ~ / bin / safe_ssh:
#! / bin / bash ip = `echo $ 1 | cut -d "@" -f2` match = `cat ~ / .server_colors | grep $ ip | wc -l` if [$ match -gt 0] kemudian color = `cat ~ / .server_colors | grep $ ip | cut -f2 -d "," ` osascript ~ / bin / change_terminal_color.scpt "$ color" 2> / dev / null fi / usr / bin / ssh $ 1
Dan terakhir, inilah ~ / bin / change_terminal_color.scpt
di jalankan argv beri tahu aplikasi "Terminal" untuk mengatur pengaturan saat ini dari tab jendela 1 yang dipilih (pengaturan pertama yang namanya adalah (item 1 dari argv)) akhirnya jalankan
Saya mengambil sebagian besar kode ini dari posting blog ini .
Iya.
Entah Anda menggunakan misalnya "layar" dan menyesuaikannya: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
Atau Anda berhasil melakukannya pada Klien SSH Anda, jika memungkinkan.
Anda juga dapat mencoba ini: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
Solusi dari @muirbot bekerja sangat baik untuk saya. Saya membuat beberapa perbaikan kecil untuk itu. Saya akan menambahkannya di bawah posnya setelah saya memiliki reputasi yang cukup.
Ganti baris
ip =echo $1 | cut -d"@" -f2
dengan ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
Perubahan ini memungkinkan untuk memberikan argumen tambahan pada perintah ssh Anda seperti "ssh -p 1111 userName @ host"
Ekspresi reguler memungkinkan untuk alamat ipv4 dan nama domain sederhana.
Untuk lebih jauh mendukung beberapa argumen, ubah baris terakhir menjadi
/ usr / bin / ssh $ @
Saya hanya mencari hal yang sama dan menemukan artikel ini:
http://akrabat.com/php/osx-terminal-colours/
Ia menggunakan skrip php untuk mengubah warna terminal dengan applescript. Anda dapat mengatur pemetaan warna yang berbeda untuk setiap server. Bekerja sangat baik untuk saya, meskipun merasakan dorongan untuk menulis ulang hal-hal php menjadi ruby :)
fk
Saya menggunakan skrip yang meluncurkan SSH di windows xterm dengan berbagai warna bg / fg. Ini memilih warna berdasarkan hash nama host dari rentang warna sehingga tidak diperlukan konfigurasi.
Script ditulis dalam Ruby: https://github.com/mickeyil/ssx
Jika Anda menggunakan iTerm2, buat file bernama ~/bin/ssh-host-color.sh
dengan konten dari https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57 :
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 $@
Dan tambahkan baris berikut ke ~/.aliases.sh
file Anda :
alias ssh="~/bin/ssh-host-color.sh $@"