在我的 macOS (10.11.6) 终端上,我在 python 虚拟环境上进行了一些安装。之后我的ls
命令停止工作。它给出了一个错误:
$ ls
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
$ alias ls
alias ls='colourify ls --color'
答案1
ls
哪个程序首先真正搞乱了我的cmd,是 python 吗?
您的ls
命令未受影响。你的ls
别名最有可能来自错误的 Bourne Again shell 设置。
请注意,您的别名正在通过另一个名为 的别名ls
运行名为 的命令。这来自grc
colourify
Radovan Garabík 的通用调色剂,其 Bourne Again shell 别名(在grc.bashrc
)和 Z shell 别名(在grc.zsh
) 设置一个名为 的别名ls
。
在 rc 文件中的某个位置,您可以按照以下建议将这些别名添加到交互式 Bourne Again shell这个堆栈溢出答案。
Z shell 别名是
别名 ls="grc --color=auto ls"它将选项传递
--colour-auto
给grc
命令,该命令是采用该选项的命令。
然而,The Bourne Again shell 别名是
别名 ls='colourify ls --color'(通过
colourify
别名)有效地别名 ls='grc -es --colour=auto ls --color'这是两个都
ls
通过着色器运行命令的输出和试图让ls
命令为其输出着色。
基本问题是这些 Bourne Shell 别名的作者 (这是 2016 年 5 月来自 Oracle 的 Isaias Piña)不适合在 Linux 操作系统以外的任何操作系统上运行 Bourne Again shell,可能希望如果您使用 MacOS,您会使用 Oh My Zsh 之类的东西。另一个问题是作者不允许对grc
的输出进行着色ls
,而是期望ls
对自己的输出进行着色。
所以你有多种选择:
- 找到添加这些别名的位置并修复 Isaias Piña 的错误别名,以便在 MacOS 上
ls
使用该选项。-G
- 找到添加这些别名的位置并修复 Isaias Piña 的错误
ls
别名,使其不使用任何选项,而是依赖着色器的conf.ls
文件来完成其实际工作;正如汤姆·穆德所说。 - 找到添加这些别名的位置,并
ls
完全删除 Isaias Piña 的错误别名,改用CLICOLOR
环境变量进行着色;正如诺埃尔·B·阿隆索所做的那样。 - 找到添加这些别名的位置,并
ls
使用您自己的ls
别名完全删除 Isaias Piña 的错误别名;正如阿瑟·尼斯尼维奇所做的那样。 - 完全卸载通用着色器。
- 使用 Z 壳。
答案2
我刚刚将 iTerm2 更新到版本Build 3.0.14
并遇到了这个问题。 coreutils 的命令ls
不再在我的路径中。运行后:
brew install coreutils
打开一个新的外壳,问题就解决了。我的 ~/.bashrc 中有以下别名:
export LS_OPTS='--color=auto'
alias ls='ls ${LS_OPTS}'
答案3
macOS (Darwin)ls
不支持该--color
选项。您是否coreutils
从 homebrew、macports 或 pkgsrc 之类的东西安装了另一个副本,但这些副本现在已消失或在您的 中更改了顺序PATH
?
答案4
Homebrew更新到新版本的grc 1.10_1,这个问题已经解决。