在 .bashrc 中更改 sh 颜色

在 .bashrc 中更改 sh 颜色

我正在尝试更改我使用的 shell 的颜色油灰

当我输入这个

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '

我得到了我想要的。一切都绿色的并且它仅适用于 root 用户,因此我可以将 root 与其他用户区分开来。

但是,当我把这段代码(不含“出口”)/root/.bashrc,当我使用命令将当前shell更改为bash时,得到了这种效果bash

例子:

例子

我怎样才能使我的 shell 变成绿色,而不用每次连接时都切换到“bash”,即我怎样才能将其应用于默认 shell?

这里使用的是 Debian 8.3 (Jessie)

答案1

问题是~/.bashrc登录 shell 无法读取它,因此通过 SSH 登录获得的 shell 也无法读取它。

正如您已经注意到的,~/.profile它由登录 shell 读取,所以这是一种设置颜色的方法,但它不会影响 MOTD。

在 Debian 中,MOTD 存储在/etc/motd;下面的命令将在文件的开始和结束处附加正确的转义序列:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd

截屏

\e[0;32m在开始时将颜色设置为绿色,\e[0m将在结束时重置所有属性;这样,MOTD 就会发生变化,而不会影响之后打印的内容;如果您不想在结束时重置属性(影响 MOTD 之后打印的内容),只需删除最后一条命令:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd

相关内容