@

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

我们可以通过命令echo $PS1来查看当前设置,如下图:

同样,我们可以通过修改PS1的值来改变终端提示信息:

但这只是临时的修改了,当我们打开新的终端窗口时,提示符又恢复到默认的了。
.
如果希望修改永久生效,我们可以通过更改~/.bashrc文件,如下图:

保存退出后在终端执行. .bashrc刷新,便可看到永久版的终端提示符。
好了,打开新的终端窗去看看吧。
***

基本转义符

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

序列 显示值
\a 以ASCII格式编码的铃声,当遇到这个转移序列时,计算机会发出嗡嗡的响声
\d 以日,月,天格式来表示当前日期。例如,"Mon May 26"
\h 本地机的主机名,但不带末尾的域名
\H 完整的主机名
\j 运行在当前shell会话中的工作数
\l 当前终端设备名
\n 一个换行符
\r 一个回车符
\s shell程序名
\t 以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:反向(前景色和背景色反转)),再之后是一个指令。

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

示例

更改终端提示符颜色为黑体蓝色,如下图:

后面的\033[00m是用于将后续的字符颜色还原回原来的颜色。
如果没有写这个转义码,将会导致输入的命令颜色也会改变。
所以,我们还可以这样玩:

看到了吧,命令和输出信息的颜色也一同改变了。
***

背景颜色

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

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

移动光标

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

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


写在哈佛墙上的七句话

  1. 我颓废的今日,正是昨天殒身之人祈求的明天;
  2. 请享受无法回避的痛苦;
  3. 觉得自己为时已晚的时候,恰恰是最早的时候;
  4. 谁也不可能轻易成功,它来自彻底的自我管理能力和毅力;
  5. 现在流的口水,将成为明天的眼泪;
  6. 今天不走,明天要跑;
  7. 即使此刻,对手也在不停的翻动书页。

【Linux下自定义Shell终端提示符】的更多相关文章

  1. Linux学习——自定义shell终端提示符

    转自:here 我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入 ...

  2. #Linux学习笔记# 自定义shell终端提示符

    我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录 ...

  3. 自定义shell终端提示符及颜色即修改 PS1文件 (以Centos为例)

    Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~ ...

  4. Linux下修改环境终端提示符

    Linux修改环境变量PS1(命令行提示符),可以使用vi编辑/etc/bashrc或/etc/profile文件,在最后加上: export PS1='[\u@\h \W]\$ ' 即可,其中\u显 ...

  5. Linux下使Shell 命令脱离终端在后台运行

    --Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...

  6. Linux下的shell与make

    Linux下的shell与make 一.shell 1.1 什么是shell ● 用户与Linux的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell有很多种,如:csh,t ...

  7. Linux下的Shell工作原理

    Linux下的Shell工作原理 Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序.它不属于内核部分,而是在核心之外,以用户态方式运行.其基本功能是解释并执行用户打入的各种命令, ...

  8. linux下的shell运算(加、减、乘、除)

    linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...

  9. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

随机推荐

  1. Raw-OS源代码分析之任务删除与总结

    分析的内核版本号截止到2014-04-15,基于1.05正式版,blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样,则是未深究理解部分. Raw-OS官方 ...

  2. 阿里云部署Docker(9)----Dockerfile脚本定制镜像

    本文为原创文章.转载需注明转自:http://blog.csdn.net/minimicall? viewmode=contents 技术爱好者都是比較懒的.而docker又是开发人员支持起来的.所以 ...

  3. HDU 1114 Piggy-Bank(一维背包)

    题目地址:HDU 1114 把dp[0]初始化为0,其它的初始化为INF.这样就能保证最后的结果一定是满的,即一定是从0慢慢的加上来的. 代码例如以下: #include <algorithm& ...

  4. SharePoint Search之(七)Search result- 结果源

    在使用搜索引擎的时候.非常多情况下,用户希望限定一下搜索范围,以便更加easy找到想要的结果. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU1BGYXJ ...

  5. 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】

    [064-Minimum Path Sum(最小路径和)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a m x n grid filled with ...

  6. Connect to MongoDB

    https://docs.mongodb.com/getting-started/csharp/client/ MongoDB C# Driver is the officially supporte ...

  7. dns-sd._udp.<domain>. 域名发现 本质和MDNS同

    DNS Service Discovery is a way of using standard DNS programming interfaces, servers, and packet for ...

  8. 关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能..."的解决办法

    由于Windows系统的VMware出了一些问题,索性就不用VM了,直接装上双系统好了.但是在最后安装时出现错误提示“分配到/的分区/dev/sdc1开始于3584字节,使用磁盘的最小对齐,这可能造成 ...

  9. 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化

    1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ...

  10. monad-本质解释- a monad is a design pattern--monad与泛型相关

    monad的特征: 类型转化+添加新的操作. monad  RACStream RACSignal RACSubject monad:单一体,(不可分的)个体 以计算为中心的封装. In functi ...