×

10 个 Zsh 技巧和窍门:配置、自定义和使用

作者:Terry2024.08.12来源:Web前端之家浏览:1859评论:0
关键词:Zsh

10 个 Zsh 技巧和窍门:配置、自定义和使用

在本文中,我将向您展示如何安装 zsh,然后提供十个技巧和窍门,以提高您在使用 zsh 时的工作效率。

作为 Web 开发人员,命令行正成为我们工作流程中越来越重要的一部分。我们使用它从 npm 安装软件包、测试 API 端点、将提交推送到 GitHub 等等。

我选择的 shell 是zsh。zsh 是一个高度可定制的 Unix shell,它包含一些非常强大的功能,例如杀手级制表符补全、智能历史记录、远程文件扩展等等。

这是一份初学者级别的 zsh 指南,任何人都可以遵循(即使是 Windows 用户,这要归功于 Windows Subsystem for Linux)。然而,鉴于 Apple 宣布zsh 现在是 macOS Catalina 上的标准 shell,Mac 用户可能会发现它特别有用。

让我们开始吧。

安装 zsh

我不想针对每个操作系统提供详细的安装说明,而是提供一些通用指南。如果您在安装 zsh 时遇到困难,网上有很多帮助。

在撰写本文时,当前 zsh 版本是 5.7.1。

在 macOS 上安装 zsh

大多数版本的 macOS 都预装了 zsh。您可以使用以下命令检查是否是这种情况,如果是,则检查您正在运行哪个版本:zsh --version。如果版本是 4.3.9 或更高版本,那么您应该可以使用(我们稍后至少需要此版本才能安装 Oh My Zsh)。如果不是,您可以按照本指南使用 Homebrew 安装较新版本的 zsh。

安装后,您可以使用 将 zsh 设置为默认 shell chsh -s $(which zsh)。发出此命令后,您需要注销,然后重新登录以使更改生效。

如果您在任何时候决定不喜欢 zsh,则可以使用 恢复到 Bash chsh -s $(which bash)

在 Linux 上安装 zsh

在基于 Ubuntu 的发行版中,您可以使用 安装 zsh sudo apt-get install zsh。安装完成后,您可以使用 检查版本zsh --version,然后使用 将 zsh 设置为默认 shell chsh -s $(which zsh)。您需要注销,然后重新登录以使更改生效。

与 macOS 一样,您可以使用 恢复到 Bash chsh -s $(which bash)

在 Windows 上安装 zsh

不幸的是,事情从这里开始变得有点复杂。Zsh 是一个 Unix shell,要让它在 Windows 上运行,你需要激活Windows Subsystem for Linux (WSL),这是 Windows 10 和 11 中用于运行 Linux 二进制文件的环境。

网上有各种教程解释如何在 Windows 10 中启动和运行 zsh。

请注意,也可以使用Cygwin运行 zsh 。 以下是操作说明。

首次运行

第一次打开 zsh 时,您会看到以下菜单。

QQ_1723455943411.png

如果您选择(1),您将进入一个菜单,您可以在其中配置历史记录、键绑定和许多其他内容。但是,我建议选择(2),这将使用推荐的默认设置创建一个配置文件。

查找配置文件

现在让我们看一下 zsh 刚刚创建的文件。进入您的主目录并.zshrc在您选择的编辑器中打开该文件。此文件会在您启动 zsh 时运行,并且是任何自定义配置所在的位置。

注意:大多数操作系统默认隐藏以点开头的文件名,因此您需要先将其显示出来才能编辑。如果您不确定如何操作,请搜索“显示隐藏的点文件 mac/Linux 等”。

我们可以通过创建别名来演示此文件的工作原理。最简单的形式是,别名是常规命令的终端快捷方式。将以下内容添加到文件底部.zshrc并保存文件:

alias myip="curl http://ipecho.net/plain; echo"

重新启动 shell(例如,关闭它然后再次打开),然后输入myip。如果您已安装cURL 程序,您应该会看到当前的公共 IP 地址输出到终端。

