Linux系统下——PS1、PS2、PS3、PS4变量详解

目录

前言 

一、PS1变量

1.PS1变量详解 

2.PS1变量可用参数

3.彩色提示符

二、PS2变量

三、PS3变量

1.不使用PS3变量

2.使用PS3变量

四、PS4变量


前言 

在Linux系统中,PS1PS2PS3PS4是特定的环境变量,它们各自在控制提示符和菜单提示信息方面发挥着不同的作用,这些PS变量在Linux系统中为用户提供了灵活的方式来定制和控制命令行的外观和行为,从而提高了用户与系统的交互体验。

注意:如果要长期永久性修改提示符,可以将修改提示符的命令添加到$Home/.bashrc或$Home/.bash_profile文件中

一、PS1变量

主要用于设置Shell命令提示符。每当你在终端中输入命令时,所显示的字符串就是由PS1变量控制的。

可以根据自己的喜好和需要,自定义PS1变量的值,从而改变命令提示符的外观和格式。

其默认值为:[\u@\h \W]$其表示:显示用户主机名称工作目录,可以在终端窗口输入

因为添加了颜色,所以显示的是设置颜色后的内容

1.PS1变量详解 

字符含义
\u当前用户
\h主机名
\W当前所在目录
$代表特权用户或者普通用户,普通用户$+空格,超级用户#+空格

2.PS1变量可用参数

参数含义
\d日期,格式为weekdat month date
\H完整的主机名称
\h仅取主机的第一个名字
\t显示时间为24小时格式,如:HH:MM:SS
\T显示时间为12小时格式
\A显示时间为24小时格式:HH:MM
\u当前用户的账号名称
\vbash版本信息
\w完整的工作目录名称。家目录会以~代替
\W利用basename取得工作目录名称,所以只会列出最后一个目录
#下达的第几个命令
$提示字符,如果是root,提示符为:#,普通用户则为:$
!命令行动态统计历史命令次数

3.彩色提示符

\[\e[F;Bm\]

字体代码背景代码颜色
3040黑色
3141红色
3242绿色
3343黄色
3444蓝色
3545紫红色
3646青蓝色
3747白色

二、PS2变量

这是第二次提示符,用于交互式的Shell中一条命令多行连接时的显示信息。当你的命令行输入长度超过一行时,系统会使用PS2提示符来继续输入。这使得用户可以轻松地在多行中输入长命令,提高命令行操作的效率。

  • 一个非常长的命令可以通过在末尾加“ \ ”使其分行显示

  • PS2多行命令的默认提示符,默认值是>

三、PS3变量

这个环境变量用于控制select命令创建的菜单提示信息。在Linux中,select命令允许用户从一系列选项中选择一个,而PS3变量则负责定义在选择过程中显示的提示符。通过定制PS3,可以让selec命令的菜单提示更符合需求。

1.不使用PS3变量

[root@localhost ~]#vim ps3.sh
[root@localhost ~]#cat ps3.sh 
#!/bin/bash  echo "以下是一些选项,请选择您想要的选项:"  
select option in "选项1" "选项2" "退出"; do  case $option in  "选项1")  echo "您选择了选项1"  break  ;;  "选项2")  echo "您选择了选项2"  break  ;;  "退出")  echo "退出脚本"  exit 0  ;;  *)  echo "无效的选择,请重新选择"  ;;  esac  
done
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
#? 1
您选择了选项1
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
#? 2
您选择了选项2
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
#? 3
退出脚本

2.使用PS3变量

[root@localhost ~]#vim ps3.sh 
[root@localhost ~]#cat ps3.sh 
#!/bin/bash  # 设置PS3变量以自定义select命令的提示  PS3="请做出选择: "  echo "以下是一些选项,请选择您想要的选项:"  
select option in "选项1" "选项2" "退出"; do  case $option in  "选项1")  echo "您选择了选项1"  break  ;;  "选项2")  echo "您选择了选项2"  break  ;;  "退出")  echo "退出脚本"  exit 0  ;;  *)  echo "无效的选择,请重新选择"  ;;  esac  
done
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
请做出选择: 1
您选择了选项1
[root@localhost ~]#
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
请做出选择: 2
您选择了选项2
[root@localhost ~]#bash ps3.sh 
以下是一些选项,请选择您想要的选项:
1) 选项1
2) 选项2
3) 退出
请做出选择: 3
退出脚本

