【问题标题】:OS X Terminal Colors [closed]OS X 终端颜色 [关闭]
【发布时间】:2010-12-05 17:41:17
【问题描述】:

我是 OS X 的新手,在使用 Ubuntu Linux 一段时间后刚刚获得了 Mac。在我试图弄清楚的许多事情中,我的终端窗口中没有颜色 - 就像在运行 ls -lagit status 时显示的(在 Linux 上)......

我只是不知道如何在我的外壳中激活颜色。

【问题讨论】:

  • 关闭为“离题”,但看看标签:osx、shell、终端、颜色……在我看来,这完全是题外话。涵盖 OSX,它是关于外壳的,使用终端并想要添加颜色。必须编辑 bash 配置文件,所以是的,我会说这是主题。
  • 很明显,它是关于 bash 脚本的。
  • 关门了,开个玩笑吧!显然,这对许多(大部分是新的)Mac 编码器具有实用性和价值。如果那些关闭是认真的它是题外话,那么为什么不迁移它说 SE Think Different。我认为它支持其他 SE 组中使用的功能。

标签: macos shell terminal colors


【解决方案1】:

您可以在其中一个启动脚本中使用基于 Linux 的语法。刚刚在 OS X Mountain Lion 机器上进行了测试。

例如。在你的~/.bash_profile

export TERM="xterm-color" 
export PS1='\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

这会给你一个漂亮的彩色提示。要添加彩色的ls 输出,您可以添加alias ls="ls -G"

要进行测试,只需运行 source ~/.bash_profile 即可更新您当前的终端。

