Linux下PS1设置

PS1简介

PS1命令是linux系统中的一个全局变量,用于定义用户命令行的字符显示。学名为:默认提示符。盲猜Power Shell 1。

PS1变量

# shell查看变量值
[root@test ~]# echo $PS1
[\u@\h \W]\$
# 查看系统设置中的PS1变量值
[root@test ~]$ set | grep PS1
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
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称
\W :利用basename取得工作目录名称,只显示最后一个目录名
# :下达的第几个命令
$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $

所以,linux默认的命令行提示信息的格式: PS1='[\u@\h \W]$ ’ 的意思就是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]#

关于命令行输入闪烁的问题

参数 说明
0m 无特殊效果
1m 字体变粗
2m 颜色变化,部分字体变细
3m 颜色变化,部分字体倾斜
4m 颜色变化,加下滑线
5m 颜色变化,文字闪动
6m
9m 颜色变化,加删除线
8m 黑色文字

最佳配置实践
先查看下网卡名,这里是 eth0,这种方式代价较小

export PS1="\[\e[34m\][\u\[\e[m\]@\h:`ifconfig eth0| sed -nr 's/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'` \[\e[33m\]\w]\[\e[m\]\$"

在PS1中设置字符序列颜色的格式为:[\e[F;Bm] 其中“F”为字体颜色,编号30- 37;“B”为背景色,编号40~47。取消设置:[\e[0m]

颜色编号:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35.青色=36,白色=37

效果演示:
登录用户@主机名:IP地址
这样每次登录后对当前用户和服务器IP一目了然,避免操作多台时容易迷糊。

你可能感兴趣的:(运维,linux,bash,运维)