通过输入 关闭终端exit,然后找到.zsh_history文件,该文件也位于您的主目录中。这是 zsh 存储您之前的终端命令列表的地方。目前它应该包含两行 —myipexit

注意:我们将在整个教程中多次重新加载 shell。您也可以使用以下命令执行此操作:source ~/.zshrc

检查你的进度

此时您应该已经安装好 zsh 并将其设置为默认 shell。

现在让我们了解一些技巧。

1. 安装 Oh My Zsh

如果您只遵循其中一个提示,那就必须是这一个。

Oh My Zsh是一个社区驱动的框架,用于管理您的 zsh 配置,并捆绑了数千个有用的函数、帮助程序、插件和主题。以下许多技巧都依赖于您安装此框架。

正如项目主页上所述,您可以使用 cURL 或 wget 安装它:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

这假设您已经安装了 Git,希望您已经安装了。如果没有,您可以从项目主页获取它

QQ_1723456003550.png

如您所见,从安装后的消息来看,Oh My Zsh 创建了您的.zshrc文件的备份,然后用自己的版本替换了它。这意味着您需要将任何自定义配置(例如我们的myip别名)复制到您的新.zshrc文件中。

2. 选择主题

如果你在终端上花费了大量时间,那么值得花些精力让它看起来更有吸引力。幸运的是,Oh My Zsh 附带了一大堆主题。

如果你在~/.zshrc文件中查找ZSH_THEME变量,你会发现它被设置为robbyrussel。这是 Oh My Zsh 创建者使用的默认主题。

要安装不同的主题,请从上面的链接中选择一个主题,然后更改变量的值ZSH_THEME,然后重新启动 shell。例如,设置ZSH_THEME="avit"将导致 Oh My Zsh 使用avit 主题。

您可能还想更改终端的配色方案。在我的 Linux 机器上,我可以通过编辑>首选项>颜色来执行此操作。删除使用系统主题中的颜色的勾选,然后选择Solarized dark作为方案,我很快就能得到非常吸引人的结果。

QQ_1723456025281.png


请注意主题如何识别它在 Git 存储库中,告诉我我在哪个分支上,并显示绿色勾号以让我知道所有内容都是最新的。

我鼓励您浏览可用的主题并找到适合您的主题。

故障排除

当我在 WSL 上测试这个功能时,我刚安装 Oh My Zsh 就看到了终端中乱码。为了解决这个问题,我必须安装Powerline 字体并告诉我的终端使用它们:

git clone https://github.com/powerline/fonts.git

然后打开管理员 PowerShell,导航到 repo 的根目录并运行:

.\install.ps1

如果 PowerShell 阻止您运行脚本,请尝试ExecutionPolicy按照此Stack Overflow 答案进行设置。安装字体后,请务必将其重新设置。

最后,右键单击终端的标题栏,选择“属性” > “字体”,并确保选择了 Powerline 字体。在测试中,Deja Vu Sans Mono for Powerline对我来说效果很好。

另请注意,无论操作系统如何,一些主题都需要 Powerline 字体。我们将在本文结尾处介绍如何安装其中一个主题 ( Agnoster )。

3. 处理历史

我最喜欢的 Oh My Zsh 功能之一是它允许您搜索历史记录。想象一下.zsh_history以下内容:

cd Desktop
mkdir my-project
cd my-project
npm init -y
mkdir {src,build}
touch index.js

如果你在终端中按下该↑键,你会希望逐一循环浏览每个历史记录条目,对吗?这并不奇怪。

但是,Oh My Zsh 允许您输入命令的开头,然后按下该↑键来循环显示匹配的条目。因此,在上面的例子中,如果您输入“mkdir”,然后按下该↑键,您将看到显示“mkdir {src,build}”。如果您再次按下该键,您将看到“mkdir my-project”。

我一直都在使用这个功能。例如,当我想通过 ssh 连接到服务器但又记不住确切的凭据时,我只需输入“ssh”,就可以循环显示最近的连接,直到找到正确的连接。或者,当我记不住命令的确切语法时,我只需输入前几个字符,然后循环显示所有匹配项。

