我使用以下命令在 Windows 计算机上制作了一个批处理文件:
rsh hdvg-1 -l root lspci
这hdvg-1
是网络上 Linux 机器的名称。
但我得到的结果是:command not found
。有人可以告诉我我做错了什么吗?
也许还可以帮助我使用以下命令来过滤 lspci 结果:
lspci | grep 'certain string
答案1
rsh
需要选项后的主机名,例如,
rsh -l root hdvg-1 lspci
否则,它会尝试执行"-l"
。
该grep
命令有一个不平衡的引号,应该类似于
lspci | grep 'certain string'
如果您想验证该lspci
命令在您的计算机上是否可用,您可以这样做
rsh -l root hdvg-1
获取 shell,然后输入lspci
该 shell。顺便说一句,由于rsh
可能是 的别名ssh
,因此您应该使用它ssh
以避免混淆。
另一个令人困惑的来源是,当使用远程 shell 时,您的$PATH
环境变量可能不会设置为与正常登录时相同的值。根据讨论rsh 服务器“脚本...”使用哪个 $PATH?,
rsh
需要可执行文件、脚本的完全限定名称才能安全。它使用/usr/bin/sh
(无论远程服务器上的计算结果),并且PATH
通常是有限的:/usr/bin:/usr/sbin
在您的远程计算机上,lspci
可能不用于$PATH
远程调用。
进一步阅读:
- ssh — OpenSSH SSH 客户端(远程登录程序)
- 瑞什(微软技术网)