linux命令行ps1变量_Linux命令行提示符美化(PS1&PS2&PS3&PS4)

通过设置环境变量PS1、PS2、PS3以及PS4来自定义用户命令行的字符显示。如果要长期永久性修改提示符,可以将修改提示符的命令添加到$HOME/.profile或$HOME/.bash_profile文件中

PS1

PS1是主提示符变量,也是默认提示符变量。默认值[\u@\h \W]$,显示用户主机名称和工作目录。

基本上通过设置PS1来定义命令行提示字符即可,最常用的需求就是显示登录的用户名、主目录、主机名等。

默认的是:

[root@centos8 ~]# echo $PS1

[\u@\h \W]\$

PS1变量可以使用的参数值有如下:

参数

描述

/d

代表日期,格式为weekday month date,例如:”Mon Aug 1”

/H

完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

/h

仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

/t

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

/T

显示时间为12小时格式

/A

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

/u

当前用户的账号名称

/v

BASH的版本信息

/w

完整的工作目录名称。家目录会以 ~代替

/W

利用basename取得工作目录名称,所以只会列出最后一个目录

/#

下达的第几个命令

/$

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

/[

字符”[“

/]

字符”]”

/!

命令行动态统计历史命令次数

PS2

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

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

PS2一般使用于命令行里较长命令的换行提示信息,比如:

#默认换行是一个>符号

[root@centos8 ~]#echo \

>

#修改默认换提示>+组合符号

[root@centos8 ~]# export PS2=">+ "

#修改后的默认换行提示符号

[root@centos8 ~]#echo \

>+

PS3

Shell脚本中使用select时的提示符号

直接上例子:

#未设置PS3的脚本:

#默认提示符是 #?

[root@centos8 ~]#cat ps3.sh

select i in a b c exit

do

case $i in

a) echo "A";;

b) echo "B";;

c) echo "C";;

exit) exit;;

esac

done

[root@centos8 ~]#bash ps3.sh

1) a

2) b

3) c

4) exit

#? 1

A

#? 2

B

#? 4

##提示符是 Select a character (1-4):

#修改PS3后效果

[root@centos8 ~]#cat ps3new.sh

PS3="Select a character (1-4): "

select i in a b c exit

do

case $i in

a) echo "A";;

b) echo "B";;

c) echo "C";;

exit) exit;;

esac

done

[root@centos8 ~]#bash ps3new.sh

1) a

2) b

3) c

4) exit

Select a character (1-4): 1

A

Select a character (1-4): 3

C

Select a character (1-4): 4

PS4

PS4-set -x用来修改跟踪输出的前缀

#未设置PS4时的shell脚本:

[root@centos8 ~]# cat ps4.sh

#! /bin/bash

set -x

echo 'PS4 demo script'

ls -l /etc/|wc -l

du -sh ~

#执行结果:

[root@centos8 ~]# sh ps4.sh

+ echo 'PS4 demo script'

PS4 demo script

+ ls -l /etc/

+ wc -l

250

+ du -sh /root

100K /root

#[注: 当使用sex -x跟踪输出时的提示符为 +]

#设置PS4后时的shell脚本:

[root@centos8 ~]# cat ps4new.sh

#! /bin/bash

export PS4='$0.$LINENO+'

set -x

echo 'PS4 demo script'

ls -l /etc/|wc -l

du -sh ~

#PS4在ps4.sh中定义了下面两个变量

#$0 显示当前的脚本名

#$LINENO 显示当前命令的行号

#执行结果:

[root@centos8 ~]# bash ps4new.sh

ps4.sh.4+echo 'PS4 demo script'

PS4 demo script

ps4.sh.5+ls -l /etc/

ps4.sh.5+wc -l

250

ps4.sh.6+du -sh /root

100K /root

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值