原文

有时候在使用用户登陆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$ ,原因分析及解决的更多相关文章

  1. (九)Linux查看用户登录的命令

    用户登录查看命令 w 含义:就这么简单,一个字母w就是一个命令.查看登录用户信息. 输出的结果的含义: USER       登录的用户名 TTY        登录终端 FROM      从哪个I ...

  2. ubuntu系统 用户进入后命令行只有一个“$” 美元符号

    在新添加用户后,切换到该用户下面后: 发现命令行前面只有一个$符号,很不方便. 虽然每次输入一个bash可以解决,但是太麻烦. 如何解决呢? sudo vi /etc/passwd 找到该用户 wan ...

  3. Linux用户登录查看命令总结 - w,who,last,lastlog

    Linux用户登录查看命令总结 - w,who,last,lastlog linux shell 747 次阅读  ·  读完需要 15 分钟 0 1. 查看登录用户信息 who -H 命令输出 NA ...

  4. 如何修改linux 用户登录后默认目录

    1.linux用户登录后默认目录是在/etc/passwd文件设置的.如下图所示,一共显示了四行数据,其中第一行的/root即为root用户登录后的默认目录,第二行daemon用户的默认目录是/usr ...

  5. Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序

    转自 https://blog.csdn.net/secondjanuary/article/details/9206151 文件说明: /ect/profile 此文件为系统的每个用户设置环境信息, ...

  6. linux快速入门 1.1命令行操作

    http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 &l ...

  7. Linux 学习手记(1):命令行BASH的基本操作

    1. Shell 是什么 Shell(壳)是用户与操作系统底层(通常是内核)之间交互的中介程序,负责将用户指令.操作传递给操作系统底层. Shell一般分为:图形化Shell(GUI).命令行Shel ...

  8. Shell命令行提示定制

    /******************************************************************************* * Shell命令行提示定制 * 说明 ...

  9. 监控Linux性能的18个命令行工具

    监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...

随机推荐

  1. python3中“->”的含义

    ->:标记返回函数注释,信息作为.__annotations__属性提供 __annotations__属性是字典.键return是用于在箭头后检索值的键.但是在Python中3.5,PEP 4 ...

  2. BST | 1043 BST树与镜像BST树的判断

    较为简单.小于大于的都走一遍就可以AC了 #include <stdio.h> #include <memory.h> #include <math.h> #inc ...

  3. 讲课专用——线段树——BSS

    题目链接:http://codevs.cn/problem/3981/ 题解: 线段树求GSS模板题 一.一段长的区间的 GSS 有三种情况:>1 完全在左子区间>2 完全在右子区间> ...

  4. Vue实践TS中的一些常见错误解决方案

    mixin报错 import { Component, Prop, Vue ,Mixins} from 'vue-property-decorator' import httpminix from ' ...

  5. [转]Jumpserve跳板机的生产环境应用

    Jumpserver是国内一款开源的轻便的跳板机系统,他们的官网:http://www.jumpserver.org/ 使用这款软件意在提高公司内部登录生产环境服务器的便捷性,权限分配细化,以及后台管 ...

  6. 《Linux就该这么学》培训笔记_ch14_使用DHCP动态管理主机地址

    <Linux就该这么学>培训笔记_ch14_使用DHCP动态管理主机地址 文章最后会post上书本的笔记照片. 文章主要内容: 动态主机地址管理协议 部署dhcpd服务程序 自动管理IP地 ...

  7. python入门之模块

    序什么是包包的作用一.什么是模块二.模块的三种来源三.模块的四种表现形式四.为什么要使用模块五. 如何创建,编写模块,并使用模块5.1 给模块起别名5.2 模块的导入方式5.3 循环导入问题 TOC ...

  8. php 跳出循环 break

    break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环.

  9. [转帖]疑似兆芯开先KX-7000跑分曝光:IPC性能大幅提升

    疑似兆芯开先KX-7000跑分曝光:IPC性能大幅提升 https://www.bilibili.com/read/cv4028300 数码 11-23 1589阅读28点赞22评论 尽管有ARM架构 ...

  10. 【Mac+Appium+Python】之用 uiautomator2 启动报错

    参数中添加了: automationName: Uiautomator2 运行如下: [UiAutomator2] Starting UIAutomator2 server 3.1.1 [UiAuto ...