如何将 Mac 终端配置为具有 color ls 输出?
Posted
技术标签:
【中文标题】如何将 Mac 终端配置为具有 color ls 输出?【英文标题】:How can I configure Mac Terminal to have color ls output? 【发布时间】:2010-11-01 17:08:13 【问题描述】:如何将 Mac 终端配置为具有彩色 ls 输出? 我正在使用 MacOS 10.5
【问题讨论】:
这是一个很好的问题...我一直期望 ls --color (a la gnu ls) 可以在任何地方工作。 MacOS 不接受 --color,所以我认为它根本没有彩色输出选项。 cyberciti.biz/faq/apple-mac-osx-terminal-color-ls-output-option 【参考方案1】:编辑:
~/.bash_profile
或
~/.profile
并添加以下行以简单地通过ls
启用颜色输出:
export CLICOLOR=1
要自定义ls
显示的颜色,您可以选择添加此变量LSCOLORS
。
示例
默认
export LSCOLORS=ExFxCxDxBxegedabagacad
如果您使用的是黑色背景
,则可以使用它export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
如果您想模仿典型 Linux 终端的颜色:
export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
将上述内容添加到 ~/.bash_profile
或 ~/.profile
后,您可以注销/登录或在 shell 中获取文件,例如:
$ . ~/.bash_profile
注意:如果您在选择要使用的颜色方面需要帮助,可以使用这个名为 LSCOLORS Generator 的在线工具。
【讨论】:
有没有办法让彩色文本看起来不粗体? @JamieCook 我发现 Mikulas 的颜色与 linux 更一致。具体来说,损坏的符号链接应该是深红色。用你的 lscolors 它的蓝色......这不是一个小问题。 不适用于 mac sierra 及更高版本 @RayFoss 确实,这不是一个小问题,但默认情况下 OS X 无法区分有效和损坏的符号链接。唯一可行的替代方案是use gnu ls @StevieG 在 High Sierra 上为我工作。确保设置正确:echo $CLICOLOR
应该给 1?【参考方案2】:
你可以添加
alias ls='ls -G'
到您的~/.bash_profile
以获取彩色ls
输出。
【讨论】:
我的是别名 ls="ls -Gp" - -p 在每个目录后添加一个斜杠。对我来说,它提供了更多的视觉差异,这很有帮助。 我看到你的-p
并给你提了一个-F
,它还在可执行文件后面加上*
,在管道后面加上|
,在符号链接后面加上@
,等等。
只是为了好玩,加入 -h,它将以“人类可读”单位格式化大小,即 100b 10k、23m、4.2g
如果您在 ~/.bash_profile 中还没有 .bash_profile,请务必获取它,以便它可以工作。使用“source ~/.bash_profile”
不知道自 2011 年以来这是否发生了变化,但您可以用 export CLICOLOR=1
替换别名来完成同样的事情。【参考方案3】:
我发现我真正需要的只是将其添加到我的 ~/.bash_profile
或 ~/.bashrc
(对于 Bash)或 ~/.zshrc
(对于 Zsh,Catalina 中的新默认 shell)
export CLICOLOR=1
【讨论】:
或~/.bashrc
。
似乎不适用于 capitan ):
对我来说就像 El Captian 的老板一样工作,感谢您发帖 @Filype
您必须:1. 关闭终端并重新打开,2. 资源配置文件:. ~/.bash_profile
,或 3. 注销/登录【参考方案4】:
如果你想要一个可读的 Mac OS X 终端配色方案,你可能想看看这个:
我已经使用了一年多了,没有它我可能无法正常工作!
这是一个更新的链接:
https://github.com/justincase/IR_Black-OSX【讨论】:
从 Mac OS X Lion 10.7 开始,终端允许自定义 ANSI 颜色,因此不再需要使用 SIMBL 或其他扩展。它还支持256色。【参考方案5】:您还可以通过添加以下内容来自定义提示颜色(及其格式):
PS1='\[\e[0;33m\]\h:\W \u\$\[\e[m\] '
到~/.bash_profile
或~/.profile
文件。 0;33
是常规黄色,在我的黑色/半透明终端窗口中看起来不错。
这里是颜色的完整列表及其解释:https://wiki.archlinux.org/index.php/Color_Bash_Prompt
【讨论】:
【参考方案6】:就个人而言,我使用Oh My Zsh 为我的终端添加颜色和其他技巧。我认为这是最简单的方法。
oh-my-zsh 是一个开源、社区驱动的管理框架 你的 Zsh 配置。
它捆绑了大量有用的功能、帮助程序、插件, 主题,以及一些让你大喊大叫的东西……
【讨论】:
这是美丽的色彩主题。我可以在我的 bash 上使用这个颜色主题吗? 嗯,你应该看看oh-my-bash
派对迟到了……但你是否记得你的截图中使用的是什么主题?
@EricHarlan 你得到了所有的主题github.com/ohmyzsh/ohmyzsh/wiki/Themes【参考方案7】:
另一个选择是使用 GNU ls
,它是“coreutils”程序的一部分。
您可以通过Rudix 或 Homebrew (brew info coreutils
) 或 Macports 或 Fink 获得它。如果您在不同系统上使用相同的 shell 配置文件,或者已经熟悉 GNU ls,那么这可能比使用“仅限 Mac OS X”的解决方案更可取。
【讨论】:
github.com/gibbling/dircolors【参考方案8】:更新:一年前我切换到Oh my zsh,这太棒了。我最喜欢的主题是它的lambda-mod 和my version。 在这里结合所有答案就是我使用的:
COLOR_RED="\033[0;31m"
COLOR_YELLOW="\033[0;33m"
COLOR_GREEN="\033[0;32m"
COLOR_OCHRE="\033[38;5;95m"
COLOR_BLUE="\033[0;34m"
COLOR_WHITE="\033[0;37m"
COLOR_RESET="\033[0m"
#git_color
function git_color
local git_status="$(git status 2> /dev/null)"
if [[ ! $git_status =~ "working directory clean" ]]; then
echo -e $COLOR_RED
elif [[ $git_status =~ "Your branch is ahead of" ]]; then
echo -e $COLOR_YELLOW
elif [[ $git_status =~ "nothing to commit" ]]; then
echo -e $COLOR_GREEN
else
echo -e $COLOR_OCHRE
fi
#git_branch
function git_branch
local git_status="$(git status 2> /dev/null)"
local on_branch="On branch ([^$IFS]*)"
local on_commit="HEAD detached at ([^$IFS]*)"
if [[ $git_status =~ $on_branch ]]; then
local branch=$BASH_REMATCH[1]
echo "($branch)"
elif [[ $git_status =~ $on_commit ]]; then
local commit=$BASH_REMATCH[1]
echo "($commit)"
fi
PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]'
PS1+="\[\$(git_color)\]" # colors git status
PS1+="\$(git_branch)" # prints current branch
PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ "
export PS1
export LC_ALL=en_US.UTF-8
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
alias ls="ls -Gp"
【讨论】:
【参考方案9】:只需将以下行添加到~/.bash_profile
文件:
export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "
预览:
这是我喜欢的颜色。您可以通过更改作为 ANSI 颜色代码的 m
代码(例如 34m
)来自定义提示颜色的每个部分。
ANSI 颜色代码列表:
黑色:30m 红色:31m 绿色:32m 黄色:33m 蓝色:34m 紫色:35m 青色:36m 白色:37m【讨论】:
【参考方案10】:为了天哪,忘记所有那些几十年前的神秘代码,使用内置终端 --> 首选项...设置窗格来设置默认皮肤,并根据自己的喜好编辑 ANSI 颜色。您也可以设置字体。我更喜欢 Menlo 12pt。这就是任何普通 Joe 都可以做到的方式,并避免像其他海报所建议的那样使用所有疯狂的命令行、unix 式的做事方式。
【讨论】:
我认为任何有足够经验的人甚至知道ls
可以有彩色输出也能够运行一些 Unix 命令来正确配置它。
但这只是让 ls 以一种颜色显示它不会像 ls 那样使链接、目录、文件以不同的颜色显示【参考方案11】:
Catalina版本需要在~/.zshrc
中添加export CLICOLOR=1
。
如果要调整调色板,请在终端设置中更改颜色主题。
【讨论】:
这是 Catalina with zsh 的最新答案。以上是关于如何将 Mac 终端配置为具有 color ls 输出?的主要内容,如果未能解决你的问题,请参考以下文章
Mac终端获取文件权限(ls -l或ls -al)、修改文件权限、权限中每个字符的含义