这个问题让我想起了我自己的一个问题 。 我想创build一个ssh
到机器的别名,运行一个命令(在这种情况下, cd
到提供的path),然后给我一个shell。 我已经运行了一百个这样的变体:
$ ssh user@machine 'cd /some/path/ && bash -i -l'
这是我可以做的最好的。 它给了我一个正确的目录bash提示符,但没有作业控制,没有能力使用箭头键(和一些其他的快捷键)。 是否有捷径可寻?
我不能在我的bashrc或者configuration文件的末尾轻松地做到这一点,因为我想要去的path会有所不同(我会把它作为别名的parameter passing),偶尔我甚至会ssh到那台机器根本不想去任何奇怪的 – 主目录是好的。
尝试给ssh的-t
选项,让它分配一个terminal。
看看sshd手册页,Authorized_keys文件格式部分。 里面有选项command =“command”,这个键连接的时候该怎么做。 原来包含的连接命令包含在一个variables中。
您可以将此命令设置为使用启动脚本运行bash,该脚本检查原始命令值并运行它,然后将其留在交互式shell中。
这将是不同的,因为cd
不是一个命令,而是一个shell内置的改变程序当前的工作目录。
恐怕我从来没有find一个好办法来做到这一点 – 但也许这将有助于澄清一些混乱。
我认为做你的cd /some/path/
的最好的地方是在远程机器的.bashrc
。