介绍
Oh My Zsh 是什么
- Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。
- Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。
官网
如果你有更多的兴趣,可以去官网了解详细情况。
准备
安装zsh替换默认shell。macOS系统目前默认的shell就是zsh,其他Linux系统可能需要先安装zsh。
检查是否安装zsh
1which zsh如果显示为一个路径,例如
/bin/zsh说明本地安装有zsh,且路径如上。可以跳过本节与下一节,进行oh-my-zsh的安装。如果显示zsh not found则需要安装zsh。root 用户直接安装
Ubuntu:
1 2apt install zsh #安装zsh chsh -s /bin/zsh #将zsh设置成默认shell(不设置的话直接输入zsh命令启动即可)Centos:
1 2yum install zsh chsh -s /bin/zsh其他操作系统同理。
非 root 用户编译安装
1 2 3 4 5wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download --no-check-certificate mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1 cd zsh ./configure --prefix=$HOME/zsh make && make install此处
$HOME/zsh可以换成其他位置,例如$HOME/software/zsh。如果在
./configure出现问题,提示缺少ncurses:1 2 3 4 5configure: 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则需要再编译安装
ncurses:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16export 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" mkdir ncurses && cd ncurses # 按时间倒序,下载最新版本ncurses wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-XXX.tar.gz tar -xzvf ncurses-XXX.tar.gz cd ncurses-XXX # --prefix目录同上NCURSES_HOME ./configure --prefix=$HOME/ncurses --with-shared --without-debug --enable-widec make && make install安装完成后回到zsh目录,再次运行
./configure --prefix=$HOME/zsh和make && make install即可。安装完成后,在当前shell的配置文件(对
bash是.bashrc;sh则是.profile)中加入环境变量,注意环境变量中zsh/bin位置应该和安装位置匹配:1export PATH=$HOME/zsh/bin:$PATH并且使当前环境变量生效(以
.bashrc为例):1source ~/.bashrc此时可以通过
zsh命令启动并切换到zsh,且which zsh也应该返回zsh的安装路径。将 zsh 设定为默认 shell
通常,如果zsh为内置安装,可以通过
chsh -s /bin/zsh在输入密码后修改默认 shell。但如果
zsh是编译安装,chsh无法成功执行,则可以通过添加以下语句到默认 shell 配置文件例如 .bashrc 中(先确保zsh配置正确,which zsh能找到),从而实现登陆后自动启动切换:1 2 3 4 5if [[ ($- == *i*) && ($SSH_TTY) ]]; then export SHELL=`which zsh` [ -z "$ZSH_VERSION" ] && exec "$SHELL" -l fi以上语句只对 ssh 访问生效,因此不会影响 SFTP 和远程调试等功能。
安装git,同理使用apt或者yum包管理器安装即可。
最后需要curl或者wget,安装方法同上。
安装
curl安装
| |
wget安装
| |
两种安装方式并没有什么不同。
主题
我通常是使用自带的 steeef 主题,还算简洁好用。
如果想要更换主题,只需要编辑~/.zshrc文件,把ZSH_THEME后面换成你喜欢的主题即可。
使主题生效的方法也很简单,重新打开一个终端窗口或者输入以下命令:
| |
.zshrc文件:
.zshrc文件与.bashrc文件作用是一样的。以前多数的unix系统默认shell都是bash,.bashrc文件就是bash的配置文件。使用man bash命令查看到的联机帮助文件中的相关解释如下: .bashrc - The individual per-interactive-shell startup file.
这个文件主要保存个人的一些个性化设置,如命令别名、路径等。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。一般会在.bash_profile文件中显式调用.bashrc。
登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。
插件
omz插件的管理是很简单的,有两个插件目录,其中 user 为你的用户名:
/Users/user/.oh-my-zsh/plugins
官方插件目录。该目录已经预装了很多实用的插件,只需要手动激活;
/Users/user/.oh-my-zsh/custom/plugins
第三方插件目录,快捷命令:
$ZSH_CUSTOM/plugins。
安装插件时只需要把插件下载到第三方插件目录即可,然后在 ~/.zshrc 配置文件中的 plugins 变量中添加对应插件的名称即可。
下载插件
zsh-syntax-highlighting
| |
zsh-autosuggestions
| |
如果感觉 Tab键 补全不方便,还可以自定义补全的快捷键。 比如设置逗号补全,只需要在
~/.zshrc文件添加下面这句即可:
1bindkey ',' autosuggest-accept
z.lua
z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。
项目地址:GitHub z.lua
| |
启用插件
在 .zshrc 文件中设置:
| |
启用其他插件同理。
配置生效
一种方法就是退出终端再重新打开,另一种更常用的方法就是使用我在前面所说的source命令:
| |



