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

在 CentOS 7.2 中安装 PostgreSQL 后,切换到 postgres 用户时仅显示 `-bash-4.2$`,而非期望的用户名路径。实际上,用户已成功切换,只需修改 PS1 环境变量。PS1 是设置命令提示符内容的环境变量,通过编辑配置文件如 `.bash_profile`,添加相关设置并使其生效,即可解决此问题。其他解决方法包括复制 `/etc/skel/` 下的文件到用户目录,但可能需谨慎操作以避免覆盖原有配置。

最近在 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简单来说就是设置命令提示符显示的内容。

<think>我们正在处理用户关于在CentOS 7上安装Elasticsearch后如何启动的问题。根据引用内容,我们可以总结出以下步骤: 1. 能使用root用户运行Elasticsearch(引用[3]和[4]),因此需要创建一个专用用户并授权。 2. 安装后,可以通过命令行启动,也可以设置为系统服务以实现开机启动(引用[1]和[2])。 具体步骤: ### 1. 创建专用用户(如果尚未创建) 根据引用[3]和[4],需要创建一个非root用户来运行Elasticsearch。 ```bash # 创建用户组和用户 groupadd esgroup useradd esuser -g esgroup -p espassword # 请替换espassword为实际密码 # 将Elasticsearch安装目录的所有权赋予该用户 chown -R esuser:esgroup /path/to/elasticsearch ``` ### 2. 切换到该用户并启动 ```bash su esuser cd /path/to/elasticsearch/bin ./elasticsearch # 前台启动,按Ctrl+C停止 ``` ### 3. 后台启动 ```bash ./elasticsearch -d # 后台启动 ``` ### 4. 设置为系统服务(开机启动) 引用[1]和[2]提到了将Elasticsearch设置为系统服务。步骤如下: #### 4.1 创建启动脚本 进入`/etc/init.d`目录,创建`elasticsearch`文件(引用[1]): ```bash cd /etc/init.d vi elasticsearch ``` 将以下内容写入脚本(请根据实际安装路径修改): ```bash #!/bin/sh #chkconfig: 2345 80 90 #description:elasticsearch export ES_HOME=/usr/local/elasticsearch/elasticsearch-8.12.2 # 修改为你的安装路径 export ES_USER=esuser # 修改为你的用户名 case "$1" in start) su $ES_USER -c "$ES_HOME/bin/elasticsearch -d" echo "elasticsearch started" ;; stop) pid=$(ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}') if [ -n "$pid" ]; then kill -9 $pid fi echo "elasticsearch stopped" ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 ``` #### 4.2 设置脚本权限并添加为服务 ```bash chmod +x /etc/init.d/elasticsearch ``` #### 4.3 使用chkconfig设置开机启动 ```bash chkconfig --add elasticsearch chkconfig elasticsearch on ``` #### 4.4 管理服务 ```bash # 启动 service elasticsearch start # 停止 service elasticsearch stop # 重启 service elasticsearch restart ``` ### 5. 验证启动 - 检查进程:`ps -ef | grep elasticsearch` - 检查端口:`netstat -tuln | grep 9200` 或 `curl http://localhost:9200` ### 注意事项 - 确保Java环境已正确配置(引用[5]) - 检查配置文件(如`/path/to/elasticsearch/config/elasticsearch.yml`)中的网络设置(如`network.host`)和集群设置(如`cluster.name`) ### 常见问题 1. **无法用root启动**:必须使用非root用户(引用[3])。 2. **内存足**:可能需要调整JVM参数(在`config/jvm.options`中)。 3. **文件权限足**:确保Elasticsearch目录及其子目录的所有权属于专用用户(引用[4])。 ### 流程图 ```mermaid graph TD A[安装Elasticsearch] --> B[创建专用用户] B --> C[修改目录权限] C --> D[启动方式选择] D --> E[命令行启动] D --> F[系统服务启动] E --> G[前台启动] E --> H[后台启动] F --> I[创建启动脚本] I --> J[设置开机启动] J --> K[通过service管理] ``` §§相关问题§§ 1. 如何解决Elasticsearch启动时的内存问题2. Elasticsearch的配置文件主要有哪些选项需要调整? 3. 如何监控Elasticsearch的运行状态?</think>### 在 CentOS 7 上启动 Elasticsearch 的完整指南 #### 1. **确认安装位置** 首先找到 Elasticsearch 的安装目录(常见位置): ```bash # 检查常见安装路径 ls -l /usr/share/elasticsearch # RPM 安装位置 ls -l /opt/elasticsearch # 手动解压位置 ls -l /usr/local/elasticsearch # 手动解压位置 ``` #### 2. **切换到非 root 用户启动(必须步骤)** Elasticsearch **禁止使用 root 用户启动**(引用[3][4]): ```bash # 创建专用用户(如已创建可跳过) groupadd esgroup useradd esuser -g esgroup -p your_password # 设置密码 # 授权安装目录 chown -R esuser:esgroup /path/to/elasticsearch # 替换为实际路径 # 切换到专用用户 su - esuser ``` #### 3. **命令行启动方式** 进入安装目录启动服务: ```bash cd /path/to/elasticsearch/bin ./elasticsearch # 前台启动(Ctrl+C 停止) ./elasticsearch -d # 后台启动(守护进程) ``` #### 4. **系统服务启动(推荐)** 创建 systemd 服务实现开机自启(引用[1][2]): ```bash sudo vi /etc/systemd/system/elasticsearch.service ``` ```ini [Unit] Description=Elasticsearch After=network.target [Service] User=esuser # 专用用户 Group=esgroup # 专用用户组 ExecStart=/path/to/elasticsearch/bin/elasticsearch Restart=always LimitNOFILE=65536 [Install] WantedBy=multi-user.target ``` 启用并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable elasticsearch # 开机自启 sudo systemctl start elasticsearch # 立即启动 sudo systemctl status elasticsearch # 检查状态 ``` #### 5. **验证启动成功** ```bash # 检查端口监听(9200/9300) netstat -tuln | grep -E '9200|9300' # 测试服务响应 curl -X GET "localhost:9200/?pretty" ``` 成功响应示例: ```json { "name" : "node-1", "cluster_name" : "elasticsearch", "version" : { ... } } ``` #### 6. **故障排查** | 错误现象 | 解决方案 | |---------|---------| | `can not run elasticsearch as root` | 确保使用非 root 用户启动(引用[3]) | | `permission denied` | 运行 `chown -R esuser:esgroup /安装路径`(引用[4]) | | 端口未监听 | 检查 `config/elasticsearch.yml` 中的 `network.host` 设置 | | 启动后退出 | 查看日志:`tail -f logs/elasticsearch.log` | #### 7. **环境配置检查** 确保 Java 环境正确(引用[5]): ```bash # 检查 Java 版本(需 JDK 11+) java -version # 如未配置,在 bin/elasticsearch 首行添加: export JAVA_HOME="/path/to/jdk" ``` ### 启动流程图 ```mermaid graph TD A[查找安装目录] --> B{找到路径?} B -->|是| C[创建专用用户] B -->|否| D[重新安装] C --> E[授权目录] E --> F[启动方式选择] F --> G[命令行启动] F --> H[系统服务启动] G --> I[验证端口] H --> I I --> J{成功?} J -->|是| K[完成] J -->|否| L[查看日志] L --> M[根据错误修复] M --> F ``` > **关键提示**:生产环境务必使用 systemd 服务管理,避免 SSH 断开导致进程终止(引用[1][2])。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值