Linux下命令提示符的修改,PS1的个项参数详解

1. 需要解决的问题

  1.在linux下虽然很方便,但是当登录多个服务器,或者有时需要去分辨这些问题,这无疑是很大的不方便,假如有一种方法能轻易分辨那就很方便了。

  2.没错,就是有这样的方法,那就是修改PS1环境变量,具体参数及用法实验,我们接下来看。

2. 对PS1的分析

  2.1 本次操作系统,Ubuntu

  2.3 首先我来看看我现在命令行,显示如下:

[email protected]64:~$
[email protected]-64:~$
[email protected]-64:~$
[email protected]-64:~$
[email protected]-64:~$
[email protected]-64:~$

 

看见了吧,这就是我当前命令提示符,我们来把我当前的提示符([email protected]:~$)拆开看看在拆解前我们先做一件事情,先执行一个命令,显示如下:
1 [email protected]64:~$ echo $PS1
2 \[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$
3 [email protected]64:~$ 
我们执行echo $PS1 得到一个结果(\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$),这个结果我们用到的只有后面的“ \[email protected]\h:\w\$ ”好了,自此我们来拆解 [email protected]:~$   与   \[email protected]\h:\w\$  linoxwong  -----------------------  当前我的用户名  对应   \u  @  对应的就是 @  Ubuntu1901-64 --------------------  当前我的主机名  对应   \h  : 对应  :  ~  ------------------------------  当前的所在的目录  对应  \w   因为是我当前在家目录   正好是 ~ 代表的就是家目录   \$ ------------------------------   对应的就是 $  这里注意一点,普通用户$    如果是root用户的话是#
[email protected]64:~#
[email protected]-64:~#
[email protected]-64:~#
[email protected]-64:~# 
  3.1 由上的分析,我们知道了 /u  /w  /h  等 分别代表 ,用户,当前目录,主机,当然还有其它的分别含义,列出如下:

  \d :代表日期,格式为weekday month date,例如:"sun Sep 21"


  \H :完整的主机名称


  \h :仅取主机名中的第一个名字


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


  \T :显示时间为12小时格式


  \A :显示时间为24小时格式:HH:MM


  \u :当前用户的账号名称


  \v :BASH的版本信息


  \w :完整的工作目录名称


  \W :利用basename取得工作目录名称,只显示最后一个目录名


  \# :下达的第几个命令


  \$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $

  \\   反斜杠

  \[   这个序列应该出现在非打印字符序列之前。

  \]   这个序列应该出现在非打印字符序列之后。

  例如:\[这里的东西不会被echo打印\]    \[ 与 \]  之间的内容有些类似注释的  

3.2 除了以上外,命令提示符可以设置颜色,这是很棒的一点,颜色来区分再好不过  以  \e[f;bm 是设置颜色的格式  f,是字体颜色,  b,所表示是命令行的背景颜色,记得后面的 m 要带上,以下是颜色表:

    30  40 黑色

    31  41 红色

    32  42 绿色

    33  43 黄色

    34  44 蓝色

    35  45 紫红色

    36  46 青蓝色

    37  47 白色

例如:我要设置字体为蓝色,背景为红色的提示符,注意,f,的取值范围是30~37,b 取值范围 40~47,所以我们得到了 \e[34;41m,现在我们在把 刚刚得到的PS1的\[email protected]\h:\w\$前面加上 \e[34;41m, 最终得到如下:
\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\e[34;41m\[email protected]\h:\w\$
我们来测试是不是有效果,如果得到的是蓝字红底的那就对了 请看如下演示:
[email protected]64:~$PS1="\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\e[34;41m\[email protected]\h:\w\$"

有图有真相,蓝字红底,如你所见。但是这样会有一个问题,是什么呢?接下来看

3.3 成功的设置为蓝字红底之后还有问题,有什么问题呢,你试着在命令提示符后面输入一些命令,如图下:
发现问题没有,当我输入命令以后,系统会之后所有的输出都变成了我们刚刚设置的颜色,如此这样过于花哨跟抢眼,不太好,所以,我们继续修改PS1的值,应该怎么改呢? 很简单 在刚刚的后面我们加点东西。

\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\e[34;41m\[email protected]\h:\w\$\e[0m

我们再来测试:
PS1=‘\[\e]0;PS1=‘\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\e[34;41m\[email protected]\h:\w\$\e[0m‘

以图为证明,这样我能清晰一目了然的看到输出的结果了。

虽然这样达到了我想要的效果,但是最好的在刚刚对PS1的修改中加上 \[ , \] 把对颜色的设置放入 \[ 与 ]\中这样才好,比如
\e[34;41m  加上 \[\]  改为  \[\e[34;41m\]\e[0m    加上 \[\]  改为  \[\e[0m\] 因为这是相当于注释了对颜色的设置,不会被输出,本机并没有被输入,但是那只是对本机而言,某些时候会被输出并且对颜色的设置无效。所以最后对PS1的修改为:
\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\e[34;41m\[email protected]\h:\w\$\e[0m\[毕竟标准才能通用。当然,你还能对用户名,主机名,当前目录做不同颜色的显示  放一个例子 其他的自行体会例:用户名设为蓝色  主机名设为白色   目录设为红色
[email protected] /etc#PS1=‘\[\e[34;40m\]\[email protected]\[\e[37;40m\]\h \[\e[31;40m\]\w\$\[\e[0m\]‘

\[\e[34;40m\]\u   @\[\e[37;40m\]\h    [\e[31;40m\]\w   \$  \[\e[0m\]要实现上面类似的效果,以颜色做分割就可以了

4.永久性修改PS1  4.1 以上的对PS1的修改都是本次登录才有效,重新登录之后就没有效果了,  所以要永久性修改就去改用户家目录下的.bashrc文件吧,要对所用的用户起作用去改/etc下的配置文件吧5. 总结  对PS1的修改还能有很多方式,如高亮,在字体前面加上1就可以的 如 \[\e[1;34;40m\]   修改了之后方便更好的分区当前所在的服务器,更好的知道输出地方。

 


 
 

原文地址:https://www.cnblogs.com/dreamfreedom/p/11566881.html

时间: 2024-11-10 12:31:10

Linux下命令提示符的修改,PS1的个项参数详解的相关文章

Linux下mysql的安装与卸载并且连接navicat详解(亲测可用)

哈喽,大家好,费了九牛二虎之力,终于完成了linux下用yum安装mysql,虽然出了很多错,但是最终成功可谓是不易,下面详细介绍下mysql的安装步骤: 一.卸载mysql 1.首先查看以前是否在linux上安装过mysql,如果有则需要先卸载干净. 首先使用命令查看虚拟机上是否存在mysql rpm -qa|grep -i mysql 如图所示,表示存在 2.停止mysql服务.删除之前安装的mysql 删除命令:rpm -e –nodeps 包名 如图所示: 如果提示依赖包错误,则使用以下

linux下通过mount挂载iscsi、ntfs、nfs详解

通常服务器本机自带磁盘空间有限,都需要额外加载磁盘,可以采用mount方式把远程的共享存储磁盘加载进来,目前用过的有iscsi.ntfs.nfs三种类型 一,mount挂载iscsi类型1,查找下准备挂载的磁盘或者存储器[[email protected] /]# iscsiadm -m discovery -t st -p 1x.xx.0.22:32601x.xx.0.22:3260,1 iqn.2001-05.com.equallogic:0-8a0906-6dac38009-c1b1cac

Linux下查看文件大小、文件占磁盘大小等详解(du 和df )使用命令

一.查看文件占磁盘大小一般使用du或df命令 df命令:用于显示磁盘分区上的可使用的磁盘空间.默认显示单位为KB.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. du命令:查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.  df命令:显示磁盘分区上的可使用的磁盘空间. df[选项][参数] 选项: 1 -a或--all:包含全部的文件系统: 2 --block-size=<区块大小>:以指定的区块大

linux下grep文件内容搜索工具及基本正则表达式详解

grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选项] 匹配条件 文本名称 选项:  -i:  忽略大小写 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 --color: 搜索出来文件高亮度显示 -A: 匹配指定行的下几行 -B: 匹配指定行的上几行 -C: 匹配指定行的上下几行 -E: 扩展正则表达式 相当于egrep 正则表达式:Regular Expression, 简称REG

linux下egrep文件内容搜索工具及扩展正则表达式详解

egrep命令: 根据模式(文本字符和扩展正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:egrep [选项] 匹配条件 文本名称 egrep 等于 grep -E 选项:  -i:  忽略大小写 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 --color: 搜索出来文件高亮度显示 -A: 匹配指定行的下几行 -B: 匹配指定行的上几行 -C: 匹配指定行的上下几行 正则表达式:Regular Expression, 简称REGEX

每天一个linux命令(22):find 命令的参数详解

find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来.  不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.log的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录. find ~ -name "*.log" -print 想要在当前目录及子目录中查找所有

linux下的mysql修改默认编码

基础练习 矩阵乘法 时间限制:1.0s   内存限制:512.0MB 问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵.相邻的数之间用一个空格隔开 样例输入 2 2 1 2 3

LINUX下ORACLE相关的内核参数详解

ORACLE相关的内核参数详解 1.kernel.sem [[email protected] ~]# cat /proc/sys/kernel/sem 250         32000    100         142 [[email protected] ~]#  ipcs -sl ------ Semaphore Limits -------- max number of arrays = 142 max semaphores per array = 250 max semaphor

linux TOP命令各参数详解【转载】

实时监控或查看系统资源使用情况的工具——TOP top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法: (实时监控系统资源使用情况图) 统计信息区前五行是系统整体的统计信息: 第一行是任务队列信息,同 uptime  命令的执行结果.其内容如下: 01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.