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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 最近在 CentOS 7.2 上安装 PostgreSQL,PostgreSQL 安装完成之后默认会创建一个名称为”postgres“的管理账号,但是使用以下命令切换用户sudo su - postgres的时候却显示:-bash-4.2$出现 shell 显示-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“命令使其生效的!

======================文档信息======================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.NET/testcs_dn)

==============欢迎关注我的个人微信订阅号(微wx笑)==========

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
Java Shell Linux
解决 centos下执行sh文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
解决 centos下执行sh文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
|
2月前
|
XML Linux 应用服务中间件
centos7搭建minio并实现分享路径为域名路径
centos7搭建minio并实现分享路径为域名路径
122 0
|
4月前
|
Linux Shell
百度搜索:蓝易云【Linux(centos7)缺失.bashrc文件登录出现bash-4.2解决教程。】
或者你可以注销并重新登录系统,也会加载新的 `.bashrc` 文件。现在,你应该能够成功解决 "bash-4.2" 错误并登录到 CentOS 7 系统中。
58 0
|
关系型数据库 MySQL 应用服务中间件
Centos中查看nginx、apache、php、mysql配置文件路径
Centos中查看nginx、apache、php、mysql配置文件路径
2159 0
|
10月前
|
Java Linux Shell
Centos7 bash:jps:未找到命令
Centos7 bash:jps:未找到命令
194 0
|
11月前
|
Linux Shell
Centos显示-bash-4.1$问题的修复及原因探究
Centos显示-bash-4.1$问题的修复及原因探究
107 0
|
Ubuntu Shell Linux
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)、采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)、在脚本的路径前加上“.”或者 source(了解)原因: 前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中。第三种,也就是使用在脚本路径前加“.”或者 source 的方式,`可以使脚本内容在当前 shell 里执行,而无需打开子 shell!`这也是为什么我们每次要修改完
575 1
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
|
Linux Shell
CentOS:bash: g++: 未找到命令...
CentOS:bash: g++: 未找到命令...
133 0
|
关系型数据库 MySQL Linux
centos 7 mysql 添加远程访问用户
centos 7 mysql 添加远程访问用户
295 0
centos 7 mysql 添加远程访问用户
|
Linux 开发工具
centos 记录用户行为轨迹
centos 记录用户行为轨迹
127 0

热门文章

最新文章