当前位置: 首页 > news >正文

修改shell的命令提示符

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

一、命令提示符格式

从虚拟控制台登陆后,或者从桌面环境的终端进入shell后,就可以看见shell的命令提示符,这意味着可以输入命令了。注意,命令提示符不是命令的一部分,它只是起到一个提示作用。

典型的命令提示符格式如下:

[username@host directory]$
  • username是当前登陆的用户。
  • @是分隔符,没有特殊含义。
  • host是当前系统的主机名。
  • directory是当前的路径。
  • $是命令提示符,标识登录的用户权限等级:root 用户则为#,普通用户则为$

比如我使用的ubuntu,进入桌面终端后显示如下。

xjh@ubuntu:~$ 

这里的xjh就是我的用户名,ubuntu就是当前系统的主机名,~表示/home/xjh,$表示我的权限是普通用户。很奇怪这里没有“[ ]”,可能是之前我暗戳戳地修改了格式?

二、修改命令行提示符 

1、理论

Shell 通过PS1PS2这两个环境变量来控制提示符的格式,修改PS1PS2的值就能修改命令提示符的格式。其中PS1 控制最外层的命令提示符格式,而PS2 控制第二层的命令提示符格式。

下面的例子不是我主机的情况,而是为了简单起见所举的例子。

在修改 PS1 和 PS2 之前,我们先用 echo 命令输出它们的值,看看默认情况下是什么样子的:

#我的ubuntu显示比较复杂
xjh@ubuntu:~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
xjh@ubuntu:~$ echo $PS2
>
xjh@ubuntu:~$ #简单与对照得上的
[mozhiyan@localhost ~]$ echo $PS1
[\u@\h \W]\$
[mozhiyan@localhost ~]$ echo $PS2
>

 Linux 使用(以\为前导的)特殊字符来表示命令提示符中包含的要素,这使得 PS1 和 PS2 的格式看起来可能有点奇怪。下表展示了可以在 PS1 和 PS2 中使用的特殊字符。

Bash shell 命令提示符可以包含的要素
字符描述
\a铃声字符
\d格式为“日 月 年”的日期
\eASCII 转义字符
\h本地主机名
\H完全合格的限定域主机名
\jshell 当前管理的作业数
\1shell 终端设备名的基本名称
\nASCII 换行字符
\rASCII 回车
\sshell 的名称
\t格式为“小时:分钟:秒”的24小时制的当前时间
\T格式为“小时:分钟:秒”的12小时制的当前时间
\@格式为 am/pm 的12小时制的当前时间
\u当前用户的用户名
\vbash shell 的版本
\Vbash shell 的发布级别
\w当前工作目录
\W当前工作目录的基本名称
\!该命令的 bash shell 历史数
\#该命令的命令数量
\$如果是普通用户,则为美元符号$;如果超级用户(root 用户),则为井号#
\nnn对应于八进制值 nnn 的字符
\\斜杠
\[控制码序列的开头
\]控制码序列的结尾

注意,所有的特殊字符均以反斜杠\开头,目的是与普通字符区分开来。您可以在命令提示符中使用以上任何特殊字符的组合。

2、实例

通过修改PS1 变量的值来修改命令提示符的格式

xjh@ubuntu:~$ PS1="[\t][\u]\$ "
[12:28:09][xjh]$ 
[12:28:13][xjh]$ PS1="[abcdefgh]\$ "
[abcdefgh]$ 
[abcdefgh]$ 

但是通过这种方式修改的命令提示符只在当前的 Shell 会话期间有效,再次启动 Shell 后(切换root之后再切换回xjh时)将重新使用默认的命令提示符。

如果希望持久性地修改 PS1,让它对任何 Shell 会话都有效,那么就得把 PS1 变量的修改写入到 Shell 启动文件(即~/.bashrc 文件)中,即在该文件中添加下述代码,然后重新启动shell,命令提示符就变成了“[abcdefgh]$”。 

PS1="[abcdefgh]\$ "

相关文章:

修改shell的命令提示符

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 一、命令提示符格式 从虚拟控制台登陆后,或者从桌面环境的终端进入shell后,就可以看见shell的命令提示符,这意味着可以输入命令了。注意&#xff…...

介绍并比较Apache Hive支持的文件格式

Apache Hive 支持几种熟知的Hadoop使用的文件格式,Hive也能加载并查询其他Hadoop组件创建的不同文件格式,如Pig或MapReduce。本文对比Hive不同文件格式,如:TextFile, SequenceFile, RCFile, AVRO, ORC,Parquet,Clouder…...

C语言之文件操作

目录 一、什么是文件? 二、C语言如何操作文件 1.操作方式 2.文件指针 2.1 定义文件指针 2.2文件的打开与关闭 2.3文件的顺序读写 2.3文件的随机读写 总结 一、什么是文件? 在电脑磁盘的上的文件。在程序设计中,分为两种:程序…...

Linux->父子进程初识和进程状态

