网站建设资讯

NEWS

网站建设资讯

Linux外部命令调用 linux内部命令和外部命令

怎么在linux中调用命令行中的命令,比如我想在一个程序中用命令行运行另一个程序

Linux编程中在命令行启动另一个可执行文件或调用命令用system函数最简单了,这个函数原理是在你编写的那个程序的内部启动另一个程序或命令,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序或命令的退出码;如果无法运行这个程序或命令,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:

成都创新互联公司专注于振安企业网站建设,响应式网站建设,成都商城网站开发。振安网站建设公司,为振安等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

#include stdlib.h

int system(const char *string);

参数string是将要执行的程序文件名或路径,如果是启动一个命令就是一个命令字符串。

还有一种执行外部程序的方法是exec系列函数,一般是在fork的子进程里面调用exec系列函数,那主进程里直接调用exec系列不行吗,为什么要fork再在子进程里调用呢?因为exec系列的函数(包括execl函数)都是将当前进程替换成新进程,也就是说新进程启动后原来的进程就不存在了,exec系列函数后面的那些代码就不会再执行了。如果你不放在fork子进程里面,那主进程在执行execl函数后就完全不存在了,所以exec系列函数的使用都是先fork然后在子进程里面调用。因为exec系列函数都要使用fork调用,所以我一般是用system函数。

如何运行外部的linux/unix命令/程序

可以用SecureCRTSecureFX 这款软件来实现。

VanDyke CRT 和 VanDyke SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件。二者不同的是SecureCRT支持SSH(SSH1和SSH2)。

SecureCRTSecureFX 的教程:

(主要用于连接外部的命令控制窗口,window,linux,unix都能使用)

用法简单输入ip就能建起连接。

本人专用:  访问密码 e67d

【概念解释】什么是SSH?

SSH的英文全称是Secure Shell

传统的网络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而通过使用SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。同时通过SSH的数据传输是经过压缩的,所以可以提高数据的传输速度,既然如此我们为什么不使用它呢。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。至于具体如何安装服务器端,普通用户就不需要关心了。 

一、安装

1、安装

首先要下载SecureCRT,目前最新的版本为6.1.3 (截止到2008年2月,其破解版本TBE或AGAiN),我们以5.53版为例进行介绍,下载安装文件scrt553.exe和破解文件keygen.exe。

安装过程很简单,运行scrt553.exe,只要“下一步”即可,安装过程中可以看到 SecureCRT支持以下协议:

安装完成后,第一次启动SecureCRT会有如下提示:

用户需要指定一个目录,用来存放SecureCRT的配置信息。此目录默认为C:\Documents and Settings\用户名\Application Data\VanDyke\Config,如果是升级SecureCRT需要保持此文件夹与旧版本一致,如果重装系统,一定要备份此目录。

如果需要更改,启动SecureCRT后点击Options = Global ptions = General修改 Configuration folder即可。

2、破解

未破解版本,只有30天的使用期。关闭SecureCRT,将keygen.exe拷贝到安装目录C:\Program Files\SecureCRT中,运行它,填写Name,Company后点击Generate得到Serial, Date, License Key信息,点击Patch按钮,破解并备份SecureCRT主程序。

运行SecureCRT,点击Help= Enter License Data…,填写从keygen得到的注册信息即可。一般AGAiN破解版本期限一年。

二、基本设置

修改设置

为了SecureCRT用起来更方便,需要做一些设置,需要修改的有如下几处:

1、退出主机自动关闭窗口

Options = Global ptions = General = Default Session = Edit Default Settings...

Terminal中将Close on disconnect 选上,当用户从主机中退出后可以自动关闭当前连接的窗口。

2、修改默认卷屏行数

当你做一个操作,屏幕输出有上百行,当需要将屏幕回翻时,这个设置会有很大帮助,默认为500行,可以改为10000行,不用担心找不到了。

Terminal = Emulation = Scrollback 修改为10000。

3、修改SFTP默认下载路径(可选):

对于使用SSH的连接中,可以使用SFTP下载文件,在这里可以设置文件的下载目录(默认为下载到“我的文档”中)

Connection = SSH2 = SFTP Tab = Initial directories = Local directory

4、修改Xmodem/Zmodem上传下载路径(可选)

SecureCRT可以使用Xmodem/Zmodem方便的上传和下载文件。

在Session options =Xmodem/Zmodem = Directories中设置

5、拷贝与粘贴的设置

