美文网首页
Linux终端提示符PS1设置

Linux终端提示符PS1设置

作者: 春风花草 | 来源:发表于2022-06-04 18:39 被阅读0次

    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
    

    有人会想这样显示会有什么好处:

    1. 通过该终端提示符,可以很清楚的知道打开该终端的用户、主机地址和工作目录
    2. 如果用过scp命令,会不会觉得跟它的格式一模一样,方便复制

    更进一步的,会不会还有PS2、PS3呢?

    关于linux的PS2、PS3、PS4可以参考linux下PS1、PS2、PS3、PS4最全详解

    相关文章

      网友评论

          本文标题:Linux终端提示符PS1设置

          本文链接:https://www.haomeiwen.com/subject/pjtrurtx.html