centos 切换用户显示bash-4.2$,不显示用户名路径的问题

最近在 CentOS 7.2 上安装 PostgreSQL,PostgreSQL 安装完成之后默认会创建一个名称为”postgres“的管理账号,但是使用以下命令切换用户

sudo su - postgres

 

的时候却显示:

-bash-4.2$

出现 shell 显示-bash-4.2$不显示用户名路径的问题。 

这是因为 PostgreSQL 安装时创建的 postgres 用户的配置文件缺少以下内容:

export PS1='[\u@\h \w]'

解决方法:

需要注意的是:切换用户后显示 -bash-4.2$  其实用户切换已经成功了,只是显示的内容不符合预期;我开始以为是出错了,根本没办法操作。有点傻了。

就在 -bash-4.2$ 状态下编辑配置文件:

vi ~/.bash_profile

在文件末尾追加:

export PS1='[\u@\h \w]'

执行以下指令,使更改生效:

source ~/.bash_profile

执行之后立刻就可以看到你想要的内容了:

PS1是什么?

linux下环境变量PS1简单来说就是设置命令提示符显示的内容。

如上面显示的 -bash-4.2$,以及我们希望看到的显示用户名路径信息。

PS1变量中提示符各项含义:

\d :代表日期,格式为weekday month date,例如:Wed Dec 12
\H :完整的主机名称。例如:hostname是debian.linux
\h :仅取主机的第一个名字,如上例,则为debian,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称 如:root
\v :BASH的版本信息  如:3.2
\w :完整的工作目录名称。家目录会以 ~代替 如显示/etc/default/
\W :利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示default
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

另外

看到其它的解决方法是将 /etc/skel/ 下的文件都复制到出问题的这个用户的用户目录下,但我开始尝试的都不生效,包括:

sudo cp -a /etc/skel/. /home/postgres
cp -a /root/. /home/postgres/
sudo cp -a /etc/skel/. /var/postgres

这里有两个问题需要注意:

1、用户是否缺少配置文件”.bash_profile“

如果真的缺少,复制过来还可以,不然的话把之前已经存在的覆盖了,可能导致更严重的问题。
2、用户的目录是什么?

每个用户的目录是不同的;

这个可以通过以下命令查看:

[aven@localhost ~]cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
aven:x:1000:1000:avenLinux:/home/aven:/bin/bash
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

这里只显示了部分输出;我们可以看出每个用户的用户目录是完全不同的; 
所以如果 用户是否缺少配置文件” .bash_profile “,也需要将文件复制对该用户对应的用户目录才可以,

而且复制过去之后,还是需要使用”source ~/.bash_profile“命令使其生效的!

转自:https://blog.csdn.net/weixin_33743880/article/details/90165944?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值