linux终端提示符默认如下显示效果
[root@localhost cc51a85cd8e1a61f8b2f8955c5593849e7264bcf58f874b0cbf6e852d71638ee]#
这里主要想在终端提示这里看到登录用户、服务器ip和绝对路径,如下显示:
root@xxx.xxx.xxx.xxx:/var/lib/docker/containers$
这里主要通过PS1变量来进行设置
PS1:linux终端提示符,linux的内置变量
ps1默认为[\u@\h \W]\$
各提示符的含义如下:
\d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :#完整的主机名称。
\h :#仅取主机的第一个名字。
\t :#显示时间为24小时格式,如:HH:MM:SS
\T :#显示时间为12小时格式
\A :#显示时间为24小时格式:HH:MM
\u :#当前用户的账号名称
\v :#BASH的版本信息
\w :#完整的工作目录名称。家目录会以 ~代替
\W :#利用basename取得工作目录名称,所以只会列出最后一个目录
\# :#下达的第几个命令
\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$
由此可知,默认显示当前用户、主机的第一个名字、当前工作目录
可以将PS1修改为如下:
export PS1="\[\e[33;1m\]\u\[\e[31;1m\]@\[\e[33;1m\]\H:\[\e[36;1m\]\w\[\e[34;1m\]\$ \[\e[0m\]"
上面还包含提示符颜色的设置,具体可以参考PS1设置
如果想PS1的设置永久有效,可以在/etc/profile或.bashrc文件里进行设置,然后打开一个新的终端就会看到新设置的提示符生效了。
但是这里可能会发现,主机名显示的不是ip,显示如下:
root@localhost.localdomain:/var/lib/docker/containers$
原因是这里的hostname不是ip
root@localhost.localdomain:/var/lib/docker/containers$ hostname
localhost.localdomain
因为需要修改hostname,提供一个快速永久修改hostname的方法
root@localhost.localdomain:/var/lib/docker/containers$ hostnamectl set-hostname 172.16.81.97
root@localhost.localdomain:/var/lib/docker/containers$ hostname
172.16.81.97
这时hostname就改成主机的ip了,
重新打开终端后就变成了想要的终端提示符
root@172.16.81.97:/var/lib/docker/containers
有人会想这样显示会有什么好处:
- 通过该终端提示符,可以很清楚的知道打开该终端的用户、主机地址和工作目录
- 如果用过scp命令,会不会觉得跟它的格式一模一样,方便复制
更进一步的,会不会还有PS2、PS3呢?
关于linux的PS2、PS3、PS4可以参考linux下PS1、PS2、PS3、PS4最全详解
网友评论