Linux PS1 提示定制终极指南

2023-10-25

PS1(或提示字符串 1)是主要提示变量,它定义 Linux shell 环境中命令行提示的外观和元素。

它提供了多个自定义选项,使您的命令提示符信息更丰富且更具视觉吸引力。本教程将讨论这些细节,增强您的命令行界面体验。

 

 

查看当前 PS1

您可以使用以下命令查看当前的 PS1 字符串:


echo $PS1
  

Output:


\u@\h:\w\$
  

命令echo $PS1显示 PS1 的值环境变量,代表提示字符串的当前状态。

在这里,转义码充当各种信息的占位符:

  • \u:当前用户名
  • \h:主机名到第一个点
  • \w:当前工作目录
  • \$:显示$对于普通用户来说,#对于根

 

PS1 转义序列

以下是可在 PS1 中用于自定义提示的转义序列的完整列表:

  • \a: ASCII 响铃字符
  • \d:日期,格式为“工作日月日”
  • \e: ASCII 转义字符
  • \h:主机名,直到第一个点
  • \H:完整主机名
  • \j:当前由 shell 管理的作业数量
  • \l:shell 终端设备名称的基本名称
  • \n: 新队
  • \r: 回车
  • \s: 外壳名称
  • \t:24 小时制 HH:MM:SS 格式的当前时间
  • \T:12 小时制 HH:MM:SS 格式的当前时间
  • \@:当前时间(上午 12 点/下午 12 点)格式
  • \u:当前用户名
  • \v: Bash 版本
  • \V:Bash 的发布,版本 + 补丁级别
  • \w:当前工作目录,$HOME 缩写为波浪号
  • \W: 的基本名称$PWD, with $HOME用波形符缩写
  • \!:该命令的历史编号
  • \#:该命令的命令号
  • \$:如果UID为0,#, 否则$
  • \\: 反斜杠
  • \nnn:八进制数nnn对应的字符
  • \e[...m:终端转义序列(允许着色)

您可以使用这些转义序列来制作信息丰富且令人愉​​悦的命令提示符。

 

简单的文本定制

您可以简单地在 PS1 字符串中包含您想要的任何文本。这是一个例子:


export PS1="MyCustomPrompt:\w\$ "
  

Output:


MyCustomPrompt:/path/to/directory$
  

此处,文本“MyCustomPrompt”已放置在提示字符串的开头,后跟当前工作目录。

 

在 PS1 中使用颜色

以下是在 PS1 中使用颜色的方法:


export PS1="\e[31m\u@\h:\e[32m\w\e[0m\$ "
  

Output:


user@hostname:/path/to/directory$
  

这里,用户名和主机名是红色的(\e[31m),工作目录为绿色(\e[32m).

The \e[0m将后续文本的颜色重置为默认值。

  • \e[31m: Red
  • \e[32m: Green
  • \e[33m: Yellow
  • \e[34m: Blue
  • \e[35m:洋红色
  • \e[36m: Cyan
  • \e[37m: White

您可以使用这些颜色代码来创建具有视觉吸引力且信息丰富的提示。

 

有条件定制

您可以根据条件自定义提示。具体做法如下:


if [ "$USER" = "root" ]; then
  PS1="\e[31m\u@\h:\w\$\e[0m "
else
  PS1="\u@\h:\w\$ "
fi
  

root 用户的命令输出:


root@hostname:/path/to/directory$
  

此代码片段检查当前用户是否为“root”,并将红色应用于 root 提示,而对其他用户则保持不变。

此类条件自定义可以扩展为包括其他属性,例如主机名、环境等。

 

显示Git分支信息

对于那些使用 Git 存储库的人来说,在提示中包含当前分支名称会很方便。就是这样:


export PS1="\u@\h:\w\$(git rev-parse --abbrev-ref HEAD 2>/dev/null)\$ "
  

Output:


user@hostname:/path/to/repo/master$
  

命令git rev-parse --abbrev-ref HEAD检索当前的 Git 分支名称,并在提示字符串本身内执行。

如果不在 Git 存储库中,它将不会在工作目录之后显示任何内容。

 

使用子shell函数

您可以使用子 shell 函数将动态内容合并到 PS1 中。这是一个例子:


get_loadavg() {
  awk '{ print $1 }' /proc/loadavg
}
export PS1="\u@\h:\w Load:\$(get_loadavg)\$ "
  

Output:


user@hostname:/path/to/directory Load:0.45$
  

在这里,get_loadavg函数获取系统的平均负载/proc/loadavg,提示执行该函数,显示负载平均值。

 

使用 ASCII 艺术和自定义符号

您可以在提示中包含 ASCII 艺术或自定义符号。这是一个简单的例子:


export PS1="									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux PS1 提示定制终极指南 的相关文章

随机推荐

  • 如何更改 SFTP 端口

    SFTP SSH 文件传输协议 是一种安全文件协议 用于通过加密连接在两台主机之间传输文件 它还允许您对远程文件执行各种文件操作并恢复文件传输 SFTP 可用作旧版 FTP 协议的替代品 它具有 FTP 的所有功能 但连接更安全 本文介绍如
  • 如何在 Ubuntu 18.04 上设置或更改时区

    在 Ubuntu 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 使用正确的时区对于许多与系统相关的任务和流程都很重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于相同的时区 本教程演示如
  • 如何在 Debian 9 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中 我们将指导您如何安装Yarn在 Debian 9 系统上
  • 如何在 Ubuntu 18.04 上安装 Django

    Django 是一个免费开源的高级 Python Web 框架 旨在帮助开发人员构建安全 可扩展和可维护的 Web 应用程序 有不同的方法来安装 Django 具体取决于您的需要 它可以在系统范围内安装 也可以使用 pip 安装在 Pyth
  • 如何在 Linux 中添加目录到 PATH

    当您在命令行上键入命令时 您基本上是在告诉 shell 运行具有给定名称的可执行文件 在Linux中 这些可执行程序就像ls find file和其他文件 通常位于系统上的几个不同目录中 存储在这些目录中的任何具有可执行权限的文件都可以从任
  • 如何在 CentOS 8 上设置或更改时区

    使用正确的时区对于许多与系统相关的任务和流程至关重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于同一系统的时区 在 CentOS 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 本文介绍
  • Python range() 函数

    蟒蛇rangetype 通过定义范围的起点和终点来生成整数序列 它通常与for循环迭代数字序列 range 在 Python 2 和 3 中的工作方式有所不同 在Python 2中 有两个函数可以让你生成整数序列 range and xra
  • Linux 中的正常运行时间命令

    在本教程中 我们将介绍uptime命令 顾名思义 uptime命令显示系统已经运行了多长时间 它还显示当前时间 登录用户数以及过去 1 5 和 15 分钟的系统负载平均值 如何使用正常运行时间命令 uptime 命令的语法如下 uptime
  • 如何在 CentOS 7 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种标准的客户端 服务器网络协议 允许用户在远程网络之间传输文件 有多种可用于 Linux 的开源 FTP 服务器 最流行和最广泛使用的是PureFTPd ProFTPD and vsftpd 在本教程中 我们将在
  • Python while 循环

    循环是编程语言的基本概念之一 当您想要多次重复特定的代码块直到满足给定条件时 循环会很方便 Python中有两种基本的循环结构 for and while loops 本教程涵盖了以下基础知识whilePython 中的循环 我们还将向您展
  • NumPy loadtxt 教程(从文件加载数据)

    在之前的教程中 我们讨论过NumPy 数组 我们看到了它如何使读取 解析和对数字数据执行操作的过程变得轻而易举 在本教程中 我们将讨论 NumPy loadtxt 方法 该方法用于解析文本文件中的数据并将其存储在 n 维 NumPy 数组中
  • Linux Bash 脚本编写第 3 部分 – 参数和选项

    到目前为止 您已经了解了如何编写无需用户输入即可完成工作的 Linux bash 脚本 今天我们将继续我们的 Linux bash 脚本系列 如果您想了解我们在谈论什么 我建议您查看之前的帖子 Bash 脚本基础知识 Bash 脚本 For
  • Pythonnamedtuple(将元组提升到一个新的水平)

    在本教程中 我们将深入研究命名元组 它们是什么 如何创建和操作它们 以及何时使用它们 或不使用它们 命名元组是Python内置的一部分收藏模块 并且它们提供了一种将数据捆绑在一个名称下的便捷方法 它们是 Python 内置元组数据类型的子类
  • 使用 Python 处理 CSV:综合教程

    CSV 逗号分隔值 文件是存储和共享表格数据的最常见方法之一 这些文件由行和列组成 其中每行代表一个记录 列包含由分隔符 通常是逗号 分隔的值 Python 提供了多种内置方法来处理 CSV 文件 使您可以高效地读取 写入和操作数据 本教程
  • Linux Bash 脚本编写第 5 部分 – 信号和作业

    在上一篇文章中 我们谈到了输入 输出和重定向在 bash 脚本中 今天我们将学习如何在Linux系统上运行和控制它们 到目前为止 我们只能从命令行界面运行脚本 但这并不是运行 Linux bash 脚本的唯一方法 这篇文章描述了控制 Lin
  • 使用curl命令的SSL/TLS:安全连接指南

    卷曲命令是一种发出网络请求的工具 它在通过 HTTPS 与安全服务器通信时使用 SSL TLS 默认情况下 curl尝试在可用时使用安全连接 但了解如何控制和诊断这些连接至关重要 目录 hide 1 使用客户端证书 2 指定证书类型 3 使
  • 如何使用 tqdm 创建 Python 终端进度条?

    进度条是估算和显示任务所需时间的宝贵工具 这些也可以添加到您的 Python 脚本或代码块中 以指示代码执行所需的时间 Python 中有多种可用的库 例如progressbar and tqdm可以用于此目的 目录 hide 1 什么是
  • 使用 Linux curl 命令管理 Cookie

    与 Web 应用程序交互时 您会遇到处理 cookie 和会话的需要 在本教程中 您将学习如何使用卷曲命令发送 接收和管理 cookie 目录 hide 1 手动发送 Cookie 标头 2 存储从服务器接收到的 Cookie 3 通过请求
  • 正确理解 Linux 运行级别

    您可以将 Linux 运行级别视为操作系统运行的不同 模式 每种模式或运行级别都有其打开或关闭的进程和服务列表 从 Linux 启动时起 它就始终处于某个运行级别 当您继续使用计算机时 此运行级别可能会发生变化 具体取决于操作系统需要访问的
  • Linux PS1 提示定制终极指南

    PS1 或提示字符串 1 是主要提示变量 它定义 Linux shell 环境中命令行提示的外观和元素 它提供了多个自定义选项 使您的命令提示符信息更丰富且更具视觉吸引力 本教程将讨论这些细节 增强您的命令行界面体验 目录 hide 1 查
Powered by Hwhale