Linux下关于Bash提示符的一些操作详解

这篇文章主要介绍了linux bash 提示符的一些骚操作,一些能让你自定义 bash 提示符的黑科技,需要的朋友可以参考下

一些能让你自定义 Bash 提示符的黑科技

当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符:

[user@$host ~]$

你知道命令行提示符其实是可以自己设置添加许多非常有用的信息的吗?在这篇文章中我就会教你如何自定义自己的 Bash 命令行提示符,想看的话就接着看吧~

如何设置 Bash 提示符

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

[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ "[Linux Rulez] export PS2="... "[Linux Rulez] if true; then... echo "Success!"... fiSuccess!

在哪里设置 PS1 的值?

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

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

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

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

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

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

u:用户名

h:短主机名

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

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

:Shell 的版本号

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

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

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

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

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

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

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

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

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

多行提示符

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

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

还能再好玩点吗?

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

PS1="[e[31m]D{%c}[e[0m]   [e[36m]w[e[0m][[e[1;43m]u[e[0m]@H]$ "

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

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

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

36m :表示是青蓝色字体

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

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

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

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

(照片来源:ajmexico. 修改自 Jason Baker. CC BY-SA 2.0.)

作者简介:

Dave Neary – Dave Neary 是红帽开源和标准化团队成员,帮助开源项目对红帽的成功至关重要。自从在 1999 年为 GIMP 提交了第一个补丁以来,他一直带着各种不同的帽子,在开源的世界徜徉。

以上就是Linux下关于Bash提示符的一些操作详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/185301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Flink打包后集群提示内存不足,如何解决?
上一篇 2026年9月4日 19:57:42
VSCode怎么弄颜色_VSCode自定义语法高亮和主题颜色教程
下一篇 2026年9月4日 20:01:58

相关推荐

  • Linux怎么使用systemctl管理服务

    Linux怎么使用systemctl管理服务Linux怎么使用systemctl管理服务Linux怎么使用systemctl管理服务Linux怎么使用systemctl管理服务

    systemctl是Linux中管理systemd服务的核心工具,提供统一命令集来启动、停止、重启、查看服务状态及设置开机自启,支持并行启动、依赖管理与Cgroups资源控制,相比SysVinit更高效;通过创建/etc/systemd/system/下的.service文件可自定义服务,包含[Un…

    2026年9月21日 用户投稿
    100
  • Linux如何查看命令别名alias使用方法

    直接输入 alias 命令可列出当前会话所有别名,如需查看特定命令是否为别名可用 type 命令;别名通过简化常用命令提升效率并减少错误,临时别名在当前会话生效,永久别名需写入 ~/.bashrc 或 ~/.zshrc 文件,删除则用 unalias 命令;别名适用于简单命令替换,函数支持参数与逻辑…

    2026年9月21日
    000
  • Linux怎么监控特定进程的运行状态

    Linux怎么监控特定进程的运行状态Linux怎么监控特定进程的运行状态Linux怎么监控特定进程的运行状态Linux怎么监控特定进程的运行状态

    监控Linux进程需综合使用ps、top、htop、pgrep和systemctl等工具,结合资源占用、进程状态、日志输出和进程数量判断是否异常,并通过systemd的Restart机制或看门狗脚本实现自动重启,同时利用journalctl、sar、atop及Prometheus+Grafana等方…

    2026年9月21日 用户投稿
    000
  • mysql如何启用binlog日志

    MySQL启用binlog需修改配置文件添加log-bin和server-id,重启服务后执行SHOW VARIABLES LIKE ‘log_bin’验证是否为ON,确认启用。 MySQL启用binlog日志需要修改配置文件并重启服务,同时可进行简单验证确保生效。以下是具体…

    2026年9月21日
    000
  • Linux命令行如何查看登录用户

    Linux命令行如何查看登录用户Linux命令行如何查看登录用户Linux命令行如何查看登录用户Linux命令行如何查看登录用户

    答案是 who、w 和 users 命令用于查看Linux系统登录用户,其中 who 显示登录用户及终端信息,w 还显示用户正在执行的命令和系统负载,users 仅输出用户名列表。 在Linux命令行下,要查看当前系统上有哪些用户登录,最直接、最常用的命令包括 who 、 w 和 users 。它们…

    2026年9月21日 用户投稿
    100
  • Linux如何限制用户执行特定命令

    Linux如何限制用户执行特定命令Linux如何限制用户执行特定命令Linux如何限制用户执行特定命令Linux如何限制用户执行特定命令

    首选sudo进行命令限制,因其灵活且可审计;通过visudo配置精确的用户权限,结合白名单、命令别名和!语法实现允许或拒绝特定命令;同时防范绕过手段如全路径执行、间接调用、脚本执行等,需多层防御并辅以日志监控。 在Linux环境中,限制用户执行特定命令,最直接有效且灵活的方法通常是利用 sudo 权…

    2026年9月21日 用户投稿
    100
  • Linux如何创建符号链接和硬链接

    Linux如何创建符号链接和硬链接Linux如何创建符号链接和硬链接Linux如何创建符号链接和硬链接Linux如何创建符号链接和硬链接

    符号链接是快捷方式,指向文件或目录路径,原文件删除后链接失效;2. 硬链接共享同一inode,不能跨文件系统或链接目录;3. 使用ln -s创建符号链接,ln创建硬链接;4. 符号链接可跨分区,硬链接删除原文件后仍可访问数据。 在Linux中,创建符号链接(软链接)和硬链接是管理文件和目录的常用操作…

    2026年9月21日 用户投稿
    000
  • Linux如何查看sudo执行的历史记录

    Linux如何查看sudo执行的历史记录Linux如何查看sudo执行的历史记录Linux如何查看sudo执行的历史记录Linux如何查看sudo执行的历史记录

    要追溯sudo执行的命令,需查看系统日志或配置sudo日志;在Ubuntu/Debian中查/var/log/auth.log,CentOS/RHEL中查/var/log/secure,或使用journalctl _COMM=sudo筛选;通过配置/etc/sudoers中的Defaults log…

    2026年9月21日 用户投稿
    300
  • 如何为VSCode安装新的字体?

    先在操作系统安装字体文件,再在VSCode设置中指定字体名称。1. Windows右键安装.ttf/.otf文件,macOS用字体册安装,Linux复制到~/.fonts并运行fc-cache -fv;2. VSCode中通过设置界面或编辑settings.json修改”editor.f…

    2026年9月21日
    000
  • mysql如何配置ssl安全连接

    MySQL支持SSL时返回YES,通过生成证书并配置my.cnf中的ssl-ca、ssl-cert、ssl-key启用SSL,创建REQUIRE SSL用户确保加密连接,客户端连接需指定证书参数,STATUS或Ssl_cipher验证加密状态。 MySQL 配置 SSL 安全连接可以提升数据库通信的…

    2026年9月21日
    200
  • Linux如何升级源码编译安装的软件

    Linux如何升级源码编译安装的软件Linux如何升级源码编译安装的软件Linux如何升级源码编译安装的软件Linux如何升级源码编译安装的软件

    升级源码编译软件需手动操作,核心是卸载旧版后编译安装新版。1. 确认当前版本、路径及编译参数;2. 下载并解压新版本源码,核对完整性;3. 使用相同配置参数执行 ./configure 和 make 编译;4. 停止旧服务,执行 make install 覆盖文件;5. 验证版本与配置,启动服务并检…

    2026年9月21日 用户投稿
    100
  • 如何在Java中配置系统环境变量以运行程序

    正确配置Java环境变量是运行Java程序的前提。1. 安装JDK并记住安装路径,如Windows下为C:Program FilesJavajdk-17,macOS/Linux下为/usr/lib/jvm/jdk-17。2. 设置JAVA_HOME环境变量:Windows在系统变量中新建JAVA_H…

    2026年9月21日
    100
  • Valkey 9.0.0 正式 GA,Linux 基金会维护的 Redis 分支

    由 linux 基金会主导维护的 redis 分支——开源内存数据库 valkey 9.0.0 正式发布,现已进入通用可用(ga)阶段。本次版本带来了多项关键性的性能提升与功能增强,重点聚焦于更高效的集群数据迁移、精细化的哈希字段管理能力,以及对大规模分布式部署场景的深度优化。 原子化槽位迁移(At…

    2026年9月21日
    100
  • 如何在Linux中命令分组 Linux括号与花括号区别

    括号()在子shell执行,不影响当前环境;花括号{}在当前shell执行,共享环境变量。示例显示括号内变量修改不生效,花括号内修改生效。选择依据:需隔离用括号,需共享用花括号。常见错误:花括号缺分号、混淆两者作用域。 在Linux中,命令分组主要使用括号和花括号来实现,它们在功能和执行方式上有所不…

    2026年9月21日
    200
  • Linux系统信息查看命令整理

    答案:掌握Linux系统需从系统信息、资源使用、性能瓶颈、日志分析和用户权限五方面入手。uname、lscpu、free、df、ip、ss等命令用于查看系统软硬件状态;top、htop、vmstat、iostat、iftop等可诊断CPU、内存、磁盘、网络性能瓶颈;/var/log日志文件结合jou…

    2026年9月20日
    100
  • mysql如何启用query cache

    MySQL 5.7及之前版本可通过配置启用Query Cache以提升读取性能,首先确认支持性:执行SHOW VARIABLES LIKE ‘have_query_cache’,若返回YES则可继续。接着在my.cnf或my.ini的[mysqld]段添加query_cach…

    2026年9月20日
    200
  • 如何为VSCode配置LaTeX环境,使其成为撰写学术论文的利器?

    首先安装LaTeX发行版和VSCode插件LaTeX Workshop,再配置XeLaTeX+BibTeX编译链,最后利用实时预览、反向搜索和代码片段等功能实现高效学术写作。 要在 VSCode 中配置 LaTeX 环境,打造高效的学术写作工具,关键在于正确安装和集成相关插件与编译工具。整个过程不复…

    2026年9月20日
    600
  • Linux如何用firewalld开放服务端口

    Linux如何用firewalld开放服务端口Linux如何用firewalld开放服务端口Linux如何用firewalld开放服务端口Linux如何用firewalld开放服务端口

    firewalld通过预定义服务或直接添加端口实现端口开放,需确保服务运行并执行reload生效;使用firewall-cmd可管理服务与端口,配合systemctl控制服务状态,最后通过list命令验证配置。 在Linux系统中,firewalld是动态管理防火墙的服务,支持网络区域、接口绑定和服…

    2026年9月20日 用户投稿
    200
  • 如何安装mysql GUI管理工具

    首选安装MySQL Workbench,Windows下载MSI安装,macOS拖拽DMG到应用,Linux用apt命令安装,也可选phpMyAdmin、DBeaver等工具。 安装 MySQL 图形化管理工具(GUI)可以让你更方便地操作数据库,比如建表、查询、备份等。最常用且官方推荐的工具是 M…

    2026年9月20日
    100
  • Linux如何配置NAT实现端口映射

    Linux如何配置NAT实现端口映射Linux如何配置NAT实现端口映射Linux如何配置NAT实现端口映射Linux如何配置NAT实现端口映射

    首先启用IP转发,再通过iptables配置DNAT实现端口映射,将外部请求重定向到内网主机,如将公网2222端口映射至192.168.1.100的22端口;若需回包正确返回,还需配置MASQUERADE或SNAT规则;最后保存规则确保重启生效,并确认防火墙允许相应端口通信。 在Linux中配置NA…

    2026年9月20日 用户投稿
    000

发表回复

登录后才能评论
关注微信