BASH提示符颜色、显示返回值,终端标题显示当前目录与正在执行的命令

Linux命令提示符个性化指南:从路径显示到色彩定制 本文详细介绍了如何通过修改Linux的PS1环境变量来自定义命令提示符,包括路径显示、色彩定制和添加实用信息等技巧。从基础设置到高级技巧,帮助用户提升终端使用效率和美观度,特别适合开发者和系统管理员参考。 阅读详情

BASH提示符颜色、显示返回值,终端标题显示当前目录与正在执行的命令

BASH的PS1变控制提示符相关的东西,善用它可以让BASH用起来舒服很多。

  • 提示符颜色
  • 提示符显示上一个命令的返回值(exit code),并根据是否0调整颜色

你有没有遇到过,打开了很多个终端窗口,分不清哪个用于哪个?同样是通过PS1可以做到

  • 终端窗口标题显示当前目录
  • 终端窗口标题显示当前正在执行的命令

效果图:
在这里插入图片描述

  1. 提示符前面的( 0)是上一个命令的返回值。
  2. 第二个数字是当前BASH进程的PID。
  3. 窗口标题显示有当前目录,和终端类型。
  4. 当有命令在执行时,窗口标题显示正在执行的命令
    在这里插入图片描述
  5. exit code正常返回0,显示白色,若非0显示红色
    在这里插入图片描述

实现方法

代码放入~/.bashrc中,BASH启动时会执行。

首先准备不可打印字符

np1="\[" #不可打印字符开始
np2="\]" #不可打印字符结束

准备颜色

c0="$np1""\e[0m""$np2" #默认颜色
c1="$np1""\e[0;92m""$np2" #绿
c2="$np1""\e[1;93m""$np2" #黄 加粗
c3="$np1""\e[0;91m""$np2" #红
c4="$np1""\e[0;93m""$np2" #黄

颜色值可以去查相应的表。

提示符要显示的一般内容

h1="$$-\u@\h:"    # PID-用户名@机器名:
h2="\w "     # pwd
h3="\$ "     # $

给它们配上颜色放入提示符中

PS1="${c1}${h1}${c2}${h2}${c3}${h3}${c0}"

上一个命令的返回值

"\$(LEC=\$? ; if [[ \$LEC -ne 0 ]]; then  echo -n '\[\e[0;91m\]' ; fi ; printf \"(%3d)\" \$LEC) "

用$?取得上一个命令的返回值。这条总体有点复杂,里面包含了多条语句,包含了对值的判断以决定颜色。注意BASH中单引号引起来的字符串是不能使用转义字符的。

终端窗口标题显示当前目录

if [[ $TERM =~ "xterm" ||  $TERM =~ "rxvt" ]]; then  #先判断一下终端类型,也可以不判断
    t1="\e]0;"
    t2="\w"               # pwd
    t3=" 终端 $TERM"      #终端类型
    t4="\a"
fi

放入PS1中

"${np1}${t1}${t2}${t3}${t4}${np2}"

终端窗口标题显示当前存在执行的命令

用trap 调试命令 DEBUG设置在执行命令时,自动执行的调试命令,以设置窗口标题为${BASH_COMMAND}

if [[ $TERM =~ "xterm" ||  $TERM =~ "rxvt" ]]; then
    trap 'echo -ne "\033]0;" ; echo -n "${BASH_COMMAND}" ; echo -ne "  正在执行\007" > /dev/stderr' DEBUG
fi

将以上所述结合起来,放入~/.bashrc中就可以实现开头描述的所有功能啦!

结合后的代码见文末的附录。

打赏作者

写作不易,感谢支持!

打赏二维码

附录

np1="\[" #不可打印字符开始
np2="\]" #不可打印字符结束

c0="$np1""\e[0m""$np2" #默认颜色
c1="$np1""\e[0;92m""$np2" #绿
c2="$np1""\e[1;93m""$np2" #黄 加粗
c3="$np1""\e[0;91m""$np2" #红
c4="$np1""\e[0;93m""$np2" #黄

h1="$$-\u@\h:" # PID-用户名@机器名:
h2="\w "  # pwd
h3="\$ "  # $

if [[ $TERM =~ "xterm" ||  $TERM =~ "rxvt" ]]; then
    # 平时不执行命令时的标题
    t1="\e]0;"
    t2="\w" # pwd
    t3="   终端  $TERM"    # 终端类型
    t4="\a"
