如何添加系统别名?

xli*_*iiv 6 shell alias

我的别名中有这个别名.zshrc

alias grim='gvim --remote'
Run Code Online (Sandbox Code Playgroud)

但这不是从 Ranger 文件管理器中看到的,我相信 Ranger 运行一个“通用”外壳,跳过我的.zshrc. 我想让这个别名在每个 shell 中都可见。

我将它添加到~/.profile和添加到/etc/zsh/zshrc但没有效果。具体来说,收到此消息:

/bin/sh: grim: not found
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 11

只有交互式 shell 才能读取可能包含别名定义的文件。如果您想在应用程序执行的 shell 片段中为命令使用昵称,则别名不是正确的工具。相反,编写一个这样的包装脚本:

#!/bin/sh
gvim --remote "$@"
Run Code Online (Sandbox Code Playgroud)

调用它~/bin/grim并使其可执行。确保你有~/bin你的PATH(你可以把脚本放在你的任何其他目录中PATH)。

如果您希望它适用于系统上的每个用户,请将其放入/usr/local/bin,确保该目录在每个人的 PATH 中。