目录 前言: 1. 父子进程创建 2. 进程状态 R(running)状态: S(sleep)状态: D(disk sleep)状态: T(stopped)状态: X(dead)和Z(zombie)状态: 孤儿进程: 前言: 本篇主要讲解关…...

【Linux学习笔记】5.Linux 用户和用户组管理

前言 本章介绍Linux的用户和用户组管理。 Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以…...

茂名市 2021 年高中信息技术学科素养展评

没事干,发一下去年去比赛的题目。 目录 第一题 30分 第二题 30分 第一题 30分 题目: “姐姐,乘除法运算太难了,有什么办法能熟练掌握吗?”今年 读小学四年级的表弟向李红求救。为了提高表弟的运算能力,…...

【软件测试】测试人不躺平,进军高级自动化测试自救,你的不一样结局......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 随着测试从业年龄的…...

win10环境下安装java开发环境安装java

一:环境介绍 安装系统版本:win10 java版本:java SE 17 二:下载Java安装包 官网下载Java安装包:Java Downloads | Oracle 中国 选择需要的Java版本进行下载,如果没有要选择的版本,可以选择最新…...

【华为OD机试模拟题】用 C++ 实现 - 开心消消乐(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

opencv图像融合

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

没有经验的时候,怎么搞定面试?

在之前的面试技巧,如何写简历上面,我讲了一些方法,希望大家重 视起来。核心其实就一点:他们想要你表现什么能力,以及你在 这个能力之外还有什么。 看清楚这句话的含义,你就可以做到百发百中。具体怎么训练&…...

整数保序的离散化(C/C++)

目录 1. 离散化的概念 1.1 离散化的运用思路 1.2 离散化的方法 1.2.1 排序 1.2.2 确定一个元素离散化后的结果 1.3 案例分析 1.3.1 1.3.2 区间和 (来源:Acwing) 1. 离散化的概念 离散化,把无限空间中有限的个体映射到有限的…...

python--排序总结

1.快速排序 a.原理 快速排序的基本思想是在待排序的 n 个元素中任取一个元素(通常取第一个元素)作为基准,把该元素放人最终位置后,整个数据序列被基准分割成两个子序列,所有小于基准的元素放置在前子序列中&#xff0…...

进化的隐藏水印:深度学习提升版权保护的鲁棒性

一、前言 过去几年,以网络视频为代表的泛网络视听领域的崛起,是互联网经济飞速发展最为夺目的大事件之一。泛网络视听领域不仅是21世纪以来互联网领域的重要基础应用、大众文化生活的主要载体,而且在推动中国经济新旧动能转化方面也发挥了重…...

Jenkins配置项目教程

在上一篇[Jenkins的使用教程](https://blog.csdn.net/weixin_43787492/article/details/129028131?spm1001.2014.3001.5501)中我介绍了如何创建一个项目 Jenkins在创建项目中提供了很多功能供我们选择,这里我将对配置项目做一个较完整的介绍Jenkins配置项目0、所有…...

C++多继承,虚继承部分总结与示例

tags: C OOP 写在前面 写一下多继承, 虚继承的一些部分, 包括一些例子. 多继承 简介 多继承是指从多个直接基类中产生派生类的能力. 多继承的派生类继承了所有父类的属性, 所以会带来一些复杂的问题. 示例1: 多继承用法与调用顺序 #include <string> #include <…...

程序员35岁以后就没有出路了吗?听听京东10年测开的分析

国内的互联网行业发展较快&#xff0c;所以造成了技术研发类员工工作强度比较大&#xff0c;同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高&#xff0c;超过35岁的基层研发类员工&#xff0c;往往因为家庭原因、身体原因&#xff0c;比较难以跟得上工作…...

数据结构(六):冒泡排序、选择排序、插入排序、希尔排序、快速排序

数据结构&#xff08;六&#xff09;一、大O表示法二、冒泡排序三、选择排序一、大O表示法 在计算机中采用粗略的度量来描述计算机算法的效率&#xff0c;这种方法被称为“大O”表示法。 我们判断一个算法的效率&#xff0c;不能只凭着算法运行的速度&#xff0c;因为随着数据…...

C++之类与对象(上)

目录 一、类的定义 二.类的访问限定及封装 1.访问限定 2.封装 三.类的作用域和实例化 2.类的实例化 四.类的对象大小的计算 1.类成员存储方式 2.结构体内存对齐规则 五.类成员函数的this指针 1.this指针的引出 2.this指针的特性 3.C语言和C实现Stack的对比 一、类的定义 class …...

Java岗面试题--Java并发 计算机网络(日积月累,每日三题)

目录1. 面试题一&#xff1a;在 Java 程序中怎么保证多线程的运行安全&#xff1f;1.1 追问一&#xff1a;Java 线程同步的几种方法&#xff1f;2. 面试题二&#xff1a;JMM3. 面试题三&#xff1a;计算机网络的各层协议及作用&#xff1f;1. 面试题一&#xff1a;在 Java 程序…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...