四、PS4变量

set -x用来修改跟踪输出的前缀,这个变量很少用

[root@localhost etc]#cd /etc/sysconfig/network-scripts/
+ cd /etc/sysconfig/network-scripts/
++ printf '\033]0;%s@%s:%s\007' root localhost /etc/sysconfig/network-scripts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/767052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OceanMind海睿思入选中国信通院《2023高质量数字化转型技术解决方案集》

近日,由中国信息通信研究院“铸基计划”编制的《2023高质量数字化转型技术解决方案集(第一版)》正式发布。 中新赛克海睿思 凭借卓越的产品力以及广泛的行业实践,成功入选该方案集的数据分析行业技术解决方案。 为促进数字化转型…

RIPGeo代码理解(六)main.py(运行模型进行训练和测试)

​代码链接:RIPGeo代码实现 ├── preprocess.py # 预处理数据集并为模型运行执行IP聚类 ├── main.py # 运行模型进行训练和测试 ├── test.py #加载检查点,然后测试 一、导入各种模块和数据库 import torch.nnfrom lib.utils import * import argparse i…

前端制作计算器

用htmlcssjs完成计算器的基本功能&#xff0c;代码如下&#xff1a; HTML代码 <div id"four"> <div class"evaluator"><div class"input"><input type"text"></div><table><tr><td>…

谧林涓露门禁

原神武器升级材料谧林涓露和门禁好像聂。 difference(){union(){cylinder(2, 10,10, $fn365);hull(){translate([15,0,0])cylinder(1,2,2,$fn365);cylinder(1,10,10,$fn365);}}translate([15,0,-1])cylinder(4,1,1,$fn365); }

modelsim与quartus联合仿真ROM读不出数据

modelsim与quartus联合仿真ROM没有数据被读出&#xff0c;很是纳闷。 原因&#xff1a;hex或者mif文件放的不对&#xff0c;放在与db放在同一个文件夹下。modelsim在这个目录查找mif文件或hex。 这是我遇到的问题。当然可能还有其他的问题&#xff1a; 1、mif文件的格式不对&a…

双系统安装03--在已有麒麟KOS基础上安装Windows10

原文链接&#xff1a;双系统安装03–在已有麒麟KOS基础上安装Windows10 Hello&#xff0c;大家好啊&#xff01;继我们之前讨论的关于双系统安装的系列文章之后&#xff0c;今天我将带给大家这个系列的第三篇——在已有的麒麟桌面操作系统上安装Windows 10。对于想要在使用麒麟…

docker安装ES7.1.1(单机版)+ik分词器+es-head可视化

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Elasticsearch 是一…

力扣236 二叉树的最近公共祖先 Java版本

文章目录 题目描述代码 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。

demo演示地址 FlyControls 是 THREE.js 中用于实现飞行控制的类&#xff0c;它用于控制摄像机在三维空间中的飞行。 入参&#xff1a; object&#xff1a;摄像机对象&#xff0c;即要控制的摄像机。domElement&#xff1a;用于接收用户输入事件的 HTML 元素&#xff0c;通常…

C++函数参数传递

目录 传值参数 指针形参 传引用参数 使用引用避免拷贝 使用引用形参返回额外信息 const形参和实参 指针或引用形参与const 数组形参 管理指针形参 使用标记指定数组长度 使用标准库规范 显式传递一个表示数组大小的形参 数组形参和const 数组引用形参 传递多维数…

Django缓存(一)

