sponsored links

环境变量PS1、PS2、PS3以及PS4来自定义用户命令行的字符显示

环境变量PS1、PS2、PS3以及PS4来自定义用户命令行的字符显示

用户登录Linux系统的字符界面后,就会出现"#"或"$"等命令提示符,比如"[root@pxe root]# “、"[oracle@db1 ~]$”或是 “-bash-3.00#”等等。

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

1. PS1

PS1是主提示符变量,也是默认提示符变量。默认值"\s-\v\$“,显示shell类型和版本。
基本上通过设置PS1来定义命令行提示字符即可,最常用的需求就是显示登录的用户名、主目录、主机名等等,举个例子如下:

显示用户名,主机名和动态显示当前目录
-bash-3.00# export PS1="[\u@\h \w]"
[root@MagicLinux ~]cd /etc
[root@MagicLinux /etc]

注意:如果当前目录是用户的HOME目录,则显示"~"

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时,提示符为:# ,普通用户则为:$
\[ 字符"["
\] 字符"]"
\! 命令行动态统计历史命令次数

2. PS2

PS2是副提示符变量,默认值是''> ''。
PS2一般使用于命令行里较长命令的换行提示信息,比如:

默认设置
-bash-3.00# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
> compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

自定义设置
-bash-3.00# export PS2="PS2 => "
-bash-3.00# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
PS2 => compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

3. PS3,PS4

这两个环境变量可能用得不多,不研究了。如果有兴趣,可以学习bash里面的简介。

PS3 The value of this parameter is used as the prompt for the select command (see SHELL GRAMMAR above).
PS4 The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The first character of PS4 is replicated multiple times, as neces-sary, to indicate multiple levels of indirection. The default is ''+ ''.

本文出自 “Hello_小壮” 博客,转载请与作者联系!

  • linux ps1 ps2 ps3 ps4
    Linux用户命令行字符环境变量 - [Linux | UNIX] Apr 3, 2009 Tag:linux, PS1, PS2 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://fbirdzp.blogbus.com/logs/37423250.html 用户登录Linux系统的字符界面后,就会出现"#"或 ...
  • 环境变量 PS1
    环境变量 PS1 以 Bash shell 为例 一般默认的情况下.bashrc里面应该是:     ~/.bashrc      export    PS1=' \u@\h:\w\$ '      上面的意思是:用户@主机:当前目录 $ 转义序列     要是通过彩色化提示符来增加个性化,就要用到转义序列. 转义序列就是一个让 shell 执行一个特殊步骤 ...
  • 学习鸟哥私房菜linux bash 的环境变量ps1设置
    学习鸟哥私房菜linux bash 的环境变量ps1设置
    bash里边的变量ps1是用户平时的提示符,系统默认为[username@host 工作目录]$.关于ps1的相关介绍详见:http://www.cnblogs.com/starspace/archive/2009/02/21/1395382.html 文章里边介绍了要想ps1的修改在重启有效需要将它写入~/.bash_profile中,但是这是针对logi ...
  • windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因
    一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新打开执行就可以了.
  • Linux shell PS1 PS2 PS3 PS4界面提示符 大三TJB_708
    Linux shell PS1 PS2 PS3 PS4界面提示符 大三TJB_708
    PS*作为shell界面下的提示字符   1.PS1:shell界面的默认提示符 使用形式:export="\u@\h \w" 如在shell界面下使用如下命令: export PS1="\u@\h \w>"时, <span style=";">assistant@C-server ...