前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux/Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观

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

原创
作者头像
Mintimate
修改2021-08-30 11:20:23
4.9K0
修改2021-08-30 11:20:23
举报
文章被收录于专栏:Mintimate's BlogMintimate's Blog

作者: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
Shell

现在,操作服务器,用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安装ZSH
Debian安装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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是Shell
    • 什么是ZSH
    • macOS安装ZSH
      • 激活ZSH
        • Oh-my-zsh
        • Linux安装ZSH
          • 1. SSH连接服务器
            • 2. 查看已经安装的Shell
              • 3. 安装ZSH
                • 4. 激活ZSH
                  • 5. Oh-my-zsh
                  • 配置Oh-my-zsh
                    • 1. 什么是Oh-my-zsh
                      • 2. 安装Oh-my-zsh
                        • 官方配置
                        • 脚本配置
                        • 手动配置
                      • 3. Oh-my-zs换皮肤
                      • ZSH日常使用
                        • 自动填充
                          • 粘贴自动转义
                          • Tips
                          相关产品与服务
                          轻量应用服务器
                          轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档