unix命令在通过SSH完成身份验证之前执行

unix命令在通过SSH完成身份验证之前执行,unix,batch-file,ssh,Unix,Batch File,Ssh,我尝试使用putty.exe通过java代码和windows打开Unix会话,如下所示: Runtime.getRuntime().exec("cmd /c start /B C:/scripts/Session.bat "); “Session.bat”文件内容为: putty.exe -t -ssh root@aaa -pw abcd -P 22 aaa是服务器名称。 root是用户名。 abcd是密码 现在,会话很好地打开了,但是我想从上面的命令(ll-s、pwd等)运行几个简单的命令

我尝试使用putty.exe通过java代码和windows打开Unix会话,如下所示:

Runtime.getRuntime().exec("cmd /c start /B C:/scripts/Session.bat ");
“Session.bat”文件内容为:

putty.exe -t -ssh root@aaa -pw abcd -P 22
aaa是服务器名称。 root是用户名。 abcd是密码

现在,会话很好地打开了,但是我想从上面的命令(ll-s、pwd等)运行几个简单的命令。 但是,当我尝试将包含这些命令的txt文件添加到上述命令时,我看到这些命令是在输入用户名之后和密码之前执行的。 完整的命令是:

putty.exe -t -ssh root@aaa -pw abcd -P 22 -m C:\scripts\commands.txt
这就是为什么我会出现错误(如下),因为命令“ll”出现在密码之前:

Using username "root".

bash: ll:: command not found
请帮帮我。。。
谢谢

在处理密码之前,无法在远程计算机上执行该命令。当然,root的bash启动文件中缺少别名


尝试将
别名ll='ls-l'
添加到/root/.bash\u profile?

我想这只是因为
ll
root
没有的别名。如果你有
ls
呢?我想应该是
ls-l
(长列表)。更正。Thx@user1630359运行您想要运行的实际命令;不要依赖别名。