我有一台双启动的 Windows 7 / Ubuntu 14.04 电脑。Ubuntu 中的一切都运行良好,直到我启动 Windows 然后切换回 Ubuntu。现在当我尝试登录时,它总是将我送回登录屏幕。我使用命令行登录得很好,但它似乎是一个混乱的路径变量。在命令行上,除非我执行导出路径,否则我无法使用 sudo 或任何其他功能。
我创建了一个新用户,它可以正常工作,直到我必须再次切换到 Windows,然后它又做了同样的事情。
答案1
如果您说它在登录提示符处循环,则密码没有显示错误,但会返回到登录提示符。我可能可以帮忙。这发生在我身上。我不知道为什么。
可能有帮助。
在终端中输入的代码dpkg-reconfigure lightdm
对我有用。显然,.Xauthority 文件中存在一些问题。希望链接能有所帮助。
答案2
如果您使用 打开.profile
位于主目录中的文件,即/home/yourusername
或~
,sudo gedit ~/.profile
它实际上会说明您的登录 shell 使用哪些文件。
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
PATH=/usr/local:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
(echo $PATH
在终端中输入也会得到PATH
变量的值。)
我既没有.bash_profile
也没有.bash_login
文件,因此我的登录 shell 的命令解释器(即 bash)将.profile
按照文件中所述执行我的命令。(使用 找出您的 shell 是什么echo $SHELL
。如果输出与 不同/bin/bash
,您可能会对此感兴趣:https://unix.stackexchange.com/questions/88201/whats-the-best-distro-shell-agnostic-way-to-set-environment-variables)
例如,即使.profile
上面的文件中有说明include .bashrc if running bash
,但我的文件是空的。.bashrc
因此,我将命令目录的路径/usr/bin
直接包含在文件中.profile
。
如果文件中定义的变量/usr/bin
值中未包含,则只需使用冒号将其添加到其他路径后即可。路径的顺序无关紧要。PATH
.profile
启动其他操作系统后出现这种情况的部分原因是,永久删除或添加路径等更改仅在重新启动后生效。因此,正如@solsTiCe 已经提到的,Windows 无法干扰您的系统。一定是有“其他东西”改变了变量PATH
。