昨天在配置好go的开发环境后,今天从新进入Ubuntu,发现无法进入。
一直卡在登陆界面。
出现问题后,要解决问题,最重要是要锁定原因。
通过ctrl+alt+f1 进入tty1
使用root身份登陆。
敲入ls命令,发现页面弹出错误提示,经过研究,应该是命令没有找到的意思(中文是用菱形替代的)
如果ls这种命令没有找到,那显然是PATH环境变量,有问题。
echo $PATH
果然发现了问题,
路径下没有/usr/local/sbin:/usr/local/bin。。。。等之类的信息。
问题确定了
解决方案:
编辑/etc/environment这个文件,
添加PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
问题原因是在配置Go的环境变量时,将PATH变量覆盖了。
过了一天登陆的时候,又发现同一样的问题。
虽然用上面的方法能够解决问题,但是还是没有找到问题的根源。
后来发现,问题的根源是自己在配置环境变量的时候是这么写的
....
export GOPATH=/usr/local/go
export PATH=$GOPATH/bin:$PATH
....
这个在执行的时候,应该是现将冒号前面的值赋值给PATH,这时PATH的值已经是$GOPATH/bin了,然后再将PATH的值赋值给PATH。这样PATH原来保留的值已经丢失了。
当然,全局的PATH和用户的PATH变量只要有一个配置正确了就能够正常使用。但悲催的是,我每次配置环境变量的时候总是将同时配置全局环境变量和个人环境变量。
全局
/etc/environment
/etc/profile
个人
~/.profile
~/.bashrc
这个主要是目录的位置不同。