使用c#运行unix命令
本文关键字:命令 unix 运行 使用 | 更新日期: 2023-09-27 18:05:26
是否可以连接到unix服务器并在Windows窗体中使用c#运行shell脚本,并在某些文本框中检索脚本的输出?
我还想使用代码远程连接桌面并在那里搜索几个文件。请让我知道怎么做。
回答第一个问题:
通常Unix机器会运行某种安全shell (SSH)服务器,允许您使用特定的用户名/密码连接并运行shell脚本。
为了从windows窗体应用程序中运行此程序,您可以集成一个软件库,如http://granados.sourceforge.net/中的Granados来连接并运行脚本,或者您可以简单地设置一个客户端,如PuTTY来运行脚本并将其作为外部进程生成,即:
Process.Start("C:'Putty'putty.exe -ssh -m C:'myScript.txt remoteUser@192.168.1.1);
您可以在windows上通过putty查看ssh上的脚本,以获得有关设置脚本的更多信息。这听起来像你将不得不保存输出从putty到一个文件,然后读取你的WinForms应用程序,如果你走这个方向。
另一种选择是添加对一个库的引用,比如granados,或者简单地使用NuGet包管理器将' sh.net'添加到你的winforms应用程序中。在http://sshnet.codeplex.com/discussions/285219上有一个例子,他们打开一个连接到服务器,执行一个命令,并使用ssh.net库读取结果。
对于第二个问题,它取决于远程pc如何与您连接。如果它们在同一个共享网络上(例如:工作中的内部网),你可以在你感兴趣的机器上设置网络共享,并通过使用如下路径直接检查文件系统:System.IO.File.GetAttributes(@"''hostname'shareName'filename.txt");
如果远程机器实际上在远程位置,这将变得更加困难,您将需要使用远程桌面库或让远程机器设置FTP服务器或类似的东西,以便您浏览文件系统。