出现这个问题的原因主要是权限问题,我这里的方法一只适用于root用户和普通用户都分别安装了oh-my-zsh的情况,如果是利用软连接使根用户和普通用户的zsh都使用相同的配置的情况,请看方法二。
方法一
先说明一下,当你进入根用户后~表示你所在的目录是/root,如果是普通用户则表示你所在目录是/home/usr_nama。
解决方法,因为根用户和普通用户底下都有.oh-my-zsh和.zshrc这两个文件,所以会出现访问路径错误问题,根用户可能会访问到普通用户的.oh-my-zsh,普通用户可能会访问到根用户的.oh-my-zsh,所以我们要去到各自的.zshrc进行路径修改,具体方法是:
普通用户状态
sudo chmod 755 -R .oh-my-zsh
sudo chmod 755 -R /root/.oh-my-zsh
sudo gedit ~/.zshrc
或
sudo gedit /home/usr_name/.zshrc
看到第五行,会出现export ZSH="/home/xxx/.oh-my-zsh"
把这个xxx改成你的用户名
接着sudo su
输入密码进入根用户模式
gedit ~/.zshrc
或
sudo gedit /root/.zshrc
看到第五行,会出现export ZSH="/home/xxx/.oh-my-zsh"
把xxx改成/home/xxx改成/root即可。
方法二
出现这种情况的原因,主要是我们想用普通用户的文件来修饰根用户的界面,这是系统所不想发生的,因此我们需要把omz部分文件的归属权更改为根用户的。具体操作如如下:
在普通用户目录执行
sudo chown root:root .oh-my-zsh
sudo chmod 755 .oh-my-zsh -R
同时删掉.oh-my-zsh目录里面的.oh-my-zsh符号链接:
cd .oh-my-zsh
sudo rm .oh-my-zsh
同时要注意,如果你要更新omz,那么你要把omz的归属权还给普通用户更新完再改为根用户
sudo chown xxx:xxx .oh-my-zsh
omz update
sudo chown root:root .oh-my-zsh