利用Shell中变量PS1定制Linux Shell命令提示符
PS(Prompt Sign): 是指命令提示符。
PS1:主提示符(PS2:辅提示符)
默认情况下Terminal中的shell提示包括了用户名、主机名、当前目录(绝对路径)和提示符。即PS1显示[u@h W]$。
解释:
u 当前登录用户名,如上图root
h 当前计算机名称,如上图kingdom
W 当前目录的basename,如~(家目录)
$ 一般用户,#表示root用户
修改提示符的两种方式:
(1) 当前生效
使用方法:
PS1='自定义内容'
注意:两边的单引号
案例:
PS1='(u@H d )$'
u 当前登录用户名,如上图root
H 完整主机名
d :代表日期
:显示时间为24小时格式
$ 一般用户,#表示root用户
如下图所示:
[root@kingdom ~]# PS1='(u@H d )$'
(root@kingdom Tue Mar 19 13:58:56)#
注意这里修改仅仅当前生效。
如下图,新开一个终端还是原来的模样。
(2)永久生效
添加PS1到用户根目录下的.bash_profile或者.bashrc文件永久生效。
切换到常用的odysee用户
修改.bash_profile文件
vim .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#以下是设定的PS1的值
PS1='[u@H d ]$'
#使用export把PS1输出,以使它可以在子shell中生效
export PS1
PATH=$PATH:$HOME/bin
export PATH
~
使.bash_profile生效
source .bash_profile
如下图,生效成功
补充:
默认的特殊符号所代表的意义:
d :代表日期,格式为weekday month date。
H :完整的主机名称。
h :仅取主机的第一个名字。
:显示时间为24小时格式。
T :显示时间为12小时格式。
u :当前用户的账号名称。
v :BASH的版本信息。
w :完整的工作目录名称。
W :利用basename取得工作目录名称,所以只会列出最后一个目录。
# :下达的第几个命令。
$ :提示字符
如果是root时,提示符为#,普通用户则为$。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持