文档章节

Linux Bash 提示符的一些骚操作

l
 linux-tao
发布于 2017/08/20 23:59
字数 1062
阅读 13
收藏 0
点赞 0
评论 0

如何设置 Bash 提示符

Bash 提示符是通过环境变量 PS1 (提示符字符串 1Prompt String 1) 来设置的,它用于交互式 shell 提示符。当然如果你需要更多的输入才能完成一个 Bash 命令时,PS2 环境变量就是用来设置多行提示符的:

[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ "

[Linux Rulez] export PS2="... "

[Linux Rulez] if true; then

... echo "Success!"

... fi

Success!

在哪里设置 PS1 的值?

PS1 就是一个普通的环境变量,系统默认值设置在 /etc/bashrc 中,在我的系统中,默认提示符通过以下命令来设置的:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

它判断 PS1 是否是系统的默认值 \s-\v$ ,如果是的话则将值设置为 [\u@\h \W]\$。(LCTT 译注:注意命令中用 \ 做了转义。)

但如果你想要自定义提示符,不应该修改 /etc/bashrc ,而是应该在你的主目录下将自定义命令加到 .bashrc 文件中。

上面提到的 \u、\h、\W、\s 和 \v 是什么意思?

在 man bash 中的 PROMPTING 章节中,你能够找到所有 PS1 和 PS2 相关的特殊字符的描述,以下是一些比较常用的:

\u:用户名

\h:短主机名

\W:当前你所在的目录的名称(basename),~ 表示你的主目录

\s:Shell 名字(bash 或者 sh,取决于你的 Shell 的名字是什么)

\v:Shell 的版本号

还有哪些特殊的字符串可以用在提示符当中

除了上面这些,还有很多有用的字符串可以用在提示符当中:

\d:将日期扩展成 “Tue Jun 27” 这种格式

\D{fmt}:允许自定义日期格式——可通过 man strftime 来获得更多信息

\D{%c}:获得本地化的日期和时间

\n:换行(参考下面的多行提示符)

\w:显示当前工作目录的完整路径

\H:当前工作机器的完整主机名

除了以上这些,你还可以在 Bash 的 man 页面的 PROMPTING 部分找到更多的特殊字符和它的用处。

多行提示符

如果你的提示符过长(比如说你想包括 \H 、\w 或完整的日期时间时 ),想将提示符切成两行,可以使用 \n 将提示符切断成两行显示,比如下面的多行的例子会在第一行显示日期、时间和当前工作目录,第二行显示用户名和主机名:

PS1="\D{%c} \w\n[\u@\H]$ "

还能再好玩点吗?

人们偶尔也想将提示符变成彩色的。虽然我觉得彩色提示符让人分心、易怒,但是也许你很喜欢。如果我们想将日期变成红色的,目录变成青蓝色,用户名搞一个黄色背景,你可以这样做:

PS1="\[\e[31m\]\D{%c}\[\e[0m\]

\[\e[36m\]\w\[\e[0m\]\n[\[\e[1;43m\]\u\[\e[0m\]@\H]$ "

\[..\] :表示一些非打印字符

\e[.. :转义字符,后面的跟着的特定的转义字符串在终端中表示颜色或者其他意思

31m :表示红色字体(41m 表示是红色背景)

36m :表示是青蓝色字体 1;

43m :表示黄色字体(1;33m 表示黄色字体)

[\e[0m]] :它在最后将颜色恢复成系统终端默认颜色

你可以在 Bash prompt HOWTO 这里找到更多的颜色代码,甚至可以让字符反相和闪烁!我不知道为什么地球人会有这种想法,但是你可以这么干!

所以你最喜欢的自定义提示符是什么样子的呢?有没有让你抓狂的自定义提示符呢?请在评论里告诉我吧~

原文来自:https://linux.cn/article-8711-1.html

本文地址: http://www.linuxprobe.com/linux-bash-prompt.html

© 著作权归作者所有

共有 人打赏支持
l
粉丝 10
博文 597
码字总数 678607
作品 0
深圳
运维
如何处理win10系统内置Linux系统闪退问题

导读 win10系统的功能非常强大,能够很好地支持Linux系统。不过,最近一些朋友反馈自己在win10系统下使用内置Linux系统时会出现闪退的问题。这该怎么办呢?接下来,系统城小编就为大家介绍w...

问题终结者
05/10
0
0
Linux命令行终端提示符多种实用技巧!

1.Linux命令行提示符简介 众所周知,Linux命令行是系统管理员管理Linux的重要手段,我们管理Linux,首先要面对的就是Linux命令行提示符。 Linux命令行结尾的提示符有“#”和“$”两种不同的符...

liujing07
06/26
0
0
Linux之/etc/profile文件

Linux之/etc/profile文件 在登录Linux时要执行文件的过程如下 在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bashprofile、 ~/.bashlogin或 ~/.profile文件中的其...

秋风醉了
2014/03/28
0
0
更改Linux Shell的提示符

PS1='[/[/033[01;32m/]/h:/[/033[01;34m/]/W/[/033[00m/]]/$' 简单解释一下: 将里面有用的信息题出来就是: PS1='[/h:/W]/$' /h显示当前主机名称 /W显示当前目录 /$提示符 []为了美观 显示...

AlphaJay
2011/11/08
0
0
Linux学习资料:教你在Win10运行Linux

Windows系统和Linux系统一直是水火不容,而在全新in10系统却完美兼容了Linux系统,这不得不说是开发者的仙音。当然这个Linux系统默认是不安装的,需要用户手动安装,下面×××老师就来介绍一...

长沙千锋
04/27
0
0
修改 mysql/oracle/bash/vimrc/cmd 提示符格式与颜色

(1)修改mysql提示符: MySQL 客户端的默认提示符是 "mysql>",基本上没什么实际作用。其实可以修改这个提示符,让它显示一些有用的信息,例如当前所在的数据库等。修改方法有四种,其中前两...

大数据之路
2012/09/08
0
0
Linux中,去掉终端显示的当前目录的绝对路径

Linux中,去掉终端显示的当前目录的绝对路径 去~/.bashrc中,找到PS1变量的定义,如果没有,手动加上: 可以将显示输出到标题栏上: #export PS1="[e]2;u@H wae[32;1m]>[e[0m] " 最常见的设置...

wygzjie
2011/08/31
0
0
哪里学Linux开发?作业怎么控制Jobs?

使用Ctrl+Z组合键停止shell运行中的作业。停止作业后,Linux系统会让用户终止或重启它。可以使用kill命令终止进程。重启停止的进程需要向它发送SIGCONT信号。 重启、停止、终止和恢复作业的操...

长沙千锋
05/03
0
0
如何在 Linux 中使用 history 命令

用强大的 history 命令使你的命令行提示符更有效率。 随着我在终端中花费越来越多的时间,我感觉就像在不断地寻找新的命令,以使我的日常任务更加高效。GNU 的 命令是一个真正改变我日常工作...

18%
06/26
0
0
【转载】linux环境变量PS1的简介

PS1:提示符的设置 PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。下面是FC4环境下默认的特殊符号所代表的意义: d :代表日期,...

mj4738
2012/01/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理...

DannyCoder
19分钟前
0
0
Firefox 61已经为Ubuntu 提供支持

最新和最好的Mozilla Firefox 61 “Quantum”网络浏览器已经为Ubuntu Linux操作系统的用户提供了支持,现在可以通过官方软件库进行更新。 Mozilla于2018年6月26日发布了Firefox 61版本,该版...

六库科技
45分钟前
0
0
Win10升级后执行系统封装(Sysprep)报错

开始封装 一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合V...

lyunweb
今天
39
0
php 性能优化

#什么情况下会遇到性能问题 PHP 语法使用的不恰当

to_be_better
今天
0
0
Jenkins 构建触发器操作详解

前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔...

覃光林
今天
0
0
IDEA配置技巧

超详细设置Idea类注释模板和方法注释模板 idea去掉注解param下划线 JetBrains全系列破解

AK灬
今天
0
0
rsync通过服务同步/Linux系统日志/screen工具

rsync通过服务同步 分为服务端(机器A) 和客户端(机器B) 机器A操作编辑/etc/rsyncd.conf配置文件 [root@yolks1 ~]# vim /etc/rsyncd.conf 文件中添加以下配置 port=873 ...

Hi_Yolks
今天
0
0
分发系统介绍expect脚本远程登录expect脚本远程执行命令 expect脚本传递参数

分发系统介绍 分发系统-expect讲解(也就是一个分发的脚本) 场景: 业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因为业...

lyy549745
今天
0
0
android studio 中设置创建类时的说明信息(包含 作者 ,创建时间,注释说明等)

今天简单来说一下android studio开发工具中的 一个小设置功能; 在开发过程中我们习惯给新建的类添加一些注释信息,创建日期、时间和作者等。 设置信息 File—>Settings—>Editor—>File and...

切切歆语
今天
0
0
开源监控利器Prometheus初探

前言: Kubernetes作为当下最炙手可热的容器管理平台,在给应用部署运维带来便捷的同时,也给应用及性能监控带来了新的挑战。本文给大家分享一款十分火热的开源监控工具Prometheus,让我们一...

寰宇01
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部