此篇文章仅作为个人记录,是对多篇文章结果的集中,有需要的同学亦可参考。
个人借鉴链接:blog.csdn.net/songjinshi/article/details/8945809
blog.csdn.net/wxqee/article/details/49406597
www.cnblogs.com/Xylophone/p/5113543.html
http://blog.csdn.net/diy534/article/details/7025621
Mac下终端是我们常用的工具,不管是普通的Mac用户还是iOS开发者,都会使用到。默认终端配色是白底黑字或者黑底白字两种,当输出内容和命令行多了的时候,难免会造成视觉上的疲劳,也让寻找历史命令行变得困难了些,本篇文章针对这种情况对终端进行了一些适当的优化,效果如下:
可以看到,图一中命令提示符颜色有黄色和绿色,其中当前路径是黄色,便于区分。命令行和输出内容非文件夹文件是白色,文件夹是青色,这样是不是更好区分了呢?当然这本应该是一个简单的事情,步骤稍有些繁杂,对于不用终端的同学也没有帮助,但姑且写之。
先看一下默认状态下的效果:
接下来,简单设置一下终端的主题(姑且叫做主题)和透明度,打开终端->点击左上角终端->偏好设置->描述文件->点击Ocean效果,然后点击加减号右边的默认。操作如图3
透明度和颜色具体设置如图3,设置好后,退出终端再打开,就可以得到效果图4:
接下来区分输出内容中,非文件夹文件和文件夹颜色。
在终端中先键入 cd ~ 命令
然后键入 vim .bash_profile 命令,这个命令在.bash_profile文件存在时做出编辑,不存在时便创建这个文件。
编辑 .bash_profile 文件:内容如下:
export CLICOLOR=1
export LSCOLORS=gxfxaxdxcxegedabagacad
然后wq 保存退出,如图5
退出终端再进入后,浏览一个文件夹内具体内容便可看到输出内容中文件夹颜色变为了青色,如图6
代码 export CLICOLOR=1
export LSCOLORS=gxfxaxdxcxegedabagacad 解释如下:
1:CLICOLOR: 前景色和背景色的字符串合并值(我也不懂)
2:LSCOLORS: 对于不同变量所采用的颜色方案 ,等号后面的字母代表的颜色如下:
a black
b red
c green
d brown
e blue
f magenta
g cyan
h light grey
A bold black, usually shows up as dark grey
B bold red
C bold green
D bold brown, usually shows up as yellow
E bold blue
F bold magenta
G bold cyan
H bold light grey; looks like bright white
x default foreground or background
可以看到,LSCOLORS值一共有十一对字母,对应下面十一个文件类型,每一对字母第一个代表前景色,第二个代表背景色,结合起来设置某个文件类型输出时的颜色。
LSCOLORS值设置文件类型按顺序排列如下:
1. directory
2. symbolic link
3. socket
4. pipe
5. executable
6. block special
7. character special
8. executable with setuid bit set
9. executable with setgid bit set
10. directory writable to others, with sticky bit
11. directory writable to others, without sticky
第一个directory便是目录(其他类型可以去研究),在值gxfxaxdxcxegedabagacad中第一对是gx,g代表青色,x代表默认色,所以我们可以看到输出内容中,文件夹的颜色是青色的。
接下来修改命令提示符格式或者颜色:
再次按照上面的方法进入.bash_profile文件,在上面那部分代码后追加内容如下:
export TERM="xterm-color"
PS1='\[\e[0;32m\]\u\[\e[0;32m\]:\[\e[0;33m\]\W\[\e[0m\] \[\e[0;32m\]\h\[\e[0;33m\]\$\[\e[0m\] '
需要注意的是,PS1语句中有空格存在,根据个人喜好,我这里有必要的,如图7
wq退出重启终端,便可得到如下效果:
此部分代码粗解:
PS1='\[\e[0;32m\]\u\[\e[0;32m\]:\[\e[0;33m\]\W\[\e[0m\] \[\e[0;32m\]\h\[\e[0;33m\]\$\[\e[0m\] '这一句中看起来眼花缭乱。大致按结构可以拆成\[\e[0;32m\]和\u两种结构,然后被单引号包住。
----------------------------分割线----------------------------
\[\e[0;32m\] :这个涉及到Linux下bash和shell相关知识,参考文首链接。
"\e"或者另一种写法“\033”引导非常规字符序列。
“m”意味着设置属性然后结束非常规字符序列。
0 代表重新设置属性到缺省设置。
前景色颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
----------------------------分割线----------------------------
\u \W \h \$:这是命令行提示符格式,具体释义如下:
\u 显示当前用户的用户名(user name)。
\h 显示主机名(host name)。
\W 显示当前工作目录的名字(work directory)。
\$ 显示$符作为提示符,如果用户是root的话,则显示#号。
很简单,格式"\h:\W \u\$",代表的是:"主机名:目录 用户名$"
----------------------------分割线----------------------------
PS1='\[\e[0;32m\]\u\[\e[0;32m\]:\[\e[0;33m\]\W\[\e[0m\] \[\e[0;32m\]\h\[\e[0;33m\]\$\[\e[0m\] '
所以PS1语句中可以解读为:
(绿色)用户名(绿色):(黄色)当前目录 空格 (绿色)主机名(黄色)$ 空格 ,
如图:
最后一个[\e[0m\]是把命令行变为白色,不输入的命令内容也会跟$一样成黄色的了。
以上便是所有内容。谢谢查阅。