preface
本来刚刚把自己的终端给配置得漂漂亮亮,然后就发现了一个令人非常不爽的事情,在 WSL 里面输入 ls
命令时,文件夹会带有绿色的背景色,可以说是十分丑了,一点也不搭这么漂亮的终端,于是上网搜了很久去除这个绿色背景的方法。
How to ?
关于这个背景色的由来,查资料是说因为文件夹的权限是 777,我们知道,Linux 的权限分布是 用户 | 组 | 其他组
三个权限区,每个区都有三种 r | w | x
权限对应着 读 | 写 | 执行
,因为绿底文件夹的其他组拥有写入的权限,因此系统会将它的底色变绿。
关于它为什么会使其他组拥有写入权限,这篇文章中提到了,主要是文件系统的锅,但是我不想深究原因,只想解决它,于是就开始搜索解决方案。
Troubleshooter
0x01
跟着搜来的解决方案,照着做
代码语言:javascript复制$ cd # move to home dir
$ dircolors -p > .dircolors
$ vim .dircolors
就说找到 OTHER_WRITABLE
这一行,把 34;42
改成 34;49
,再保存就可以了
咳咳,按照这个教程改了之后,我重启了一遍终端,然而并没有什么卵用,还是呈现绿底,惊奇的是网上的人按照这个教程都成功解决了,我又佛了。。
0x02
就在我即将放弃的时候,我突然灵机一动,退出了 zsh ,用 bash 试了一下,发现绿底真就没了,难道是因为 zsh 的原因,害!可能还真是。那我又去找 Google 搜索了 zsh 改变文件夹绿底的方法,搜了好久搜到了一篇
,终于把我的问题给解决了,因为 zsh 和 bash 的颜色的逻辑是不相同的,所以要在 bash 里面修改之后再将颜色部分的逻辑拷贝到 zsh 里面。所以,打开 .bashrc
文件,找到下面这些内容
75 # enable color support of ls and also add handy aliases
76 if [ -x /usr/bin/dircolors ]; then
77 test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
78 alias ls='ls --color=auto'
79 #alias dir='dir --color=auto'
80 #alias vdir='vdir --color=auto'
81
82 alias grep='grep --color=auto'
83 alias fgrep='fgrep --color=auto'
84 alias egrep='egrep --color=auto'
85 fi
然后把这些内容给复制到 .zshrc
中,执行更新操作 source .zshrc
就行了,终于把这恶心的绿底给去除了。
reference1
reference2