执行远程命令
# 执行远程命令
SSH 登录成功后,用户就进入了远程主机的命令行环境,所看到的提示符,就是远程主机的提示符。这时,你就可以输入想要在远程主机执行的命令。
另一种执行远程命令的方法,是将命令直接写在ssh
命令的后面。
$ ssh username@hostname command
1
上面的命令会使得 SSH 在登录成功后,立刻在远程主机上执行命令command
。
下面是一个例子。
$ ssh foo@server.example.com cat /etc/hosts
1
上面的命令会在登录成功后,立即远程执行命令cat /etc/hosts
。
采用这种语法执行命令时,ssh 客户端不会提供互动式的 Shell 环境,而是直接远程命令的执行结果输出在命令行。但是,有些命令需要互动式的 Shell 环境,这时就要使用-t
参数。
# 报错
$ ssh remote.server.com emacs
emacs: standard input is not a tty
# 不报错
$ ssh -t server.example.com emacs
1
2
3
4
5
6
2
3
4
5
6
上面代码中,emacs
命令需要一个互动式 Shell,所以报错。只有加上-t
参数,ssh 才会分配一个互动式 Shell。
上次更新: 2023/10/17, 16:39:02 访问次数: 0