用强大的zsh & oh-my-zsh替换bash

zsh 介绍

Linux Shell

Linux/Unix提供了很多种Shell,常用的Shell有这么几种,sh、bash、csh等,想知道你的系统有几种shell,可以通过以下命令查看:

[root@iZ216d96ogsz ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

zsh 简介

Zsh是一个Linux下强大的shell, 也许是目前最好用的 shell,是 bash 替代品中较为优秀的一个。由于大多数Linux产品安装,以及默认使用bash shell, 但是丝毫不影响极客们对zsh的热衷, 几乎每一款Linux产品都包含有zsh,通常可以用apt-get、urpmi或yum等包管理器进行安装

Zsh具有以下主要功能

开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项

在用户启动的所有shell中共享命令历史

通过扩展的文件通配符,可以不利用外部命令达到find命令一般展开文件名

改进的变量与数组处理

在缓冲区中编辑多行命令

多种兼容模式,例如使用/bin/sh运行时可以伪装成Bourne shell

可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏

可加载的模块,提供其他各种支持:完整的TCP与Unix域套接字控制,FTP客户端与扩充过的数学函数

完全可定制化

zsh 与 oh-my-zsh

oh-my-zsh 是基于zsh的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。

安装 zsh

安装 zsh

对于一般的CentOS系统,直接键入以下命令安装:

yum install zsh

配置zsh

zsh配置比较复杂,使用默认配置,或者把你的bash的配置文件(~/.bash_prorile或者~/.profile等)拷贝到zsh的配置文件~/.zshrc里,因为zsh兼容bash。

取代bash,设为默认shell

sudo usermod -s /bin/zsh username
# 或者
chsh -s /bin/zsh
# 或者
chsh -s `which zsh`

如果要切换回bash:

chsh -s /bin/bash

如果你不想把zsh设为默认的shell, 只是临时使用它, 你可以每次都输入zsh进入, 输入exit退出。

安装 oh-my-zsh

zsh功能很强大但是太复杂,所以需要oh-my-zsh来简化它。
Oh My Zsh是通过在终端中运行以下命令之一来安装的。您可以通过curl或wget的命令行安装。

通过 curl

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

通过 wget,优先推荐使用码云地址

# 码云地址
sh -c "$(wget -O- https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)" 

# github地址
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
配置插件

你想要使用Oh My Zsh,你需要在.zshrc文件中启用它们。你会在$ HOME目录中找到.zshrc文件。使用您最喜欢的文本编辑器打开它,您会看到一个地方plugin=(git)列出您要加载的所有插件。

plugins=(git bundler osx rake ruby)
更新oh-my-zsh

默认情况下, 您将被提示检查每几周的升级. 如果你想我ZSH自动升级本身没有提示你, 修改~/.zshrc

disable_update_prompt = true

禁用自动升级, 修改~/.zshrc

disable_auto_update = true

当然你也可以选择手动更新

如果你想在任何时间点升级(也许有人刚刚发布了一个新的插件,你不想等待一个星期?)你只需要运行:

upgrade_oh_my_zsh
卸载oh-my-zsh

如果你想卸载oh-my-zsh, 从命令行运行下面的命令. 这将删除本身和恢复你以前的bash或者zsh配置.

uninstall_oh_my_zsh zsh

安装 zsh-autosuggestion

zsh-autosuggestion 是一款根据命令历史输入时的命令进行输入提示的插件。

手动安装

1、克隆资源库到你的计算机. 假设是 ~/.zsh/zsh-autosuggestions

git clone git://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

2、添加内容到 .zshrc:

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

3、重新打开终端会话。

通过 oh-my-zsh 安装

1、克隆资源库到 $ZSH_CUSTOM/plugins (默认是 ~/.oh-my-zsh/custom/plugins)

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

2、将插件添加到插件列表,让 Oh My Zsh 加载。
修改 ~/.zshrc 文件,找到 plugins=(git) 这一行,然后添加autosuggestions

plugins=(git zsh-autosuggestions)

3、重新打开终端会话,或者执行 source ~/.zshrc也可以更新会话。

其他:

1、你如果分开设置oh-my-zsh和autosuggestions,那么你的terminal的autosuggestions不会起作用的。你需要要把autosuggestions作为zsh的插件放到 ~/.zsh/plugins/ 下面,然后再在 ~/.zshrc 文件中加入这个插件 plugins=(git zsh-autosuggestions)

参考资料

Zsh的一些命令行效率工具

如需转载,请注明出处: https://www.chadou.me/p/203

最新发布