Cambiando el color sh en .bashrc

Cambiando el color sh en .bashrc

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:

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 ~/.bashrcque 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, ~/.profilese 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

captura de pantalla

Establecerá \e[0;32mel color en verde al principio y \e[0mrestablecerá 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

información relacionada