如何关闭 $PS1 中的颜色?

如何关闭 $PS1 中的颜色?

我的终端中的输出包含多种颜色,我想在黑色背景上仅以白色显示所有字符。

echo "$PS1"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 

按照choroba所说的那样删除the \[\033..\] parts,这是没有用的:

vim .bashrc
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$"

现在来源:

source  .bashrc

检查ls /tmp

在此输入图像描述

只是保持字符颜色为白色,其他设置保持不变。

答案1

拆下\[\033..\]零件。这些是 ANSI 颜色代码。

首字母\[\e]0;...类似,但它设置终端标题。

答案2

您正在混淆两个完全独立且不相关的事物:bash 的提示字符串 ( PS1) 和 可选使用的颜色ls

  1. 我也喜欢一个非常简单的提示,没有颜色代码(并且我不需要对 chroot 进行特殊处理),所以我只有:

     PS1='\u@\h:\w\$ '
    

    您需要在当前 shell 和 、 或任何其他可能设置的地方更改~/.bashrc~/.bash_profile设置~/.profile

  2. 要从 的输出中删除颜色ls,请删除为其ls添加--colors=选项(或将其更改为--colors=never)的所有别名,并注释掉或删除任何类似eval dircolors或 设置LS_COLORS变量的语句。

    同样,这需要在当前 shell 和 shell 启动脚本中完成。

    ~/.bash_aliases通常用于定义别名以及或代替上述启动脚本。

  3. 或者,到改变使用的颜色ls(黑色上的深蓝色是不可读的垃圾 - 一个可怕的默认值),更改变量LS_COLORS。例如,请参阅我的回答修复具有 777 权限的目录的 LS 颜色?

答案3

删除 ls 命令中的颜色设置:

vim .bashrc
alias  ls="ls --color=never"

相关内容