ele*_*t15 4 linux ssh zsh oh-my-zsh
所以,我刚刚按照此处的建议,在我可以通过 SSH 访问(但重要的是,没有 root 访问权限)的机器上安装了 zsh 。然后我继续尝试安装 Oh My Zsh,并收到以下消息:
Zsh is not installed! Please install zsh first!
Run Code Online (Sandbox Code Playgroud)
这并不令人惊讶。检查安装脚本后,检查是否安装了 zsh 的代码是:
CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n"
exit
fi
unset CHECK_ZSH_INSTALLED
Run Code Online (Sandbox Code Playgroud)
因此,如果没有 root 访问权限,我无法编辑 /etc/shells.conf 文件。还需要注意的是,当我通过 SSH 进入这个系统时,我不一定登录到同一台物理机器;相反,我登录到几台机器之一,我的主目录被复制到其中。目前我的代码中.profile有添加~/bin到我的代码$PATH并在登录时启动 zsh。
基本上,有没有办法解决这个问题?我认为可以修改安装脚本以适应将 zsh 安装到 ~/bin/zsh 的情况,但是如果不是不明智的话,仅仅盲目地删除检查逻辑当然似乎没什么。
检查逻辑只是为了防止chsh在安装结束时失败。如果您的zsh二进制文件未在 中列出/etc/shells,您将无法chsh用于更改您的登录 shell。在这种情况下,~/bin/zsh从您当前的登录 shell 启动文件之一运行是zsh自动启动的唯一方法。由于~/.profile通常仅用于登录会话,因此应该没问题。您可能希望zsh -l从那里运行以获取登录会话,而不仅仅是交互式会话(加载配置文件的方式不同)。
为了安装oh-my-zsh,您必须从中删除一些代码install.sh:即问题中提到的检查以及它尝试自动运行的位置chsh。或者您只需运行以下两个命令:
git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
除非您想将oh-my-zsh安装在其他地方,~/.oh-my-zsh否则不需要其他任何东西。其他一切都install.sh只是:
git clone无论如何都会阻止~/.zshrc,您可能在全新安装时没有备份| 归档时间: |
|
| 查看次数: |
3228 次 |
| 最近记录: |