我是OS X的新手,在使用Ubuntu Linux一段时间后刚刚获得了Mac.在我想弄清楚的很多事情中,我的终端窗口中没有颜色 - 就像在运行时显示的那些(在Linux上)ls -la
或git status
......
我只是无法弄清楚如何在我的shell中激活颜色.
我知道,这个线程已经老了,但问题不是.
这是我发现的一种解决方案,可以启用全局 终端颜色.
编辑您的.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月)上验证.
您可以在一个启动脚本中使用基于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"
.
要进行测试,只需运行a 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
文件,您可以创建它,并且应该在登录时获取.
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\]\$ '
这是一个很棒的存储库,有一些很好的预设:
mbadolato在Github上的iTerm2配色方案
奖励:选择"使用系统范围的热键显示/隐藏iTerm2"并将键与BetterTouchTool绑定, 即时隐藏/用鼠标手势显示终端.
如果你想让你的ls着色你必须编辑你的〜/ .bash_profile文件并添加以下行(如果还没有写):
source .bashrc
然后编辑或创建〜/ .bashrc文件并为ls命令写一个别名:
alias ls="ls -G"
现在source .bashrc
,如果已经启动,您必须输入终端,或者只需打开一个新终端.
如果您想在更多选项中ls
阅读手册(man ls
).选项与GNU/Linux系统中的选项不完全相同.
如果使用的是tcsh,请编辑~/.cshrc
文件以包含以下行:
setenv CLICOLOR 1 setenv LSCOLORS dxfxcxdxbxegedabagacad
如Martin所说,LSCOLORS在其中指定要使用的配色方案。
要生成您要使用的LSCOLORS,请访问此网站