在 Linux 终端中自定义 Bash 配色和提示内容
现今,大多数(如果不是全部的话)现代 Linux 发行版的默认 shell 都是 Bash。然而,你可能已经注意到这样一个现象,在各个发行版中,其终端配色和提示内容都各不相同。
如果你一直都在考虑,或者只是一时好奇,如何定制可以使 Bash 更好用。不管怎样,请继续读下去 —— 本文将告诉你怎么做。
PS1 Bash 环境变量命令提示符和终端外观是通过一个叫 PS1 的变量来进行管理的。根据 Bash 手册页说明,PS1 代表了 shell 准备好读取命令时显示的主体的提示字符串。
PS1 所允许的内容包括一些反斜杠转义的特殊字符,可以查看手册页中 PRMPTING 部分的内容来了解它们的含义。
为了演示,让我们先来显示下我们系统中 PS1 的当前内容吧(这或许看上去和你们的有那么点不同):
$ echo $PS1 [\u@\h \W]\$
现在,让我们来了解一下怎样自定义 PS1 吧,以满足我们各自的需求。
自定义 PS1 格式根据手册页 PROMPTING 章节的描述,下面对各个特殊字符的含义作如下说明:
例如,如果我们想要显示当前命令的历史数量,可以考虑添加 \!;如果我们想要显示 FQDN 全称而不是短服务器名,那么可以考虑添加 \H。
在下面的例子中,我们同时将这两个特殊字符引入我们当前的环境中,命令如下:
PS1="[\u@\H \W \!]\$"
当按下回车键后,你将会看到提示内容会变成下面这样。可以对比执行命令修改前和修改后的提示内容:
自定义 Linux 终端提示符 PS1
现在,让我们再深入一点,修改命令提示符中的用户名和主机名 —— 同时修改文本和环境背景。
实际上,我们可以对提示符进行 3 个方面的自定义:
我们将在开头使用 \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 ")
原文发布时间为:2017-01-09
本文来自云栖社区合作伙伴“Linux中国”
Linux模拟实现【简易版bash】 Linux 系统主要分为 内核(kernel) 和 外壳(shell),普通用户是无法接触到内核的,因此实际在进行操作时是在和外壳程序打交道,在 shell 外壳之上存在 命令行解释器(bash),负责接收并执行用户输入的指令,本文模拟实现的就是一个 简易版命令行解释器
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门 采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)、采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)、在脚本的路径前加上“.”或者 source(了解)原因: 前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中。第三种,也就是使用在脚本路径前加“.”或者 source 的方式,`可以使脚本内容在当前 shell 里执行,而无需打开子 shell!`这也是为什么我们每次要修改完
Linux Shell编程(2) - Bash 变量 1. Bash 变量的命名规则 变量名只能包含字母、数字、下划线 变量名不能以数字作为开头 变量名区分大小写 变量名长度不超过255个字符 变量名在有效范围内必须唯一
相关文章
- Kali linux 渗透测试技术之搭建WordPress Turnkey Linux及检测WordPress 应用程序漏洞
- nagios安装check_linux_stats.pl插件报错Can't locate Sys/Statistics/Linux.pm in @INC的处理?
- linux 切换root账号_LINUX 创建用户及切换用户
- Linux安装 微信开发者工具(deepin linux ubt)
- Linux有问必答:如何在Linux上检查SSH的版本
- Linux有问必答 - 如何在linux上安装WPS
- 监控 Linux 容器性能的命令行神器
- linux shadow文件*,Linux /etc/shadow文件详解
- Linux ls 自定义时间显示格式
- Linux中日常操纵docker命令
- linux如何管理物理内存?
- Linux Crontab命令定时任务基本语法
- Linux自学篇——linux命令英文全称及解释
- 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.3 SLC Nand Flash芯片
- Linux小白基础环境搭建汇总
- Linux 内核总线属性
- 一、Linux平台部署ASP.NET、ASP.NET CORE、PHP
- 【转载】 linux系统dig和nslookup的安装
- linux自定义开机启动服务和chkconfig使用方法
- Linux下,连接器ld链接顺序的总结
- 【Linux】基本指令(二)
- Linux 下搭建流媒体服务器
- 【Linux篇<Day18>】——一文吃透网络、自定义YUM
- Linux 之 arm linux 板子与 ubuntu 使用 nfs 进行 mount 挂载进行文件传输的简单整理
- Linux 之 arm linux 与 windows 使用 tftp 进行文件传输的简单整理
- Linux学习笔记(24)linux发邮件 mailx发邮件
- Linux学习笔记(20)linux exec
- Linux学习笔记(14)linux在6.x和7.x系列的安装与基本使用区别
- Linux学习笔记(3)linux服务管理与启停(开机自启与自定义服务)
- 【树莓派】Linux自动配置IP
- Linux_Shell_Bash快捷键
- 【Linux】linux下用python获取底层硬件信息接口
- Linux下汇编语言学习笔记44 ---
- linux学习之防火墙,查看Linux防火墙状态,开启/关闭Linux防火墙,Linux防火墙开放5236端口