我刚刚安装了 centos7.2 并正在尝试将其设置得更好。
我找到了一个回答此处显示如何在提示中设置一些颜色。我发现,一旦放入 .bashrc,使用 putty 进行 ssh 登录以及使用 Konsole 应用程序时,它就可以正常工作。但是,当我使用终端(这是 gnome 终端)时,颜色将与 Michael 的输出(这是我在 putty 中看到的)不匹配,并且每个输出前面都有一个有趣的字符(我追踪到 \]序列,它应该是有效的并且不会在其他地方阻塞)。
是否知道 gnome 终端的行为与其他终端程序不同?有什么办法可以让它符合吗?
不太喜欢 konsole,但我愿意接受有关替代方案或修复方法的建议,这些建议将适用于所有客户端(即:我不想维护两种颜色定义,例如 \e[01;32m 打印下一个) putty 中的字符为绿色,gnome 终端中的字符为灰色;我必须在 gnome 终端中使用 38m 才能变为绿色)。
答案1
不,gnome-terminal
并不意味着其行为与其他颜色不同,尽管 16 种基色的确切颜色在所有终端仿真器中都有些不同。 (根据下面 JdeBP 的评论进行更新:在某些调色板中,例如 Solarized,这些颜色故意完全不同。)
您应该在 gnome-terminal 的“编辑”->“配置文件首选项”->“颜色”对话框中查看,然后选择符合您口味的方案。
在转义序列中,\e[01;32m
01 代表明亮和/或粗体(终端仿真器对此存在混淆),32 代表绿色前景。38
另一方面意味着终端仿真器的默认前景,如果您碰巧默认使用“黑底绿”配色方案,则前景为绿色,但更常见的是白色或黑色。
假设你的 shell 是bash
,它的PS1
提示符需要包含\[
和之间的所有转义序列\]
,这就是 bash 知道打印这些序列不会使光标前进的方式,因此编辑命令行不会失败。假设它们确实成对出现在 中PS1
,bash 会消耗它们并且从不将它们打印到终端,因此 gnome-terminal 不可能在那里做任何令人讨厌的事情。可能它们在您的PS1
.