Linux环境变量PS详解

目录

  1. PS1
    1. 修改linux终端命令提示符字体颜色
  2. PS2
  3. PS3
  4. PS4
  5. 参考资料

PS即是Prompt String,命令提示符的意思。在bash中一共有四个地方出现。分为表示为PS1,PS2,PS3,PS4。

PS1

PS1是用来控制默认提示符显示格式。下面方括号中的内容便是PS1。

[root@Ethan ~]# echo $PS1
[\u@\h \W]\$

PS1的常用参数以及含义:

  • \d :代表日期,格式为weekday month date,例如:”Mon Aug 1″
  • \H :完整的主机名称
  • \h :仅取主机名中的第一个名字
  • \t :显示时间为24小时格式,如:HH:MM:SS
  • \T :显示时间为12小时格式
  • \A :显示时间为24小时格式:HH:MM
  • \@:显示时间,为12小时格式:am/pm
  • \u :当前用户的账号名称
  • \v :BASH的版本信息
  • \w :完整的工作目录名称
  • \W :利用basename取得工作目录名称,只显示最后一个目录名
  • \# :下达的第几个命令
  • \$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
<46>[root@Ethan Ethan]#echo $PS1
<\#>[\u@\h \W]\$

修改linux终端命令提示符字体颜色

在PS1中设置字符颜色的格式为:\[\e[F;Bm\]……..\[\e[0m\]

其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]作为颜色设定的结束。

编辑“~/.bash_profile”文件。

[root@Ethan ~]# cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
export PS1

PS2

一个非常长的命令可以通过在末尾加“\”使其分行显示。多行命令的默认提示符是“>”。 我们可以通过修改PS2 ,将提示符修改为”continue->” 。

<7>[root@Ethan ~]#PS2='continue->' 
<8>[root@Ethan ~]#ls \
continue->/etc \
continue->/boot 

PS3

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

现在有下面这样一个脚本:

#PS3='Select a day (1-4):'
select i in mon tue wed exit
do
    case $i in
        mon) echo "Monday";;
        tue) echo "Tuesday";;
        wed) echo "Wednesday";;
        exit) exit;;
    esac
done

默认运行如下:

<35>[root@Ethan Ethan]#sh p3.sh 
1) mon
2) tue
3) wed
4) exit
#? 1
Monday
#? 2
Tuesday
#? 5
#? 

修改PS3=’ Select a day (1-4): ‘后,我们在脚本中添加,如下:

<39>[root@Ethan Ethan]#sh p3.sh 
1) mon
2) tue
3) wed
4) exit
Select a day (1-4):1
Monday
Select a day (1-4):2
Tuesday
Select a day (1-4):3
Wednesday

PS4

“set -x”用来修改跟踪输出的前缀 。

有下面这样一个脚本文件:

set -x 
#PS4='$0.$LINENO+ '
echo "hello world"
ls /Ethan

试着来运行一下,可以看到命令前的“+”,PS4就是用来定义这个提示符的。

[root@Ethan Ethan]# sh p4.sh 
+ echo 'hello world'
hello world
+ ls /Ethan
p3.sh  p4.sh
[root@Ethan Ethan]# sh p4.sh  
+ PS4='$0.$LINENO+ '
p4.sh.3+ echo 'hello world'
hello world
p4.sh.4+ ls /Ethan
p3.sh  p4.sh

参考资料

https://blog.csdn.net/rainharder/article/details/54573021

你可能感兴趣的:(Linux环境变量PS详解)