Unix bash 别名在启动屏幕后不起作用

Unix bash alias not working after start screen

您好,我在启动 screen 命令后在 mac 中设置别名时遇到问题,我有使用 git 的别名,例如

commit=git commit

当我启动终端 (iTerm2) 时,它们的工作方式与我预期的一样,但有时我会使用 screen 在远程服务器和我使用的虚拟 machines 中同时运行实例。此后别名消失(command not found).

有谁知道为什么或者怎么解决吗?

要使别名起作用,您必须使用 alias 命令。例如,要在 Bash 中创建别名,您可以执行以下操作:

$ alias commit="git commit"

这暂时有效,即:在您当前的 shell 中。为了使其成为 "stick",您必须将其放入您的 ~/.bashrc。这将使它成为您将在终端会话期间调用的 Bash 的所有实例的来源。

当你启动屏幕时,它也会启动一个单独的 Bash,所以你会被覆盖。

你写了一些关于 VM 的文章。如果您需要此别名在那里工作,则必须在这些 VM 上设置 ~/.bashrc 以具有相同的别名。但那是另一个故事。你应该已经知道如何实现你想要的。

您需要确保您的别名在 ~/.bashrc 中定义,以确保它们包含在所有登录中。您可以对此进行测试:编辑您的 ~/.bashrc 以包含此行:

echo "bashrc"

然后编辑您的 ~/.bash_profile 以包含此行:

echo "bash_profile"

当您启动 screen 时,您会看到仅显示 "bashrc"。

有关该主题的更多详细信息,请参阅 this question