4. 自我建议 FTW!

Oh My Zsh 的另一个很棒的功能是插件。这些插件可以为您的 shell 添加新功能并增强其功能。

Oh My Zsh 附带了数百个插件,可以满足各种用途,我们将在本文后面介绍其中的一些。不过,在本节中,我想向您介绍一个名为autosuggestions的第三方插件。它会根据历史记录在您输入时推荐命令。

要安装,您需要将其存储库克隆到$ZSH_CUSTOM/plugins。默认情况下,这是~/.oh-my-zsh/custom/plugins

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

完成后,要激活它,跳入文件~/.zshrc并取消注释以下行:


# plugins=(git)

然后替换gitzsh-autosuggestions

plugins=(zsh-autosuggestions)

重新启动 shell,您会注意到,当您输入命令时,Oh My Zsh 会根据您的历史记录提出建议。如果该建议是您要查找的,请按下 键→接受它。真正节省时间!

QQ_1723456150001.png


5. 使用 Oh My Zsh 进行文件导航

Oh My Zsh 的另一个很棒的功能是它可以轻松地在你的机器上导航。

例如,当您想要更改目录时,无需输入命令cdcd Desktop只需变成Desktop。这也适用于路径:您可以输入/home/jim/Desktop并最终到达您想要去的地方。

Oh My Zsh 也有很棒的自动完成功能。开始输入路径后,您可以TAB按 以展开所有可以导航到的文件夹列表。如果继续按 Tab 键,您可以浏览此列表,直到按 选择一个文件夹Return。TAB之后再次按 将重新启动该过程。

QQ_1723456165262.png


最后,值得一提的是,Oh My Zsh 提供了许多命令和别名,用于处理和浏览目录。例如,键入...将使您向上移动两个目录,键入take <dir-name>将创建一个新目录并导航到该目录。Oh My Zsh 还支持动态路径完成,因此键入(例如)/h/j/De并按下Tab将扩展路径到/home/jim/Desktop。很酷,不是吗?

附加提示:如果您觉得懒,您可以直接将文件夹拖放到终端窗口,路径就会为您扩展。

6. 使用 z 导航到任意位置

z 是一款方便的插件,它可以列出您最常访问和最近访问的文件夹(它称之为“frecent”),并允许您使用一个命令跳转到这些文件夹。这通常比在嵌套文件夹结构中按 Tab 键要方便得多。

要安装插件,您只需将其添加到您的.zshrc文件中,如下所示:

plugins=(z zsh-autosuggestions)


然后重新启动你的终端。

安装后,z 将有一个短暂的学习阶段,因为它会观察您使用终端在 PC 上导航。不过,过了一会儿,您将能够键入z您想要的目录路径中的任何单词。该插件将使用模糊匹配来确定您要转到哪个文件夹并相应地扩展路径。如果有多种可能性,您可以按上一个提示中所述的方式选择选项。

这听起来可能不是什么大问题,但你可以打开一个 shell,输入z my-project并让它将路径扩展至/home/jim/files/some/deeply/nested/directory/or/other/my-project。然后,当你在该目录中时,你可以输入z my-other-project并让它将路径扩展至/var/www/html/projects/top/secret/my-other.project

注意:我第一次运行 z 并尝试更改目录时,出现了错误_z_dirs:2: no such file or directory: /home/jim/.z。这是一次性的,因为 z 显然需要.z在我的主目录中创建一个文件。

7. 使用 Git

Zsh 包含一些开箱即用的基本 Git 集成。例如,如果您键入git并按下Tab键,zsh 将很有帮助地列出一长串可能的 git 命令。如果您键入 ,然后键入您要查找的命令的前几个字母,这会变得更加有用git。例如git a+Tab会产生以下内容:

add        -- add file contents to index
am         -- apply patches from a mailbox
apply      -- apply patch to files and/or to index
archimport -- import an Arch repository into git
archive    -- create archive of files from named tree

