在终端中创建的别名未显示在 tmux 中。为什么?

在终端中创建的别名未显示在 tmux 中。为什么?

我在终端中创建了一些别名,如下所示:

alias k=kubectl
source <(kubectl completion bash)

然后我使用命令打开 tmux 会话tmux

现在在 tmux 窗格内,当我尝试使用别名并期望在终端中运行的源命令的行为时,它失败了! :(

为什么会发生这种情况以及我该如何解决?

上下文是我最终在 tmux 中使用多个窗格,并且我不想在打开每个 tmux 窗格时一次又一次地重复创建同一组别名。可能的?

答案1

tmux只是一个运行其他程序的程序,所以tmux实际上与此无关,除了它bash为您启动一个新会话之外。测试一下:alias t='echo hi'在终端中执行此操作,然后运行命令bash来启动新的 shell(在同一终端中)。新t别名在新 shell 中不可用。别名不被继承。仅继承环境变量(以及其他一些内容,例如当前目录是什么)。

简而言之,别名不会被通过 启动的 shell 继承tmux。您必须在每个tmux窗格中实例化别名(可能通过将别名定义添加到文件中~/.bashrc)。

相关内容