Ubah warna terminal berdasarkan sesi SSH

28

Apakah mungkin untuk secara otomatis mengubah warna terminal berdasarkan pada server mana saya terhubung melalui SSH?

Sebagai contoh, ketika saya menjalankan terminal itu memiliki warna standar yang ditentukan di bawah profil saya. Lalu saya ssh ke ssh.example.com dan warnanya berubah menjadi hitam & hijau. Kemudian saya keluar dari sesi dan warnanya kembali ke tema warna standar.

Saya tahu Anda bisa melakukan ini secara manual. Tapi saya mencari cara otomatis.

karlingen
sumber

Jawaban:

23

Ya, Anda bisa dengan mengubah PS1nilai dalam .bashrcfile pada setiap nama host tempat Anda terhubung ssh.

Lihat jawaban ini untuk melihat bagaimana cara mengkustomisasi sesuai keinginan bash yang mengubah PS1nilainya.

ssh berwarna

Di mesin saya (radu @ Radu) saya miliki di .bashrc:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\] \w\[\033[01;37m\] > '

Di mesin yang dihosting (radu @ ubuntu) saya punya:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;40m\]\u@ubuntu\[\033[00;40m\]:\[\033[01;34;40m\] \w\[\033[01;32;40m\] > '
Radu Rădeanu
sumber
5
Bagaimana tepatnya Anda berhasil mengubah warna latar belakang?
chrisg86
Kode '3x' mengubah warna latar depan. kode '4x' mengubah warna latar belakang. Perhatikan bahwa mesin yang dihosting memiliki kode '4x', tetapi lokal tidak. arwin.net/tech/bash.php
FlipMcF
Apakah ada cara untuk mendapatkan hasil yang sama tanpa mengubah apa pun di kotak remote? Kami menggunakan VM, dan perubahan tidak akan bertahan lama ...
Christian