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=auto
funciona solo cuando está conectado a TTY. Cambiando todo a simplemente--color
en.bashrc
el host remoto y todo está en bonitos colores ahora.fuente
Esto funcionó para mí:
-t
Fue la clave. Explicó .fuente
su -
comando en el indicador de conexión sshParece que los colores ya estaban configurados
~/.bashrc
para 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
~./bashrc
configuración (tanto en el servidor local como en el remoto), pero no pareció funcionar.Entonces noté que
~/.bashrc
el servidor remoto ni siquiera se ejecuta si me conecto a través de ssh. Así que hice~/.bashrc
un servidor remoto para ejecutar poniendoif [ -f ~/.bashrc ]; then . ~/.bashrc fi
en 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
~/bashrc
archivo directamente, pero sí requería cambiar el~/bash_profile
archivo del servidor remoto para que ese~/bashrc
archivo del servidor remoto se ejecutara.fuente
.profile
y no.bash_profile
de forma predeterminada, y el valor predeterminado.profile
es fuente.bashrc
..profile
se ejecuta de forma predeterminada al iniciar sesión a través de ssh?.bash_profile
, bash se ejecuta.profile
cuando se inicia como un shell de inicio de sesión. Y SSH comienza bash como un shell de inicio de sesión.~/.profile
no se lea si~/.bash_profile
existe. ¿Pero no~/.bash_profile
existe 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=yes
en el archivo~/.bashrc
, que también me dio colores sobre ssh:(Ubuntu 18.04 LTS)
fuente
En mi situación, instalé recientemente
chef-local
y me pidió que agregue una línea.bash_profile
. Cuando inicio sesión,.bashrc
nunca 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
.bashrc
mucho, y yo no ' t.Después de jugar un poco, obtuve los resultados deseados al cambiar las siguientes líneas en
~/.bashrc
la 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=dumb
lo arreglé:fuente