shell神器zsh和oh-my-zsh

2,453 阅读3分钟

作者发现同事mac上自带zsh,而linux不会自带,百度一下,发现对zsh的评价很高,所以今天尝试了一下感觉发现了新大陆

为什么使用zshOh My Zsh

原来我也一直有这个疑问,Linux默认都是带bash或者dash的,我坚持使用bash,把bash掌握的很熟,以后再使用其他系统的时候,不用再学习了。这个时候就要问自己一个问题了,"你经常切换电脑吗?",其实大多数时候我们只有一个常用电脑,为了强制学习bash浪费了太多时间,何必跟自己过不去,用zsh可以大大提高工作效率,并且zsh也兼容bash,让你在学习shell的时候更舒心,工作的时候更顺心。

1 Zsh

Zsh官网地址: www.zsh.org/
Zsh美国: zsh.sourceforge.net/

Zsh is a shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added.

以上是引自官网的一段话,意思是说: “Zsh 是为交互使用而设计的一款shell,同时它也是一个强大的脚本语言。很多其他shell的特性, 比如bash、ksh、tcsh, 都被整合到了Zsh中, 并且还添加了很多新的特性”。

关于其他的Zsh介绍,可以参考官方文档(PS: 等有时间了翻译,排期排满了)。

1.1 debian下安装

apt install zsh

1.2 OS X安装

brew install zsh

brew: brew.sh/

2 Oh My Zsh

官网地址: ohmyz.sh/
官网可能打不开,放github: github.com/robbyrussel…

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout...

官网这句话说的很明确也很有意思了: ”Oh My Zsh是一个令人愉快的、开源的、社区驱动的Zsh配置管理框架。它配置了成吨的有用的函数、帮助信息、主题,还有一些令你尖叫的东西。“

通过官网这句话,很清晰,Oh my Zsh是依赖Zsh的,安装之前一定要安装Zsh,别傻乎乎的只安装了一个Oh My Zsh就去论坛骂街。

2.1 安装

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# 或者
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

安装完source ~/.zshrc,效果很明显

为什么用Oh My Zsh,因为这样基本就可以看见你想要的各种效果,很简单,像我这种浅度用户,基本就够了。不过还是有几个推荐的插件,方便大家使用。

3 插件

推荐几个值得尝试的插件,如果大家有更好的,可以也分享出来,一起提高效率。

3.1 zsh-autosuggestions

github地址: github.com/zsh-users/z…
安装:github.com/zsh-users/z…

zsh-autosuggestions是一个命令提示工具,会根据你的输入频率和权重,在光标后提示最有可能补全。如果补全的命令正是你想输入的,直接按方向键 右,就可以使用。

3.2 z

github地址: github.com/rupa/z

z是用于快速跳转目录的工具,它会记录你访问过的路径,并根据你访问的频率,提示目录。

3.3 zsh-syntax-highlighting

github地址: github.com/zsh-users/z…
安装:github.com/zsh-users/z…

zsh-syntax-highlighting命令行,语法高亮提示。

4 最后

既然这个shell这么好用怎么设置为默认shell呢?

chsh -s /bin/zsh