oh-my-zsh,让你的终端从未这么爽过

oh my zsh

shell的类型有很多种,linux下默认的是bash,虽然bash的功能已经很强大,但对于以懒惰为美德的程序员来说,bash的提示功能不够强大,界面也不够炫,并非理想工具。

而zsh的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,有个穷极无聊的程序员可能是实在看不下去广大猿友一直只能使用单调的bash, 于是他创建了一个名为oh-my-zsh的开源项目...

https://github.com/robbyrussell/oh-my-zsh

自此,只需要简单的安装配置,小白程序员们都可以用上高档大气上档次,狂拽炫酷吊炸天的oh my zsh

http://ohmyz.sh/

安装zsh

以centos7为例:

查看系统当前使用的shell

$ echo $SHELL 
/bin/bash

查看系统是否安装了zsh

$ cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

centos7默认情况下没安装zsh

用yum安装zsh

$ yum -y install zsh

查看shell列表

$ cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh

切换shell为zsh

$ chsh -s /bin/zsh
Changing shell for root.
Shell changed.

重启服务器后,可使用reboot

重启后,查看当前shell

$ echo $SHELL 
/bin/zsh

安装 oh my zsh

oh-my-zsh源码是放在github上,先确保你的机器上已安装了git

安装:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

成功界面:

  ____  / /_     ____ ___  __  __   ____  _____/ /_  
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ 
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / 
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  
                        /____/                       ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.

p.s. Follow us at https://twitter.com/ohmyzsh.

p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.

接下来只需简单的配置,就可以享受oh-my-zsh的强大

主题选择

oh-my-zsh有很多漂亮的主题:

主题列表

我使用的主题是ys

http://blog.ysmood.org/my-ys-terminal-theme/

http://blog.ysmood.org/my-ys-terminal-theme/

修改主题:

$ vim ~/.zshrc

ZSH_THEME改成ys

ZSH_THEME="ys"

更新配置:

$ source ~/.zshrc   

自动补齐插件

linux不少命令的参数很多,不可能一一记住,常规的查看手册又觉得慢。如果你也有这种苦恼,那么我相信你会爱上oh-my-zsh

一图胜千言

自动补全的插件

incr.zsh 补全插件

下载此插件:

$ wget http://mimosa-pudica.net/src/incr-0.2.zsh   

将此插件放到oh-my-zsh目录的插件库下:

# root @ linux in ~/.oh-my-zsh/plugins/incr on git:master x [15:05:07] 
$ ls                                                                      root@linux
incr-0.2.zsh

~/.zshrc文件末尾加上

source ~/.oh-my-zsh/plugins/incr/incr*.zsh

更新配置:

$ source ~/.zshrc   

接下来你就可以体验到Your terminal never felt this good before...

与vim的提示相冲突的解决方案

使用自动补全插件可能会与vim的提示功能相冲突,如会报以下错误:

$ vim t
_arguments:451: _vim_files: function definition file not found

解决方法:将~/.zcompdump*删除即可

$ rm -rf ~/.zcompdump*
$ exec zsh

欢迎访问我的博客原文

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

Hbase 技术细节笔记(上)

前言 最近在跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hbase的理解,对相关知识点做了笔记,并在组内...

2539
来自专栏大宽宽的碎碎念

为什么DB连接管理一般不采用IO多路复用?

3488
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

2538
来自专栏bboysoul

linux 终端下最简单的代理方式(proxychains)

我以前写过给linux终端设置代理 这个是用polipo这个工具把socks5代理转换成为http和https代理来实现终端下代理的,那么终端下有没有原生的使...

1982
来自专栏美团技术团队

分布式系统互斥性与幂等性问题的分析与解决

前言 随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩...

5544
来自专栏微服务生态

深入浅出Netflix Conductor使用

Netflix Conductor框架是典型的服务编排框架,通过Conductor还可以实现工作流和分布式调度,性能非常卓越。

9783
来自专栏SDNLAB

如何向OpenDaylight社区贡献代码

本文由两部分构成,第一部分简要介绍了Gerrit的工作原理以工作流程,第二部分结合自己成功提交代码的例子,向大家展示向OpenDaylight提交源码的过程。向...

3959
来自专栏扎心了老铁

使用beanstalkd实现定制化持续集成过程中pipeline

持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合。各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服...

3507
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

 CRM(Customer Realationship Management)客户关系管理,是利用相应的技术信息以及互联网技术来协调企业与顾客间在销售、营销和...

3577
来自专栏小灰灰

QuickTask动态脚本支持框架整体介绍篇

一个简单的动态脚本调度框架,支持运行时,实时增加,删除和修改动态脚本,可用于后端的进行接口验证、数据订正,执行定时任务或校验脚本

1282

扫码关注云+社区

领取腾讯云代金券