• 如何修改Bash Shell的提示符的格式和配色


    我们大多数使用的shell提示符,显示用户名、主机名和当前所在目录。在本文将会介绍如何定制一个自己喜欢的Bash。
    了解BASH

    shell的提示符是通过一个特殊的shell变量PS1来控制的。还有其他变量,比如PS2、PS3和PS4。Bash在准备读取命令时显示第一个提示符变量PS1

    当它需要更多的输入来完成一个命令时,它会显示第二个提示符变量PS2

    bash允许通过插入一些“反斜杠”转义的特殊字符来定制这些提示字符串。

    显示当前Bash提示符
    [root@localhost ~]# echo $PS1
    [u@h W]$
    

    每个被转义的特殊字符解释如下:

    • u: 显示当前用户
    • h: 显示主机名
    • W: 打印当前所在目录
    • $: 如果有效UID为0,则显示#(指的是root用户),否则显示$(指的是普通用户)
    修改Bash提示符

    如果想要使修改的shell提示否永久生效,可以把变量写在家目录下面的.bashrc文件里面。若要想全局生效,所有用户都生效,可以写在/etc/bash.bashrc或者/etc/bashrc配置文件里面。

    例如:在提示符中显示用户名、主机名、目录所在的绝对路径、显示24小时制当前时间,将命令保存到~/.bashrc文件中。:

    [root@localhost ~]# echo 'export PS1="[\u@\h \W \A]\$ "' >> ~/.bashrc
    [root@localhost ~]# source ~/.bashrc 
    [root@localhost ~ 11:28]# 
    

    如何修改Bash Shell的提示符的格式和配色如何修改Bash Shell的提示符的格式和配色
    以下是常用特殊字符:

    • u: 显示当前用户
    • w: 打印当前所在目录的绝对路径
    • W: 打印当前所在目录
    • h: 显示主机名
    • H: 显示完全合格域名
    • A: 显示当前时间24小时制
    • @: 显示当前时间12小时制
    • $: 如果有效UID为0,则显示#(指的是root用户),否则显示$(指的是普通用户)
    • j: 当前由shell管理的作业数量
    为Bash提示符添加配色

    一下是常用的配色,有修改字体颜色、修改为粗体、添加下划线、设置背景颜色等设置:

    'e[0;30m' # 黑色
    'e[0;31m' # 红色
    'e[0;32m' # 绿色
    'e[0;33m' # 黄色
    'e[0;34m' # 蓝色
    'e[0;35m' # 紫色
    'e[0;36m' # 青色
    'e[0;37m' # 白色
    'e[1;30m' # 黑色 粗体
    'e[1;31m' # 红色 粗体
    'e[1;32m' # 绿色 粗体
    'e[1;33m' # 黄色 粗体
    'e[1;34m' # 蓝色 粗体
    'e[1;35m' # 紫色 粗体
    'e[1;36m' # 青色 粗体
    'e[1;37m' # 白色 粗体
    'e[4;30m' # 黑色 下划线
    'e[4;31m' # 红色 下划线
    'e[4;32m' # 绿色 下划线
    'e[4;33m' # 黄色 下划线
    'e[4;34m' # 蓝色 下划线
    'e[4;35m' # 紫色 下划线
    'e[4;36m' # 青色 下划线
    'e[4;37m' # 白色 下划线
    'e[40m' # 黑色 背景
    'e[41m' # 红色 背景
    'e[42m' # 绿色 背景
    'e[43m' # 黄色 背景
    'e[44m' # 蓝色 背景
    'e[45m' # 紫色 背景
    'e[46m' # 青色 背景
    'e[47m' # 白色 背景
    ‘e[0m' # 重置为默认值
    

    下面是配色方案,可以把自己喜欢的添加到~/.bashrc文件里面,然后让他生效:

    [root@localhost ~ 15:49]# export PS1="e[0;30m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;31m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;32m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;33m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;34m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;35m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;36m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0;37m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  
    [root@localhost ~]#  export PS1="e[1;30m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;31m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;32m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;33m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;34m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;35m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;36m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[1;37m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  
    [root@localhost ~]#  export PS1="e[4;30m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;31m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;32m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;33m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;34m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;35m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;36m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[4;37m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  
    [root@localhost ~]#  export PS1="e[40m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[41m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[42m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[43m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[44m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[45m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[46m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[47m[\u@\h \W]\$ e[m "
    [root@localhost ~]#  export PS1="e[0m[\u@\h \W]\$ e[m "
    

    如何修改Bash Shell的提示符的格式和配色如何修改Bash Shell的提示符的格式和配色
    如果想要使提示符的每个部分显示的颜色不同,下面一个例子可以了解一下:

    [root@localhost log#] export PS1="e[35m[\ue[m@e[36m\h e[33m\W]e[1,33m\$e[m "
    

    命令解释:

    • "[e[35m[\u: 开头添加中括号"[",当前登录的用户部分使用紫色字体
    • e[m@: "@"符号不给配色,使用默认颜色
    • e[36m\h : 主机名称部分使用青色
    • e[33m\W]: 当前所在目录使用黄颜色,在其后面添加中括号"]"
    • e[1,33m\$e[m ": $符号加粗,使用黄颜色

    如何修改Bash Shell的提示符的格式和配色如何修改Bash Shell的提示符的格式和配色

    总结

    在本文介绍了如何定制一个自己喜欢的Bash Shell提示符,希望可以帮助大家。

  • 相关阅读:
    tuple元组
    list列表
    OS模块
    time模块/datetime模块/calendar模块
    Codeforces Round #196 (Div. 2)
    【HDU 2853】 KM算法
    【HDU1914 The Stable Marriage Problem】稳定婚姻问题
    【HDU4585 Shaolin】map的经典运用
    【HDU4578 Transformation】线段树
    【HDU4632 Palindrome subsequence】区间dp
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/14354824.html
Copyright © 2020-2023  润新知