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年后,我逐渐 认识到监控和保 ...
随机推荐
- Java 并发系列之三:java 内存模型(JMM)
1. 并发编程的挑战 2. 并发编程需要解决的两大问题 3. 线程通信机制 4. 内存模型 5. volatile 6. synchronized 7. CAS 8. 锁的内存语义 9. DCL 双重 ...
- libevent笔记1:安装及DEMO
本篇简单记录了libevent的安装过程及基础的先进先出管道Demo,其中demo来自这篇博客,安装过程在这篇博客 实验环境 系统:Ubuntu 18.04.3 libevent版本:libevent ...
- solr配置同义词,停止词,和扩展词库(IK分词器为例)
定义 同义词:搜索结果里出现的同义词.如我们输入”还行”,得到的结果包括同义词”还可以”. 停止词:在搜索时不用出现在结果里的词.比如is .a .are .”的”,“得”,“我” 等,这些词会在句子 ...
- golang 赋值与声明语法糖使用注意事项
赋值与声明语法糖 基本用法略, 搜索即可 注意事项 类型推断 := 会自动进行类型推断, 当想要的类型不是自己想要的类型时需要进行类型转换 // i1 默认是 int 类型 i1 := 1 // 当需 ...
- .net中加密与解密
.Net中的加密解密 引言 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全.本文将简单地介绍了加密解密的一些概念,以及相关的数字签名.证书,最后介绍了如何在.NET中对数据进行对称 ...
- JavaSE 面试题: 成员变量与局部变量
JavaSE 面试题 成员变量与局部变量 public class Test { static int s; int i; int j; { int i = 1; i++; j++; s++; } p ...
- 文本分类(TextCNN,Keras)
数据集是网上找的,已上传至我的 Github,项目完整地址:https://github.com/cyandn/practice/tree/master/text-classification 流程: ...
- 模板方法(TemplateMethod)模式
模板方法模式是准备一个抽象类,将部分逻辑以具体方法以及构造子的形式出现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑部分有不同的实现.这也 ...
- 【C学习笔记】一
一.运算符优先级 逻辑非>算术运算符>关系运算符>逻辑运算符>赋值运算符>逗号运算符 逻辑运算符>条件运算符>赋值运算符 对于if的执行语句,如果是一条语句那 ...
- Lodash之throttle(节流)与debounce(防抖)总结
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/11305028.html 先重点说一下可能遇到的坑:主要在原本默认参数的设置以及两个方法的选择上, ...