转自: https://www.chadou.me/p/203
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.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
通过 wget
sh -c "$(wget https://raw.githubusercontent.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的一些命令行效率工具
Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效,如何处理?
自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : $source ~/.bash_profile
发现zsh加载的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。
解决办法
在~/.zshrc文件最后,增加一行:
source ~/.bash_profile
参考:https://blog.csdn.net/science_Lee/article/details/79214127