Mac 上的 Bash 彩色外壳?

AP2*_*257 8 bash shell macos

如何使 bash shell 列出可执行文件的颜色与非可执行文件的颜色不同?

我尝试编辑~/.bashrc以包含以下行(否则为空):

 LS_OPTIONS='--color=auto'
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我究竟做错了什么?我在 Mac OS X 上工作。

Ian*_* C. 7

要打开ls命令的颜色输出而不必创建别名ls或下载任何其他软件,请将以下内容添加到您的~/.bash_profile

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢这些颜色,您可以使用此 ls 颜色生成器根据您的喜好自定义该颜色列表。

你需要做:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

在对它们进行任何更改以在您现有的 shell 中生效后。


gee*_*aur 6

问题是 OS X 没有 GNU ls;虽然它ls确实支持文件名着色,但它只能通过文件类型(文件、目录、符号链接、设备特殊文件、fifo、套接字...)来实现。coreutils从 Fink/MacPorts/HomeBrew安装,然后使用alias ls='gls --color=auto'.


Ric*_*lka 6

BSD ls 的工作方式有点不同

alias ls='ls -G'
Run Code Online (Sandbox Code Playgroud)

应该管用。

这不是 bash 着色,而是ls进行着色。当 bash 执行文件列表(echo *在目录中尝试)时,无法着色​​。键入ls -G可以在任何 shell 中工作,尽管具有别名的 shell(如 bash)更容易。


Hai*_* Vu 6

在 Mac 上,您需要使用

export CLICOLOR=1
Run Code Online (Sandbox Code Playgroud)

我把它放在 .bash_profile 中。但是,我更喜欢 Rich Homolka 的解决方案,以使用 -G 标志为 ls 设置别名。如果要自定义颜色:

man ls
Run Code Online (Sandbox Code Playgroud)

并搜索 LSCOLORS