Kiedy łączę się przez ssh ze zdalnymi hostami, wszystko jest tylko jedną czcionką / kolorem. Chciałbym mieć kolory takie jak robię lokalnie, np. Zielony dla pliku wykonywalnego i niebieski dla dowiązań symbolicznych itp. I taki, że kiedy uruchamiam $ git diff na hoście ssh, pokazuje mi diff z kolorami =)
command-line
ssh
Dima
źródło
źródło
Odpowiedzi:
Ponieważ na serwerze był xterm, pomyślałem, że coś jest nie tak
.bashrc
I rzeczywiście!
ls --color=auto
działa tylko wtedy, gdy masz połączenie z TTY. Zmiana wszystko po prostu--color
się.bashrc
na zdalnym komputerze i wszystko jest teraz w ładnych kolorach.źródło
To działało dla mnie:
-t
był kluczem. Wyjaśnione .źródło
su -
polecenie w wierszu połączenia sshWygląda na to, że kolory zostały już
~/.bashrc
dla mnie ustawione , a problem polega na tym, że ssh nie używa pliku bashrc. Możesz użyć bashrc w swojej sesji ssh, dodając następujące elementy do~/.bash_profile
:źródło
Jaka jest zawartość twojej zmiennej env XTERM na serwerze, kiedy się z nią łączysz?
źródło
W moim przypadku brakująca część miała mieć kolorowe ls, grep itp., Które można dodać, dodając aliasy do pliku .bashrc:
itp.
źródło
Próbowałem zmienić
~./bashrc
ustawienia (zarówno na serwerze lokalnym, jak i zdalnym), ale nie działało.Potem zauważyłem, że
~/.bashrc
zdalny serwer nawet nie zostanie wykonany, jeśli połączę się z nim przez ssh. Zrobiłem więc~/.bashrc
zdalny serwer do wykonania poprzez umieszczenie goif [ -f ~/.bashrc ]; then . ~/.bashrc fi
na serwerze zdalnym~/.bash_profile
. (na podstawie https://stackoverflow.com/questions/820517/bashrc-at-ssh-login ).Zatem to rozwiązanie nie wymagało
~/bashrc
bezpośredniej zmiany żadnych plików, ale wymagało zmiany~/bash_profile
pliku zdalnego serwera, aby~/bashrc
plik zdalnego serwera został wykonany.źródło
.profile
i nie.bash_profile
jest domyślnie, a domyślnie.profile
źródło.bashrc
..profile
wykonywany domyślnie podczas logowania przez ssh?.bash_profile
, bash działa.profile
po uruchomieniu jako powłoka logowania. A SSH zaczyna bash jako powłokę logowania.~/.profile
nie jest czytany, jeśli~/.bash_profile
istnieje. Ale czy~/.bash_profile
domyślnie nie istnieje na Ubuntu?.profile
.Ponieważ kolory działały dobrze podczas bezpośredniego logowania, po prostu odkomentowałem wiersz
force_color_prompt=yes
w pliku~/.bashrc
, co dało mi również kolory w stosunku do ssh:(Ubuntu 18.04 LTS)
źródło
W mojej sytuacji niedawno zainstalowałem
chef-local
i poprosił mnie o dodanie linii do.bash_profile
. Kiedy się loguję,.bashrc
nigdy więcej się nie ładuje, bo zobaczyłem.bash_profile
.Dodałem wiersz w
.bash_profile
:Wylogowałem się, wróciłem i od razu otrzymałem kolorowy terminal.
źródło
Jest komentarz z „Mike E” powyżej, który zawierał dla mnie odpowiedź, ale nie tylko jest trudny do odczytania, ale trudno jest zrozumieć, co on ma na myśli, jeśli nie używasz
.bashrc
dużo - a ja nie. t.Po tym, jak się trochę przekręciłem, uzyskałem pożądane wyniki, zmieniając następujące wiersze
~/.bashrc
na komputerze, na którym logowałem się za pomocą ssh:do:
Myślę, że mogłem właśnie dodać „| xterm” po „kolorze” w pierwszym wierszu lub wykopać i dowiedzieć się, dlaczego ssh używał „xterm” zamiast „xterm-color” i to zmienić, ale to działa i ja mam teraz inne rzeczy do zrobienia.
źródło
Traciłem kolor podczas łączenia przez serwer proxy, ponieważ
TERM=dumb
naprawiłem go:źródło