通过鼠标操作即可拷贝或粘贴所需内容是一个非常方便的设置

Options = Global ptions = Terminal = Mouse

选中Copy on select 和 Paste on middle button

这样设置后,只要用鼠标选中所需内容,则将内容拷贝到剪切板中,点击鼠标中键即可粘贴内容。

另外可以设置使用Windows下的拷贝粘贴快捷键,Options = Global ptions = General = Default Session = Edit Default Settings... = Terminal = Mapped keys = Use windows copy and paste hotkeys

6、Tabs设置

从Secure5.0以后,增加了Tabs(标签)选项,多个连接可以在同一个窗口下打开,类似IE7.0的风格。将Double-click 选项修改为 Close Tab,双击标签可关闭连接窗口。

三、界面介绍

1、菜单

1)File文件

Connect... 连接,打开一个连接或者编辑已有的连接,创建新连接。

Quick Connect... 快速连接,快速连接对话框,快速连接主机的最便捷方式。

Connect in Tab... 在Tab中打开一个新的会话窗口。

Clone Session 克隆当前会话窗口。

Connect SFTP Tab 打开SFTP窗口,对于SSH连接,此选项可用。在此会话窗口中可使用SFTP命令传输文件。

Reconnect 重新连接

Disconnect 中断当前会话窗口的连接

Log Session 把当前窗口的会话记录到log文件中。

Raw Log Session 将更详细的会话记录到log文件中,包括服务器更详细的响应信息。

Trace Options 在log文件中记录协议会话信息选项。(包括客户端与主机互相连接时的一些信息内容)

2)Edit编辑

拷贝粘贴等

3) View视图

显示各种工具条

4) Options选项

包括全局选项和Session选项

5) Transfer传递文件

使用Xmodem/Zmodem上传下载文件

6) Script.脚本

运行一个脚本文件,或记录一个新的脚本。(类似Word中的宏功能)

7) Tools工具

键盘映射编辑,密钥生成工具等

8) Help帮助

2、对话框和按钮

点击File = Connect可出现Connect对话框。

从左至右按钮依次为:

连接(激活选中的连接条目);快速连接(快捷连接新的主机);新建连接(在对话框中新增一个连接条目);剪切;复制;粘贴;删除(对话框中的条目);新建文件夹,属性(显示选中条目的属性),创建条目的桌面快捷方式,帮助。

Connect对话框下方有两个选项:

Show dialog on start (启动SecureCRT时显示Connect对话框);

Open in a tab (以新标签卡的形式打开一个会话),选中此选项,新的会话窗口如下图所示:

在Linux主机下,可以使用Xmodem/Zmodem方便的上传和下载文件

基本命令:sz 下载文件到本地;rz 上传本地文件到主机。

5、其它技巧

1)使用脚本来进行重复性工作

可以像word的宏一样,把你的重复性操作记录为一个脚本文件

Script. = Start Recording Script,开始记录

Script. = Stop Recording Script,停止记录, Save as …保存成script文件。下次调用时Script. = Run = Select Script. to run …

2)使用Map key来进行重复输入工作

可以设置为全局选项(对所有连接都有效),也可以只设置为Session选项,如下图

Options = Session ptions = Terminal = Mapped keys = Map a key,出现Map Key 对话框

例如,单击F12键,在Send String 输入你要经常重复使用的命令,ok

则下次在会话窗口中点击F12键将直接输入df –m

3)自动登录

以登录一个Telnet的主机为例,Session ptions = Connection = Logon Scripts = Automate logon, 在login后的send中输入用户名,在Password后的send中输入密码。则可实现自动登录。

用SecureCRT来上传和下载数据

SecureCRT可以使用linux下的zmodem协议来快速的传送文件,只要设置一下上传和下载的默认目录就行

options--session options--file transfer 下可以设置上传和下载的目录

剩下的只要在用SecureCRT登陆linux终端的时候:

发送文件到客户端:

sz filename

zmodem接收可以自行启动.

从客户端上传文件到linux服务端:

只要服务端执行,

rz

然后在 SecureCRT 里选文件发送,协议 zmodem。

在Linux shell中调用外部程序时,如何给该程序传递命令?

可以这样:

调用外部程序命令 EOF

这儿输该程序中的命令(每个命令占一行)

EOF

结束,最后一定要加个EOF作为结束标志


文章题目:Linux外部命令调用 linux内部命令和外部命令
本文来源:http://cdweb.net/article/dddoejd.html