让你大吃一惊的 Zsh 技巧
这篇博客文章是为Twilio撰写的,最初发表在 Twilio 博客上。
在基于 UNIX 的编程中,我们经常谈论 Shell、终端和命令行界面。Bash 可能是最著名的,但还有其他广泛使用的选项,例如 Zsh 或 Z shell。继续阅读,了解更多关于 Zsh 的信息以及一些优化开发的技巧和窍门。
Zsh 是什么?
Zsh,也称为 Z shell,扩展了 Bourne Shell (sh) 的功能,提供了更新的功能以及对插件和主题的更多支持。从 2019 年的 MacOS Catalina 开始,Zsh 成为 Mac 机器的默认登录和交互式 shell。
安装 Zsh
您可以使用 Homebrew安装Zshbrew install zsh
。
在此过程中,您还可以使用以下安装脚本安装最流行的 Zsh 插件oh-my-zsh,它附带许多内置插件和主题:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
9 个鲜为人知的 Zsh 技巧和窍门
- 我的队友 Valériane Venance 在推特上发布了有关创建新目录并对其进行更改的
take
命令,从而无需键入两个命令,mkdir
并且cd
take
还将根据需要创建中间目录。 - 搜索历史记录。在终端中,按下向上箭头键可以循环显示你之前使用过的命令,从最近的开始。使用 Zsh,你可以循环显示你使用过某个特定命令的时间,例如……
mkdir
我的好队友 Matthew Gilliard 告诉我,
ctrl-r ___
哪个命令可以找到你上次搜索给定短语的时间。ctrl-r
再次点击可以找到第二最近的命令,然后是第三最近的命令,依此类推。 - 自动
cd
。无需键入cd
切换目录,只需键入目录名称即可。 -
使用 批量重命名文件
zmv
。要安装 zmv,请运行autoload zmv
。我为机器学习模型下载了大量图像,并希望将它们重命名为更一致(即 epcot-1.jpg、epcot-2.jpg、epcot-3.jpg......而不是 1.jpg、2.jpg、3.jpg......)执行此操作的命令是zmv '(*).(jpg|jpeg)' 'epcot-$1.$2'
。要检查运行命令之前会发生什么,可以添加-n
,而不是运行 该命令是什么意思?查找目录中以或结尾的每个文件。然后表示通过在前面添加原始文件名(用 表示)然后是原始文件类型(用 表示)来编辑每个文件名。zmv -n '(*).(jpg|jpeg)' 'epcot-$1.$2'
(*).(jpg|jpeg)
.jpg
.jpeg
epcot-$1.$2
epcot-
$1
$2
-
丰富的插件选择。正如安装部分所述,oh-my-zsh 自带了许多插件。您可以通过在文件中添加以下代码来包含
npm
和sudo
插件: 。一些出色的插件包括~.zshrc
plugins=(npm sudo)
npm
npm
为命令添加自动完成功能。sudo
sudo
即使您已经通过esc
两次单击输入了命令,它仍会添加到命令中 - 您猜对了。zsh-autosuggestions
根据您以前的命令和完成的历史记录,在您键入时建议命令。(
web-search
让您从命令行打开搜索引擎:运行google ___
将在 Google 中搜索给定的短语,即 Serena Williams,如下所示。git
包含许多 git 命令的别名,让您减少输入并节省时间。git add
既然可以手动输入,为什么还要手动输入ga
呢?更多别名请见此处。
-
停放命令。
Ctrl-q
“停放”当前正在输入的命令,并返回到提示符,以便您重新开始输入另一个命令。运行该命令后,原始命令将取消停放并重新填充命令行,以便您继续操作——例如,如果您忘记在执行某个命令之前执行某个命令,此功能非常有用。 -
在命令行中输入命令后,可以轻松编辑它。如果您输入或粘贴了一条长命令,并决定在运行前进行编辑,则可以
ctrl-x-e
在编辑器中打开它(通常是 vi,但您可以使用环境变量将其设置为任何文本编辑器$EDITOR
)。 -
组合快捷键。输入
ctrl l
而不是clear
来清除终端。Shell 涡轮增压的下一步是什么
这仅仅是个开始——zsh 和 oh-my-zsh 还能帮你做更多。快来看看这份 oh-my-zsh 速查表,以及这份由 Twilio 工程师 Joe Block 维护的 ZSH 框架、主题和插件列表吧!然后在线告诉我你的终端是什么样子的!