一、缓存的介绍 官网:Django 缓存框架 | Django 文档 | Django 为什么要什么缓存? 为了减少服务器的计算开销 Django框架自带有一个强大的缓存系统,可以保存动态页面,因此不必为每个请求计算它们。为了方便,Django提供不同级别的缓存粒度:可以缓存特定视图的输出,可以只…

Web核心简介

简介 web&#xff1a;全球广域网&#xff0c;也称万维网(www)&#xff0c;能够通过浏览器访问的网站 JavaWeb&#xff1a;是用Java技术来解决相关web互联网领域的技术栈 JavaWeb技术栈 B/S架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式&#xff0c;它的…

走迷宫----bfs再矩阵图里的应用模版

对于之前走迷宫的那个题 回忆一下dfs的代码 #include <bits/stdc.h> using namespace std; int a[110][110]; bool check[110][110]; int n,m; int ans1e9; int nxt[4][2]{{1,0},{0,-1},{-1,0},{0,1}}; void dfs(int x,int y,int step){if(xn&&ym){ansmin(ans,…

IntelliJ IDEA集成git配置账号密码

1 背景说明 刚使用IDEA,本地也安装Git,在提交和拉取代码的时候,总提示登录框,而且登录框还不能输入账号密码,只能输入登录Token。如下: 从而无法正常使用IDEA的Git功能,很苦恼。 2 解决方法 2.1 安装Git 进入官网地址 https://git-scm.com/,点击下载: 浏览器直接…

机器学习算法那些事 | 使用Transformer模型进行时间序列预测实战

本文来源公众号“机器学习算法那些事”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;使用Transformer模型进行时间序列预测实战 时间序列预测是一个经久不衰的主题&#xff0c;受自然语言处理领域的成功启发&#xff0c;transfo…

WPS制作甘特图

“ 甘特图&#xff08;Gantt chart&#xff09;又称为横道图、条状图&#xff08;Bar chart&#xff09;&#xff0c;通过条状图来显示项目、进度和其他时间相关的系统进展的内在关系随着时间进展的情况。” 设置基础样式 设置行高 设置宽度 准备基础数据 计算持续时间 …

轻松引流几百精准粉丝,抖音自动爆粉秘籍揭秘

对于做互联网的朋友们来说&#xff0c;引流是一个必不可少的环节。 掌握一种优秀的引流方法至关重要&#xff0c;这也可以视为我们的生计之源。 今天&#xff0c;我将向大家介绍一款全自动的引流工具——抖音全自动引流脚本软件。 这款软件的效果非常显著&#xff0c;它可以替…

R-CNN笔记

目标检测之R-CNN论文精讲&#xff0c;RCNN_哔哩哔哩_bilibili 论文背景 在该论文提出之前&#xff0c;主流的目标检测思路是&#xff1a; 将一幅图片划分成很多个区域&#xff0c;单独提取出来 对于每个区域使用传统的特征提取方法提取 提取结束后可以使用以为特征向量表示 可以…

计算方法实验2:列主元消元法和Gauss-Seidel迭代法解线性方程组

Task 即已知 y 0 0 , y 100 1 y_00,y_{100}1 y0​0,y100​1&#xff0c;解线性方程组 A y b \mathbf{A}\mathbf{y} \mathbf{b} Ayb&#xff0c;其中 A 99 99 [ − ( 2 ϵ h ) ϵ h 0 ⋯ 0 ϵ − ( 2 ϵ h ) ϵ h ⋯ 0 0 ϵ − ( 2 ϵ h ) ⋯ 0 ⋮ ⋮ ⋱ ⋱ ⋮ 0 0 ⋯…

C++命名空间和内联函数

目录 命名空间 内联函数 概述 特性&#xff1a; 命名空间 在C/C中&#xff0c;变量&#xff0c;函数和和类这些名称都存在于全局作用域中&#xff0c;可能会导致很多冲突&#xff0c;使用命名空间的目的是对标识符的名称进行本地化&#xff0c;避免命名冲突或名字污染&…