作者:Mintimate
博客:https://www.mintimate.cn
Mintimate's Blog,只为与你分享
前言
现在,越来越多的人趋向使用ZSH取代(Linux)原本的Bash作为自己的终端Shell。的确,ZSH才是适用于现代的Shell:
- 更丰富的命令提示
- 更鲜明的演示标记
- 更强大的插件支持
本次就带大家先了解什么是ZSH,再叫大家怎么在macOS和Linux上安装ZSH,其中,Linux上的安装,我们以腾讯云轻量应用服务器的Debian镜像为例(CentOS等其他镜像安装、使用方法一样)。
什么是Shell
什么是Shell?顾名思义就是机器外面的一层壳,用于人机交互。接收用户或其他程序的命令,把这些命令转化成内核能理解的语言。现在图形化界面基本上当代家用操作系统的标配,但是在最初,没有图形化界面的时代,如何使用和操作设备?那么多命令和指令集饿,总不至于做那么多按钮吧:-)。这个时候,Shell就出现了。
通俗来说,就是人机交互的媒介,让使用者在Shell内输入指令,进而操作系统。
现在,操作服务器,用Shell直接操作,也是一种高效手段,如:配置Nginx
、更新、移动目录(mv、mkdir等操作),甚至是Git操作。
什么是ZSH
回答什么是ZSH前,我们先解释什么是Bash:
Bash最早在1989年发布第一个正式版本(2020年12月7日还发布了最新稳定版本5.1)。是Shell的一个版本。
而ZSH和Bash一样,ZSH也是终端内的一个命令行解释器(Shell),
具体表现为其作用是用户输入一条命令,Shell 就立即解释执行一条。不局限于系统、语言等概念、操作方式和表现方式等。比如:我们使用的cd
、wget
、curl
和mount
等命令。
传统的shell(如:Bash),命令和显示的文字以单色为主;而ZSH不仅支持彩色字体,还支持命令填充:
原本需要输入路径全面,现在zsh可以通过按Tab
键来自动填充:
在服务器内使用,更加方便,可以一层层递进,避免使用Bash时,cd一次,ls一次的麻烦:
macOS安装ZSH
macOS安装ZSH过于简单,我们先讲解。
默认情况下:
- macOS High Sierra(mac10.13系统)系统自带ZSH
- macOS Catalina(mac10.15系统)系统开始,默认使用ZSH。
所以,如果你的系统,是macOS Catalina以后的版本,可以直接跳过此步骤(下列的激活ZSH也跳过)。
激活ZSH
旧版本的macOS也是有自带zsh,你可以在终端内输入:
代码语言:txt复制cat /etc/shells
可以看到,有一个/bin/zsh
选项:
如果没有/bin/zsh
选项,可能是你的macOS版本实在是太旧,可以使用Homebrew去安装ZSH:
brew install zsh
有了/bin/zsh
选项后,我们设置为默认Shell:
chsh -s /bin/zsh
然后输入密码即可:
最后,重启终端,就是ZSH了。
Oh-my-zsh
是不是觉得我的截图,比你的Shell好看很多,其实是因为:我使用的是Oh-my-zsh作为ZSH的皮肤和工具,如果你也有需要,可以看看下文。
Linux安装ZSH
Linux一般默认使用Bash
,需要手动安装,本次教程就使用腾讯云轻量应用服务器来作为演示,助力大家开发。
1. SSH连接服务器
首先,我们使用SSH连接服务器,Windows用户可以使用自带的powershell
,macOS和Linux客户端用户可以使用自带的Terminal
:
ssh user@腾讯云轻量应用服务器IP
2. 查看已经安装的Shell
之后,我们可以看看已经安装的Shell:
代码语言:txt复制cat /etc/shells
我轻量应用服务器自带的Shell为:
代码语言:txt复制/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/screen
可以看到,并没有ZSH,所以我们需要安装ZSH。
3. 安装ZSH
安装ZSH很简单,作为一个始于1980年代的Shell,软件项目管理器里自然是有ZSH的,我们可以一键安装:
代码语言:txt复制# Debian/Ubuntu
apt install zsh
# CentOS
yum install zsh
我使用的腾讯云轻量应用服务器Debian发行版本,所以使用apt
:
安装好后,再次查看已安装Shell
,即可看到ZSH:
4. 激活ZSH
最后,我们激活ZSH,这里我激活/bin/zsh
:
chsh -s /bin/zsh
最后,我们重启Terminal即可(也就是重新SSH连接服务器):
现在,可以看到,旧已经激活ZSH了。
5. Oh-my-zsh
是不是觉得我的截图,比你的Shell好看很多,其实是因为:我使用的是Oh-my-zsh作为ZSH的皮肤和工具,如果你也有需要,可以看看下文。
配置Oh-my-zsh
是不是觉得:
- ZSH单调,无彩色提示
- ZSH命令自动填充不好用
其实,这些可以通过配置ZSH来解决,我十分推荐大家直接使用Oh-my-zsh
1. 什么是Oh-my-zsh
ZSH的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,一些极客为了让更多人受益,开发了Oh-my-zsh这个插件,用来简化zsh的配置,让zsh更加容易上手。
2. 安装Oh-my-zsh
Oh-my-zsh十分简单,可以看看项目地址:https://github.com/ohmyzsh/ohmyzsh。
官方配置非常简单,但是因为项目官方脚本在GitHub的原因,国内访问可能有点困难,为此给大家提供三个方法配置。
官方配置
Linux/Mac打开终端,输入官方提供的脚本:
代码语言:txt复制sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
为了保证脚本能顺利运行,你的Linux/Mac
服务器需要:
- 提前安装
git
、curl
- 可以成功连接GitHub
- 如果有
~/.zshrc
文件,最好提前备份
脚本配置
考虑到官方方法,需要连接GitHub;如果你的设备无法有效访问GitHub。可以使用我配置的脚本:
代码语言:txt复制zsh -c "$(curl -fsSL 'https://host.mintimate.cn/fileHost/download/MTM1NjkzNzI1OTIxMDg0NjIwOQ==')"
为了保证脚本能顺利运行,你的Linux/Mac
服务器需要:
- 提前安装
curl
、unzip
- 如果有
~/.zshrc
文件,最好提前备份
腾讯云轻量应用服务器,在安装配置了ZSH后,即可直接安装ZSH(也就是默认有安装curl
和unzip
):
安装好后,就已经激活ZSH了。
手动配置
其实,手动配置重复的内容就是我写的脚本配置:
- 在oh-my-zsh的github主页,手动将zip包下载下来。
- 将zip包解压,拷贝至
~/.oh-my-zsh
目录。 - 执行
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
或手动复制~/.oh-my-zsh/templates/zshrc.zsh-template内文件内容到~/.zshrc内。(如果没有~/.zshrc文件,可以手动创建) - 重启终端或终端输入
source ~/.zshrc
使配置生效
不是很建议普通用户使用手动配置
去配置Oh-my-zsh。
3. Oh-my-zs换皮肤
自带的Oh-my-zsh皮肤,有点不好看,所以我推荐你可以换皮肤。编辑~/.zshrc
这个ZSH配置文件,进行更改:
# 使用vim编辑ZSH配置文件
vim ~/.zshrc
修改皮肤参数:
为一般喜欢steeef
主题:
之后,使用source ~/.zshrc
命令进行重载配置:
这样,我们的腾讯云轻量应用服务器(Linux)或者macOS就是使用好看的Oh-my-zsh了。
ZSH日常使用
自动填充
这边主要使用到ZSH的Tab
功能,举个例子,当我们需要使用cd
命令,前往Downloads文件夹,传统Bash书写方法:
# 全部目录跳转
cd Downloads
# 或者部分目录选择(再按Tab键补充)
cd Dow
而使用ZSH,我们可以只输入cd
或者部分内容,按Tab
看提示:
之后,可以按方向键盘
,或者按Tab键进行遍历
,到自己需要的路径上回车选定
即可:
其实,ZSH的自动填充,不但可以填充目录,还可以:
- 填充命令,如:Git命令填充。
- 填充用户内容,如:screen session明填充。
粘贴自动转义
使用Oh-my-zsh,默认是使用自动粘贴转义。但是这样容易出差错。为此,如果需要关闭自动转义,可以打开~/.zshrc
文件,添加DISABLE_MAGIC_FUNCTIONS=true
字段:
Tips
zsh的强大不仅仅如此,还可以安装更多强大插件,感兴趣可以自己进行探索。而Oh-my-zsh的使用也不仅仅如此,可以自行阅读开发者文档:https://github.com/ohmyzsh/ohmyzsh