您现在的位置:首页 爱点delphibbs---怎样通过Delphi程序去执行linux命令
你感兴趣的相关主题
  怎样通过WSAIoctl 获得 AcceptEx?

如何在Delphi中区别虚拟网卡跟实际网卡?

怎样查看到QQ空间个人日志的源代码???

如何在程序中直接插入HTML代码,使其显示

网站客户端程序咋写啊,大家帮帮忙!!!

Delphi用P2P实现视频的传输

Delphi for PHP发布

Dephi7调用ejb3的WebService出错

Dephi7调用ejb3的WebService出错

谁有通过QQ找人物理位置的办法,1500偿金

WebBrowser 控件在delphi7中什么地方,我用代码添加很麻烦

在查询页面上如何实现自动查询并分析结果

Indy编程问题,为什么程序退出时总出错?

intraweb 开发的网站程序,为什么在PDA上顺序就打乱了。

有关在delphi 7中使用WSDLimproter 工具的问题,在线等待

 
 
怎样通过Delphi程序去执行linux命令

现有个需求要通过程序去调用服务器的后台命令

哪位朋友有这方面的资料或例子,发上来学习一下

万分感谢!!

各位大侠帮帮忙

具体需求是什么?
不会是想做一个类似putty的程序吧?

不用,
通过telnet上去执行一些命令,好比说是mkdir

那就就找个Telnet控件连到LINUX上去执行好了

哪有Delphi的Telnet的控件呀???

to Xxfeng

   那就就找个Telnet控件连到LINUX上去执行好了


我是实现要程序里面点一下按钮去调用后台的命令。

可以考虑用TIdRSH控件

TIdRSH,这个要怎么使用,怎么指定服务的IP,用户名、密码

有没有例子

Delphi + Socket
and

Java+ java socket & Linux

== OK

确实需要过几天下周吧,我给你做一个完整的DEMO

delphi + socket

配合

Java + socket (可以在Linux上运行的哦)

请随时关注:  http://hi.baidu.com/earthsearch

Java + socket (可以在Linux上运行的哦)

可以开发 类似 C/S的程序,理论上可以调用 Linux的命令

在Linux上写一个 stdio 程序挂到 inetd 里面。

#include <stdio.h>
main()
{
   char s[255];
   gets(s);
   printf("cmd test %s",s); 
}

Delphi这边随便用一个 socket 控件即可。
var
  s : string;
...
begun

  socket.sendln("testcmd:);
  s := socket.readln;
  ..  处理 s
  showmessage(s);

...

TIdRSH的使用方法很简单,但你的服务器要配置RSH服务:
  IdRSH1.UseStdError := chkStdErr.Checked;
  IdRSH1.Host := edtHost.Text;
  IdRSH1.HostUsername := edtUserID.Text;
  IdRSH1.ClientUserName := LocalUserName;
  mmoResults.Lines.Text := IdRSH1.Execute(edtCommand.Text);
  mmoError.Lines.Text := IdRSH1.ErrorMessage;

http://fanqiang.chinaunix.net/a1/b5/20011120/0808011578.html
二、远程访问权限:.rhosts  

您能用.rhosts文件控制使用TCP/IP命令对您帐号的访问。用户能用标准的编辑器象Vi来创建他们帐号中的.rhosts文件。它必须位于用户的主目录。下面的例子中,使用者显示文件.rhosts文件的内容。  

$cat.rhosts 
garnet chris 
ciolet robert 

使用.rhosts文件是一种允许用户不提供口令而访问您的系统的简单方法。如果需要禁止此用户访问,只须简单地从文件.rhost中删除系统各和用户注册名。如果一个用户的注册名和系统名在文件.rhost中,那么此用户即呆不提供口令直接访问系统。并不是所有的远程注册操作都需要这种访问形式(您能用输入口令的方式来替代);但一些远程命令要求有.rhosts文件,象远程复制文件或远程执行Linux命令。如果您想在远程系统的帐号中招待这些命令,此帐号的.rhosts文件中必须有您 的注册名和系统名。  

通过.rhosts对某一系统进行访问时,也允许您使用TCP/IP命令直接访问系统中您的其他帐号。您不需要先注册到这些帐号中。可以把系统中您的其他帐号做为当前注册帐号的扩展。不管文件牌佻 的哪个账号下,都可以用frcp命令从一个目录复制到另一个目录。用命令rsh,可以在您的其他帐号中招待任何Linux命令。  
...
五、远程执行:rsh  

您可能需要在远程系统中执行一个命令。rsh命令将在远程Linux系统上执行一个命令并把结果显示到您的系统中。当然,您的系统名和注册名必须在远程系统的.rhosts文件中,命令rsh有两个一般的参数,一个系统名和一个Linux命令。语法如下所示:  
$rsh remote-sytem-neame Linux-command  

在下面的例子中,rsh命令将在远程系统violet中执行一个ls命令以列出在violet中目录/home/robert中的文件。  
$rsh violet ls /home/robert  

除非是引用特定字符,否则它将被本李系统解释转换,对于控制标准输出的特殊字符更是如此,象重定向或管道字符。下面的例了中列出远程系统上的文件,并把它们送到本系统中的标准输出。重定向操作由本地系统解释,并把输出改向到本地系统中的文件myfiles中。  
$rsh violet ls /home/robert>myfiles  

如您引用一个特定字符,它将成为Linux命令的一部分被远程系统解释。引用重定向操作符将允许您在远程系统中执行重定向操作。下面的例子中,引用一个重定向操作符。它变成Linux命令的一部分,包括命令的参数,文件名myfile。命令ls产生一列文件名并把它们重定向到远程系统中的一个文件myfile中。  
$rsh violet ls /home/robert'>'myfiles  

对于管道操作也是如此。下面例子中第一个命令输出一列文件到本地的打印机中。标准的输出能过管道输出到您的在线打印机