参考链接:Linux终极shell-Z Shell--用强大的zsh & oh-my-zsh把Bash换掉_OSKernelLAB(gatieme)-优快云博客_zshell
zsh终端配置指南_starslayerx的博客-优快云博客_zsh 终端配置
本文的主要目的是修改上述链接出现的错误问题。因为我也是试了好几次才成功的
大多数的Linux用户偏爱Bash,因为发行版通常默认的就是它。
Bash确实是不错的Shell,但仍有用很多不尽人意的地方,如自动补全的功能不够强大,定位较长路径不够方便,命令历史管理不够完善等。
介绍使用zsh,功能十分强大..推荐给大家!
zsh 介绍
Linux shell
Linux/Unix提供了很多种Shell,为毛要这么多Shell?
难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的Shell,就会自己重新写一套,慢慢形成了一些标准,常用的Shell有这么几种,sh、bash、csh等,想知道你的系统有几种shell,可以通过以下命令查看:
cat /etc/shells
zsh简介
Zsh是一个Linux下强大的shell, 由于大多数Linux产品安装,以及默认使用bash shell
, 但是丝毫不影响极客们对zsh的热衷, 几乎每一款Linux产品都包含有zsh,通常可以用apt-get、urpmi或yum等包管理器进行安装
Zsh具有以下主要功能:
- 开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项
- 在用户启动的所有shell中共享命令历史
- 通过扩展的文件通配符,可以不利用外部命令达到find命令一般展开文件名
- 改进的变量与数组处理
- 在缓冲区中编辑多行命令
- 多种兼容模式,例如使用/bin/sh运行时可以伪装成Bourne shell
- 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏
- 可加载的模块,提供其他各种支持:完整的TCP与Unix域套接字控制,FTP客户端与扩充过的数学函数
- 完全可定制化
zsh与oh-my-zsh终极配置
之前是因为看到这篇文章:终极Shell——Zsh 才选择使用zsh,被它的自动完成、补全功能吸引了。
<官网:www.zsh.org
这也是“工欲善其事,必先利其器”系列文章。
选择oh-my-zsh, oh-my-zsh是基于zsh的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。
在Github上找关于zsh的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。
官网:https://github.com/robbyrussell/oh-my-zsh
评价:https://github.com/robbyrussell/oh-my-zsh/wiki/Testimonials
安装zsh
安装zsh
对于一般的Ubuntu系统,配置好正确的源之后,就能直接键入以下命令安装:
sudo apt-get install zsh
配置zsh
zsh的配置是一门大学问,这里不赘述,直接给出一个配置文件,大家可以下载后放入zsh配置文档直接使用。
把.zshrc拷贝到相应用户的home目录即可
(也可以把你的bash的配置文件(~/.bash_prorile或者~/.profile等)给拷贝到zsh的配置文件~/.zshrc里,因为zsh兼容bash)
预防针
测试看看效果,这个时候别慌,我当时在这个地方就傻了,因为我还不理解某个东西。
cat /etc/passwd
可以看到我的账户(lcf),所采用的的Shell是/bin/bash。(我前面提过,有好多种shell)
执行命令,再次查看这个文件:
执行:
chsh -s /bin/zsh
可以看到我的shell,变成了/bin/zsh
所以chsh,改变了我们的默认shell。我们也可以通过bash,或者zsh短暂的切换到相应的shell.
取代bash,设为默认shell
sudo usermod -s /bin/zsh username
或者
chsh -s /bin/zsh
如果要切换回去bash:
chsh -s /bin/bash
当然你实在不愿意把zsh当成默认的shell, 而又想使用它, 那么你可以每次进入是都使用zsh
进入, 而输入exit
退出
安装oh-my-zsh
直接用zsh会很蛋疼,因为zsh功能很强大但是太复杂,所以需要oh-my-zsh来将它简单化。这一步的前提是你已经安装了zsh。
直接用git从github上面下载包
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/oh-my-zsh
备份已有的zshrc, 替换zshrc
cp ~/.zshrc ~/.zshrc.orig
cp ~/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
在线安装oh-my-zsh
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
其本质就是下载并执行了github上的install.sh脚本, 该脚本位于oh-my-zsh/tools/install.sh
由于刚刚我们已经git下来了oh-my-zsh,并把他放在了~/oh-my-zsh的目录下,所以我们可以通过以下命令安装:
cd ~/oh-my-zsh/tools/
./install.sh
配置主题
oh-my-zsh集成了大量的主题, 位于oh-my-zsh/theme
配置主题, 可以通过修改~/.zshrc
中的环境变量ZSH_THEME
来完成
ZSH_THEME="agnoster"
如果你觉得主题太多你可以选择使用随机模式, 来由系统随机选择
ZSH_THEME="random" # (...please let it be pie... please be some pie..)
详细的主题信息, 可以参见zsh主题介绍
配置插件
修改~/.zshrc
中plugins
plugins=(git bundler osx rake ruby)