Linux 以非root用户安装zsh&配置on my zsh
此文章参考以下三篇文章,如有侵权请联系
Linux非root用户安装zsh, 并用oh-my-zsh进行配置
安装zsh
-
新建zsh文件夹
cd && mkdir zsh && cd zsh
-
下载最新版本的zsh,需要手动添加版本号
wget https://sourceforge.net/projects/zsh/files/latest/download/zsh-XXX.tar.xz (xxx换成最新的版本号)
-
解压下载后文件
xz -d zsh-xxx.tar.xz tar -xvf zsh-xxx.tar cd zsh-xxx (xxx换成最新的版本号)
-
编译文件
./configure --prefix=$HOME/zsh #表示安装到家目录中的zsh文件夹下,可以自己设置想要的路径 make && make install
-
若没有遇到问题则跳过此步
问题一:
./configure
出现问题,提示缺少ncurses
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." See `config.log' for more details
解决:
先配置相应的环境变量,除了第三行可以修改(也可以不修改),其他不用修改
export CXXFLAGS="-fPIC" export CFLAGS="-fPIC" export NCURSES_HOME=$HOME/ncurses # 这里表示家目录的ncurses目录,可以自己设置一个想要的路径 export PATH=$NCURSES_HOME/bin:$PATH export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"
配置好环境变量后,安装
ncurses
, 找到最新版本ncurses下载安装cd ../../ && mkdir ncurses && cd ncurses # 切换到上级目录新建ncurses文件夹 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-XXX.tar.gz # 下载最新版本ncurses tar -xzvf ncurses-XXX.tar.gz # 解压 cd ncurses-XXX # XXX需要改成最新的版本号 ./configure --prefix=$HOME/ncurses --with-shared --without-debug --enable-widec # 指定路径configure,可以自己修改想要安装的路径,这里我装到了家目录的ncurses下面了 make && make install # 安装
安装完
ncurses
后,回到zsh路径,重新进行第四步就行了。问题二:
make && make install
时出现问题make: *** No targets specified and no makefile found. Stop.
这里的问题应该也是问题一,可能是你没有看到而忽略了。按照问题一的解决办法修改就行了。
安装on my zsh
-
更新PATH
安装
oh-my-zsh
前先将安装好的zsh
所在的路径添加到系统环境变量PATH
中export PATH=$HOME/zsh/bin:$PATH # 这里需要修改成你安装的路径
但是我们会发现重新登录之后,默认的shell还是bash,这里我们通过修改
.bash_profile
来自动切换到zsh
,将一下命令加到~/.bash_profile
[ -f $HOME/zsh/bin/zsh ] && exec $HOME/zsh/bin/zsh -l # 路径还是要修改成你安装的路径
注意zsh与scp不兼容,所以不要把该命令写到
.bashrc
中。因为当我们使用scp命令从本地连接该Linux服务器时,系统会自动执行.bashrc
(而不会执行.bash_profile
),如果.bashrc
中有切换到zsh的命令,则系统的shell会被切换到zsh, 从而与scp产生兼容的问题。.bash_profile
只有当交互式登录shell时(如系统启动、远程登录)才会被读取并执行,而.bashrc
在交互式登录与非交互登录(如使用scp从本地连接到该Linux服务器)时都会被读取且执行。 -
安装onmyzsh
# 方法一:wget方式自动化安装oh my zsh: $ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh # 方法二: $ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh # 官网上的另外一种写法 $ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # 方法三:手动安装 $ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh 注: 1. 克隆后将templates目录下的zsh配置文件拷贝至~/.zshrc即可 2. .oh-my-zsh一定要在$HOME下( ~ 下)
以上选一种即可
-
切换到zsh,安装完之后应该是会自动切换到zsh
exec $HOME/zsh/bin/zsh # 你的zsh路径
配置on my zsh
-
修改默认主题
vim ~/.zshrc
用vim打开文件后,按下
/
键,可以直接搜索ZSH_THEME
的位置,按esc即可退出。将其修改成ZSH_THEME="ys"
-
zsh插件
语法高亮插件 zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-syntax-highlighting
自动提示插件 zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-autosuggestions
下载之后还需要修改
.zshrc
使其生效,修改plugins
的值,将zsh-syntax-highlighting
zsh-autosuggestions
添加进去plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
然后
source
source ~/.zshrc