Ubuntu--Oh My Zsh

一、zsh一些特性

1.兼容bash,原来使用bash的兄弟切换过来毫无压力。
2.强大的历史纪录功能,在用方向上键查找历史命令时,zsh支持限制查找。比如输入ls然后再按方向上键,则只会查找用过的ls命令。而此时使用bash则会仍然按之前的方式查找,忽略ls。
3.多个终端会话共享历史记录
4.各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下tab键,补全项可以使用ctrl+n/p/f/b上下左右切换。比如你想杀掉java的进程,只需要输入kill java + tab键,如果只有一个java进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh+空格+两个tab键,zsh会列出所有访问过的主机和用户名进行补全。
5.智能跳转:安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。
6.目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。在当前目录下输入…或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入cd命令了。
7.通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替find,文件太多还是用find。

二、安装zsh和oh-my-zsh

系统中普通用户和root用户都会有一个默认shell,可以通过在当前用户下使用echo $SHELL查看当前用户的默认shell。下面操作是在root用户下

1.安装zsh

sudo apt-get install zsh

zsh 的配置文件位置:~/.zshrc

2.安装Git

sudo apt-get install git

3.安装oh-my-zsh

github地址:https://github.com/robbyrussell/oh-my-zsh
可以通过以下两种方式进行安装:

  • via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

oh-my-zsh 的默认安装目录:~/.oh-my-zsh
Ubuntu--Oh My Zsh_第1张图片

4.设置默认shell

为 root 用户设置 zsh 为系统默认 shell:

chsh -s /bin/zsh root
或者
vi /etc/passwd 手动修改

重新恢复 root 用户默认 shell 到 bash:

chsh -s /bin/bash root

三、安装插件

插件不要装得太多,否则会使终端反应变慢。

1.使用自带插件

oh-my-zsh 默认自带了一些默认插件,存放在~/.oh-my-zsh/plugins目录中,oh-my-zsh默认是只启用 git 插件。设置方法是先编辑~/.zshrc文件,添加需要用的插件到plugins=( [plugins...])中,然后执行source ~/.zshrc激活即可。

2.autojump自动跳转插件

github地址:https://github.com/wting/autojump
安装命令:

sudo apt-get install autojump

配置说明文件位置:

/usr/share/doc/autojump/README.Debian

添加指令到~/.zshrc最后一行:

. /usr/share/autojump/autojump.sh

激活插件:

source ~/.zshrc

插件使用方法:j是autojump的封装,j可以配合使用autojump的所有选项,–help查看选项。

  • 跳转到包含foo的目录

    j foo

  • 跳转到子目录

    jc bar

  • 打开文件管理器到该目录(而不是终端跳转)

    jo music

3.zsh-autosuggestions自动提示插件

github地址:https://github.com/zsh-users/zsh-autosuggestions
克隆仓库到oh-my-zsh的插件目录:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

添加插件到oh-my-zsh的插件列表(vi ~/.zshrc):

plugins=( [plugins...] zsh-autosuggestions)

激活插件:

source ~/.zshrc

插件使用方法:
当键入命令时,将会看到光标处于柔和灰色,提示可能会键入的命令。如果按下 →键End键,光标会跳到缓冲区的末尾,表示接受建议,用建议替换命令行缓冲区的内容。

4.zsh-syntax-highlighting语法高亮插件

github地址:https://github.com/zsh-users/zsh-syntax-highlighting
克隆仓库到oh-my-zsh的插件目录:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

添加插件到oh-my-zsh的插件列表(vi ~/.zshrc):

plugins=( [plugins...] zsh-syntax-highlighting)

激活插件:

source ~/.zshrc

四、配置主题

主题列表在/root/.oh-my-zsh/themes目录下,部分主题如下所示(实在太多了):

3den.zsh-theme           gallois.zsh-theme          nicoulaj.zsh-theme
adben.zsh-theme          garyblessington.zsh-theme  norm.zsh-theme
af-magic.zsh-theme       gentoo.zsh-theme           obraun.zsh-theme
afowler.zsh-theme        geoffgarside.zsh-theme     peepcode.zsh-theme
agnoster.zsh-theme       gianu.zsh-theme            philips.zsh-theme
alanpeabody.zsh-theme    gnzh.zsh-theme             pmcgee.zsh-theme
amuse.zsh-theme          gozilla.zsh-theme          pure.zsh-theme
apple.zsh-theme          half-life.zsh-theme        pygmalion.zsh-theme
arrow.zsh-theme          humza.zsh-theme            re5et.zsh-theme
aussiegeek.zsh-theme     imajes.zsh-theme           refined.zsh-theme
avit.zsh-theme           intheloop.zsh-theme        rgm.zsh-theme
awesomepanda.zsh-theme   itchy.zsh-theme            risto.zsh-theme
bira.zsh-theme           jaischeema.zsh-theme       rixius.zsh-theme
... ...

更改主题的方法是编辑~/.zshrc配置文件,可以看到ZSH_THEME="robbyrussell"设置项,robbyrussell就代表了默认主题(同时也是oh-my-zsh作者的名称),然后提取主题列表中点之前的字符串,替换掉旧的主题名(例如ZSH_THEME=“gallois”),最后执行source ~/.zshrc即可使主题设置生效。下图为几种主题的效果。
Ubuntu--Oh My Zsh_第2张图片

五、卸载oh-my-zsh

直接在终端中,运行uninstall_oh_my_zsh即可卸载。不使用的话其实没必要卸载,chsh -s /bin/bash切换到bash就和以前一样了。


参考网址:

  • https://blog.csdn.net/czg13548930186/article/details/72858289
  • https://blog.csdn.net/amoscykl/article/details/80616873
  • https://www.cnblogs.com/EasonJim/p/7863099.html

你可能感兴趣的:(Ubuntu)