Ketika saya menghubungkan ssh ke host jarak jauh semuanya hanya satu font / warna. Saya ingin memiliki warna seperti yang saya lakukan secara lokal misalnya hijau untuk dieksekusi dan biru untuk symlink dll. Dan sehingga ketika saya menjalankan $ git diff pada ssh host itu menunjukkan saya berbeda dengan warna =)
command-line
ssh
Dima
sumber
sumber
Jawaban:
Karena itu xterm di server, saya pikir ada yang tidak beres
.bashrc
Dan memang!
ls --color=auto
hanya berfungsi ketika Anda terhubung ke TTY. Mengubah segalanya untuk hanya--color
di.bashrc
pada remote host dan semuanya dalam warna cantik sekarang.sumber
Ini bekerja untuk saya:
-t
adalah kuncinya. Dijelaskan .sumber
su -
perintah di prompt koneksi sshSepertinya warna sudah diatur
~/.bashrc
untuk saya dan masalahnya adalah ssh tidak menggunakan file bashrc. Anda dapat menggunakan bashrc di sesi ssh Anda dengan menambahkan yang berikut ke~/.bash_profile
:sumber
Apa isi variabel env XTERM Anda di server saat Anda terhubung?
sumber
Dalam kasus saya, bagian yang hilang adalah memiliki warna ls, grep, dll. Yang dapat ditambahkan dengan menambahkan alias ke file .bashrc:
dll.
sumber
Saya mencoba mengubah
~./bashrc
pengaturan (baik pada server lokal dan jarak jauh), tetapi sepertinya tidak berhasil.Kemudian saya perhatikan bahwa
~/.bashrc
server jarak jauh bahkan tidak dapat dieksekusi jika saya terhubung melalui ssh. Jadi saya membuat~/.bashrc
server jauh untuk mengeksekusi dengan memasukkanif [ -f ~/.bashrc ]; then . ~/.bashrc fi
ke server jauh~/.bash_profile
. (berdasarkan https://stackoverflow.com/questions/820517/bashrc-at-ssh-login ).Jadi solusi ini tidak perlu mengubah
~/bashrc
file apa pun secara langsung tetapi memang membutuhkan perubahan~/bash_profile
file server jarak jauh sehingga~/bashrc
file server jarak jauh dijalankan.sumber
.profile
dan bukan.bash_profile
secara default, dan default.profile
memang sumber.bashrc
..profile
dieksekusi secara default saat masuk melalui ssh?.bash_profile
, bash berjalan.profile
ketika dimulai sebagai shell login. Dan SSH mulai bash sebagai shell login.~/.profile
tidak dibaca jika~/.bash_profile
ada. Tetapi apakah tidak~/.bash_profile
ada di Ubuntu secara default?.profile
.Karena warna berfungsi dengan baik ketika sedang login secara langsung, saya hanya menghapus-uncommented baris
force_color_prompt=yes
dalam file~/.bashrc
, yang memberi saya warna lebih dari ssh, juga:(Ubuntu 18,04 LTS)
sumber
Dalam situasi saya, saya baru saja menginstal
chef-local
dan meminta saya untuk menambahkan baris.bash_profile
. Ketika saya masuk,.bashrc
tidak pernah memuat lagi, karena melihat.bash_profile
.Apa yang saya lakukan adalah menambahkan baris
.bash_profile
:Saya logout dan kembali dan mendapatkan terminal berwarna saya segera.
sumber
Ada komentar dari "Mike E" di atas yang berisi jawaban untuk saya, tetapi tidak hanya sulit dibaca, juga agak sulit untuk mencari tahu apa maksudnya jika Anda tidak menggunakan
.bashrc
banyak - dan saya tidak tahu. t.Setelah bermain-main sedikit, saya mendapatkan hasil yang diinginkan dengan mengubah baris-baris berikut
~/.bashrc
pada mesin yang saya masuki dengan ssh:untuk:
Saya berpikir saya bisa saja menambahkan "| xterm" setelah "warna" di baris pertama, atau menggali dan mencari tahu mengapa ssh menggunakan "xterm" bukannya "xterm-color" dan mengubahnya, tetapi ini berhasil dan saya punya hal lain yang harus dilakukan sekarang.
sumber
Saya kehilangan warna saat terhubung melalui proxy karena
TERM=dumb
saya memperbaikinya:sumber