由于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文件即可
参考链接:
安装oh-my-zsh报错could not create work tree dir '/root/.oh-my-zsh'.: Permission denied的原因&解决办法