我正在尝试更改我使用的 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