|
启动 Linux 桌面环境自带的终端模拟包,或者从 Linux 控制台登录后,便可以看到 Shell 命令提示符。看见命令提示符就意味着可以输入命令了。命令提示符不是命令的一部分,它只是起到一个提示作用。不同的 Linux 发行版使用的提示符格式大同小异。 shell的提示符是通过一个特殊的shell变量PS1来控制的。还有其他变量,比如PS2、PS3和PS4。Bash在准备读取命令时显示第一个提示符变量PS1。 . f$ v' {. X7 u/ w
& o, W; d) j& [0 ^( Q) J
; ^6 B1 N) ] G8 U0 j7 D
# r! {8 a- L, f; |; H/ y
显示当前Bash提示符 : h% C: a5 Z' ^6 p
" c( |. |! O4 V3 q( r k3 e- 2 x& w3 s3 Y6 P0 y6 S0 B) M L
- [root@localhost ~]# echo $PS1
3 I3 [" d, v2 @) ]+ p G% c - [\u@\h \W]\$
复制代码
9 V" M! o& \: A1 s. E+ _+ s执行命名之后,输出的各种转义的符号,每个被转义的字符含义如下: - \u: 显示当前用户
- \h: 显示主机名
- \W: 打印当前所在目录
- $: 如果当前用户是root用户,显示#,否则显示$
9 J R9 ?* b* p; \* }' X& }) {& v# d8 f3 o$ T6 ?, T5 w, c
& z* ^. f$ {) X0 O9 i) [
9 C% Z: {3 X: w5 k& r
6 ~0 X4 T3 x$ v$ N/ ]% O: V$ H, ?修改Bash提示符
$ ]! o# q* c: k. J# H
+ q$ S: n& a2 X& B1 H/ B比如我想在提示符中显示用户名、主机名、目录所在的绝对路径、显示24小时制当前时间,可以运行如下命令: - 0 s) r6 h4 T1 b3 n/ Z
- $ echo 'export PS1="[\\u@\\h \\W \\A]\\$ "' >> ~/.bashrc, o: G& m% P' k& I8 y1 ^
- $ source ~/.bashrc
复制代码! C1 ~9 V7 t! X g; b: M
执行完成之后,可以看到我命令提示增加了时间显示,如下图:
image在上述命令中,控制时间显示的参数如下: - \A: 显示当前时间24小时制
- @: 显示当前时间12小时制
7 M5 k2 ?( }3 }
如果想要使修改的shell提示永久生效,可以把变量写在家目录下面的.bashrc文件里面。若要想全局生效,所有用户都生效,可以写在/etc/bash.bashrc或者/etc/bashrc配置文件里面。 8 c; c7 A) S8 Y
1 S6 X$ y' q2 G5 |; Y* z0 u/ h
" R3 C) t. l0 x$ z- M: X8 z
4 H( J' Q! t0 q4 {8 {
为Bash提示符添加配色 ) N" q% i' d. m: O
9 f! y8 Q7 ^9 Y3 {1 H3 g* [
Bash提示符有很多配色,我们先一睹为快:
image如上图我分别执行了黑色、红色、黄色、白色的配色,执行红色的命令是: - ; [& A+ N; e% u+ b2 \; x8 f" p
- export PS1="\e[0;31m[\\u@\\h \\W]\\$ \e[m "
复制代码
+ W4 b1 k: u# @* @0 ~
更多的配色方案如下:
- D- ~, x3 Q* Q- v6 P0 X2 {6 D- '\e[0;30m' # 黑色
1 T5 R$ G! E! L; C - '\e[0;31m' # 红色
. k) d J. k7 o - '\e[0;32m' # 绿色
: X( ^! k/ W# ]% O3 y7 S: k. n) E/ | - '\e[0;33m' # 黄色) I& u7 D4 ?; N; | L s: O `
- '\e[0;34m' # 蓝色
( T* K: |' K9 i2 n+ ?7 R" V - '\e[0;35m' # 紫色
5 w1 ~+ O. f9 e$ `3 z - '\e[0;36m' # 青色9 v( [3 y" Q9 T) t3 [$ G% N9 b0 ]/ [
- '\e[0;37m' # 白色
8 n1 r( T) F) w( ? - '\e[1;30m' # 黑色 粗体& I$ Z* E4 [* k" N4 c3 ^# Y
- '\e[1;31m' # 红色 粗体. F5 h6 A! U7 W
- '\e[1;32m' # 绿色 粗体
5 G, i1 P: z! D3 h& V) D; L - '\e[1;33m' # 黄色 粗体8 p9 u/ {" J6 f
- '\e[1;34m' # 蓝色 粗体+ ]0 K' B* W8 R. }8 {4 {
- '\e[1;35m' # 紫色 粗体
. v4 r/ m% T7 @7 I* K% @6 ?# [7 U - '\e[1;36m' # 青色 粗体
/ O# f3 m$ H+ R - '\e[1;37m' # 白色 粗体( o% b" W8 b& m& D
- '\e[4;30m' # 黑色 下划线7 g. U3 r+ \: H8 Y0 ^
- '\e[4;31m' # 红色 下划线
$ [) X$ t4 b' d: w4 k$ s - '\e[4;32m' # 绿色 下划线8 V _" D1 f: f! M8 b! Z$ b4 e
- '\e[4;33m' # 黄色 下划线) i' W- x* V. d3 b: _
- '\e[4;34m' # 蓝色 下划线 R! ?4 B/ r3 ]: _, ^* G% `' d; X
- '\e[4;35m' # 紫色 下划线
8 G; D9 v) ^* k: @; E7 r - '\e[4;36m' # 青色 下划线- j4 n. Q5 k* ?
- '\e[4;37m' # 白色 下划线6 |0 {- h) D3 H! r7 k/ W
- '\e[40m' # 黑色 背景
! }% G- q. x( M9 G( h - '\e[41m' # 红色 背景) g5 w K+ y3 z: [4 f
- '\e[42m' # 绿色 背景( m2 l5 Q2 ^2 `8 U
- '\e[43m' # 黄色 背景
$ v6 e6 e2 G$ G- `$ ^) h$ ] - '\e[44m' # 蓝色 背景# M3 T+ v6 `+ A/ @
- '\e[45m' # 紫色 背景
" w/ ~5 T B* v+ }4 F- H6 [" \ - '\e[46m' # 青色 背景# o; {) H! ^ _
- '\e[47m' # 白色 背景, J% k; l D; k0 C4 [5 ^
- '\e[0m' # 重置为默认值
复制代码
3 Y5 |. U e; K* ]- f
如果想为提示符的每个部分显示的颜色不同,该如何使用呢?比如要让当前用户名、主机、目录显示的颜色都不一样:
& [& V! S+ w7 P1 {- export PS1="\e[31m[\\u\e[m@\e[35m\\h \e[32m\\W]\e[1;33m\\$\e[m "
复制代码
8 _; ?: q- p4 n( r
image- \e[31m[\u: 当前登录的用户使用红色字体
- \e[m@: "@"符号不给配色,使用默认颜色
- \e[35m\h : 主机名称使用紫色
- \e[32m\W]: 当前所在目录使用绿色,在其后面添加中括号"]"
- \e[1;33m\$\e[m ": $符号加粗,使用黄颜色0 P1 M& G# v8 k5 i" s3 E- z
大家可以用上述方法来定制自己喜欢的颜色。
- V/ I1 Q* M; u |