Cuando me conecto a través de ssh a hosts remotos, todo es solo una fuente / color. Me gustaría tener colores como lo hago localmente, por ejemplo, verde para ejecutable y azul para enlaces simbólicos, etc. Y de modo que cuando ejecuto $ git diff en el host ssh me muestra diff con colors =)
command-line
ssh
Dima
fuente
fuente

Respuestas:
Debido a que era xterm en el servidor, pensé que algo estaba mal con
.bashrc¡Y de hecho!
ls --color=autofunciona solo cuando está conectado a TTY. Cambiando todo a simplemente--coloren.bashrcel host remoto y todo está en bonitos colores ahora.fuente
Esto funcionó para mí:
-tFue la clave. Explicó .fuente
su -comando en el indicador de conexión sshParece que los colores ya estaban configurados
~/.bashrcpara mí y el problema es que ssh no usa el archivo bashrc. Puede usar bashrc en su sesión ssh agregando lo siguiente a~/.bash_profile:fuente
¿Cuál es el contenido de su variable env XTERM en el servidor cuando se conecta a él?
fuente
En mi caso, la parte que faltaba era tener colores ls, grep, etc., que se pueden agregar agregando alias al archivo .bashrc:
etc.
fuente
Intenté cambiar la
~./bashrcconfiguración (tanto en el servidor local como en el remoto), pero no pareció funcionar.Entonces noté que
~/.bashrcel servidor remoto ni siquiera se ejecuta si me conecto a través de ssh. Así que hice~/.bashrcun servidor remoto para ejecutar poniendoif [ -f ~/.bashrc ]; then . ~/.bashrc fien el servidor remoto~/.bash_profile. (basado en https://stackoverflow.com/questions/820517/bashrc-at-ssh-login ).Entonces, esta solución no requería cambiar ningún
~/bashrcarchivo directamente, pero sí requería cambiar el~/bash_profilearchivo del servidor remoto para que ese~/bashrcarchivo del servidor remoto se ejecutara.fuente
.profiley no.bash_profilede forma predeterminada, y el valor predeterminado.profilees fuente.bashrc..profilese ejecuta de forma predeterminada al iniciar sesión a través de ssh?.bash_profile, bash se ejecuta.profilecuando se inicia como un shell de inicio de sesión. Y SSH comienza bash como un shell de inicio de sesión.~/.profileno se lea si~/.bash_profileexiste. ¿Pero no~/.bash_profileexiste en Ubuntu por defecto?.profile.Como los colores funcionaban bien mientras se iniciaba sesión directamente, simplemente eliminé el comentario de la línea
force_color_prompt=yesen el archivo~/.bashrc, que también me dio colores sobre ssh:(Ubuntu 18.04 LTS)
fuente
En mi situación, instalé recientemente
chef-localy me pidió que agregue una línea.bash_profile. Cuando inicio sesión,.bashrcnunca se carga más, porque vio.bash_profile.Lo que hice fue agregar una línea en
.bash_profile:Salí y volví a entrar y obtuve mi terminal de color de inmediato.
fuente
Hay un comentario de "Mike E" arriba que contenía la respuesta para mí, pero no solo es difícil de leer, es un poco difícil entender lo que quiere decir si no usas
.bashrcmucho, y yo no ' t.Después de jugar un poco, obtuve los resultados deseados al cambiar las siguientes líneas en
~/.bashrcla máquina en la que estaba iniciando sesión con ssh:a:
Estoy pensando que podría haber agregado "| xterm" después de "color" en la primera línea, o buscar y descubrir por qué ssh estaba usando "xterm" en lugar de "xterm-color" y cambiar eso, pero esto funciona y yo Tiene otras cosas que hacer ahora.
fuente
Estaba perdiendo mi color cuando me conectaba a través de un proxy porque
TERM=dumblo arreglé:fuente