月亮是树梢的眼睛

Linux非root用户 Oh My ZSH 使用攻略

由于oh-my-zsh相关文件是每个用户独有的,不是所有用户共用一份的,在服务器上给root用户配好了oh-my-zsh,但大部分时候要用非root用户操作,用惯了oh-my-zsh,没有这个很难受,打算给自己普通用户也安装一个,搜了很多教程折腾了一晚才配好了,遇到不少问题,打算记录一下。

安装ZSH

  • 下载解压源码。因为直接apt or yum都需要sudo,所以得下源码编译安装

    ## 下载源码
    wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
    ## 解压
    xz -d zsh.tar.xz    ## 解压xz文件,提示xz命令不存在的话安装一下xz
    tar -xvf zsh.tar    ## 解压tar文件
  • 配置和安装

    ./configure --prefix=$HOME/usr/
    make
    make install

    第一条命令执行过程中可能会出现这个问题:

    configure: error: "No terminal handling library was found on your system. This is probably a library called curses or ncurses. You may need to install a package called 'curses-devel' or 'ncurses-devel' on your system"

    原因是这个curses-devel或ncurses-devel没有安装,所以还需要找到其中一个的source code编译安装一下:

    Ubuntu可以使用libncurses5-dev替代ncurses-devel

    apt-get install libncurses5-dev

    CentOS直接安装ncurses-devel

    yum install ncurses-devel

    第二步安装过程可能会因为系统没安装gcc或者make编译器而失败,根据提示安装相应编译器再回来操作

  • 检查是否安装成功。运行下面命令看是否进入zsh shell

    ~/usr/bin/zsh

    测试无误后输入exit退出zsh

安装oh-my-zsh

  • 运行安装脚本,如果你在此前尝试过安装Oh My Zsh,务必先删除:rm -rf ~/.oh-my-zsh

    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    • 这一步操作时候如果提示Unable to establish SSL connection,先查看是否安装好了openssl,如果没用就尝试直接使用wget禁用SSL验证来获取这个install.sh文件:

      wget --no-check-certificate https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
      ## 然后使用以下命令运行该文件
      bash install.sh
    • 如果这样操作提示没有权限运行/root下的/.oh-my-zsh,则是因为环境变量没有随用户切换而切换

      解决办法是ctrl + d退回能最开始的用户,通过su -切换用户

      su - 用户名
      ## 查看一下
      echo $ZSH
      ## 没有输出东西的话就可以接着运行bash install.sh命令了

      su 用户 :只切换身份

      su - 用户 :身份和shell(包含环境变量)都切换

  • 无论你是怎样得到并运行install.sh的,只要得到下列结果就表明安装成功:

             __                                     __
      ____  / /_     ____ ___  __  __   ____  _____/ /_
     / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
    / /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
    \____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                            /____/                       ....is now installed!
    
    
    Please look over the ~/.zshrc file to select plugins, themes, and options.
    
    p.s. Follow us at https://twitter.com/ohmyzsh.
    
    p.p.s. Get stickers and t-shirts at https://shop.planetargon.com.

    运行exec $HOME/usr/bin/zsh检查是否正常

  • 更改默认shell

    因为没有root权限所以chsh用不了,只能修改.bashrc文件来实现功能,末尾追加已下语句

    # use zsh
    exec $HOME/usr/bin/zsh

    运行exec $HOME/usr/bin/zsh确认shell没问题,然后source ~/.bashrc

    不然会导致直接断开ssh连接,而且重新ssh也会导致断开连接。

  • 如果真出现ssh上不去的情况,可以运行下面代码试试:

    ssh -t username@hostname /bin/bash
    # 或者
    ssh username@hostname "bash --noprofile --norc"

    之后恢复原来的.bashrc文件即可

参考链接:

没有 Root 权限 Oh My Zsh 使用攻略

Linux非root用户安装zsh和oh-my-zsh)

安装oh-my-zsh报错could not create work tree dir '/root/.oh-my-zsh'.: Permission denied的原因&解决办法

添加新评论