Oh-My-Zsh 配置、插件、使用方法
一、Oh-My-Zsh 官方下载:
https://github.com/toxicwebdev/robbyrussell-oh-my-zsh
oh-my-zsh是基于zsh的功能做扩展,在插件管理、主题自定义更方便,智能目录切换和命令的选项、参数补齐,这些漂亮的自动完成效果。
二、Shell的分类#
相对于内核来说,Shell是Linux/Unix的一个外壳,它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。
简单的说,shell就是那“黑乎乎”的命令行。
Linux/Unix提供了很多种Shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash;
想知道你的系统有几种shell,可以通过以下命令查看:
cat /etc/shells
显示如下:
/bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh
查看当前Shell
echo $0查看当前Shell,echo $SHELL查看当前用户(默认)使用的shell
echo $0
echo $SHELL
============
$ echo $0
-zsh
$ echo $SHELL
/bin/zsh
Shell之间切换
Shell之间切换,直接bash就可以切换回之前,如果想切换到sh就直接sh命令,
bash这个是目前大多数Linux系统默认使用的shell,全名是BourneAgain Shell,一共有40个命令。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。
在 Linux 里执行这个命令和 Mac 略有不同,你会发现 Mac 多了一个 zsh,也就是说 OS X 系统预装了个 zsh,它是什么呢?
三、zsh介绍、安装#
zsh 是一款功能强大的 shell 软件,它可以兼容 bash,并且提供了很多高效的改进。它是Linux里最庞大的一种shell,它有84个内部命令,也提供了更为强大的功能:
更好的自动补全
更好的文件名展开
丰富的插件
强大的定制性
但是由于配置过于复杂,一般情况下,我们不会使用该shell,直到「oh my zsh」的出现。
zsh安装#
如果你用 Mac,就可以直接看下一节,Mac默认已经安装;
如果你用 Redhat Linux,执行:sudo yum install zsh;
如果你用 Ubuntu Linux,执行:sudo apt-get install zsh;
四、oh my zsh#安装
Oh My Zsh(http://ohmyz.sh/)是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于zsh命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。
Oh My Zsh只是一个对zsh命令行环境的配置包装框架,但它不提供命令行窗口,更不是一个独立的APP。
官网推荐安装方式:
Via curl:
Copy$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Via wget:
Copy$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
特别提醒:
无法安装或者连接
解决方案:
sudo vim /etc/hosts
添加并保存:
# GitHub Start 52.74.223.119 github.com 192.30.253.119 gist.github.com 54.169.195.247 api.github.com 185.199.111.153 assets-cdn.github.com 151.101.76.133 raw.githubusercontent.com 151.101.108.133 user-images.githubusercontent.com 151.101.76.133 gist.githubusercontent.com 151.101.76.133 cloud.githubusercontent.com 151.101.76.133 camo.githubusercontent.com 151.101.76.133 avatars0.githubusercontent.com 151.101.76.133 avatars1.githubusercontent.com 151.101.76.133 avatars2.githubusercontent.com 151.101.76.133 avatars3.githubusercontent.com 151.101.76.133 avatars4.githubusercontent.com 151.101.76.133 avatars5.githubusercontent.com 151.101.76.133 avatars6.githubusercontent.com 151.101.76.133 avatars7.githubusercontent.com 151.101.76.133 avatars8.githubusercontent.com # GitHub End
再次下载即可。
1、先安装zsh,然后再输入安装oh my zsh的命令。
2、然后查看,ls ~/.zshrc 和~/.oh_my_zsh 已经存在了。
3、不用再使用
chsh -s /bin/zsh 切换了,例如,重新打开一个终端,查看即可。
切换系统shell:
Copy$ chsh -s /bin/zsh 五、.oh-my-zsh/themes$ echo $ZSH_THEME 显示当前主题名字ls ~//.oh-my-zsh/themes 下面存放的主题,随便选择你喜欢的。选择好名字,然后修改 ~/.zshrc即可。最后source ~/.zshrc生效。 六、安装插件
Oh My Zsh 默认自带了一些默认主题,存放在~/.oh-my-zsh/plugins目录中。我们可以查看这些插件
$ ls ~/.oh-my-zsh/plugins
我们打开.zshrc配置文件,定位到plugins
plugins=( git )
可以看到默认只开启了git插件,我们可以将要使用的插件的名字以空格相隔接在后面就可以了,比如:
plugins=( git adb)
如果我们要下载第三方的插件,只需要把插件下载存放到~/.oh-my-zsh/plugins中,然后在上面加上插件的名字即可;
推荐插件#
zsh-autosuggestions
它是Oh-myszh的一个插件,作用基本上是根据历史输入指令的记录即时的提示,能够很大的提高效率。
1.克隆到插件目录:
git clone git://github.com/zsh-users/zsh-autosuggestions
2.修改配置文件.zshrc:
plugins=(git zsh-autosuggestions)
zsh-syntax-highlighting
这是一个命令高亮插件,输入为绿色时表示可用命令,路径带有下划线时表示可用路径
1.克隆到插件目录:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
2.修改配置文件.zshrc:
plugins=(git zsh-syntax-highlighting)
最后别忘了让配置生效
source .zshrc 七、手动下载安装包,自己安装 https://github.com/toxicwebdev/robbyrussell-oh-my-zsh.git手动下载 或者网盘密码:jp5h 然后解压文件,进入tools目录。执行下面的命令: ./install.sh 中间会有一步需要密码,输入登录密码即可。 vim ~/.zshrc 配置项 ZSH_THEME 即为 oh-my-zsh 的主题配置,oh-my-zsh 的 GitHub Wiki 页面提供了 主题列表 当设置为 ZSH_THEME=random 时,每次打开终端都会使用一种随机的主题。 更新配置: source ~/.zshrc 下载 incr 自动补全插件 http://mimosa-pudica.net/src/incr-0.2.zsh 将插件放在 oh-my-zsh 自定义插件目录中 .oh-my-zsh/custom/plugins/incr 打开 oh-my-zsh 配置文件 vim ~/.zshrc 在 plugins 中添加 incr 在配置文件结束添加:source $ZSH/custom/plugins/incr/incr*.zsh Homebrew: https://brew.sh/index_zh-cn https://github.com/Homebrew/brew oh-my-zsh: https://ohmyz.sh/ https://github.com/robbyrussell/oh-my-zsh incr:
八、shell、bash、zsh的切换 Shell之间切换,直接bash就可以切换回之前,如果想切换到sh就直接sh命令, zsh切换到zsh