在 zsh 中设置别名

Tho*_*ard 108 zsh

我知道在 bash 中,您可以在 .bash_aliases 文件中设置别名,以便您键入的命令不需要是存储在系统二进制文件中的命令。有什么办法可以让别名进入 zsh?

Kur*_*sis 183

我在 bash 和 zsh 之间来回切换,并.aliases为两者使用相同的文件。它们共享相同的基本别名语法,因此您可以创建一个.aliases文件并将其链接到.bashrc.zshrc

.bashrc

if [ -f ~/.aliases ]; then
    . ~/.aliases
fi
Run Code Online (Sandbox Code Playgroud)

.zshrc

source $HOME/.aliases
Run Code Online (Sandbox Code Playgroud)

FWIW 这也可以通过在单独的.env文件中的环境变量声明来完成。

  • 我刚刚将 source ~/ .bash_aliases 添加到 .zshrc 的末尾,因此所有别名都可以在 bash 和 zsh 上使用 (3认同)
  • 你的链接坏了。。 (2认同)

saz*_*ary 57

您可以使用以下语法通过“别名”命令来完成:

alias [ -gmrL ] [ name[=value] ... ]
Run Code Online (Sandbox Code Playgroud)

对于“gmrL”开关,请参阅本指南,这是我的参考
对于每个没有值的名称,zsh 将打印名称及其以前的别名。完全没有参数,alias打印所有定义的别名的值。

要定义一个或多个别名,只需输入:

alias name1=value1 name2=value2 ... nameX=valueX
Run Code Online (Sandbox Code Playgroud)

对于具有相应值的每个名称,zsh 定义具有该值的别名。有关更多信息,请查看该链接。;-)

  • 这个答案错过了关于在哪里保留别名的部分,Kurtosis 答案包括它 (.zshrc)。 (10认同)
  • 我使用 `~/.profile` 来存储我关心的所有别名,并从 `~/.zshrc` 中获取 `~/.profile` 它。 (6认同)

gee*_*aur 12

您通常将它们放入~/.zshenv. 但是许多程序使用/bin/sh(通常bash)而不是$SHELL执行 shell 命令,所以为了让它在任何地方工作,你可能需要将bash别名的等价物放入~/.bash_aliases任何地方。

  • 根据[this](https://unix.stackexchange.com/questions/71253/what-should-shouldnt-go-in-zshenv-zshrc-zlogin-zprofile-zlogout),别名应该放在`.zshrc`中,因为`.zshenv` 是“每次都读取”——“即使启动 Zsh 来运行单个命令,也会读取该文件。” (2认同)