在Linux终端中自定义Bash配色和提示内容
如果你一直都在考虑,或者只是一时好奇,如何定制可以使 Bash 更好用。不管怎样,请继续读下去 —— 本文将告诉你怎么做。
PS1 Bash 环境变量
命令提示符和终端外观是通过一个叫 PS1 的变量来进行管理的。根据 Bash 手册页说明,PS1 代表了 shell 准备好读取命令时显示的主体的提示字符串。
PS1 所允许的内容包括一些反斜杠转义的特殊字符,可以查看手册页中 PRMPTING 部分的内容来了解它们的含义。
为了演示,让我们先来显示下我们系统中 PS1 的当前内容吧(这或许看上去和你们的有那么点不同):
- $ echo $PS1
- [\u@\h \W]\$
现在,让我们来了解一下怎样自定义 PS1 吧,以满足我们各自的需求。
自定义 PS1 格式
根据手册页 PROMPTING 章节的描述,下面对各个特殊字符的含义作如下说明:
- \u: 显示当前用户的 用户名。
- \h: 完全限定域名 Fully-Qualified Domain Name(FQDN)中第一个点(.)之前的主机名。
- \W: 当前工作目录的基本名,如果是位于 $HOME (家目录)通常使用波浪符号简化表示(~)。
- \$: 如果当前用户是 root,显示为 #,否则为 $。
例如,如果我们想要显示当前命令的历史数量,可以考虑添加 \!;如果我们想要显示 FQDN 全称而不是短服务器名,那么可以考虑添加 \H。
在下面的例子中,我们同时将这两个特殊字符引入我们当前的环境中,命令如下:
- PS1="[\u@\H \W \!]\$"
当按下回车键后,你将会看到提示内容会变成下面这样。可以对比执行命令修改前和修改后的提示内容:
自定义 Linux 终端提示符 PS1
现在,让我们再深入一点,修改命令提示符中的用户名和主机名 —— 同时修改文本和环境背景。
实际上,我们可以对提示符进行 3 个方面的自定义:
文本格式 | 前景色(文本) | 背景色 |
---|---|---|
0: 常规文本 | 30: 黑色 | 40: 黑色 |
1: 加粗文本 | 31: 红色 | 41: 红色 |
4: 下划线文本 | 32: 绿色 | 42: 绿色 |
33: 黄色 | 43: 黄色 | |
34: 蓝色 | 44: 蓝色 | |
35: 紫色 | 45: 紫色 | |
36: 青色 | 46: 青色 | |
37: 白色 | 47: 白色 |
我们将在开头使用 \e 特殊字符,跟着颜色序列,在结尾使用 m 来表示结束。
在该序列中,三个值(背景,格式和前景)由分号分隔(如果不赋值,则假定为默认值)。
建议阅读: 在 Linux 中学习 Bash shell 脚本。
此外,由于值的范围不同,指定背景,格式,或者前景的先后顺序没有关系。
例如,下面的 PS1 将导致提示符为黄色带下划线文本,并且背景为红色:
- PS1="\e[41;4;33m[\u@\h \W]$ "
修改 Linux 终端提示符配色 PS1
虽然它看起来那么漂亮,但是这个自定义将只会持续到当前用户会话结束。如果你关闭终端,或者退出本次会话,所有修改都会丢失。
为了让修改永久生效,你必须将下面这行添加到 ~/.bashrc或者 ~/.bash_profile,这取决于你的版本。
- PS1="\e[41;4;33m[\u@\h \W]$ "
尽情去玩耍吧,你可以尝试任何色彩,直到找出最适合你的。
(LCTT 译注:原文的这种设置,不但会影响到提示符,也会影响到输入和显示的其它文字,因此应该在 PS1 设置中使用 \e[0m 来结束颜色设置。如:PS1="\e[41;4;33m[\u@\h \W]$\e[0m ")
小结
在本文中,我们讲述了如何来自定义 Bash 提示符的配色和提示内容。如果你对本文还有什么问题或者建议,请在下面评论框中写下来吧。我们期待你们的声音。
作者简介:
Aaron Kili 是一位 Linux 及 F.O.S.S 的狂热爱好者,一位未来的 Linux 系统管理员,web 开发者,而当前是 TechMint 的原创作者,他热爱计算机工作,并且信奉知识分享。
在Linux终端中自定义Bash配色和提示内容相关推荐
- 在 Linux 终端中自定义 Bash 配色和提示内容
现今,大多数(如果不是全部的话)现代 Linux 发行版的默认 shell 都是 Bash.然而,你可能已经注意到这样一个现象,在各个发行版中,其终端配色和提示内容都各不相同. 如果你一直都在考虑,或 ...
- linux 自定义shell命令,如何在Linux中自定义bash命令提示符
前言 众所周知, bash (the B ourne- A gain Sh ell)是目前绝大多数 Linux 发行版使用的默认 shell.本文将会介绍如何通过添加颜色和样式来自定义 bash 命令 ...
- linux终端中使用ctrl+c和ctrl+v
根据参考链接的解释, 因为ctrl+c被bash shell解释为中断程序的运行, 所以在linux终端中想要粘贴复制需要使用的快捷键是: windows Linux 复制 Ctrl+C Ctrl+S ...
- 5 个用于在 Linux 终端中查找域名 IP 地址的命令
5 个用于在 Linux 终端中查找域名 IP 地址的命令 本教程介绍了如何在 Linux 终端验证域名或计算机名的 IP 地址.本教程将允许你一次检查多个域.你可能已经使用过这些命令来验证信息.但是 ...
- linux文件夹缩略图不显示,在Linux终端中使用lsix显示缩略图图像
本文介绍lsix的安装及使用方法,目标是在Linux终端中显示缩略图图像.Fim是一个轻量级的CLI图像查看器应用程序,用于从命令行显示各种类型的图像,如bmp.gif.jpeg和png等.本文要介绍 ...
- linux终端打印保存到文件,Linux 终端中命令输出保存到文件中的方法
当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看. 有时你需要将输出保存到文件中以备将来参考.当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linu ...
- Linux | 终端显示为bash-4.1$以及提示bash:command not found的解决方法
本文总结如何解决 Linux 终端显示为 bash-4.1 1 以及提示 bash: command not found 情形 2 ' 3 的解决方法. Updated: 2022 / 7 / 18 ...
- linux中bash的功能主要有,Linux系统中的Bash功能的介绍
今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...
- linux的ftp停不下来了,FTP上传时经常中断,怎么办? 在Linux终端中使用ftp时总是出现connection refuse......
导航:网站首页 > FTP上传时经常中断,怎么办? 在Linux终端中使用ftp时总是出现connection refuse... FTP上传时经常中断,怎么办? 在Linux终端中使用ftp时 ...
最新文章
- 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- Python计算医疗数据训练集、测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数、连续变量的均值(标准差)以及训练测试集阳性阴性的p值、离散变量的分类统计、比率、训练测试集阳性阴性的p值
- 判断Oracle中某个字段是否含有数字
- 简介struct cmsghdr结构
- python(matplotlib8)——图中图(在figure中画多个坐标图),次坐标(两个y轴)
- LeetCode 904. 水果成篮(滑动窗口)
- java的equals方法_Java Date equals()方法与示例
- 用PHP控制您的浏览器cache
- sql server 群集_SQL Server 2014 –安装群集实例–分步(3/3)
- Ubuntu之systemd延时启动服务
- java某些基础知识点整理
- 2018中国开源云超级英雄评选,等你报名!
- CTFshow新春欢乐赛--web6--反序列化字符串逃逸
- 单片机(中断系统-串口通信)
- 【linux】运行run文件显示cannot execute binary file
- 2021乌镇互联网大会,数字联盟解读网络安全与信息保护
- ubuntu:下载ubuntu内核
- 关于一个web站点的欢迎页面
- 转义字符 lt; gt; 等等
- 手写实现简单版IOC
热门文章
- PHP注册登录系统(一)-极简
- 亚信卸载-无需密码卸载
- 【区块链】【IOT】深度解读物联网区块链“IOTA”:不仅解决IoT痛点,还解决区块链痛点
- 舒城中学2021年高考成绩查询,舒城教育信息网——舒城县教育局关于对2019年荣获高考目标奖的学校和个人表彰的通报...
- 机械专业转嵌入式软件经历
- 计算机网页设计实习报告怎么写,网页设计实习报告.docx
- 微服务分布式构架开发实战PDF,阿里架构师推荐,快快收藏吧
- AIE功能介孔二氧化硅/环糊精辅助的荧光二氧化硅纳米粒子/α-环糊精改性SiO2纳米微球/基于MOFs或中空介孔二氧化硅复合载体
- 如何做AI开源项目?零基础到100star
- python发送soap报文_使用Python将带附件的XML发送到SOAP ws