介绍
Oh My Zsh 是什么
- Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。
- Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。
官网
如果你有更多的兴趣,可以去官网了解详细情况。
准备
安装zsh替换默认shell。macOS系统目前默认的shell就是zsh,其他Linux系统可能需要先安装zsh。
检查是否安装zsh
1
which zsh
如果显示为一个路径,例如
/bin/zsh
说明本地安装有zsh,且路径如上。可以跳过本节与下一节,进行oh-my-zsh的安装。如果显示zsh not found
则需要安装zsh
。root 用户直接安装
Ubuntu:
1 2
apt install zsh #安装zsh chsh -s /bin/zsh #将zsh设置成默认shell(不设置的话直接输入zsh命令启动即可)
Centos:
1 2
yum install zsh chsh -s /bin/zsh
其他操作系统同理。
非 root 用户编译安装
1 2 3 4 5
wget -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 5
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
则需要再编译安装
ncurses
:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
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" 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
位置应该和安装位置匹配:1
export PATH=$HOME/zsh/bin:$PATH
并且使当前环境变量生效(以
.bashrc
为例):1
source ~/.bashrc
此时可以通过
zsh
命令启动并切换到zsh
,且which zsh
也应该返回zsh
的安装路径。将 zsh 设定为默认 shell
通常,如果zsh为内置安装,可以通过
chsh -s zsh
在输入密码后修改默认 shell。但如果
zsh
是编译安装,chsh
无法成功执行,则可以通过添加以下语句到默认 shell 配置文件例如 .bashrc 中(先确保zsh配置正确,which zsh
能找到),从而实现登陆后自动启动切换:1 2 3 4 5
if [[ ($- == *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
文件添加下面这句即可:
1
bindkey ',' autosuggest-accept
z.lua
z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。
项目地址:GitHub z.lua
|
|
启用插件
在 .zshrc 文件中设置:
|
|
启用其他插件同理。
配置生效
一种方法就是退出终端再重新打开,另一种更常用的方法就是使用我在前面所说的source
命令:
|
|