如何配置Mac Terminal具有彩色ls输出?


Answers:


370

编辑:

~/.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的在线工具。


有没有办法使彩色文本看起来不粗体?
MemphiZ 2014年

1
@JamieCook我发现Mikulas的颜色更符合Linux。具体来说,断开的符号链接应为深红色。使用您的lscolors它的蓝色...这不是一个小问题。
雷·福斯

1
在mac sierra及更高版本上不起作用
Stevie G

1
@RayFoss确实是一个小问题,但是默认情况下OS X无法在有效和断开的符号链接之间产生区别。唯一可行的选择是使用gnu ls
CiprianTomoiagă18年

2
@StevieG在High Sierra上为我工作。确保设置正确:echo $CLICOLOR应该给1吗?
富兰克林·于

192

你可以加

alias ls='ls -G'

给你~/.bash_profile彩色ls输出。


41
我的别名是ls =“ ls -Gp”--p在每个目录后添加一个斜杠。对我来说,它提供了更多的视觉差异,这很有帮助。
奎因·泰勒

39
我看到了您-p并提出了您的建议-F,另外*在可执行文件|之后,管道@之后,符号链接之后等等。

25
只是为了好玩,请输入-h,该格式将以“人类可读”单位格式化大小,即100b 10k,23m,4.2g
Armentage

3
如果〜/ .bash_profile上还没有.bash_profile,请确保将其来源,以便可以使用。使用“
source〜

2
Dunno(如果自2011年以来发生了变化),但是您可以使用别名替换export CLICOLOR=1以完成相同的操作。
戴维·洛德

25

我发现我真正需要的就是将其添加到我的 ~/.bash_profile

export CLICOLOR=1

或者~/.bashrc
克里斯·佩奇

似乎不适用于capitan):
drevicko

1
工作就像在El上尉好一个老板给我,感谢张贴@Filype
fusion27

您必须:1.关闭终端并重新打开,2.为配置文件提供资源:. ~/.bash_profile或3.注销/登录
slm

13

如果您希望使用可读的Mac OS X终端配色方案,则可能需要研究以下内容:

我已经使用了一年多了,如果没有它,我可能无法运行!

这是更新的链接:


6
从Mac OS X Lion 10.7开始,终端允许自定义ANSI颜色,因此不再需要使用SIMBL或其他扩展名。它还支持256色。
克里斯·佩奇

12

您还可以通过添加以下内容来自定义提示色(及其格式):

PS1='\[\e[0;33m\]\h:\W \u\$\[\e[m\] '

~/.bash_profile~/.profile归档。0;33普通黄色在哪里,在我的黑色/半透明终端窗口中看起来不错。

这里是颜色及其说明的完整列表:https : //wiki.archlinux.org/index.php/Color_Bash_Prompt

我很棒的终端窗口


8

另一种选择是使用GNU ls,它是'coreutils'程序的一部分。

您可以通过Rudix或Homebrew(brew info coreutils)或Macports或Fink 获得它。如果您在不同的系统上使用相同的Shell配置文件,或者已经熟悉GNU ls,那么与使用“仅Mac OS X”解决方案相比可能更可取。



7

就个人而言,我使用Oh My Zsh向终端添加颜色和其他技巧。我认为这是最简单的方法。

oh-my-zsh是用于管理Zsh配置的开源,社区驱动的框架。

它捆绑了许多有用的功能,助手,插件,主题以及一些让您大喊大叫的东西……

在此处输入图片说明


4

只需将以下行添加到~/.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

4

结合所有答案,这就是我所使用的:

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"

在此处输入图片说明


3

忘掉所有那些数十年的密码,使用内置的Terminal-> Preferences ... Settings窗格设置默认外观,并根据自己的喜好编辑ANSI颜色。您也可以设置字体。我更喜欢Menlo 12pt。这是任何普通的Joe都能做到的,并且避免了其他海报所建议的所有疯狂的命令行,Unix风格的做事方式。


12
我认为任何有经验的人甚至什至知道ls可以显示彩色的输出,也可以运行一些Unix命令来正确配置它。
nohillside

7
但是,这只会使ls以一种颜色显示,而不会使链接,目录,文件以ls可以显示为不同的颜色
Mark
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.