如何让 bash shell 以不同的颜色列出可执行文件和不可执行文件?
我尝试进行编辑~/.bashrc
以包含以下行(否则为空):
LS_OPTIONS='--color=auto'
但它不起作用。我做错了什么?我在 Mac OS X 上工作。
答案1
要打开ls
命令的颜色输出而无需创建别名ls
或下载任何其他软件,请将以下内容添加到~/.bash_profile
:
# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
如果你不喜欢这些颜色,你可以使用这是 ls 颜色生成器根据您的喜好自定义颜色列表。
你需要做:
source ~/.bash_profile
在您进行任何更改后,它们都会在您现有的 shell 中生效。
答案2
问题是 OS X 没有 GNU ls
;虽然它ls
支持文件名着色,但只能根据文件类型(文件、目录、符号链接、设备特殊文件、fifo、套接字...)进行着色。coreutils
从 Fink/MacPorts/HomeBrew 安装,然后使用alias ls='gls --color=auto'
。
答案3
BSD ls 有效有点不同
alias ls='ls -G'
应该管用。
这不是 bash 着色,而是ls
进行着色。当 bash 执行文件列表(echo *
在目录中尝试)时,无法着色。ls -G
在任何 shell 中都可以输入内容,但具有别名的 shell(如 bash)会更容易。
答案4
考虑安装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)
有很多LS_COLORS
选择github。