当你安装Oh My Zsh git 插件时,事情开始变得更加有趣:

plugins=(git z zsh-autosuggestions)


这提供了一大堆别名,以及一些用于 Git 的有用函数。我经常使用的一些函数是:

  • gaagit add all

  • gdcagit diff --cached

  • gpgit push

  • gpf!git push --force

  • grhhgit reset --hard

  • gstgit status

您还可以通过在文件中添加以下内容来同时为多个命令创建别名.zshrc

function acp() {
  git add .
  git commit -m "$1"
  git push
}

现在,当您在 Git 存储库中时,键入acp "a commit message"将添加所有更改的文件,使用您指定的任何提交消息提交它们,然后将它们推送到您的远程。

8. 获取有关 git Repo 状态的即时反馈

在文章的顶部,我们激活了一个名为avit的主题。在 Git 存储库中,此主题将显示分支名称,以及表示所有分支是否都是最新的叉号或勾号。我喜欢一目了然地看到这些信息,这绝对比一直打字进步了很多git status

不过,有几个主题可以更直观地显示这些信息。我最喜欢的是Agnoster。现在就安装它吧。

为了让 Agnoster 正确呈现箭头和 Git 图标,你可能需要安装Powerline 修补的字体。WSL 用户可以按照上面故障排除部分中的说明执行此操作。对于 macOS 和 Linux 用户,可以在项目的 repo 中找到安装说明。

High Sierra 或更高版本的 Mac 用户可能需要执行一些额外的工作才能显示这些字体。除非您使用的是 Catalina,否则建议使用此方法。Catalina 用户需要安装修补的字体并在其终端设置中选择它。

要测试您的终端是否可以显示所有必要的字符,请运行以下命令:

echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

结果应该如下图所示。

QQ_1723456284526.png

之后,通过更改文件中的以下行来启用主题.zshrc

ZSH_THEME="agnoster"

然后重新启动终端。一旦 Agnoster 启动并运行,您将可以更直观地查看任何 Git 存储库的状态。您还将收到有关上一个命令是成功还是失败以及您是否正在使用提升的权限的视觉反馈。

QQ_1723456314317.png


提示:如果您不喜欢user@host提示的这一部分,您可以通过添加DEFAULT_USER=your_user_name.zshrc文件来使其消失。

9.插件,插件,插件

如上所述,Oh My Zsh 附带了很多插件。你真的应该仔细查看这些插件,并花一些时间学习那些有助于你的工作流程的插件。为了帮助你入门,以下是一些需要注意的流行插件:

  • cloudapp – 将文件和管道内容上传到 Cloudapp 服务。输出并将结果 URL 复制到剪贴板。

  • command-not-found:如果无法识别命令$PATH,这将使用 Ubuntu 的 command-not-found 包来查找它或建议拼写错误(仅适用于 Ubuntu 和 openSUSE)。

  • node:在您的浏览器中打开适用于您当前版本的 Node API。

  • npm:为 npm 添加自动完成功能。

  • sudo:ESC两次按下将把 sudo 放在当前命令前面,如果命令行为空,则放在最后一个命令前面。

  • vscode:使命令行和代码编辑器之间的交互更容易。

10. 组合键

这不是 zsh 特有的技巧,但总而言之,我想让您了解这五个节省时间的组合键。

  • Ctrl+ U:从光标删除到行首。

  • Ctrl+ K:从光标处删除到行尾。

  • Ctrl+ W:从光标删除到上一个单词的开头。

  • Alt+ D:从光标删除到下一个单词的末尾。

  • Ctrl+ L:清除终端。

如果你能记住这些,你会惊奇地发现它们的用处非常大。

结论

在本文中,我演示了如何安装 zsh (Z shell) 并将其设置为默认 shell。我还展示了如何使用 Oh My Zsh 框架充分利用新终端。我希望,如果您尝试了几周,您会想知道以前没有它们时您过得怎么样。

