自定义Centos的终端的命令提示符

2024-04-16 02:28

本文主要是介绍自定义Centos的终端的命令提示符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

当我们使用终端登陆Centos时,就自动打开了ssh终端。这个终端的命令提示符一般是这样的:

这个以#号结束的一行字,就是我们说的命令提示符了。

这个是腾讯云的服务器的提示符,可以看到主机名是VM-4-7-centos。

但是这个看起来好难受,怎么办?

那就改一下呗。

分析

这个命令提示符是可以自定义的。目前默认显示的格式,是由系统的环境变量PS1定义的,配套的还有PS2。PS2是用于定义使用反斜杠转义后第二行开始显示的前缀。

我们可以打印出来这个变量的值:

echo $PS1

echo $PS2

结果:

[root@VM-4-7-centos ~]# echo $PS1 

[\u@\h \W]\$

[root@VM-4-7-centos ~]# echo $PS2

>

我们可以看到变量的值:[\u@\h \W]\$

那么这里面\u、\h、\W和\$是四个特殊的定义,为了可以自由定义格式,我们需要一起了解一下可用定义的清单。

\s :终端的名称

\d :显示【星期 月 日】的日期格式,如:"Mon Jun 26"

\H :完整的主机名

\h :仅取主机名在第一个小数点之前的名字

\t :显示时间,为 24 小时格式的【HH:MM:SS】

\T :显示时间,为 12 小时格式的【HH:MM:SS】

\A :显示时间,为 24 小时格式的【HH:MM】

\@ :显示时间,为 12 小时格式的【am/pm】样式

\u :目前使用者的账号名称

\v :BASH 的版本信息

\w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以 ~ 取代

\W :利用 basename 函数取得工作目录名称,所以仅会列出最后一个目录名

\# :下达的第几个指令

\$ :提示字符,如果是 root 时,提示字符为 # ,否则就是 $ 

示例:

直接在命令行修改PS1的值即可生效。

不过,退出后再登陆又复原了。如何永久生效呢?

全局修改

默认在/etc/bashrc文件中定义了PS1变量的值,其中一行是这样的:

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

这里把PS1最终定义为"[\u@\h \W]\\$ ",也就是我们登陆进去的默认显示格式。

这一行的意思是,如果已经定义了像下面这样的格式:

-bash-4.2# 

这样的提示符,则替换为现在默认看到的格式。

这个是系统级的全局配置,修改之后,所有的登陆用户全部都会应用,修改需要谨慎哈!

修改方法很简单,直接vim打开这个文件,然后把后面的定义修改一下即可。出了反斜杠定义的几个变量外,其他字符都是直接显示的。

需要注意的是,$前必须是两个反斜杠,否则\$不生效。\$是一个特殊的变量,所以前面的反斜杠需要多加一个反斜杠。

单用户修改

因为前面是系统全局的,所以不管是登陆用户,还是应用程序,只要会加载/etc/bashrc的程序都会生效。如果你不想影响其他用户,那么就在自己的用户配置里改就行了。

在自己的目录下(cd ~),然后ls -al可以看到.bashrc这个文件。我们在这个文件最底下添加一个变量定义即可。

这样设置后,不需要退出,直接:

source .bashrc

立即就生效了。当然以后登陆系统,也会生效。这样也不影响其他人。

最终我这样定义:

PS1="[\u@\A \W]\\$ "

显示的效果如下:

[root@20:30 work]# 

这样我始终知道现在的时间,所在的目录以及当前的用户名。这样不是比默认的提示符爽太多了。当然你还可以加入更多好玩的文字,让提示变得更有温度。

当然啦,你还可以修改PS2来定义使用反斜杠来输入多行的提示哦,修改方法和PS1一样。

优先级

对单用户设置的优先级高于全局设置的,也就是说,如果你在.bashrc文件设置了PS1,尽管系统的配置文件/etc/bashrc也设置了,但是对于你这个用户来讲,你的用户的配置文件的优先级更高,直接可以无视系统的设置。但是如果你不设置,那就使用系统的设置了。

总结

命令提示符是我们和Linux打交道对多的东西,定义一个称心如何的提示符是不是非常爽。

来源: 自定义Centos的终端的命令提示符-七秒鱼笔记

这篇关于自定义Centos的终端的命令提示符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907574

相关文章

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

dubbo3 filter(过滤器)如何自定义过滤器

《dubbo3filter(过滤器)如何自定义过滤器》dubbo3filter(过滤器)类似于javaweb中的filter和springmvc中的intercaptor,用于在请求发送前或到达前进... 目录dubbo3 filter(过滤器)简介dubbo 过滤器运行时机自定义 filter第一种 @A