我的贝壳是我的一切。这是我早上开始的第一个节目,也是我晚上结束的最后一个节目。这是我经常调整的程序,以提高我的整体生产力。在我看来,微软发布的Windows终端1.0和WSL2.0将促进壳牌的整体采用。在过去的十年中,我看到许多用户安装和使用不同的shell。然而,投入时间配置shell以提高工作效率的人数只占很小的比例。这太可惜了!
如果您安装和使用shell而不进行自定义,您也可以坚持使用Finder或Windows资源管理器等工具。像ZSH这样的shell一旦有了单独的配置就会大放异彩:这些配置可以让您--用户--获得超高的工作效率。我写这篇文章是为了获得灵感。它应该演示如何通过简单的事情(如在ZSH中采用5种类型的别名)来提高您的整体工作效率。别名是获得定制shell体验的第一步。别名是一种超级个体的东西。
我每天都在使用Docker、Kubernetes和Microsoft Azure。也就是说,让别名支持我使用这些工具和环境是有意义的。但是,可能您使用的是不同的云和命令行工具,因此最终会得到不同的别名。关键的要点应该是您创建并使用别名来帮助您完成工作。
您的所有别名都在~/.zshc中定义。ZSH在启动期间加载配置文件。但是,您始终可以使用source~/.zshc强制重新加载配置文件。
本文将教您如何创建和使用这五种类型的别名:
简单别名是一个很好的起点。我使用它们来减少用来启动命令的击键次数。简单别名的定义使用别名my-alias=";command";模式。
#导航别名别名dev=";cd~/dev/";别名Personal=";cd~/dev/thorstenhans";别名business=";cd~/dev/thinktecture";#kubectl别名别名k=";kubectl";别名kgx=";kubectl config Get-Context";#docker。
在我的~/.zshc中注册了这些别名后,我可以快速导航到常用目录,只需几次击键就可以启动我经常使用的命令。
后缀别名是使用-s标志定义的。使用后缀别名,您可以在您喜欢的工具中启动具有特定扩展名(或后缀)的文件。要注册后缀别名,我们使用alias-s tension=name-of-the-tool模式。以下示例假定已安装VisualStudio代码,并且可以从终端使用code命令启动。
#Azure CLI文件别名-s azcli=code#Markdown文件别名-s md=code#JSON文件别名-s json=code#批量关联别名-s{cs,ts,html}=code。
echo";#Hello World";>;sample.md#现在键入文件名,然后通过ENTERsample.md提交。
后缀别名将sample.md转换为代码sample.md,您应该看到VisualStudio Code正在启动并显示sample.md的内容。
有时您希望创建需要一些上下文信息的别名。参数用于描述shell命令的该上下文信息。使用参数注册别名看起来非常类似于常规编程语言中的函数定义。我们使用以下模式定义带参数的别名:
例如,假设您要优化在Azure订阅中列出Azure Kubernetes Service(AKS)实例的流程。为了实现这一点,Azure CLI提供了azaks list命令。该命令允许通过添加几个参数进行进一步配置。
以下别名接受两个参数-第一,资源组名称(资源组是Azure中的逻辑容器)。第二个参数指定所需的输出格式。
现在,我们可以使用带有参数的getaks别名在resource-group-1中查找AKS实例,并使用getaks resource-group-1 jsonc以彩色JSON(Jsonc)格式打印结果。
全局别名是使用-g标志定义的。全球别名是咄咄逼人的。注册后,它将用指定的命令替换所有出现的别名。该定义遵循模式alias-g aliasName=";command";。
#我必须经常请求Azure资源ID别名-g qid=";--query id-o tsv";
将qid注册为全局别名后,我可以在使用Azure CLI请求唯一资源标识符时优化性能。请参阅以下代码片段,将常规命令与使用我的全局别名的优化命令进行比较:
#查询AKS实例的标识符的正确命令ak show-n myaks2020-g rg-demo--query id-o TSV#查询具有全局别名的AKS实例的标识符的命令akks show-n myaks2020-g rg-demo qid。
操作系统特定的别名不是真实类型。但是,我认为特定于平台的别名很重要-尤其是在使用多个平台时。我每天都使用MacOS作为驱动程序,所以我的钻机上也有一些别名。
不过,我喜欢使用Linux作为操作系统的VisualStudio Codespaces。在这两种情况下,我都想使用我的点文件。为此,我使用简单的if语句。
#MacOS别名如果[[$OSTYPE==达尔文*]];则别名刷新=#39;dscacheutil-flushcache';#应用程序别名浏览=#34;打开-a/应用程序/谷歌\Chrome.app";#*浏览Azure门户别名azure=";浏览https://preview.portal.azure.com";文件。
我的~/.zshc中有两个别名,这两个别名非常高效。我使用EC在我最喜欢的编辑器中打开~/.zshc,并使用sc将其源代码(将~/.zshc的当前状态应用于您的ZSH会话)。两者的别名定义如下所示:
#使用$EDITOR别名EC=";$EDITOR$HOME/.zshc";#source~/.zshc别名sc=";中指定的默认编辑器打开~/.zshc。
您已经看到了五种不同类型的ZSH别名(将特定于操作系统的别名算作专用类型),它们将提高您的工作效率。使用了四种不同类型的别名来实现shell中的几乎所有功能。
不用着急。做些调查。确定您每天或经常使用的命令行工具,查找模式,并创建相应的别名,通过减少击键来提高您的工作效率。
在所有操作系统上都有强大的shell(最后包括使用WSL2.0的Windows),您应该关心您的shell性能。让ZSH成为你自己的。
我做了很多会议演讲;如果你也在会议或聚会上发表演讲,你应该从快速解释你在整个演讲过程中将使用的别名来开始你的演讲,以便让你的听众加入到你的演讲中。也许他们用kc而不是k来表示kubectl。😂。
特别感谢SunDeep Agarwal给我指出了一些打字错误,并感谢Simomed提供了有关后缀别名批量关联的提示。