在zsh中设置别名


75

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

Answers:


43

您可以使用以下语法通过“ alias”命令执行此操作:

alias [ -gmrL ] [ name[=value] ... ]

有关“ gmrL”开关的信息,请参阅本指南,供我参考。 对于每个没有值的名称,zsh将打印该名称及其之前的别名。完全不带参数的别名将打印所有已定义别名的值。

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

alias name1=value1 name2=value2 ... nameX=valueX

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

更新:更新了无效链接。


该文件完全回答了我的问题。非常感谢。
托马斯·沃德

该链接已断开。
Soham Chowdhury 2014年

更新了链接。
sazary 2014年

8
此答案缺少有关在哪里保留别名的部分,Kurtosis答案包括该别名(.zshrc)。
费利克斯

1
~/.profile用来存储我关心的所有别名,并~/.profile从中获取它~/.zshrc
丹巴

140

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

.bashrc:

if [ -f ~/.aliases ]; then
    . ~/.aliases
fi

.zshrc:

source $HOME/.aliases

最后,也可以在单独的.env文件中使用环境变量声明来完成此操作


我只是将源〜/ .bash_aliases添加到.zshrc的末尾,因此所有别名都可以在bash和zsh上使用
talsibony

@talsibony像这样:~/ .bash_aliases如果您在那里,我需要一点帮助,请回复
lewis4u

@ lewis4u〜/和.bash_aliases之间不应有空格。它应该恰好是〜/ .bash_aliases。
Kurtosis

您的链接已断开..
Ilan.b

10

您通常将它们放入~/.zshenv。但是许多程序/bin/sh通常使用bash而不是$SHELL执行shell命令,因此,要使其在任何地方都能正常工作,您可能总需要将bash别名的内容放入其中~/.bash_aliases


这仅用于我的用户帐户,因此不需要将其复制到〜/ .bash_aliases文件。
托马斯·沃德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.