本文将指导您安装zsh,并提供十个技巧,助您提升zsh使用效率。
作为Web开发者,命令行在工作流程中日益重要。我们用它来安装npm包、测试API端点、向GitHub推送提交等等。
我选择的shell是zsh。zsh是一个高度可定制的Unix shell,拥有强大的功能,例如强大的Tab键自动补全、智能历史记录、远程文件扩展等等。
本指南适合所有用户(即使是Windows用户,感谢Windows Subsystem for Linux)。鉴于苹果宣布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。
安装完成后,您可以使用chsh -s $(which zsh)
将zsh设置为默认shell。发出此命令后,您需要注销,然后重新登录才能使更改生效。
如果您在任何时候决定不喜欢zsh,可以使用chsh -s $(which bash)
恢复到Bash。
在Linux上安装zsh
在基于Ubuntu的发行版上,您可以使用sudo apt-get install zsh
安装zsh。安装完成后,您可以使用zsh --version
检查版本,然后使用chsh -s $(which zsh)
将zsh设置为默认shell。您需要注销,然后重新登录才能使更改生效。
与macOS一样,您可以使用chsh -s $(which bash)
恢复到Bash。
如果您运行的是非基于Ubuntu的发行版,请查看其他发行版的说明。
在Windows上安装zsh
不幸的是,事情开始变得有点复杂。zsh是一个Unix shell,要在Windows上运行它,您需要激活Windows Subsystem for Linux (WSL),这是Windows 10和11中运行Linux二进制文件的一个环境。
网上有很多教程解释如何在Windows 10中使用zsh。我发现以下两个教程是最新的且易于遵循的:
请注意,也可以使用Cygwin运行zsh。以下是执行此操作的说明。
第一次运行
第一次打开zsh时,您将看到以下菜单。
如果您选择(1),您将进入一个菜单,允许您配置历史记录、键绑定以及许多其他内容。但是,我建议选择(2),它将创建一个具有推荐默认设置的配置文件。
查找配置文件
现在让我们看看zsh刚刚创建的文件。进入您的主目录,然后在您选择的编辑器中打开.zshrc
文件。每当您启动zsh时都会运行此文件,并且这是任何自定义配置所在的位置。
注意:在大多数操作系统上,以点开头的文件名默认情况下是隐藏的,因此您需要使其可见才能编辑它。如果您不确定如何操作,请搜索“显示隐藏的点文件mac/Linux等”。
我们可以通过创建别名来演示此文件的工作方式。在最简单的形式中,别名是常规命令的终端快捷方式。将以下内容添加到.zshrc
的底部并保存文件:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
重新启动您的shell(例如,通过关闭它然后再次打开它),然后键入myip
。如果您安装了cURL程序,您应该会看到当前公共IP地址输出到终端。如果您想更多地尝试别名,请查看7个超级有用的别名,让您的开发生活更轻松。
通过键入exit
关闭终端,然后找到.zsh_history
文件,该文件也位于您的主目录中。这是zsh存储您以前终端命令列表的地方。目前它应该包含两行——myip
和exit
。
注意:在本教程中,我们将多次重新加载shell。您也可以使用命令执行此操作:source ~/.zshrc
。
检查您的进度
此时,您应该已经安装了zsh并将其设置为默认shell。如果您遇到任何问题,请尝试在SitePoint论坛上创建一个主题并寻求帮助。
现在让我们进入一些技巧。
如果您只遵循这些技巧中的一个,则必须是这个。
Oh My Zsh是一个社区驱动的框架,用于管理您的zsh配置,并附带数千个有用的函数、助手、插件和主题。以下许多技巧都依赖于您已安装此框架。
如项目主页所述,您可以使用cURL或wget安装它:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
<code>sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"</code>
这假设您已安装Git,希望您已经安装了。如果没有,您可以从项目的首页获取它。
如您所见,从安装后消息中,Oh My Zsh创建了.zshrc
文件的备份,然后用它自己的版本替换了它。这意味着您需要将任何自定义配置(例如我们的myip
别名)复制到新的.zshrc
文件中。
如果您在终端上花费大量时间,那么值得投入一些精力使其在视觉上更具吸引力。幸运的是,Oh My Zsh附带了许多主题。
如果您在.zshrc
文件中查找ZSH_THEME
变量,您会发现它设置为robbyrussel
。这是Oh My Zsh创建者使用的默认主题。
要安装不同的主题,请从上面的链接中选择一个,然后更改ZSH_THEME
变量的值,然后再重新启动shell。例如,设置ZSH_THEME="avit"
将导致Oh My Zsh使用avit主题。
您可能还想更改终端的配色方案。在我的Linux机器上,我可以通过编辑 > 首选项 > 颜色来执行此操作。取消选中使用系统主题中的颜色,然后选择Solarized dark作为方案,几乎不需要时间就能获得非常吸引人的结果。
请注意,该主题如何识别它位于Git仓库中,告诉我我所在的哪个分支,并显示一个绿色勾号让我知道一切都是最新的。
我鼓励您浏览可用的主题并找到一个适合您的主题。
故障排除
当我在WSL上测试它时,一旦我安装了Oh My Zsh,我的终端中就会出现损坏的字符。为了解决这个问题,我必须安装Powerline字体并告诉我的终端使用它们:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
然后打开管理员PowerShell,导航到仓库的根目录并运行:
<code>sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"</code>
如果PowerShell阻止您运行脚本,请尝试按照此Stack Overflow答案设置ExecutionPolicy。字体安装完成后,请务必将其设置回去。
最后,右键单击终端的标题栏,选择属性 > 字体,并确保选择了Powerline字体。在测试中,Deja Vu Sans Mono for Powerline 对我来说效果很好。
另请注意,一些主题需要Powerline字体,无论操作系统如何。我们将在文章的最后部分介绍如何安装其中一个主题(Agnoster)。
我最喜欢的Oh My Zsh功能之一是它允许您搜索历史记录的方式。假设.zsh_history
的内容如下所示:
<code>sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"</code>
如果您在终端中按↑键,您会期望逐个循环遍历这些历史记录条目,对吧?这并不奇怪。
但是,Oh My Zsh允许您输入命令的开头,然后按↑键循环遍历匹配的条目。因此,在上面的示例中,如果您输入“mkdir”然后按↑键,您将看到显示“mkdir {src,build}”。如果您再次按下它,您将看到“mkdir my-project”。
我一直使用此功能。例如,当我想要ssh到服务器并且不记得确切的凭据时,我只是输入“ssh”并可以循环遍历最近的连接直到找到正确的连接。或者,当我记不起命令的确切语法时,我可以只输入前几个字符并循环遍历任何匹配项。
Oh My Zsh的另一个很棒的功能是插件。这些会为您的shell添加新功能并增强其功能。
Oh My Zsh附带数百个适用于各种用途的插件,我们稍后将在本文中介绍其中一些。但是,在本节中,我想向您介绍一个名为autosuggestions的第三方插件。这会根据历史记录在您键入时建议命令。
要安装,您需要将其存储库克隆到$ZSH_CUSTOM/plugins
。默认情况下,这是~/.oh-my-zsh/custom/plugins
:
<code>git clone https://github.com/powerline/fonts.git</code>
完成后,要激活它,请进入.zshrc
文件并取消以下行的注释:
<code>.\install.ps1</code>
然后将git
替换为zsh-autosuggestions
:
<code>cd Desktop mkdir my-project cd my-project npm init -y mkdir {src,build} touch index.js</code>
重新启动shell,您会注意到,当您键入命令时,Oh My Zsh会根据您的历史记录提出建议。如果建议是您正在寻找的建议,请按→键接受它。真正的省时器!
Oh My Zsh的另一个很棒之处在于它使在您的机器上导航变得多么容易。
例如,当您想更改目录时,没有必要输入cd
命令;cd Desktop
只需输入Desktop
即可。这在路径中也适用:您可以输入/home/jim/Desktop
并直接到达您想要去的地方。
Oh My Zsh也有很好的自动补全功能。一旦您开始键入路径,您可以按TAB键让它展开您可以导航到的所有可能文件夹的列表。如果您继续按Tab键,您可以遍历此列表,直到通过按Return键选择一个文件夹。之后再次按TAB键将重新启动此过程。
最后,值得一提的是,Oh My Zsh提供了一些用于处理和导航目录的命令和别名。例如,键入...
将使您向上移动两个目录,键入take <dir-name></dir-name>
将创建一个新目录并导航到该目录。Oh My Zsh还支持动态路径补全,因此键入(例如)/h/j/De
并按Tab键将路径扩展到/home/jim/Desktop
。很酷,对吧?
额外提示:如果您感觉懒惰,您可以将文件夹直接拖放到终端窗口上,路径将为您展开。
z是一个方便的插件,它会创建一个您最常用和最近使用的文件夹列表(它称之为“frecent”),并允许您使用一个命令跳转到它们。这通常比必须通过嵌套文件夹结构进行制表符切换更方便。
要安装插件,您只需将其添加到.zshrc
文件即可:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
然后重新启动终端。
安装后,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
文件。如果您遇到任何问题,本文提供了一些建议。
zsh开箱即用地包含一些基本的Git集成。例如,如果您键入git
并按Tab键,zsh将会有用地输出大量可能的git命令列表。如果您键入git
,然后键入您正在寻找的命令的前几个字母,这将变得更有用。例如git a
Tab产生:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
当您安装Oh My Zsh git插件时,事情开始变得更有趣:
<code>sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"</code>
这提供了一整套别名,以及一些用于处理Git的有用函数。我经常使用的一些是:
gaa
– git add all
gdca
– git diff --cached
gp
– git push
gpf!
– git push --force
grhh
– git reset --hard
gst
– git status
您还可以一次创建多个命令的别名,方法是将以下内容添加到.zshrc
文件中:
<code>sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"</code>
现在,当您在Git仓库中时,键入acp "a commit message"
将添加所有更改的文件,使用您指定的任何提交消息提交它们,然后将它们推送到您的远程仓库。此想法的功劳归于Ali Spittel。
在文章开头,我们激活了一个名为avit的主题。在Git仓库中,此主题将显示分支名称,以及一个十字或勾号,指示该分支是否为最新状态。我喜欢能够一目了然地看到这些信息,这绝对比一直键入git status
要好得多。
但是,有一些主题以更直观的方式显示此信息。我最喜欢的是Agnoster。让我们现在安装它。
为了使Agnoster正确呈现箭头和Git图标,您可能需要安装Powerline修补的字体。WSL用户可以通过按照上面故障排除部分中的说明进行操作。对于macOS和Linux用户,可以在项目的repo中找到安装说明。
High Sierra或更高版本上的Mac用户可能需要执行一些额外的工作才能显示这些字体。除非您使用的是Catalina,否则建议使用此方法。Catalina用户需要安装修补的字体并在终端设置中选择它。
要测试您的终端是否可以显示所有必要的字符,请运行以下命令:
<code>git clone https://github.com/powerline/fonts.git</code>
结果应如下面的图像所示。
之后,通过更改.zshrc
文件中的以下行来启用主题:
<code>alias myip="curl http://ipecho.net/plain; echo"</code>
然后重新启动终端。一旦Agnoster启动并运行,您将更直观地了解任何Git仓库的状态。您还将收到关于先前命令是否成功或失败以及您是否使用提升的权限进行工作的视觉反馈。
提示:如果您不喜欢提示符的user@host部分,您可以通过将DEFAULT_USER=your_user_name
添加到.zshrc
文件来使其消失。
如前所述,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
:使命令行和代码编辑器之间的交互更容易。这不是zsh特有的技巧,但为了总结,我想让您了解这五个省时的快捷键组合。
如果您能记住这些,您会惊讶于它们经常派上用场。
结论
在本文中,我已经演示了如何安装zsh(Z shell)并将其设置为默认shell。我还展示了如何使用Oh My Zsh框架充分利用您的新终端。我希望,如果您尝试使用这些方法几周,您会想知道您以前是如何没有它们工作的。
并且不要忘记:如果您对此有任何问题,您可以跳到SitePoint论坛并寻求帮助。我也很乐意听到我是否遗漏了什么——例如,您最喜欢的主题、插件、别名或生产力技巧。
您可以在论坛或Twitter上联系我。
(以下为原文FAQs部分的伪原创,保持原意不变,并精简部分重复内容)
关于Zsh的常见问题
Zsh与Bash等其他shell有何不同? Zsh提供高级Tab键自动补全、拼写检查、可自定义提示符和更多脚本选项等功能。与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配置文件中。
如何自定义我的Zsh提示符? 您可以通过修改Zsh配置文件(通常为~/.zshrc)中的PS1环境变量来自定义Zsh提示符。或者,使用Oh My Zsh等框架可以轻松选择和自定义主题。
什么是Zsh插件? Zsh插件是增强Zsh功能的扩展。它们可以提供额外的功能,例如语法高亮显示、自动建议以及对特定命令或语言的改进补全。
如何安装Zsh插件? “Oh My Zsh”、“Zplug”和“Antigen”等Zsh插件管理器使安装和管理插件变得容易。每个管理器都有其自己的设置说明,通常涉及修改Zsh配置文件。
什么是Oh My Zsh? Oh My Zsh是一个流行的框架,用于管理Zsh配置和插件。它包含您可以轻松启用或自定义的预构建主题和插件集合。
如何将Zsh设置为我的默认shell? 您可以通过运行命令chsh -s $(which zsh)
将默认shell更改为Zsh。这将更新系统用户配置中的shell首选项。
如何安装Zsh? macOS和许多Linux发行版通常预装了Zsh。如果没有,您可以使用系统的包管理器安装它。例如,在基于Debian的系统上,您可以运行sudo apt-get install zsh
。
什么是Zsh(Z shell)? Zsh,即Z shell,是一个高级Unix shell,它为命令行界面提供强大的自定义选项、改进的脚本功能和交互式功能。
如何配置和自定义Zsh? 配置和自定义Zsh涉及编辑.zshrc
文件,选择主题和插件(例如使用Oh My Zsh),设置选项、别名和自定义提示符(PS1)。 这需要根据个人喜好和需求进行调整。
以上是10个ZSH提示和技巧:配置,自定义和用法的详细内容。更多信息请关注PHP中文网其他相关文章!