【Linux下自定义Shell终端提示符】
@
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 |
唤醒之前存储的光标位置 |
写在哈佛墙上的七句话
- 我颓废的今日,正是昨天殒身之人祈求的明天;
- 请享受无法回避的痛苦;
- 觉得自己为时已晚的时候,恰恰是最早的时候;
- 谁也不可能轻易成功,它来自彻底的自我管理能力和毅力;
- 现在流的口水,将成为明天的眼泪;
- 今天不走,明天要跑;
- 即使此刻,对手也在不停的翻动书页。
【Linux下自定义Shell终端提示符】的更多相关文章
- Linux学习——自定义shell终端提示符
转自:here 我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入 ...
- #Linux学习笔记# 自定义shell终端提示符
我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录 ...
- 自定义shell终端提示符及颜色即修改 PS1文件 (以Centos为例)
Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~ ...
- Linux下修改环境终端提示符
Linux修改环境变量PS1(命令行提示符),可以使用vi编辑/etc/bashrc或/etc/profile文件,在最后加上: export PS1='[\u@\h \W]\$ ' 即可,其中\u显 ...
- Linux下使Shell 命令脱离终端在后台运行
--Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...
- Linux下的shell与make
Linux下的shell与make 一.shell 1.1 什么是shell ● 用户与Linux的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell有很多种,如:csh,t ...
- Linux下的Shell工作原理
Linux下的Shell工作原理 Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序.它不属于内核部分,而是在核心之外,以用户态方式运行.其基本功能是解释并执行用户打入的各种命令, ...
- linux下的shell运算(加、减、乘、除)
linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...
- linux下的shell操作mysql
(1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...
随机推荐
- 不安全的直接对象引用:你的 ASP.NET 应用数据是否安全?
介绍 作为一个在X94的航空工程师,你的老板要求你从2号楼的工程图中检索出一个特定的专利.不幸的是,进入大楼需要你出示你具有进入大楼的资格的证明,然后你迅速地以徽章的形式出示给了保安.到了十三楼,进入 ...
- 在Windows上面安装多个Memcached
在Windows上面安装多个Memcached sc create "memcached Server3" start= auto binPath= "D:\memcac ...
- [WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)
注:文章译自http://wgld.org/.原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入.一些专业词语.假设翻译有误.欢迎大家指 ...
- The in operator
The operators we have seen so far are all special characters like + and *, but there are a few opera ...
- Python Schema使用说明
转自https://segmentfault.com/a/1190000011777230 Python Schema使用说明 Schema是什么? 不管我们做什么应用,只要和用户输入打交道,就有一个 ...
- package & import
/* * package:声明源文件所在的包,写在程序的第一行. * 每“.”一次,表示一层文件目录. * 包名都要小写. * * import: * 1)显式导入指定包下的类或接口 * 2)写在包的 ...
- C语言基础-第六章
数组和字符串 1.一维数组 数组当中最简单的数据 声明: 类型说明符 数组名[常量表达式] int a[3];说明a的长度为3,那么给a赋值的语句是:a={1,2,3}; 2.多维数组 2.1 二维数 ...
- 重温前端基础之-css浮动之怪异现象
其实,两种情况中box2的内容都是围绕着浮动元素box1来的. 因为:浮动元素会覆盖块元素,但块元素里的内容(内联盒)不会被覆盖,而是围绕着浮动盒. 将box1的背景色去掉,真相就大白了: 此时发现, ...
- ListView和GridView的setOnScrollListener的简介
---恢复内容开始--- 设置ListView和GridView的滑动监听 circle_lv.setOnScrollListener(new AbsListView.OnScrollListener ...
- 《剑指offer》变态跳台阶
一.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 二.输入描述 n级台阶 三.输出描述 一共有多少种不同的跳法 四.牛客网提 ...