目前常用的Linux系统和OS X系统默认的shell都是bash,但 zsh才是shell中的极品,它具有色彩高亮、智能补全、命令提示等优点,使我们工作更专注于内容,而不是专注于命令是否错误。但 zsh的配置太复杂,让许多开发人员望而却步。直到Github上 oh-my-zsh项目的出现, zsh的配置才变得简单并易于管理,我们可以使用数百个功能强大的插件和精美的主题。
1.存在问题
- 没有root权限,无法使用
apt
和yum
等包管理工具,需要自行解决安装中的依赖问题。 - 没有root权限,无法修改登录的默认shell。
2.解决思路
- 在
/home
你的目录下编译安装zsh
。 PATH
环境变量添加zsh
的安装目录。exec zsh
切换到zsh中。(可以参考 官方推荐方式 中的1.7修改启动脚本~/.profile
,从而将zsh
设置为默认shell。[需要注意的是,如果修改.profile文件失误,再次登录shell是会出现连接不上服务器的情况,慎重!!!])- 无root权限安装
oh-my-zsh
。 - 根据自己的需求管理zsh配置文件。
3.安装zsh
- 1.官方文档:http://zsh.sourceforge.net/FAQ/zshfaq01.html
- 2.创建zsh安装目录
# 位置自定义,只要在自己的home目录下,版本对应
mkdir Applications
mkdir Applications/zsh-5.7.1
- 3.下载源码
# wget下载源码并将压缩包命名为 zsh.tar.xz
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
- 4.解压
# 将.xz文件解压成tar文件 ---> zsh.tar
xz -d zsh.tar.xz
# tar解压
tar -xvf zsh.tar
- 5.配置与编译
# 解压后生成 zsh-5.7.1 文件夹,与版本相关
cd zsh-5.7.1
# 配置 --prefix选项指定安装目录
./configure --prefix=$HOME/Applications/zsh-5.7.1
# 编译与安装
make
make install
配置时存在问题: configure错误.
解决方法: 手动安装ncurses-devel.
# 1.为 ncurses-devel 编译设置一些编译选项
vim ~/.bashrc
# 在 ./bashrc中添加以下内容, :wq退出
export CXXFLAGS=" -fPIC"
export CFLAGS=" -fPIC"
# source 命令使改动生效
source ~/.bashrc
# 2.安装 ncurses-devel
# 下载
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
# 解压
tar -zxvf ncurses-6.1.tar.gz
# 配置
mkdir Applications/ncurses-6.1
cd ncurses-6.1
./configure --prefix=$HOME/Applications/ncurses-6.1 --with-shared
# 编译与安装
make
make install
# 3.配置环境变量
vim ~/.bashrc
# 添加以下内容
export NCURSES_HOME=$HOME/Applications/ncurses-6.1
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOMEb:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOMEb"
# source
source ~/.bashrc
返回zsh的配置阶段,配置并编译安装。
cd ~/zsh-5.7.1
./configure --prefix=$HOME/Applications/zsh-5.7.1
make
make install
- 6.PATH环境变量中配置zsh
vim ~/.bashrc
# 添加以下内容
export PATH=$HOME/Applications/zsh-5.7.1/bin:$PATH
# source
source ~/.bashrc
4.安装oh-my-zsh
- 1.通过
zsh
或exec zsh
切换到zsh - 2.Github地址:https://github.com/ohmyzsh/ohmyzsh
- 3.安装om-my-zsh
# 根据 github 上的 README 操作
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
5.根据自身需求配置zsh
Looking for an existing zsh config…
Using the Oh My Zsh template file and adding it to ~/.zshrc.
- 通过
~/.zshrc
配置插件(plugins)和主题(themes)
~/.oh-my-zsh/plugins
:oh-my-zsh官方插件目录。
~/.oh-my-zsh/custom/plugins
:路径存放第三方插件。
# 列出 oh-my-zsh 中所有的主题
cd ~/.oh-my-zsh/themes && ls
# 列出 oh-my-zsh 中所有的插件
cd ~/.oh-my-zsh/plugins && ls
# 我的配置
vim ~/.zshrc
# ---- 修改插件和主题内容保存----
plugins=(
git
pip
last-working-dir
)
ZSH_THEME="agnoster"
# 生效
source ~/.zshrc
- 插件推荐
last-working-dir
:记录退出终端时所在路径,再次打开终端还在这个路径。zsh-syntax-highlighting
:第三方插件,用于终端输入命令的语法高亮。
# 1.Clone this repository in oh-my-zsh's plugins directory --> ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 2.Activate the plugin in ~/.zshrc
plugins=(其他插件 zsh-syntax-highlighting)
3.zsh-autosuggestions
:第三方插件,历史记录建议,按Tab
键补全。
# 1.Clone this repository into $ZSH_CUSTOM/plugins (by default ~/.oh-my-zsh/custom/plugins)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 2.Add the plugin to the list of plugins for Oh My Zsh to load (inside ~/.zshrc)
plugins=(其他插件 zsh-autosuggestions)
4.z
:类似autojump
功能的oh-my-zsh内置插件,用于目录之间的快速跳转。按照z [-cehlrtx] args
这样的格式使用。
5.Thefuck
:适用于bash,zsh等,命令行纠错工具,命令出错时,输入fuck
纠正。
# 1.install
pip install thefuck
# 2.在~/.bashrc,~/.zshrc等中配置
#编辑bashrc配置文件
vim ~/.bashrc
#在文件尾加入一行
eval "$(thefuck --alias fuck)"
#使生效
source ~/.bashrc
参考:
[1] 不使用root权限安装zsh和oh-my-zsh
[2] 在没有sudo权限的Linux服务器下安装oh-my-zsh