
Estoy intentando cambiar el color de mi shell al que me conecto usandoMasilla.
Cuando escribo esto
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '
Obtengo exactamente lo que quiero. Todo esverdey solo se aplica para el usuario root, por lo que puedo distinguirlo de otros usuarios.
Sin embargo, cuando pongo este código(sin "exportar")En /root/.bashrc
, obtengo este efecto cuando cambio el shell actual a bash usando el comando bash
.
Ejemplo:
¿Cómo puedo hacer que mi shell sea verde, sin cambiar a "bash" cada vez que me conecto, es decir, cómo puedo aplicar esto también al shell predeterminado?
Aquí se utiliza Debian 8.3 (Jessie)
Respuesta1
El problema es ~/.bashrc
que los shells de inicio de sesión no lo leen y, por lo tanto, el shell que se obtiene al iniciar sesión a través de SSH no lo lee.
Como ya habrás notado, ~/.profile
se lee mediante shells de inicio de sesión, por lo que es una forma de configurar el color, pero no afecta el MOTD.
En Debian, el MOTD se almacena en /etc/motd
; Aquí hay un comando que agregará las secuencias de escape correctas al principio y al final del archivo:
printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd
Establecerá \e[0;32m
el color en verde al principio y \e[0m
restablecerá todos los atributos al final; de esta manera se cambia el MOTD sin afectar lo que se imprime después; Si no desea restablecer los atributos al final (lo que afecta lo que se imprime después del MOTD), simplemente suelte el último comando:
printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd