Ssh üzerinden uzaktaki sunuculara bağlandığımda her şey tek bir yazı tipi / renk. Yerel olarak yaptığım gibi renklere sahip olmak istiyorum, örneğin çalıştırılabilir için yeşil ve sembolik bağlantılar için mavi, vb.
Ssh üzerinden uzaktaki sunuculara bağlandığımda her şey tek bir yazı tipi / renk. Yerel olarak yaptığım gibi renklere sahip olmak istiyorum, örneğin çalıştırılabilir için yeşil ve sembolik bağlantılar için mavi, vb.
Yanıtlar:
Sunucuda xterm olduğundan, bir sorun olduğunu düşündüm .bashrc
Ve gerçekten! ls --color=autosadece TTY’ye bağlıyken çalışır. Basitçe her şeyi değiştirme --coloriçinde .bashrcuzak ana ve her konuda artık oldukça renkte temin edilebilir.
su -ssh bağlantısı isteminde komutunu
Renkler zaten ~/.bashrcbenim için ayarlanmış gibi görünüyor ve sorun şu ki ssh bashrc dosyasını kullanmıyor. Aşağıdakileri ekleyerek, ssh oturumunuzda bashrc kullanabilirsiniz ~/.bash_profile:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Bağlandığınızda, sunucudaki XTERM env değişkeninin içeriği nedir?
~ > export | grep -i term
TERM=xterm
Benim durumumda, eksik olan kısım .bashrc dosyasına takma adlar eklenerek eklenebilecek renkli ls, grep vb.
alias ls='ls --color=auto'
alias grep='grep --color=auto'
vb.
~./bashrcAyarları değiştirmeyi denedim (hem yerel hem de uzak sunucuda), ancak işe yaramadı.
Sonra ~/.bashrcssh üzerinden bağlanırsam uzaktaki sunucunun çalıştırılmadığını bile farkettim . Bu yüzden yapılan ~/.bashrctarafından yürütülecek uzaktan sunucu puttinng if [ -f ~/.bashrc ]; then . ~/.bashrc fiuzak sunucunun içinde ~/.bash_profile. ( https://stackoverflow.com/questions/820517/bashrc-at-ssh-login e dayanarak ).
Bu nedenle, bu çözüm ~/bashrcdoğrudan herhangi bir dosyayı değiştirmeyi gerektirmiyordu, ancak ~/bash_profileuzak sunucunun bu dosyayı çalıştırması için uzak sunucunun değiştirilmesini gerektiriyordu ~/bashrc.
.profileve .bash_profilevarsayılanı kullanır ve varsayılan .profilekaynaktır .bashrc.
.profilessh ile giriş yaparken varsayılan olarak çalıştırılır mı?
.bash_profile, .profilebir giriş kabuğu olarak başlatıldığında bash çalışır . SSH ise bash'a giriş kabuğu olarak başlar.
~/.profileVarsa okunmamış olması doğru ~/.bash_profile. Fakat ~/.bash_profilevarsayılan olarak Ubuntu'da mevcut değil mi?
.profile.
Doğrudan loggged olurken renkler iyi çalıştı bu yana, sadece un-uncommented hat force_color_prompt=yesdosyasında ~/.bashrc, yani bana ssh renkleri de verdi:
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
(Ubuntu 18.04 LTS)
Benim durumumda, yakın zamanda kurdum chef-localve benden bir satır eklememi istedi .bash_profile. Oturum açtığımda, .bashrcartık hiç yükleme yapmıyor, çünkü gördü .bash_profile.
Yaptığım şey bir satır eklemek oldu .bash_profile:
source .bashrc
export PATH="/opt/chefdk/embedded/bin:$PATH"
Oturumu kapattım ve tekrar giriş yaptım ve renkli terminalimi hemen aldım.
Yukarıda "Mike E" den gelen ve benim için cevabı içeren bir yorum var, fakat okumak çok zor değil .bashrc, çok fazla kullanmazsan ne anlama geldiğini anlamak biraz zor. t.
Bir miktar ~/.bashrcvidaladıktan sonra, ssh ile oturum açtığım makinedeki aşağıdaki satırları değiştirerek istenen sonuçları elde ettim:
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
için:
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
xterm) color_prompt=yes;;
esac
Sanıyorum ilk satırda "color" dan sonra "| xterm" ekledim ya da etrafa kazıp ssh'ın neden "xterm-color" yerine "xterm" kullandığını anlayabilir ve bunu değiştirebilirdim, ama bu işe yarar ve ben Şimdi yapacak başka şeyler var.
Proxy üzerinden bağlanırken rengimi kaybediyordum, çünkü TERM=dumbonu düzelttim:
ssh myproxy "ssh pi@localhost -p 5000 -tt 'TERM=xterm bash'"