zsh 安装使用

SHELL BASH ZSH SH

Posted by gomyck on December 16, 2019

简单介绍几种shell(命令行)解释器, 以及 zsh 和 oh-my-zsh 的安装使用

sh 和 bash

问: 为什么 unix* 和 linux*有这么多 shell 解释器?

答: 大牛程序员觉得当前终端不好用, 自己写了一个, 慢慢的, 多个标准终端诞生

使用以下命令可以查看当前系统的 shell 解释器列表

1
2
$ cat /etc/shells

我们一般可以在 sh 脚本中的第一行发现:

1
2
3
#!/bin/bash
.....

上述注释的意思就是告诉系统, 使用哪个解释器来解释当前脚本, 常用的两个解释器为: sh 和 bash

sh 一般作为 bash 的link, 可在红帽系列系统中看到, sh 为链接类型

1
lrwxrwxrwx    1 root root          4 Oct 15  2017 sh -> bash

macOS 中 sh 和 bash 是两个不同的文件, 但相差不多

在新版的 macOS 中, 建议我们更换 bash 为 zsh

zsh

在使用 zsh 之前, 一直认为 bash 已经够好用的了, 不需要替代品, 但是因为强迫症(每次打开 mac 终端都提示我, 把 bash 更换成 zsh), 还是换了 zsh (CentOS用户可以使用 yum 安装, 如果原有镜像无资源, 可参考我的另外一篇文章: Linux修改包管理镜像)

1
2
$ chsh -s zsh

修改之后, 在重启电脑之后, 发现, 环境变量全没了, 查看资料, zsh 的 profile 为 .zshrc, 而 zshrc 的配置简直麻烦到吐血

oh-my-zsh

在搜索 zsh 资料的同时, 也间接看到了oh-my-zsh, 查看 git, 被安利了一波, 据说用它, 可以配制出非常完美的 zsh, 故, 下载, 安装, 使用

1
2
3
4
5
6
7
$ cd ~
$ mkdir .oh-my-zsh
$ cd .oh-my-zsh
$ git clone https://github.com/ohmyzsh/ohmyzsh.git ./
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
$ source ~/.zshrc

眼前一亮, 感觉世界充满了颜色

使用

oh-my-zsh 模版里集成了市面上大多数软件的zsh 配置, 所以当你尝试使用 git 的时候, 你可以这样:

1
2
3
4
5
$ git pu  #(tab 补全)

pull -- fetch from and merge with another repository or local branch
push -- update remote refs along with associated objects

你会发现, 你记忆比较模糊的 option, zsh 都会给列出来

更多自动补全的便捷, 请在具体使用中体会吧