it-swarm-tr.com

Ssh üzerinden renkli terminal nasıl elde edilir?

Ssh üzerinden uzaktaki sunuculara bağlandığımda her şey tek bir yazı tipi/renk. Yerel olarak yaptığım gibi renklerin olmasını istiyorum, çalıştırılabilir yeşil ve sembolik bağlantılar için mavi vb. Ve ssh Ana Bilgisayarında $ git diff çalıştırdığımda renkleri ile farklı olduğumu gösterir =)

52
Dima

Sunucuda xterm olduğundan, bir şeylerin yanlış olduğunu anladım .bashrc

Ve gerçekten! ls --color=auto yalnızca TTY'ye bağlıyken çalışır. Her şeyi yalnızca uzak Ana Bilgisayarda --color in .bashrc olarak değiştirmek ve şimdi her şey güzel renklerle gösterilmiştir.

34
Dima

Bu benim için çalıştı:

ssh -t my_Host my_command

-t anahtardı. Açıklaması.

18
juanpastas

Renkler zaten benim için ~/.bashrc olarak ayarlanmış gibi görünüyor ve sorun şu ki, ssh bashrc dosyasını kullanmıyor. Aşağıdakileri ~/.bash_profile öğesine ekleyerek, ssh oturumunuzda bashrc kullanabilirsiniz:

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi
10

Bağlandığınızda, sunucudaki XTERM env değişkeninin içeriği nedir?

~ > export | grep -i term
TERM=xterm
7

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.

4
Stuart Clark

_~./bashrc_ ayarlarını değiştirmeyi denedim (hem yerel hem de uzak sunucuda), ancak işe yaramadı.

Sonra ssh üzerinden bağlanırsam, uzak sunucunun _~/.bashrc_ işleminin gerçekleştirilmediğini bile fark ettim. Böylece uzak sunucunun _~/.bashrc_ tarafından uzak sunucunun puttinng _if [ -f ~/.bashrc ]; then . ~/.bashrc fi_ tarafından çalıştırılması için uzak sunucunun _~/.bash_profile_. ( https: //stackoverflow.com/questions/820517/bashrc-at-ssh-login ).

Bu nedenle, bu çözüm doğrudan _~/bashrc_ dosyalarının değiştirilmesini gerektirmiyordu, ancak uzak sunucunun _~/bash_profile_ dosyasının değiştirilmesini gerektiriyordu, böylece uzak sunucunun _~/bashrc_ dosyası yürütüldü.

2
chris544

Doğrudan giriş yapılırken renkler iyi çalıştığından, ssh üzerinde renkler veren force_color_Prompt=yes dosyasındaki ~/.bashrc satırındaki notu uncommented oldum.

# 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)

1
hinneLinks

Benim durumumda, son zamanlarda chef-local kurdum ve benden .bash_profile 'a bir satır eklememi istedi. Oturum açtığımda, .bashrc artık hiç yüklenmiyor, çünkü .bash_profile gördü.

Yaptığım, .bash_profile içine bir satır eklemek oldu:

source .bashrc
export PATH="/opt/chefdk/embedded/bin:$PATH"

Oturumu kapattım ve tekrar giriş yaptım ve renkli terminalimi hemen aldım.

1
Kevin

Yukarıda "Mike E" den benim için cevabı içeren bir yorum var, ancak okumak zor değil, eğer kullanmazsan ne anlama geldiğini anlamak biraz zor. .bashrc çok - ve yapmam.

Bir miktar vidaladıktan sonra, ssh ile oturum açtığım makinedeki ~/.bashrc içindeki 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.

0
Mike Wise

Proxy ile bağlanırken rengimi kaybediyordum çünkü TERM=dumb bu yüzden onu düzelttim:

ssh myproxy "ssh [email protected] -p 5000 -tt 'TERM=xterm bash'"
0
ErichBSchulz