zoukankan      html  css  js  c++  java
  • 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 ~]$ 
    m .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/作用

  • 相关阅读:
    nginx原理及常用配置
    课程作业03-1
    Java动手动脑02
    Java课程作业02
    java课堂测试2
    Java验证码程序
    课程作业02-2
    课程作业02-1
    课程作业01
    《大道至简》第一章伪代码
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10965122.html
Copyright © 2011-2022 走看看