今天用useradd命令新建用户后,发现新用户“不显示用户名和路径”,如图,看着很难受:
就类似于这样:
$ cd ~ $ ls$ ls -a
从网上搜集资料,有如下两种解决方法:
#可以先cat /etc/passwd查看新用户指定shell是否为/bin/bash su - root usermod -s /bin/bash newUser
如果修改指定shell后还是不行的话只能用下面方法了。
vim ~/.bash_profile #加入这一行 export PS1='[$USER@$PWD]$' #保存然后刷新~/.bash_profile文件 source ~/.bash_profile -----------备注----------- #网上也有说加入这一行的,但是我的CentOS7亲测不行,上面的肯定能行 #export PS1='[u@h W]$' #其中大写W代表最后路径,小写w代表详细路径
后来我研究了下root下的~/.bash_profile文件,发现它调用了~/.bashrc后又调用了/etc/bashrc文件,如下:
[root@jiahao ~]# cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH [root@jiahao ~]# cat .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
这就很好办啦,摈弃一些无用的设置,直接在新建的~/.bash_profile文件中写入:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
但是这样其实是有风险的哦,有兴趣的同学可以试一试,但是不要在生产环境试哦!
useradd命令解析 -d 指定家目录 -g 指定用户组 -s 指定用户登入后所使用的shell -m 自动创建用户的家目录。 Case 1: 创建一个带有家目录并且可以登录 bash 的用户 $ sudo useradd -m -s /bin/bash tester1 Case 2: 指定创建用户家目录的路径 $ sudo useradd -m -d /home/xxx tester2 /home/xxx目录会被创建。 Case 3: 创建一个没有家目录且不能登录的用户 $ sudo useradd -s /sbin/nologin tester3 Case 4: 创建时把用户加入不同的用户组 $ sudo useradd -m -G xxx,sudo tester4 注意过个组名使用逗号分隔,不能有空格。