Terminal该如何自定义提示详解

时间:2021-09-01 21:24:27

前言

当我们打开终端时,在输入命令的位置之前,会有一段字符,显示当前用户、主机名等信息。

有的同学可能使用zshell,它功能更丰富,并且可以选择主题。不同的主题前面那段字符是不一样的。比如我主题用的是ys,显示效果如下。从左至右依次是:# 用户名 @ 主机名 in 当前路径 (如果是git仓库,会显示当前分支,是否是clean状态) 当前时间

Terminal该如何自定义提示详解

Terminal该如何自定义提示详解

那么这些提示是如何进行设置的呢?今天刚好看到这篇文章,记录一下。

如何自定义

其实核心就一句。

?
1
export ps1="hello world "

后面跟上你想显示的字符串就可以。如果使用bash,将这句加上~/.bash_profile最后;如果是zshell,则加到~/.zshrc中,然后重启终端。

添加之后的效果如下:

Terminal该如何自定义提示详解

如果想要显示用户名,当前路径,可以这样设置,顺便加个$结尾,以便与敲入的命令分隔。

?
1
export ps1="hello $user `pwd` $ "

效果如图:

Terminal该如何自定义提示详解

设置颜色

从图1可以看出,zshell提示的颜色可谓是多种多样。那么颜色该如何设置呢。

google一下,发现要让shell的输出显示颜色,只需要带上颜色字符即可。

比如\033[0;31m代表红色。如果在终端中敲入:echo "begin \033[0;31m end" ,end会显示为红色,begin还是原本设置的原色,就简称为本色吧。效果如下:

Terminal该如何自定义提示详解

如果想让end后面的字符显示本色,在end后面跟上reset color,对应下表中的'\033[0m'。

Terminal该如何自定义提示详解

完整颜色表如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# reset
color_off='\033[0m'  # text reset
 
# regular colors
black='\033[0;30m'  # black
red='\033[0;31m'   # red
green='\033[0;32m'  # green
yellow='\033[0;33m'  # yellow
blue='\033[0;34m'   # blue
purple='\033[0;35m'  # purple
cyan='\033[0;36m'   # cyan
white='\033[0;37m'  # white
 
# bold
bblack='\033[1;30m'  # black
bred='\033[1;31m'   # red
bgreen='\033[1;32m'  # green
byellow='\033[1;33m'  # yellow
bblue='\033[1;34m'  # blue
bpurple='\033[1;35m'  # purple
bcyan='\033[1;36m'  # cyan
bwhite='\033[1;37m'  # white
 
# high intensity
iblack='\033[0;90m'  # black
ired='\033[0;91m'   # red
igreen='\033[0;92m'  # green
iyellow='\033[0;93m'  # yellow
iblue='\033[0;94m'  # blue
ipurple='\033[0;95m'  # purple
icyan='\033[0;96m'  # cyan
iwhite='\033[0;97m'  # white
 
# bold high intensity
biblack='\033[1;90m'  # black
bired='\033[1;91m'  # red
bigreen='\033[1;92m'  # green
biyellow='\033[1;93m'  # yellow
biblue='\033[1;94m'  # blue
bipurple='\033[1;95m'  # purple
bicyan='\033[1;96m'  # cyan
biwhite='\033[1;97m'  # white
 
# high intensity backgrounds
on_iblack='\033[0;100m' # black
on_ired='\033[0;101m'  # red
on_igreen='\033[0;102m' # green
on_iyellow='\033[0;103m' # yellow
on_iblue='\033[0;104m' # blue
on_ipurple='\033[0;105m' # purple
on_icyan='\033[0;106m' # cyan
on_iwhite='\033[0;107m' # white

同样可以在.bash_profile/~/.zshrc中设置提示的颜色。

如下让用户名为绿色,路径为红色:

?
1
export ps1="hello `echo '\033[0;32m'` $user `echo '\033[0;31m'` `pwd` $ "

效果如下:

Terminal该如何自定义提示详解

此时$也是红色的,若要设置成本色,可添加reset color。

另外,在这篇文章 中,提到了如何显示当前xcode版本,git分支,git status的实现,有兴趣可以看看。

参考链接:

hacking my shell prompt so i make fewer mistakes working with xcode projects

how to change the output color of echo in linux

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://www.jianshu.com/p/046cc0e219c0