修改云主机Linux下的终端提示符(一):修改技巧

  • 2018-04-06
  • 604
  • 11
  • 0

看见明月发的修改云主机Linux下的终端提示符,真的好玩,便尝试一下啦~发现有些问题,和完善的地方.

说起Linux终端应该很多玩VPS云主机的站长们应该都不陌生的了,小伟同样非常的喜欢终端命令行的体验(有可能跟早年间学习和使用DOS有关系,反正就是喜欢,至今不用任何面板,呵呵!),对于Linux下的终端提示符明月其实没有那么多的要求,但是随着使用时间久了以后,看着默认的随机字符的hostname感觉有些厌烦了,所以想着定制一个属于自己或者根据自己需求的终端命令行提示符来。

比如可以设定终端提示符显示当前用户名、hostname、当前目录名称以外以加上当前时间日期甚至以特定的颜色和高亮显示提示符,那么今天就给大家分享一下,有喜欢的站长们可以自己试着定制一下。

PS1变量简介

PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。

可以使用 man bash 命令查看bash手册,找到该变量支持的特殊字符,以及这些特殊字符的意义:

字母 含义
\a ASCII 响铃字符(也可以键入 \007)
\d “Wed Sep 06” 格式的日期
\e ASCII 转义字符(也可以键入 \033)
\h 主机名的第一部分(如 “mybox”)
\H 主机的全称(如 “mybox.mydomain.com”)
\j 在此shell中通过按 ^Z 挂起的进程数
\l 此 shell 的终端设备名(如 “ttyp4”)
\n 换行符
\r 回车符
\s shell 的名称(如 “bash”)
\t 24 小时制时间(如 “23:01:01”)
\T 12 小时制时间(如 “11:01:01”)
\@ 带有 am/pm 的 12 小时制时间
\u 用户名
\v bash 的版本(如 2.04)
\V Bash 版本(包括补丁级别)
\w 当前工作目录(如 “/home/drobbins”)
\W 当前工作目录的“基名 (basename)”(如 “drobbins”)
\! 当前命令在历史缓冲区中的位置
\# 命令编号(只要您键入内容,它就会在每次提示时累加)
\$ 如果您不是超级用户 (root),则插入一个 “$”,如果您是超级用户,则显示一个 “#”
\xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 “\007”),表示的 ASCII 字符
\\ 反斜杠
\[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前,它使 bash 能够正确计算自动换行。
\] 这个序列应该出现在非打印字符序列之后。

修改终端提示符

  • 查看默认提示符设置

//举例
export PS1='\e[31m# \e[m'
# //这就是样式
//系统常见设置 
export PS1='\u@\h:\w\$ ' 
[root@waylee ~]# echo $PS1
[\u@\h \W]\$

修改默认设置,将如下命令添加到当前登录用户的~/.bashrc文件中,然后使用source使其生效.可以参考明月的这篇文章介绍:【什么是 .bashrc,为什么要编辑 .bashrc?

$ vim ~/.bashrc

在文件最后添加如下设置

# 修改提示符
export PS1='[\u@\h-\A-\W]\$'

保存退出后在命令行输入source ~/.bashrc 使其设置生效,这时就可以看到命令提示行已经变化了。

颜色设置

在PS1中设置字符序列颜色的格式为:

//基础格式:
\[\e[F;B;Cm\]

//设置颜色
\e[?m //?是颜色表值

//取消颜色设置
\e[m

\033是8进制(也就是\e),它就是unix下终端转义符ESC(16进制1A,10进制27),ESC[xm 是unix下改变终端输出颜色的命令。

\e[与m之间的内容表示设置颜色,F是前景色,B是背景色,C是代码,多个颜色用分号隔开。但F、B、C顺序可变,这是因为他们的数值不冲突(大家都习惯将C放在前面)。

  • 下面看下颜色表
前景	背景	颜色
30		40		黑色
31		41		红色
32		42		绿色
33		43		黄色
34		44		蓝色
35		45		紫红色
36		46		青蓝色
37		47		白色
37		47		白色
37		47		白色
  • 效果控制代码
代码	意义
0		OFF
1		高亮显示
4		underline
5		闪烁
7		反白显示
8		不可见

修改提示符颜色示例

小伟设置的:

export PS1='[\[\e[36;1m\]\u@\h \[\e[35;5m\]\w\[\e[m\]]\$'

说明:

\e[36;1m

用来修改\u@\h(账户@主机名)为青蓝色

\e[35;5m

用来修改\w(目录)的颜色35(紫红色)5m(闪烁)

\e[m(另一种形式\e[0m)

修改的是取消\$的颜色设置

具体效果展示

必须要注意的问题:

\[\e[F;B;Cm\]

其中,\[\]是保证其内的非打印字符不占用行上的任何空间,这样就能使自动换行后的颜色设置正常工作了(我的shell出现长命令不能换行的bug,就是缺少了这个中括号);

演示:export PS1=”[\[\e[36;1m\]\u@\h \[\e[35;5m\]\w\[\e[m]\[\em\\$\]”

普通使用正常,长命令是无法换行!

正确的:export PS1='[\[\e[36;1m\]\u@\h \[\e[35;5m\]\w\[\e[m\]]\$’

  1. 2017:  2017.4.3 干掉这些小坏习惯(2)

评论

    • Waylee回复
      Google Chrome 65 Google Chrome 65 Windows 10 Windows 10

      😀 哈哈,希望你写出更多简单易懂的Linux新人文章,反正挺好玩的

  • 煮只鸡回复
    Google Chrome 65 Google Chrome 65 Windows 7 Windows 7

    😀 支持一下爱折腾的人!

    • Waylee回复
      Google Chrome 65 Google Chrome 65 Windows 10 Windows 10

      😆 谢谢,生命在于折腾

  • 银色月航回复
    Google Chrome 66 Google Chrome 66 Mac OS X 10.10 Mac OS X 10.10

    最近博主狂研究linux啊

    • Waylee回复
      MIUI Browser 9 MIUI Browser 9 Android 8.0.0 Android 8.0.0

      最近Linux比王者荣耀好玩 😎
      手头刚好Linux环境接触的多

  • 诺诺回复
    QQbrowser QQbrowser Android 8.0 Android 8.0

    大。。。大佬。。。

    • Waylee回复
      MIUI Browser 9 MIUI Browser 9 Android 8.0.0 Android 8.0.0

      小菜鸟大梦想

  • 懿古今回复
    Google Chrome 65 Google Chrome 65 Windows 7 Windows 7

    一直都不太敢折腾服务器,Linux更是陌生,所以有空都是偶尔折腾一下PHP代码

    • Waylee回复
      Google Chrome 65 Google Chrome 65 Windows 10 Windows 10

      没有写代码的天赋,就会随心的瞎折腾. 想到什么搞什么

发表评论