Linux/Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观

2021-08-30 11:20:23 浏览数 (1)

作者: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内输入指令,进而操作系统。

ShellShell

现在,操作服务器,用Shell直接操作,也是一种高效手段,如:配置Nginx、更新、移动目录(mv、mkdir等操作),甚至是Git操作。

什么是ZSH

回答什么是ZSH前,我们先解释什么是Bash:

Bash最早在1989年发布第一个正式版本(2020年12月7日还发布了最新稳定版本5.1)。是Shell的一个版本。

而ZSH和Bash一样,ZSH也是终端内的一个命令行解释器(Shell),

具体表现为其作用是用户输入一条命令,Shell 就立即解释执行一条。不局限于系统、语言等概念、操作方式和表现方式等。比如:我们使用的cdwgetcurlmount等命令。

传统的shell(如:Bash),命令和显示的文字以单色为主;而ZSH不仅支持彩色字体,还支持命令填充:

ZSH的彩色提示ZSH的彩色提示

原本需要输入路径全面,现在zsh可以通过按Tab键来自动填充:

按Tab显示提示按Tab显示提示

在服务器内使用,更加方便,可以一层层递进,避免使用Bash时,cd一次,ls一次的麻烦

在腾讯云轻量应用服务器内使用在腾讯云轻量应用服务器内使用

macOS安装ZSH

macOS安装ZSH过于简单,我们先讲解。

默认情况下:

  • macOS High Sierra(mac10.13系统)系统自带ZSH
  • macOS Catalina(mac10.15系统)系统开始,默认使用ZSH

所以,如果你的系统,是macOS Catalina以后的版本,可以直接跳过此步骤(下列的激活ZSH也跳过)。

macOS版本macOS版本

激活ZSH

旧版本的macOS也是有自带zsh,你可以在终端内输入:

代码语言:txt复制
cat /etc/shells

可以看到,有一个/bin/zsh选项:

查看自带的Shell查看自带的Shell

如果没有/bin/zsh选项,可能是你的macOS版本实在是太旧,可以使用Homebrew去安装ZSH:

代码语言:txt复制
brew install zsh

有了/bin/zsh选项后,我们设置为默认Shell:

代码语言:txt复制
chsh -s /bin/zsh

然后输入密码即可:

设置ZSH设置ZSH

最后,重启终端,就是ZSH了。

Oh-my-zsh

是不是觉得我的截图,比你的Shell好看很多,其实是因为:我使用的是Oh-my-zsh作为ZSH的皮肤和工具,如果你也有需要,可以看看下文。

Linux安装ZSH

Linux一般默认使用Bash,需要手动安装,本次教程就使用腾讯云轻量应用服务器来作为演示,助力大家开发。

1. SSH连接服务器

首先,我们使用SSH连接服务器,Windows用户可以使用自带的powershell,macOS和Linux客户端用户可以使用自带的Terminal

代码语言:txt复制
ssh user@腾讯云轻量应用服务器IP
连接服务器连接服务器

2. 查看已经安装的Shell

之后,我们可以看看已经安装的Shell:

代码语言:txt复制
cat /etc/shells
腾讯云Debian自带的Shell腾讯云Debian自带的Shell

我轻量应用服务器自带的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

Debian安装ZSHDebian安装ZSH

安装好后,再次查看已安装Shell,即可看到ZSH:

已经安装的Shell已经安装的Shell

4. 激活ZSH

最后,我们激活ZSH,这里我激活/bin/zsh

代码语言:txt复制
chsh -s /bin/zsh
激活ZSH激活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服务器需要:

  • 提前安装gitcurl
  • 可以成功连接GitHub
  • 如果有~/.zshrc文件,最好提前备份
官方方法安装官方方法安装

脚本配置

考虑到官方方法,需要连接GitHub;如果你的设备无法有效访问GitHub。可以使用我配置的脚本

代码语言:txt复制
zsh -c "$(curl -fsSL 'https://host.mintimate.cn/fileHost/download/MTM1NjkzNzI1OTIxMDg0NjIwOQ==')"

为了保证脚本能顺利运行,你的Linux/Mac服务器需要:

  • 提前安装curlunzip
  • 如果有~/.zshrc文件,最好提前备份

腾讯云轻量应用服务器,在安装配置了ZSH后,即可直接安装ZSH(也就是默认有安装curlunzip):

腾讯云轻量应用服务器安装Oh-my-zsh腾讯云轻量应用服务器安装Oh-my-zsh

安装好后,就已经激活ZSH了。

激活Oh-my-ZSH效果激活Oh-my-ZSH效果

手动配置

其实,手动配置重复的内容就是我写的脚本配置:

  1. 在oh-my-zsh的github主页,手动将zip包下载下来。
  2. 将zip包解压,拷贝至~/.oh-my-zsh目录。
  3. 执行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc或手动复制~/.oh-my-zsh/templates/zshrc.zsh-template内文件内容~/.zshrc内。(如果没有~/.zshrc文件,可以手动创建)
  4. 重启终端或终端输入source ~/.zshrc使配置生效

不是很建议普通用户使用手动配置去配置Oh-my-zsh。

3. Oh-my-zs换皮肤

自带的Oh-my-zsh皮肤,有点不好看,所以我推荐你可以换皮肤。编辑~/.zshrc这个ZSH配置文件,进行更改:

代码语言:txt复制
# 使用vim编辑ZSH配置文件
vim ~/.zshrc

修改皮肤参数:

修改皮肤参数修改皮肤参数

为一般喜欢steeef主题:

换为steeef主题换为steeef主题

之后,使用source ~/.zshrc命令进行重载配置:

重载配置重载配置

这样,我们的腾讯云轻量应用服务器(Linux)或者macOS就是使用好看的Oh-my-zsh了。

ZSH日常使用

自动填充

这边主要使用到ZSHTab功能,举个例子,当我们需要使用cd命令,前往Downloads文件夹,传统Bash书写方法:

代码语言:txt复制
# 全部目录跳转
cd Downloads
# 或者部分目录选择(再按Tab键补充)
cd Dow

而使用ZSH,我们可以只输入cd或者部分内容,按Tab看提示:

输入cd后按Tab输入cd后按Tab

之后,可以按方向键盘,或者按Tab键进行遍历,到自己需要的路径上回车选定即可:

输入cd Dow后按Tab自带填充输入cd Dow后按Tab自带填充

其实,ZSH的自动填充,不但可以填充目录,还可以:

  • 填充命令,如:Git命令填充。
  • 填充用户内容,如:screen session明填充。

粘贴自动转义

使用Oh-my-zsh,默认是使用自动粘贴转义。但是这样容易出差错。为此,如果需要关闭自动转义,可以打开~/.zshrc文件,添加DISABLE_MAGIC_FUNCTIONS=true字段:

自动转义取消自动转义取消

Tips

zsh的强大不仅仅如此,还可以安装更多强大插件,感兴趣可以自己进行探索。而Oh-my-zsh的使用也不仅仅如此,可以自行阅读开发者文档:https://github.com/ohmyzsh/ohmyzsh

0 人点赞