我有一台计算机 A(kali linux),我在 bash_aliases 中为用户“test”定义了一些别名和函数。 我可以在计算机 A 上使用这些别名/函数,没有任何问题。
在计算机 B 上,我使用 SSH 命令连接到 A,并尝试执行我定义的别名/函数。但我收到错误“bash:myaliasA:找不到命令”
Here我发现我必须添加“shopt -s Expand_aliases”命令。
我将其添加到计算机 A 的 .bashrc(以及源 .bashrc)中,但仍然遇到相同的错误(未找到命令)
我将其添加到计算机B的.bashrc(和源.bashrc)中,同样,当我使用ssh连接时,我仍然得到“命令未找到”
我不明白问题出在哪里:/
在计算机 A 中,当我运行命令“shopt”时,我得到:
...
execfail off
expand_aliases on
extdebug off
...
在计算机 B 中也是如此:
...
execfail off
expand_aliases on
extdebug off
...
从我的计算机 A,我可以毫无问题地执行所有别名/函数。
从我的计算机B,当我执行此命令时:
ssh userA@ipofcomputerA -p xxxx "alias"
该命令不返回任何内容
但是如果我执行:
ssh userA@ipofcomputerA -p xxxx "shopt"
我明白了:
...
execfail off
expand_aliases off
extdebug off
...
expand_aliases 设置为关闭!
所以,我测试一下:
ssh userA@ipofcomputerA -p xxxx "shopt -s expand_aliases ; shopt ; myaliasA"
和
ssh userA@ipofcomputerA -p xxxx "shopt -s expand_aliases ; shopt ; source .bashrc ; myaliasA"
通过这两个命令,我得到:
...
execfail off
expand_aliases on
extdebug off
...
但我得到“bash:myaliasA:找不到命令”
我要疯了x)哈哈
最佳答案
确保在 ssh 时使用与配置相同的 shell,并尝试重置
以重新加载 .bashrc 文件。
顺便说一句,实现此目的的一个好方法是打开一个新的 tmux session ,并在每次 ssh 进入服务器时附加到它。
关于linux - 通过 ssh 连接找不到 Bash、别名/自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39219806/