Mac上的Bash颜色外壳?


8

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

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

 LS_OPTIONS='--color=auto'

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

Answers:


7

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

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

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

您需要执行以下操作:

source ~/.bash_profile

进行任何更改后,它们才能在您现有的Shell中生效。


不,完全没有帮助
holms

6

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


谢谢。我已经coreutils从MacPorts 安装了。该alias行应该在~/.bashrc吗?那就是我所说的,但是我没有看到任何区别。
AP257 2011年

~/.bash_aliases可能会更好。我还发现我需要运行对其eval $(gdircolors -s)进行设置。
geekosaur 2011年

@ AP257:在Mac上,我将别名放入.bash_profile中
Hai Vu

@Hai Vu:仅在您从不使用子外壳的情况下才有效。
geekosaur 2011年

@geekosaur gdircolors: invalid option -- 's'是什么意思--sh
Anentropic

6

BSD ls的工作方式略有不同

alias ls='ls -G'

应该管用。

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


6

在Mac上,您需要使用

export CLICOLOR=1

我把它放在.bash_profile中。但是,我更喜欢Rich Homolka的解决方案,而不是带有-G标志的别名ls。如果要自定义颜色:

man ls

并搜索LSCOLORS


1

考虑安装brew和使用GNU版本的ls和其他工具。

从AppStore安装XCode。

安装自制软件 ...

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装coreutils ...

brew install coreutils

添加到您的.profile... 的底部

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

我的别名ls,我.profile为一切和完整列表的快捷方式做的颜色。

alias ls='ls --color'
alias l='ls -lah'
# -l     use a long listing format
# -a     do not ignore entries starting with .
# -h     with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G)

githubLS_COLORS上有很多选项。


-1

bash只是一个外壳,它不会列出文件。它执行命令,例如ls

--color选项(通常是长选项)特定于大多数Linux发行版附带的lsGNU coreutils的版本。另一方面,Mac OS X具有BSD根目录,并使用ls不支持着色的BSD版本。


1
-1:它确实支持着色,只是带有不同的命令行标志:-G
Wuffers 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.