我是OS X和其他Linux发行版(Ubuntu,CentOS,RHEL(用户的新手。
我想知道为什么OS X的bash不能使用--color=auto
选项以及如何启用它。
我经常使用 ls --color=auto
,但在 OS X 上,它不起作用。以下是命令输出:
$ ls --color=auto
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
我还阅读了ls
的手册页,我发现ls -G
是彩色输出的启用者。所以,在这个时候,没关系,但我有点烦人,因为我正在共享我所有 Linux 环境的.bashrc
和.bash_profile
。
有谁知道这些bash的不同吗?您是否有什么好主意可以在OS X和某些Linux发行版之间共享.bashrc
和.bash_profile
,而无需对每个环境进行额外编辑。
附言我的朋友告诉我在 AIX(Linux 服务器 IBM 版本?我不确定(也无法运行ls --color=auto
。
ls
命令和其他命令(如 ps
和 top
(的实现是不同的,大多数实用程序都有 GNU 版本和 BSD 版本。Linux采用GNU版本,而OSX可能采用BSD版本,因此这些命令的选项可能有所不同。
如果要制作可在任何地方使用的.bashrc
或.bash_profile
,则应在为命令添加别名之前判断环境,如下所示:
_myos="$(uname)"
case $_myos in
Linux) alias ls='ls --color';;
Darwin) alias ls='ls -G';;
*) ;;
esac
使用 homebrew
安装 GNU coreutils
:
brew install coreutils
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
有用的链接:https://github.com/sorin-ionescu/prezto/issues/966