关于颜色的附注: 颜色前面有一个转义序列\e 并由一个颜色值定义,由[style;color+m] 组成并包裹在一个转义的[] 序列中。 例如。

  • 红色 = \[\e[0;31m\]
  • 大胆的红色(样式1)=\[\e[1;31m\]
  • 清晰着色 = \[\e[0m\]

我总是在 root 的 .bash_profile 中添加稍微修改的颜色方案,以使用户名变为红色,因此如果我以 root 身份登录,我总是能清楚地看到(如果我打开了许多终端窗口,可以方便地避免错误)。

/root/.bash_profile:

PS1='\[\e[0;31m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

对于我所有的 SSH 在线帐户,我确保将主机名标为红色,以区分我是在本地终端还是远程终端。只需在服务器上的主目录中编辑.bash_profile 文件。如果服务器上没有.bash_profile 文件,您可以创建它,它应该在登录时获取。

如果这对您来说没有按预期工作,请阅读下面的一些 cmets,因为我不经常使用 MacOS..

如果您想在远程服务器上执行此操作,请检查 ~/.bash_profile 文件是否存在。如果没有,只需创建它,它应该会在您下次登录时自动获取。

【讨论】:

  • 如何在线编辑 ssh 帐户的 bash_profile?
  • 我更喜欢PS1 使用$PWD 而不是\u,例如:PS1=\[\e[0;31m\]$PWD\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$
  • 这里是提示代码的更多解释:wiki.archlinux.org/index.php/Color_Bash_Prompt#Step_by_step
  • 这些链接也可能有帮助:ANSI color code escape sequencesMore on PS1 codes.
  • 我在使用这些颜色代码在 El Capitan (OS X 10.11) 中正确显示 PROMPT_COMMAND 颜色时遇到问题。事实证明,当在PROMPT_COMMAND 中使用时,您需要使用\033 语法而不是\e。在提示之前添加彩色时间戳的示例(将其包含在您的 ~/.bashrc~/.bash_profile 中):PROMPT_COMMAND="${PROMPT_COMMAND}; echo; echo -e '\033[0;35m'\[\$(date +%F\ %T)\]'\033[m'"
【解决方案2】:

如果您使用的是 tcsh,请编辑您的 ~/.cshrc 文件以包含以下行:

setenv CLICOLOR 1
setenv LSCOLORS dxfxcxdxbxegedabagacad

正如 Martin 所说,LSCOLORS 指定了您要使用的配色方案。

要生成您要使用的 LSCOLORS,请查看此site

【讨论】:

  • bash 自 2003 年 10 月以来一直是 OS X 的默认设置。
  • 我认为你是对的。我刚买了一台新的 Mac,它默认使用 bash。我猜 IT 一直在设置我的 mac 在工作时默认使用 tcsh。
  • 链接太棒了!
【解决方案3】:

这是我找到的启用全局的解决方案 terminal colors.

在您的主目录中编辑您的.bash_profile(从 OS X 10.8 起)或(对于 10.7 及更早版本):.profile.bashrc/etc/profile(取决于可用性)并添加以下代码:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

CLICOLOR=1 只是启用终端着色。

LSCOLORS=... 指定如何为特定项目着色。

编辑.bash_profile后,启动终端并通过执行强制更改发生:

source ~/.bash_profile

然后转到Terminal > Preferences,单击Profiles 选项卡,然后单击Text 子选项卡并检查Display ANSI Colors

在 Sierra 上验证(2017 年 5 月)。

【讨论】:

  • 只是通过将它添加到 .bash_profile 来做到这一点并且它可以工作。当我将它添加到 .profile 时没有工作。谢谢!
  • 我刚刚编辑了我的/etc/profile,它就像一个魅力。
  • 致 @Morten 和任何其他在 bash 配置文件中苦苦挣扎的人,请参阅以下答案以获得解释和解决方案:stackoverflow.com/a/7780055/665488superuser.com/a/244990
  • dotfiles/.aliases 有一个很棒的export LS_COLORS 声明
  • 如果你想要 Linux 使用的相同颜色(至少 Debian 和 Ubuntu),请使用 LSCOLORS=ExGxFxdxCxDxDxxbaDecac
【解决方案4】:

MartinVonMartinsgrün 和 4Levels 方法证实在 Mac OS X Mountain Lion 上运行良好。

我需要更新的文件是 ~/.profile。

但是,如果不推荐我最喜欢的应用程序iTerm 2,我就不能离开这个问题。

iTerm 2 允许您从文件加载全局颜色方案。真的很容易试验和尝试一堆配色方案。

这是 iTerm 2 窗口和颜色首选项的屏幕截图。

一旦我将以下内容添加到我的 ~/.profile 文件中,iTerm 2 就能够覆盖颜色。

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

这是一个很棒的存储库,里面有一些不错的预设:

iTerm2 Color Schemes on Github by mbadolato

奖励:选择“使用系统范围的热键显示/隐藏 iTerm2”并将键与BetterTouchTool 绑定 使用鼠标手势即时隐藏/显示终端。

【讨论】:

  • iTerm2 在我的系统上经常崩溃,所以我切换到 oh-my-zsh github.com/robbyrussell/oh-my-zsh。还有可用的主题
  • 嘿!请将baskerville 链接更改为正确的链接。似乎是错误的复制粘贴。
  • @NickWoodhams,您在屏幕截图中使用的颜色主题是什么?
  • @IndradhanushGupta 不知道那是什么配色方案,那是不久前的事了。但现在我正在使用 Pure ZSH 主题并喜欢它。 github.com/sindresorhus/pure
  • 这是一个不错的配色方案,我需要检查项目类型 //dirs 等
【解决方案5】:

当我在实验室中使用 Mac OS X 时,我能够通过使用终端(而不是 X11)获得终端颜色,然后编辑配置文件(从 Mac 菜单栏)。界面颜色有点奇怪,但你必须将修改后的主题设置为默认。

通过编辑.bashrc进行更多设置。

【讨论】:

    【解决方案6】:

    如果你想让你的 ls 着色,你必须编辑你的 ~/.bash_profile 文件并添加以下行(如果尚未编写):

    source .bashrc
    

    然后你编辑或创建 ~/.bashrc 文件并将别名写入 ls 命令:

    alias ls="ls -G"
    

    如果已经启动,现在您必须在终端中输入source .bashrc,或者直接打开一个新终端。

    如果您想在 ls 中获得更多选项,请阅读手册 (man ls)。选项与 GNU/Linux 系统中的选项并不完全相同。

    【讨论】:

    • 一个更好的选择是用 'export CLICOLOR=" "' 替换 'alias' 定义。这样做的好处是即使您在终端会话期间切换 shell,通常也可以继续工作(只要环境变量是继承的 - 别名不是)。
    【解决方案7】:

    检查 $TERM 给出的内容:我的是 xterm-color 和 ls -alG 然后进行彩色输出。

    【讨论】:

    • 好吧,在 capitan 和 xterm-256color 上,我没有颜色。 CLICOLORLSCOLORS 不要改变它):
    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2016-11-09
    • 2013-06-04
    • 1970-01-01
    • 2015-04-25
    • 2014-01-12
    相关资源
    最近更新 更多