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=auto
sadece TTY’ye bağlıyken çalışır. Basitçe her şeyi değiştirme --color
içinde .bashrc
uzak ana ve her konuda artık oldukça renkte temin edilebilir.
su -
ssh bağlantısı isteminde komutunu
Renkler zaten ~/.bashrc
benim 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.
~./bashrc
Ayarları değiştirmeyi denedim (hem yerel hem de uzak sunucuda), ancak işe yaramadı.
Sonra ~/.bashrc
ssh üzerinden bağlanırsam uzaktaki sunucunun çalıştırılmadığını bile farkettim . Bu yüzden yapılan ~/.bashrc
tarafından yürütülecek uzaktan sunucu puttinng if [ -f ~/.bashrc ]; then . ~/.bashrc fi
uzak sunucunun içinde ~/.bash_profile
. ( https://stackoverflow.com/questions/820517/bashrc-at-ssh-login e dayanarak ).
Bu nedenle, bu çözüm ~/bashrc
doğrudan herhangi bir dosyayı değiştirmeyi gerektirmiyordu, ancak ~/bash_profile
uzak sunucunun bu dosyayı çalıştırması için uzak sunucunun değiştirilmesini gerektiriyordu ~/bashrc
.
.profile
ve .bash_profile
varsayılanı kullanır ve varsayılan .profile
kaynaktır .bashrc
.
.profile
ssh ile giriş yaparken varsayılan olarak çalıştırılır mı?
.bash_profile
, .profile
bir giriş kabuğu olarak başlatıldığında bash çalışır . SSH ise bash'a giriş kabuğu olarak başlar.
~/.profile
Varsa okunmamış olması doğru ~/.bash_profile
. Fakat ~/.bash_profile
varsayı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=yes
dosyası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-local
ve benden bir satır eklememi istedi .bash_profile
. Oturum açtığımda, .bashrc
artı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 ~/.bashrc
vidaladı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=dumb
onu düzelttim:
ssh myproxy "ssh pi@localhost -p 5000 -tt 'TERM=xterm bash'"