关于 Zsh (Z shell) 的常见问题

Zsh 与 Bash 等其他 shell 有何不同?

Zsh 提供高级制表符补全、拼写纠正、可自定义提示和更多脚本选项等功能。与 Bash 等传统 shell 相比,它旨在增强用户体验和工作效率。

我可以在 Windows 上使用 Zsh 吗?

是的,您可以通过 Cygwin、Windows Subsystem for Linux (WSL) 或 Git Bash 等工具在 Windows 上安装 Zsh 来使用它。但是,在 Windows 上设置 Zsh 可能需要一些额外的步骤

Zsh 能运行我现有的 Bash 脚本吗?

是的,Zsh 可以运行 Bash 脚本,但由于两个 shell 之间的语法差异,可能会出现一些兼容性问题。验证和调整脚本以确保它们在 Zsh 中正常工作是一种很好的做法。

什么是 Zsh 主题?

Zsh 主题决定了终端提示符的外观。它们通常显示有用的信息,如当前目录、Git 状态等。Oh My Zsh 包含多种主题供您选择。

如何在 Zsh 中启用语法高亮?

您可以使用“zsh-syntax-highlighting”等 Zsh 插件启用语法高亮显示。安装该插件并将其激活命令添加到您的 Zsh 配置文件中。

我可以将我的 Bash 配置与 Zsh 一起使用吗?

是的,许多 Bash 配置可以适用于 Zsh。但是,Zsh 有自己的语法和功能,因此可能需要进行一些修改才能充分利用其功能。

如何自定义我的 Zsh 提示符?

你可以通过修改 Zsh 配置文件 (通常是 ) 中的 PS1 环境变量来自定义 Zsh 提示符~/.zshrc。或者,使用 Oh My Zsh 之类的框架允许你选择和自定义主题。

什么是 Zsh 插件?

Zsh 插件是增强 Zsh 功能的扩展。它们可以提供语法高亮、自动建议和特定命令或语言的改进补全等附加功能。

如何安装 Zsh 插件?

Zsh 插件管理器(如“Oh My Zsh”、“Zplug”和“Antigen”)可让您轻松安装和管理插件。每个管理器都有自己的设置说明,通常涉及修改 Zsh 配置文件。

Oh My Zsh 是什么?

Oh My Zsh 是一个流行的 Zsh 配置和插件管理框架。它包含一组预建的主题和插件,您可以轻松启用或自定义它们。

如何将 Zsh 设置为我的默认 shell?

你可以通过运行命令将默认 shell 更改为 Zsh chsh -s $(which zsh)。这将更新系统用户配置中的 shell 首选项。

如何安装 Zsh?

Zsh 通常预装在 macOS 和许多 Linux 发行版上。如果没有,您可以使用系统的包管理器安装它。例如,在基于 Debian 的系统上,您可以运行sudo apt-get install zsh

什么是 Zsh(Z shell)?

Zsh 是 Z shell 的缩写,是一种高级 Unix shell,它为命令行界面提供了强大的自定义选项、改进的脚本功能和交互功能。

如何配置 Zsh?

