为什么‘别名’是我用于别名的最后手段

主要观点:在自定义点文件时,别名是早期添加的内容之一,后发现用$PATH中的脚本替代别名更好,脚本相比别名有诸多优势,但别名也有其特点。
关键信息:

  • 早期定义的别名如alias g=git,可节省每天多次运行git的时间。
  • 用脚本替代别名,在$PATH中的~/bin文件夹创建脚本,如~/bin/g脚本#!/usr/bin/env bash exec git "$@",编辑~/bin中的文件可立即生效,无需重新加载.zshrc
  • 脚本的优势包括无需重新加载立即生效、可选择编程语言(如用 Python 写笔记脚本)、有更多空间处理复杂逻辑(如让电脑在不同系统下休眠的脚本)、更便携(可在不同 shell 间使用)。
  • 别名的优势包括有特殊功能(如alias cd..=cd..、根据上一个命令的退出状态发出声音的函数)、保留自动补全功能、可条件定义(如在 macOS 和 Linux 上定义不同的open命令)、更容易绕过(如临时使用真正的vim)、更简洁(创建别名比创建脚本文件更快)、性能稍好(非正式测试中别名比脚本快 100 多倍,但实际未明显察觉)。
    重要细节:文中提供了相关链接如Julia Evans 的指南Hacker News 上关于alias优势的讨论Unix Stack Exchange 上关于绕过别名的方法以及相关脚本如mksh等的链接。
阅读 8
0 条评论