为什么应该在 Linux 终端中使用别名
要点
- 您可以通过将别名添加到配置文件来临时或永久使用别名。
- 别名可以简化您需要经常使用的命令。
- 使用别名,您可以完全用更强大的命令替换一个命令,而无需记住它。
在使用 Linux 终端时,不起眼的别名是一个强大的盟友,但您可能更需要依赖它。让我们看一下别名可以让您在终端中使用起来更轻松的几种方法。
您可能已经在不知情的情况下使用别名
首先,您可能已经在不知不觉中使用了至少一个别名。例如,如果您在终端中键入 la
命令来快速列出目录中的所有文件,那么这是 ls -lAh
的简单别名或类似的名称,取决于您的分布。
如果您好奇,可以很简单地查看终端中已存在哪些别名。只需键入不带任何参数的 alias
命令即可获得当前别名的列表。请注意:即使是相对较新的安装,这也可能是一个很长的列表。
别名可以简化常用命令
Linux 命令行非常强大,但即使您一直使用某些命令,也很难记住某些选项的执行顺序。也许您永远记不起“x”在 tar 中的位置 - xvf 命令解压缩 .tar.gz 文件。使用别名很容易解决这个问题。
这些类型的别名是您可能想要保留的类型,因此您将在 shell 的配置文件中设置它们。如果您使用 bash shell,则该文件位于 ~/.bashrc
中。对于 zsh,您的配置文件将位于 ~/.zshrc
中。如果您不确定自己使用的是哪个 shell,那么它很可能是 bash。
要为上面的 tar 命令设置别名,您可以将以下内容放入 shell 配置文件中:
alias uncompress="tar -xzf"
然后,通过运行 source ~/.bashrc
或 source ~/.zshrc
获取文件并尝试新的 uncompress
别名。
这里值得指出的是,命名别名时需要小心。您的文本编辑器或 shell 不会阻止您将别名命名为与其他重要命令相同的名称,这可能会导致问题。
要检查您正在考虑使用的别名是否已存在,您可以运行以下命令:
which <command>
如果您收到
或类似的响应,则可以安全使用该别名。
临时别名可以节省您的时间
虽然您希望创建的许多别名是永久性的,但您可能不希望它们全部永久保留。无论您是临时设置环境来编译软件还是处理一些系统管理任务,临时别名都可以简化事情。
设置临时别名很容易。您无需将其写入 shell 配置文件中,只需在 shell 中创建别名,就像使用任何其他命令一样。
alias awesome="cd /etc/xdg/awesome/"
然后,不必每次都输入长路径名,只需输入 awesome
即可切换到该目录。如果您需要连接到多个远程服务器,这也可能很有用,例如,您可以为每个地址的 ssh 连接提供一个别名。
使用完此别名后,您无需担心注销 shell 来删除它。幸运的是,您可以使用一个方便的命令来停止使用任何别名:
unalias <command>
如果您想恢复系统级别名,也可以在 shell 配置中使用它。
别名可以使有风险的命令更安全
别名最强大的用途之一实际上是充当可能对系统造成严重破坏的强大命令的护栏。虽然您自己可能不需要这些,但如果您想教某人命令行的方法而不吓跑他们,那么它们是必不可少的。
例如,在 rm
命令中添加 -i
标志,甚至像 mv
这样的命令都可以防止文件被意外删除。该标志所做的只是使命令具有交互性,因此它会在实际执行操作之前提示用户。例如,将以下内容添加到 ~/.bashrc
中:
alias rm="rm -i"
alias mv="mv -i"
现在这些命令稍微安全了一些。当然,你也可以像我们上面那样临时设置这些命令。如果您正在处理敏感文件并希望确保不会意外删除任何内容,那么将这些文件设置为短时间是确保安全的好方法。
您可以使用别名将命令组合在一起
有些命令总是一起运行。其中一些可能在多人之间很常见,例如运行sudo update && sudo update
。其他可能对您自己的个人工作流程更常见,例如同步您的邮件,然后通过运行 mbsync
来运行类似 notmuch 的工具。
为了简化第一个,您可以将类似以下内容添加到 ~/.bashrc
或 ~/.zshrc
中:
alias up2date="sudo apt update && sudo apt upgrade"
对于其他命令,您可以使用类似的命令
alias mail_sync="mbsync <my_account> && notmuch new"
当然,您可以将两个以上的命令组合在一起。也就是说,您可能希望避免在单个别名中放置太多功能,因为您不想启动一系列命令,这些命令会因错误的击键而使您的终端占用 15 分钟。
您可以用别名完全替换命令
虽然到目前为止您在终端中所依赖的经过考验的真实命令只是这样,但它们并不是无法改进。当然,随着技术的进步,现在已经有人想出了 ls 命令的现代替代品,对吧?
事实证明,答案是还没有。首先是 exa
命令,该命令现已不再维护并已被 eza 取代。该命令可作为 ls 命令的直接替代品,尽管它还具有更多功能。
如果您愿意,可以并排安装这两个命令,仅在您愿意时运行 eza
。也就是说,大多数使用该工具的人都会安装它,然后将其别名为旧的 ls 命令,如下所示:
alias ls=eza
现在,ls
命令将按照您一直使用的方式工作,但具有额外的选项。例如,旧的 ls 从未向您显示有关 Git 存储库的信息,但现在可以了。
当然,这不是唯一可以用这种方式别名的命令。如果您经常使用 Neovim,则可以将 vim
命令别名为 nvim
,不过在这种情况下,最好相应地设置环境变量。