fi

PS1="${np1}${t1}${t2}${t3}${t4}${np2}\$(LEC=\$? ; if [[ \$LEC -ne 0 ]]; then  echo -n '\[\e[0;91m\]' ; fi ; printf \"(%3d)\" \$LEC) ${c1}${h1}${c2}${h2}${c3}${h3}${c0}"

if [[ $TERM =~ "xterm" ||  $TERM =~ "rxvt" ]]; then
    trap 'echo -ne "\033]0;" ; echo -n "${BASH_COMMAND}" ; echo -ne "  正在执行\007" > /dev/stderr' DEBUG
fi
【开发环境系列】Linux终端提示符PS1修改 有时在使用终端的时候,会出现提示符过长的情况,解决这个问题,只需修改PS1即可。PS1默认是这样的形式:[username@host工作目录]$.可参考一下修改:export PS1=”[\e]2;\u@\H \w\a\e[32;1m]>[\e[0m]”最常见的设置,粉红色的:export PS1=”[\e[35;1m][\u@\h \W]$>[\e[0m]”绿色的:export PS1=”[\e[ 阅读详情

相关推荐

Ubuntu终端彩色提示符配置指南:提升命令行可读性与效率

命令行提示符(PS1)是Linux终端中用户与Shell交互的核心视觉锚点,其本质是一套基于ANSI转义序列的轻量级UI语义系统。通过合理配置彩色提示符,可在不改变功能的前提下,显著提升命令输入区与程序输出区的视觉区分度,解决新手常见的‘找不到上条命令’、‘光标定位困难’等可读性问题。该技术依托bash的动态转义机制(如\u、\w)与终端颜色支持(tput colors ≥8),在Ubuntu 16.04/18.04等LTS版本中稳定可用,广泛应用于开发调试、运维监控及团队协作场景。本文聚焦稳定、高对比、低

weixin_34166847的博客 442

linux 设置.bashrc cd后直接显示文件和目录

export PATH export PS1='[\u@\h $PWD]\$'alias cd=cdls function cdls() { builtin cd "$1" && ls }

Doumen的博客 1108

MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC)。器件带有冷端补偿检测和修正、数字控制器、SPI兼容接口,以及相关的控制逻辑,在温度控制器、过程控制或监测系统中设计用于配合外部微控制器(μC)工作。提供多个版本的器件,每个版本针对特定的热电偶类型(K、J、N、T或E型)进行优化和调整。热电偶类型以器件型号后缀表示(例如MAX31855K)。 器件输出14位...

睿思派克 1万+

linux脚本加标题,bash-从shell脚本设置屏幕标题

我是通过与其他人进行实验(例如@ flurin-arner)而获得此解决方案的,我启动了@ weston-ganger set-title()。 我还使用了@ imgx64 PROMPT_DIRTRIM建议。 我也使用@itseranga git branch提示符,尽管这与它确实显示您可以使用该提示符的问题无关。首先由weston和以上显示TITLE="\[\e]2;$*\a\]"可以用来手动设...

weixin_34304274的博客 935

【Cubietruck】Qt5.8.0 x64、x86、armhf三个版本的编译安装

一、       Preparation 以下环境配置支持虚拟机和实体机,但是实体机生产效率会相对高一点,实体机编译Qt的速度是虚拟机两倍以上。 若使用虚拟机,推荐使用VirtualBox,开源免费,尽量不要使用Vmware破解版。   Download List   名称 链接 下载项目 OS https://mirro

beatfan的博客 3658

RS232/RS485/CAN_BUS 通信原理总结与通信波形分析

分析一:232串口信号要点:RS232,全双工,采用三线制传输分别为TXD\RXD\GND,其中TXD为发送信号,RXD为接收信号。在RS232中任何一条信号线的电压均为负逻辑关系。即:-15v ~ -3v 代表1 +3v ~ +15v 代表0测试结果与分析:如图所示,以传输一个8位二进制数值“01101010”为例,异步传输数据的一般格式为:起始位+校验位+数据位+停止位。其中,校验位为可选项。...

乔木鱼 1万+

SHELL命令

shell的认知,简单来说认识shell就像学习python语言一样,有常量变量,语句,函数等等;作用于壳,对内核实施一系列命令。Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、迅雷、Firefox 等其它软件没有什么区别。

Newcomer_L的博客 1039

[机器学习] 第二章 模型评估与选择 2.ROC:roc_curve原理及源代码详解

代码见:https://github.com/Carrie-Yi/machine_learning/tree/main/roc_curve

心宝的博客 1494

Bash shell脚本打印出正在执行的命令

默认情况下,bash脚本不会打印执行的每个命令,这个有时候不太方面。 如下的方法可以让bash脚本打印出执行的命令: 1) 在脚本里添加  set -v 或者 #!/bin/bash -v 以加 set -v 最好。 set -v  和 set -o verbose 是一样的 2) 添加 set -x 或者 #!/bin/bash -x 3,

小猪爱拱地 3万+

微信小程序 - 最新详细实现跳转打开第三方网站方法流程及示例代码,在小程序内直接打开H5页面或微信公众号文章后台业务域名配置及下载校验文件上传服务器,嵌入外部网站跳转第三方h5网页(详细配置及代码)

微信小程序,打开第三方网站,放校验文件,怎么配置业务域名,后台配置,怎么打开外部没有关联的网站,小程序直接打开公众号文章,指定页面,跳转第三方url,跳转到外部网站,小程序跳转到任意外部网页,网站链接,跳转到其他网页(外部链接),小程序嵌入外部h5链接,校验文件怎么放到对方服务器上,要跳转到网站没权限放过去,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,别人不可能同意,

🏆 前端领域优质创作者 1万+

Vue3 - 详细实现流程图编辑器可视化平台示例代码,打造前端web网页流程图在线编辑绘制操作展示,vue3自定义绘制流程图在页面上画流程图功能(提供各种操作按钮及节点控件,界面美观交互式流程图插件)

vue3,绘制流程图,在线流程图制作,在vue3中实现流程图,vue3做一个制作流程图的功能,vue3流程图组件,vue3流程图,流程图绘制展示,vue3流程图可视化在线编辑源码,基于VUE3的在线绘制流程图工具,vue3+logicflow流程图,绘制动态流程图并自定义节点和线,vue使用logicFlow绘制流程图,生成各种流程图图形可连接点移除,基于Vue的流程图组件,工作流程图,流程编辑器,vue3流程组件,vue-flow绘制流程图,绘制流程图示例demo,vue3 logicflow流程图使用教

🏆 前端领域优质创作者 9968

Ubuntu终端颜色全白+报错 bash: /home/dell/.bashrc: 行 144: 语法错误: 未预期的文件结尾解决办法

不知道怎么回事,Ubuntu终端打开直接报错,字体全是白色,虚拟环境也进不去。 不想重装Anaconda的话,参照下边示例。 打开终端,输入 gedit ~/.bashrc 仔细检查有没有不对劲的命令,我的环境变量里面是多了一段报错命令 找到后删除或者注释即可 以下是我的环境变量,可以对照一下 # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-f

qq_57076285的博客 3390

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2313

Ubuntu永久修改bash命令提示符外观

本文介绍了如何永久修改ubuntu中命令提示符的外观

siyue_secret的博客 1444

波浪补偿控制(AHC)之波浪发生器(CODESYS完整源代码)

波浪发生器平台详细算法和结构介绍请参看下面博客文章:CODESYS平台如何建立FC和FB,请参看下面博客文章:

RXXW_Dor的博客 401

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

如何在linux终端中修改窗体标题?

一、命令行方式: 使用转义码字符 echo -e "\033]0;我的虚拟终端窗体标题3\007" 终端标题被改变 使用转义字符 echo -n $'\e'"]0;我的虚拟终端窗体标题"$'\a' 另一种方式的标题改变,都是bash脚本 说明 : '\e'就是ESCAPE键的转义字符,ASCII码33使用八进制表示就是033,转义表示为\033,\e与\033是等...

qq_43083284的博客 3781

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux-改掉终端显示的当前目录路径

键入PS1='自定义内容' 例如:PS1='[Test]\$' 退出重新登录进入系统后,样式恢复成系统默认的样式 方法来源:Linux 下 去掉终端显示的当前目录的绝对路径 Linux中,去掉终端显示的当前目录的绝对路径 去~/.bashrc中,找到PS1变量的定义,如果没有,手动加上: 可以将显示输出到标题栏上: #export PS1=" \e]2;\u@\H\w\a\e...

Oliver_xpl的博客 1155

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

liunx系统在终端里隐藏命令行当前目录提示

在一些Linux系统的终端里,命令行提示是默认显示当前工作目录的绝对路径,如下: user@system:/folder1/folder2/folder3/folder4$ 当绝对路径比较长的时候就有点烦了,因为输入的命令就不得不过行写(因为第一行里路径就占用太多space了)。 而且terminal的窗口标题就是显示当前目录的绝对路径,加上还有个pwd命令可以显示当前路径,所以

Aguangg_6655_la的博客 2141

命令行高效操控ABP:Linux终端提示符实战技巧

终端提示符(Prompt)是Linux/Unix系统中用户与Shell交互的重要界面元素,通过PS1环境变量控制其显示格式。理解其工作原理后,开发者可以动态调整用户名、主机名、路径等信息的显示方式,并集成Git状态、时间戳等实时数据。这种技术特别适用于服务器维护、多机环境配置等场景,能显著提升命令行操作效率。ABP(Advanced Bash Prompt)作为增强工具,支持通过命令行实时修改颜色方案、多行布局等参数,比传统配置文件方式更灵活。合理使用转义字符和条件判断,可以构建出既美观又实用的智能提示符,

weixin_31240035的博客 195

改变shell命令提示符

改变titlePROMPT_COMMAND=echo -ne "/033]0;${USER}@${HOSTNAME}: ${PWD}/007"这样在terminal的title就会显示用户@机器名:路径。 改变命令提示符的颜色:在~/.bashrc中添加:(绿色)export PS1="/[/033[32m/][/w]/$/[/033[0m/] “ 在/root/.

alex_czhang的专栏 1062

在ubuntu terminal(终端)的命令提示行 隐藏/显示 当前工作目录

ubuntu的终端里,命令行提示是默认显示当前工作目录的绝对路径,如下: user@system:/folder1/folder2/folder3/folder4$ 当绝对路径比较长的时候就有点烦了,因为输入的命令就不得不过行写(因为第一行里路径就占用太多space了)。。 而且terminal的窗口标题就是显示当前目录的绝对路径,加上还有个pwd命令可以显示当前路径,所以个人感觉没必要在命

小小菜鸟蛋の小窝 1万+

linux好看的终端提示符,如何美化您的Linux终端和Shell提示符

原标题:如何美化您的Linux终端和Shell提示符 在本文中,我们将展示一些简单而有趣的Linux技巧来庆祝这个快要到来的2019春节。我们将展示如何使您的终端和shell具有漂亮字符功能。在本指南的最后,您将了解如何使用Bash变量和转义字符自定义shell提示符。在Bash中,可以添加表情符号、更改颜色、添加字体样式,以及在每次绘制提示时执行的运行命令,例如显示git分支。要自定义Linux...

weixin_32508109的博客 623

改变linux终端颜色 和 终端提示符

如果您很容易使 shell 提示行变得色彩绚烂斓且带有更多信息,为什么还要坚持用单调的标准 shell 提示行呢?在这篇技巧中,Daniel Robbins 将说明如何获得符合您的意愿的 shell 提示行,并会说明如何动态更新 X 终端的标题栏。 作为 Linux/UNIX 人,我们有很长的时间是在 shell 中工作,并且在许多情况下,下面这一行就是始终盯着我们的那个提示行: [...

lw585625的博客 393

设置终端颜色详解

PS1 在每条新命令之前所显示的提示符 PS2 如果一条命令没有完成,在一个新行前所显示的提示符 PS3 通过select内置命令显示的提示符 PS4 通过-x调试显示的提示符 在 shell 下,可以通过更改 PS1 环境变量的值来设置提示行,如下所示: $ export PS1="This is my super prompt >" This is my super prompt > 大多数定制的提示行包含诸如用户名、工作目录或主机名之类的信息。例如,下面的提示行将显示您的用户名和主机名:

950

Starship高级配置指南:打造个性化终端提示符

Starship高级配置指南:打造个性化终端提示符 【免费下载链接】starship ☄????️ The minimal, blazing-fast, and infinitely customizable prompt for any shell! ...

gitblog_01112的博客 584

【Linux】环境变量 PS1 设置 Bash 提示符的样式

使用环境变量 PS1 设置 Bash 提示符的样式.

RadiantJeral的博客 2628
上一篇: 用cgroup限制内存以防止Linux因内存用尽卡死
下一篇: BASH让标准输出和错误输出颜色不同
gary博客已迁离请移步
博客等级 码龄10年 2粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值