配置 Zsh 涉及自定义 shell 的各个方面以满足您的偏好和需求。以下是有关如何配置 Zsh 的分步指南:编辑 Zsh 配置文件 (.zshrc): Zsh 的主要配置文件位于您的主目录中,名为.zshrc(即~/.zshrc)。您可以使用您选择的文本编辑器编辑此文件,例如nanovimgedit。选择 Zsh 框架或插件管理器(可选): Zsh 框架和插件管理器(如 Oh My Zsh、Prezto 和 Zgen)可以通过提供预配置的设置和轻松的插件和主题管理来简化配置过程。您可以选择其中一个框架或手动管理所有内容。选择 Zsh 主题: Zsh 主题控制终端提示符的外观。有许多主题可供选择,提供不同的样式和信息显示选项。要更改主题,请ZSH_THEME.zshrc文件中找到变量并将其设置为所需主题的名称,例如ZSH_THEME="agnoster"。保存更改并重新启动 Zsh 会话或运行source ~/.zshrc以应用新主题。安装和管理 Zsh 插件(可选): Zsh 插件可以扩展 shell 的功能。如果您使用的是 Oh My Zsh 之类的框架,则可以轻松添加和管理插件。在您的.zshrc文件中,您通常会找到一个用于配置插件的部分。您可以根据需要添加或删除插件,例如plugins=(git zsh-syntax-highlighting zsh-autosuggestions)。保存更改并重新启动 Zsh 会话或运行source ~/.zshrc以激活插件。设置 Zsh 选项和别名:通过配置各种选项并直接在文件中创建别名来自定义 Zsh .zshrc。要设置选项,请使用命令setopt(例如setopt nocasematch)。要创建别名,请使用命令alias(例如alias ll='ls -al')。自定义提示(可选):要对提示的外观进行高级自定义,请修改PS1变量。这涉及手动指定提示中所需的元素,并且有许多可用于创建自定义提示的在线资源和指南。保存并应用更改:进行自定义后,保存文件.zshrc,然后重新启动 Zsh 会话或运行source ~/.zshrc以立即应用更改。测试和优化:测试您的自定义并根据需要进行调整。尝试不同的主题、插件、选项和别名,找到最适合您的工作流程和偏好的设置。请记住,配置是一个个人过程,您可以根据自己的特定需求和风格定制 Zsh 环境。Zsh 的灵活性以及各种主题和插件的可用性使其成为配置命令行体验的多功能 shell。

如何定制 Zsh?

自定义 Zsh 可让你根据特定需求和偏好定制 shell 环境。以下是自定义 Zsh 的方法:编辑 Zsh 配置文件 (.zshrc): Zsh 的主要配置文件位于你的主目录中,名为.zshrc(即~/.zshrc)。你可以使用所选的文本编辑器(例如、或)编辑此文件nanovim选择geditZsh框架或插件管理器(可选): Zsh 框架和插件管理器(如 Oh My Zsh、Prezto 和 Zgen)可以通过提供预配置的设置和轻松的插件和主题管理来简化自定义过程。你可以选择其中一个框架,也可以手动管理所有内容。选择 Zsh 主题: Zsh 主题控制终端提示符的外观。有许多主题可供选择,提供不同的样式和信息显示选项。要更改主题,请ZSH_THEME.zshrc文件中找到变量并将其设置为所需主题的名称。保存更改并重新启动 Zsh 会话或运行source ~/.zshrc以应用新主题。安装和管理 Zsh 插件(可选): Zsh 插件可以扩展 shell 的功能。如果您使用的是 Oh My Zsh 之类的框架,则可以轻松添加和管理插件。在您的.zshrc文件中,您通常会找到一个用于配置插件的部分。您可以根据需要添加或删除插件。保存更改并重新启动 Zsh 会话或运行source ~/.zshrc以激活插件。设置 Zsh 选项和别名:通过配置各种选项和创建别名来自定义 Zsh。您可以直接在.zshrc文件中执行此操作。要设置选项,请使用命令setopt。要创建别名,请使用alias命令。自定义提示(可选):您可以通过修改变量进一步自定义提示的外观PS1。这是一种更高级的自定义,涉及手动指定提示中所需的元素。有许多在线资源和指南可用于创建自定义提示。保存并应用更改:进行自定义后,保存文件.zshrc,然后重新启动 Zsh 会话或运行source ~/.zshrc以立即应用更改。测试和优化:测试您的自定义并根据需要进行调整。您可以尝试不同的主题、插件、选项和别名,以找到最适合您的工作流程和偏好的设置。请记住,定制是一个个人过程,您可以根据自己的特定需求和风格定制 Zsh 环境。Zsh 的灵活性以及各种主题和插件的可用性使其成为一个多功能 shell,可用于定制您的命令行体验。

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/Zshtooluserjiac.html

网友评论文明上网理性发言 已有0人参与

发表评论: