Linux提示字符设置

当我们登陆linux后,显示的提示字符究竟是什么意思呢?又可不可以设置呢。

首先来看看默认的显示:

普通用户:
[fuwh@localhost ~]$

root用户:
[root@localhost ~]#

可以看到,普通用户和root用户的显示是有差别的。那每个符号又是什么意思呢 ?

fuwh/root:当前登陆的用户。

@localhost:连接的主机名,我是连接的本地的,所以就是localhost了

~:表示的就是当前所在的目录,我现在是在自己的家目录,所以就显示的~

$/#:这个是提示字符,如果是root的话,就是#,普通用户的话就是$

那么,我们可不可以设置个性化的显示呢,不如说,现在当你移动到别的目录下的时候是这样显示的:

[fuwh@localhost stu22]$ pwd
/home/fuwh/stu/stu22
[fuwh@localhost stu22]$

那我们希望,如果能够显示当前路径的完整路径就好了。

那这个在哪里配置呢?

其实,控制提示字符显示的是一个变量PS1的值。我们可以用set来查看当前PS1的值

[fuwh@localhost stu22]$ set
BASH=/bin/bash
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/home/fuwh/stu/stu22

.....其他省略

可以看到目前PS1的值为[u@h W]$ ,当我们每次按下回车之后,最后显示的时候都会去读取这个值。

那其中这些配置又是什么意思呢?

d :可显示出『星期 月 日』的日期格式,如:"Mon Feb 2"
H :完整的主机名。举例来说,鸟哥的练习机为『www.vbird.tsai』
h :仅取主机名在第一个小数点之前的名字,如鸟哥主机则为『www』后面省略
:显示时间,为 24 小时格式的『HH:MM:SS』
T :显示时间,为 12 小时格式的『HH:MM:SS』
A :显示时间,为 24 小时格式的『HH:MM』
@ :显示时间,为 12 小时格式的『am/pm』样式
u :目前使用者的账号名称,如『root』;
v :BASH 的版本信息,如鸟哥的测试主板本为 3.2.25(1),仅取『3.2』显示
w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以 ~ 取代;
W :利用 basename 函数取得工作目录名称,所以仅会列出最后一个目录名。
# :下达的第几个命令。
$ :提示字符,如果是 root 时,提示字符为 # ,否则就是 $ 啰~

那通过上面的变量说明,我们如果要显示全路径的话,应该就知道怎么修改了吧?

只需要做如下修改就可以了哦

[fuwh@localhost stu22]$ PS1='[u@h w]$ '
[fuwh@localhost ~/stu/stu22]$

是不是很简单,很方便?

但是,我们发现,每次我们退出重新登陆之后,这个变量就没有了。

为了能够让下次登陆也有效,我们需要激昂这个变量的值写入到我们自己的配置文件当中去。

在Centos中,登陆分为两种:

login:普通的文字界面,帐号密码登陆

non-login:在登陆图形界面后打开的命令行终端

这两种登录方式在登陆的时候,读取的配置文件是不一样的

login:

  1、etc/profile,这个属于系统整体的配置

  2、~/.bash_profile或~/.bash_login或~/.profile这个属于个人配置(只有当~/.bash_profile不存在才会去读~/.bash_login,~/.bash_login不存在才会读~/.profile)

non-login:~/bashc

我们查看~/.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

发现,它会去读取~/.bashrc的内容。里面也配置了PASH的值,所以如果我把一个脚本之类的文件放在家目录的bin目录下,就可以直接执行。

所以我们考虑,在这个文件真的最后加上PS1的配置、

# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PS1='[u@h A w]$ '
export PS1
export PATH

修改之后,发现还没有生效。因为没有去读取配置文件,如果我们下次登陆就会生效。

但是我们也可以主动的去读取这个配置文件通过source或者.来读取。

source ~/.bash_profile

这样就可以立马生效了。

原文地址:https://www.cnblogs.com/zerotomax/p/7259037.html