Linux普通用户登录后,命令行提示:-bash-4.1$ ,原因分析及解决

原文
有时候在使用用户登陆Linux系统时会发现,命令行提示符成了:-bash-4.1$,不显示用户名,路径信息。
原因:用户家目录里面与环境变量有关的文件被删除所导致的
也就是这俩文件:
.bash_profile
.bashrc
这两个文件被删除了,导致了这个错误
解决方法:从/etc/skel把丢失的文件 复制回来就可以了

-bash-4.1$ cp /etc/skel/.bash* ~ -bash-4.1$ logout ##复制回来后,登出用户,然后在登陆用户查看是否已经解决 [root@elz-4 ~]# su - erlianzhang [erlianzhang@elz-4 ~]$

登陆后就恢复了
原文
遇到此种问题,那么需要了解和用户创建有关的一个目录(/etc/skel/目录),此目录下的所有文件(包括隐藏文件)都会被复制到新添加的用户的家目录中。
/etc/skel/目录到底是干嘛的呢?
该目录下是用来存放新用户环境变量文件的,添加新用户时,将该目录习文件拷贝到新用户家目录中。默认情况下该目录下都是隐藏文件;通过修改、添加、删除该目录下的文件,可为新添加的用户提供统一的、标准的、初始化用户环境。
显示/etc/skel/目录下的所有文件
[root@c69-01 ~]# ls -al /etc/skel/
total 20
drwxr-xr-x. 2 root root 4096 Feb 2 21:33 .
drwxr-xr-x. 80 root root 4096 Feb 18 09:17 ..
-rw-r--r--. 1 root root 18 Mar 23 2017 .bash_logout
-rw-r--r--. 1 root root 176 Mar 23 2017 .bash_profile
-rw-r--r--. 1 root root 124 Mar 23 2017 .bashrc
添加新用户,体现目录/etc/skel/作用:
上面说到/etc/skel/目录下的所有文件都会被拷贝到新用户的家目录中,那么我们在/etc/skel/下创建一个README文件,在创建新用户之后,新用户家目录中是否有该文件的存在
1)使用超级用户root创建文件README
[root@c69-01 ~]# vim /etc/skel/README
[root@c69-01 ~]# cat /etc/skel/README
WELCOME
Please read the contents of this document carefully! ............................
............................
............................
............................
[root@c69-01 ~]# ls -al /etc/skel/
total 24
drwxr-xr-x. 2 root root 4096 Feb 18 09:34 .
drwxr-xr-x. 80 root root 4096 Feb 18 09:17 ..
-rw-r--r--. 1 root root 18 Mar 23 2017 .bash_logout
-rw-r--r--. 1 root root 176 Mar 23 2017 .bash_profile
-rw-r--r--. 1 root root 124 Mar 23 2017 .bashrc
-rw-r--r-- 1 root root 179 Feb 18 09:34 README
2)使用超级用户创建新用户user01
[root@c69-01 ~]# id user01
id: user01: No such user
[root@c69-01 ~]# useradd user01
[root@c69-01 ~]# id user01
uid=1010(user01) gid=1010(user01) groups=1010(user01)
[root@c69-01 ~]# ls -al /home/user01/
total 24
drwx------ 2 user01 user01 4096 Feb 18 09:36 .
drwxr-xr-x. 15 root root 4096 Feb 18 09:36 ..
-rw-r--r-- 1 user01 user01 18 Mar 23 2017 .bash_logout
-rw-r--r-- 1 user01 user01 176 Mar 23 2017 .bash_profile
-rw-r--r-- 1 user01 user01 124 Mar 23 2017 .bashrc
-rw-r--r-- 1 user01 user01 179 Feb 18 09:34 README
可以看到新用户的家目录下存在README文件
[root@c69-01 ~]# cat /home/user01/README
WELCOME
Please read the contents of this document carefully! ............................
............................
............................
............................文件内容和/etc/skel/README文件内容一样
-bash-4.1$ 问题重现:
1)切换到普通用户,删除家目录中所有.bash*文件,退出重新登录,即可看到想要的命令行提示
[root@c69-01 ~]# su - user01
[user01@c69-01 ~]$ ls -al
total 24
drwx------ 2 user01 user01 4096 Feb 18 09:36 .
drwxr-xr-x. 15 root root 4096 Feb 18 09:36 ..
-rw-r--r-- 1 user01 user01 18 Mar 23 2017 .bash_logout
-rw-r--r-- 1 user01 user01 176 Mar 23 2017 .bash_profile
-rw-r--r-- 1 user01 user01 124 Mar 23 2017 .bashrc
-rw-r--r-- 1 user01 user01 179 Feb 18 09:34 README
[user01@c69-01 ~]$ \rm .bash*
[user01@c69-01 ~]$ logout
[root@c69-01 ~]# su - user01
-bash-4.1$
上面说到,该目录下是用来存放新用户环境变量文件的,删除这些文件,就会出现问题,那么如何解决呢?
-bash-4.1$ 问题解决:
1)使用普通用户user01,拷贝目录/etc/skel/下的文件.bash*文件到普通用户家目录下即可,退出重新登录,即可解决该问题。
-bash-4.1$ cp /etc/skel/.bash* .
-bash-4.1$ ls -al
total 28
drwx------ 2 user01 user01 4096 Feb 18 09:45 .
drwxr-xr-x. 15 root root 4096 Feb 18 09:36 ..
-rw------- 1 user01 user01 18 Feb 18 09:42 .bash_history
-rw-r--r-- 1 user01 user01 18 Feb 18 09:45 .bash_logout
-rw-r--r-- 1 user01 user01 176 Feb 18 09:45 .bash_profile
-rw-r--r-- 1 user01 user01 124 Feb 18 09:45 .bashrc
-rw-r--r-- 1 user01 user01 179 Feb 18 09:34 README
-bash-4.1$ logout
[root@c69-01 ~]# su - user01
总结:
通过该问题,应该了解用户创建的过程,了解目录/etc/skel/作用
Linux普通用户登录后,命令行提示:-bash-4.1$ ,原因分析及解决的更多相关文章
- (九)Linux查看用户登录的命令
用户登录查看命令 w 含义:就这么简单,一个字母w就是一个命令.查看登录用户信息. 输出的结果的含义: USER 登录的用户名 TTY 登录终端 FROM 从哪个I ...
- ubuntu系统 用户进入后命令行只有一个“$” 美元符号
在新添加用户后,切换到该用户下面后: 发现命令行前面只有一个$符号,很不方便. 虽然每次输入一个bash可以解决,但是太麻烦. 如何解决呢? sudo vi /etc/passwd 找到该用户 wan ...
- Linux用户登录查看命令总结 - w,who,last,lastlog
Linux用户登录查看命令总结 - w,who,last,lastlog linux shell 747 次阅读 · 读完需要 15 分钟 0 1. 查看登录用户信息 who -H 命令输出 NA ...
- 如何修改linux 用户登录后默认目录
1.linux用户登录后默认目录是在/etc/passwd文件设置的.如下图所示,一共显示了四行数据,其中第一行的/root即为root用户登录后的默认目录,第二行daemon用户的默认目录是/usr ...
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
转自 https://blog.csdn.net/secondjanuary/article/details/9206151 文件说明: /ect/profile 此文件为系统的每个用户设置环境信息, ...
- linux快速入门 1.1命令行操作
http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 &l ...
- Linux 学习手记(1):命令行BASH的基本操作
1. Shell 是什么 Shell(壳)是用户与操作系统底层(通常是内核)之间交互的中介程序,负责将用户指令.操作传递给操作系统底层. Shell一般分为:图形化Shell(GUI).命令行Shel ...
- Shell命令行提示定制
/******************************************************************************* * Shell命令行提示定制 * 说明 ...
- 监控Linux性能的18个命令行工具
监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...
随机推荐
- set(集合)的使用方法
1.普通集合set 直接定义一个set具有动态有序和去重的功效,不再赘述. 如果要实现set时从大到小排序(desc)的,只需要在定义的时候指定“大于符号”,即greater<class> ...
- BBS项目-01
目录 BBS项目 BBS开发流程: BBS表格创建: BBS项目 BBS开发流程: BBS项目: 开发流程: 需求分析 草拟一些项目的大致技术点和流程 架构设计 架构师(框架 语言 数据库 缓存数据库 ...
- 将float数字按照一定格式写入到文件中
/* float.c */ #include<stdio.h> #include<string.h> int main() { FILE *fp = fopen("D ...
- Webdriver get(url)加载时间太长
运行Selenium脚本时,发现有时候由于网络或性能问题,加载网页时间太长,无法继续执行后续操作,但是实际上元素都已经加载出来了. 解决 # 设置页面加载超时时间 d.set_page_load_ti ...
- bind 安装 和配置(master/slave)
一,软件安装 #sudo yum -y install bind 二,配置 # vi /etc/named.conf // // named.conf // // Provided by Red H ...
- java并发编程(九)ThreadLocal & InheritableThreadLocal
参考文档: https://blog.csdn.net/u012834750/article/details/71646700 threadlocal内存泄漏:http://www.importnew ...
- 2-1docker图形管理界面
1.Portainer Shipyard:(停止维护) https://github.com/shipyard/shipyard https://www.portainer.io/installati ...
- 7种 JVM 垃圾收集器特点、优劣势及使用场景(多图)
7种 JVM 垃圾收集器特点.优劣势及使用场景(多图) mp.weixin.qq.com 点击上方"IT牧场",选择"设为星标"技术干货每日送达! 一.常见垃 ...
- spring boot2X整合Consul一使用RestTemplate实现服务调用
Consul可以用于实现分布式系统的服务发现与配置 服务调用有两种方式: A.使用RestTemplate 进行服务调用 负载均衡——通过Ribbon注解RestTemplate B.使用Feign ...
- 使用 KVO 可能会拖慢启动速度
问题  在某一次启动速度优化中,发现最开始的某个 runLoop 中,一个runLoop 耗时很长.发现一个 KVO 变量的初始化消耗了13ms之久,这对启动速度是不可接受了. 源码分析 用 Ins ...