zoukankan      html  css  js  c++  java
  • 【Linux下自定义Shell终端提示符】

    "@

    Linux系统终端提示符的特征由系统环境变量 PS1(Prompt String One)定义。

    我们可以通过命令echo $PS1来查看当前设置,如下图:
    在这里插入图片描述
    同样,我们可以通过修改PS1的值来改变终端提示信息:
    在这里插入图片描述
    但这只是临时的修改了,当我们打开新的终端窗口时,提示符又恢复到默认的了。
    .
    如果希望修改永久生效,我们可以通过更改~/.bashrc文件,如下图:
    在这里插入图片描述
    保存退出后在终端执行. .bashrc刷新,便可看到永久版的终端提示符。
    好了,打开新的终端窗去看看吧。


    基本转义符

    Shells提示符中用到的转义字符

    序列 显示值
    a 以ASCII格式编码的铃声,当遇到这个转移序列时,计算机会发出嗡嗡的响声
    d 以日,月,天格式来表示当前日期。例如,"Mon May 26"
    h 本地机的主机名,但不带末尾的域名
    H 完整的主机名
    j 运行在当前shell会话中的工作数
    l 当前终端设备名
    一个换行符
    一个回车符
    s shell程序名
    以24小时制,hours:minutes:seconds的格式表示当前时间
    T 以12小时制表示当前时间
    @ 以12小时制,AM/PM格式来表示当前时间,例如"10:51 PM"
    A 以24小时制,hours:minutes 格式表示当前时间
    u 当前用户名
    v shell 程序的版本号,例如4.3
    V shell 程序的详细版本号,例如4.3.11
    w 当前工作目录名
    W 当前工作目录名的最后部分
    ! 当前命令的历史号
    # 当前 shell 会话中的命令数
    $ 这会显示一个"$"字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个"#"字符
    [ 标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色
    ] 标志着非打印字符序列结束

    示例

    使用转移符A,将终端提示符修改为显示当前时间,如下图:
    在这里插入图片描述


    字体颜色

    字体颜色是由ANSI转义编码来控制的,该控制编码会嵌入字符流中并发送给终端仿真器。

    但是,该控制编码不会被"打印"到终端上,而是会被终端解释为一个指令。正如我们上面看到的字符序列最下面的两个[],就是用来封装这些非打印字符的。

    一个ANSI转义编码以一个八进制033(这个编码是由退出按键产生的)开头,其后跟着一个可选的字符属性(0:正常1:黑体4:下划线5:闪烁7:反向(前景色和背景色反转)),再之后是一个指令。

    序列 文本颜色 序列 文本颜色
    33[0;30m 黑色 33[1;30m 黑体黑色
    33[0;31m 红色 33[1;31m 黑体红色
    33[0;32m 绿色 33[1;32m 黑体绿色
    33[0;33m 棕色 33[1;33m 黑体棕色
    33[0;34m 蓝色 33[1;34m 黑体蓝色
    33[0;35m 粉红 33[1;35m 黑体粉色
    33[0;36m 青色 33[1;36m 黑体青色
    33[0;37m 浅灰色 33[1;37m 黑体浅灰色

    示例

    更改终端提示符颜色为黑体蓝色,如下图:
    在这里插入图片描述
    后面的33[00m是用于将后续的字符颜色还原回原来的颜色。
    如果没有写这个转义码,将会导致输入的命令颜色也会改变。
    所以,我们还可以这样玩:
    在这里插入图片描述
    看到了吧,命令和输出信息的颜色也一同改变了。


    背景颜色

    除了字体颜色,我们还可以设置字体的背景颜色。同样是通过转义的控制编码来实现,下表是背景颜色的控制编码。

    序列 背景颜色 序列 背景颜色
    33[0;40m 黑色 33[1;44m 蓝色
    33[0;41m 红色 33[1;45m 粉红
    33[0;42m 绿色 33[1;46m 青色
    33[0;43m 棕色 33[1;47m 浅灰色

    移动光标

    转义编码也可以用来定位光标。这些编码通常被用于:每当提示符出现的时候(会在屏幕的不同位置,比如说上面一个角落),显示一个时钟或者其它一些信息。下表是一系列用来定位光标的转义编码。

    转义码 行动
    33[l;cH 把光标移到第 l 行,第 c 列
    33[nA 把光标向上移动 n 行
    33[nB 把光标向下移动 n 行
    33[nC 把光标向前移动 n 个字符
    33[nD 把光标向后移动 n 个字符
    33[2 清空屏幕,把光标移到左上角(第零行,第零列)
    33[K 清空从光标位置到当前行末的内容
    33[s 存储当前光标位置
    33[u 唤醒之前存储的光标位置


    写在哈佛墙上的七句话

    1. 我颓废的今日,正是昨天殒身之人祈求的明天;
    2. 请享受无法回避的痛苦;
    3. 觉得自己为时已晚的时候,恰恰是最早的时候;
    4. 谁也不可能轻易成功,它来自彻底的自我管理能力和毅力;
    5. 现在流的口水,将成为明天的眼泪;
    6. 今天不走,明天要跑;
    7. 即使此刻,对手也在不停的翻动书页。
      "
  • 相关阅读:
    vmware ubuntu 异常关机无法连接到网络
    Speed up GCC link
    常用的一些解压命令
    Log4j 漏洞复现
    Test Case Design method Boundary value analysis and Equivalence partitioning
    CCA (Citrix Certified Administrator) exam of “Implementing Citrix XenDesktop 4”
    What is Key Word driven Testing?
    SAP AGS面试小结
    腾讯2013终端实习生一面
    指针的引用
  • 原文地址:https://www.cnblogs.com/zyk01/p/11376441.html
Copyright © 2011-2022 走看看