就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)看目录信息等等
创新互联是一家成都网站设计、成都网站建设、外贸网站建设,提供网页设计,网站设计,网站制作,建网站,按需搭建网站,网站开发公司,2013年开创至今是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
常用参数搭配:
实例:
(changeDirectory),命令语法:cd [目录名]。说明:切换当前目录至dirName
实例:
查看当前工作目录路径
实例:
创建文件夹
实例:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用rm 来删除文件,通常仍可以将该文件恢复原状
rm [选项] 文件…
常用参数搭配:
实例:
删除空目录,一个目录被删除之前必须是空的。(注意,rm -r dir 命令可以代替rmdir,但是很危险,万一它突然就不是空的咧?),另外删除某目录时必须具有对父目录的写权限。
实例:
rmdir -p watch/avi删掉avi目录,watch目录就空掉了,那还看什么?所以干脆把watch目录一起删掉,眼不见为不净嘛。
mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。
命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令参数:
实例:
将源文件复制至目标文件,或将多个源文件复制至目标目录。
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!
命令参数:
实例:
cat主要有三大功能:
命令参数:
实例:
功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
命令参数:
常用操作命令:
实例:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
命令参数:
实例:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
常用参数:
实例:
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
常用参数:
实例:
用于改变linux系统文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l test.txt查找。
以文件log2012.log为例:
-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。
常用参数:
权限范围:
权限代号:
实例:
tar命令是类Linux中比价常用的解压与压缩命令。
常用参数:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
下面的参数-f是必须的
常见解压/压缩命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
常用参数:
实例:
显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。
常用参数:
实例:
du命令也是查看使用空间的,但是与df命令不同的是,du能看到的文件只是一些当前存在的,没有被删除的,他计算的大小就是当前他认为存在的所有文件大小的累加和。du命令是对文件和目录磁盘使用的空间的查看。
常用参数:
实例:
ln命令用于将一个文件创建链接,链接分为软链接和硬链接,命令默认使用硬链接。当在不同目录需要该文件时,就不需要为每一个目录创建同样的文件,通过ln创建的链接(link)减少磁盘占用量。
软链接:
硬链接:
需要注意:
常用参数:
实例:
显示或设定系统的日期与时间
命令参数:
实例:
可以用户显示公历(阳历)日历,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。
常用参数:
实例:
强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
命令格式:
grep [option] pattern file|dir
常用参数:
实例:
wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出。
命令格式:
wc [option] file..
命令参数:
实例:
ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top。
linux上进程有5种状态:
ps工具标识进程的5种状态码:
命令参数:
实例:
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等。
常用参数:
发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
常用参数:
实例:
显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
命令参数:
实例:
Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。
命令参数:
实例
执行linux命令基,基本思路是从控制台获得输入的指令,启动命令行执行命令,捕捉异常,示例如下:
public class TestRunTime {
public static void main(String[] args) throws IOException, InterruptedException {
String cmd = "";
if(args == null || args.length == 0){
System.out.println("请输入命令行参数");
}else{
for(int i=0;iargs.length; i++){//获得输入的命令
cmd += args[i] + " ";
}
}
try {
Process process = Runtime.getRuntime().exec(cmd);//执行命令
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null) {//输出结果
System.out.println(line);
}
} catch (java.io.IOException e) {
System.err.println("IOException " + e.getMessage());//捕捉异常
}
}
}
linux常用命令如下:
1、查看内核版本:uname -a。
2、控制台-图形界面:init 5或者startx。
3、图形界面-控制台: init3或者直接注销。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重启:reboot 或者 shutdown -r now。
操作命令
首先介绍一个名词“控制台”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们要了解的是基于Linux操作系统的基本控制台命令和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的。
Linux系统越来越受到电脑用户的欢迎,于是很多人开始学习Linux时,学习linux,你可能会遇到Linux网络操作命令问题,这里将介绍Linux网络操作命令知识,在这里拿出来和大家分享一下。计算机网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。介绍下列几个常用的有关网络操作命令:ftp 传输文件
telnet 登录到远程计算机上
r - 使用各种远程命令
netstat 查看网络的状况
nslookup 查询域名和IP地址的对应
finger 查询某个使用者的信息
ping 查询某个机器是否在工作使用ftp命令进行远程文件传输
ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。 在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。 为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。另外,用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。Ftp命令的功能是在本地机和远程机之间传送文件。该命令的一般格式如下:
$ ftp 主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令: $ ftp ftp 此时在ftp提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。 不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。
在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。 如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。 一旦用户使用ftp在远程站点上登录成功,将得到“ftp”提示符。现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。
最常用的命令有:
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
quit断开与远程机的连接并退出ftp
? 显示本地帮助信息
! 转到Shell中下面简单将ftp常用命令作一简介。
启动ftp会话 open命令用于打开一个与远程主机的会话。该命令的一般格式是: open 主机名/IP 如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。 终止ftp会话 close、disconnect、quit和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。quit和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。 改变目录 “cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。 远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是: ls [目录] [本地文件] 如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 从远程系统获取文件 get和mget命令用于从远程机上获取文件。get命令的一般格式为: get 文件名 您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。 mget命令一次获取多个远程文件。mget命令的一般格式为: mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。 向远程系统发送文件 put和mput命令用于向远程机发送文件。Put命令的一般格式为: put 文件名 mput命令一次发送多个本地文件,mput命令的一般格式为: mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。 改变文件传输模式 默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。 检查传输状态 传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。 ftp中的本地命令 当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。从远程机grunthos下载二进制数据文件的典型对话过程如下:
$ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp cd pub 250 CWD command successful. ftp ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp binary 200 type set to I. ftp hash Hash mark printing on (1024 bytes/hash mark). ftp get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. 14684 bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp quit 22l Goodbye.使用telnet命令访问远程计算机
用户使用telnet命令进行远程登录。该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。 为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的。当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell中,以防系统被怀有恶意的或不小心的用户破坏。 用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。
但是,用户只能使用基于终端的环境而不是X Wndows环境,telnet只为普通终端提供终端仿真,而不支持 X Wndow等图形环境。 telnet命令的一般形式为: telnet 主机名/IP 其中“主机名/IP”是要连接的远程机的主机名或IP地址。如果这一命令执行成功,将从远程机上得到login:提示符。 使用telnet命令登录的过程如下: $ telnet 主机名/IP 启动telnet会话。 一旦telnet成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。如果用户名和口令输入正确,就能成功登录并在远程系统上工作。 在telnet提示符后面可以输入很多命令,用来控制telnet会话过程,在telnet联机帮助手册中对这些命令有详细的说明。下面是一台Linux计算机上的telnet会话举例:
$ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \'?]\'. “TurboLinux release 4. 0 (Colgate) kernel 2.0.18 on an I486 login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $用户结束了远程会话后,一定要确保使用logout命令退出远程系统。然后telnet报告远程会话被关闭,并返回到用户的本地机的Shell提示符下。 r-系列命令 除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。 使用r-系列命令需要特别注意,因为如果用户不小心,就会造成严重的安全漏洞。用户发出一个r-系列命令后,远程系统检查名为/etc/hosts.equiv的文件,以查看用户的主机是否列在这个文件中。如果它没有找到用户的主机,就检查远程机上同名用户的主目录中名为.rhosts的文件,看是否包括该用户的主机。如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。虽然用户每次访问远程机时不用键入口令可能是非常方便的,但是它也可能会带来严重的安全问题。我们建议用户在建立/etc/hosts.equiv和.rhosts文件之前,仔细考虑r-命令隐含的安全问题。rlogin命令
rlogin 是“remote login”(远程登录)的缩写。该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。rlogin 的一般格式是:
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host一般最常用的格式是: rlogin host 该命令中各选项的含义为:
-8 此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其他的特殊代码。如果不用这个选项,除非远端的终止和启动字符不是或,否则就去掉奇偶校验位。
-E 停止把任何字符当作转义字符。当和-8选项一起使用时,它提供一个完全的透明连接。
-K 关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。
-L 允许rlogin会话在litout模式中运行。要了解更多信息,请查阅tty联机帮助。
-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息,请查阅setsockopt的联机帮助。
-e 为rlogin会话设置转义字符,默认的转义字符是“~”,用户可以指定一个文字字符或一个\\nnn形式的八进制数。
-k 请求rlogin获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos 许可。
-x 为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。rsh命令
rsh是“remote shell”(远程 shell)的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。
rsh命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command]
一般常用的格式是:
rsh host [command ]
command可以是从shell提示符下键人的任何Linux命令。
rsh命令中各选项的含义如下:
-K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的主机连接时才使用。
-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息,请查阅setsockopt的联机帮助。
-k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
-l 缺省情况下,远程用户名与本地用户名相同。本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。
-n 重定向来自特殊设备/dev/null的输入。
-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。 Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了,rsh也就终止了。rcp命令
rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。
rcp命令有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。
rcp命令的一般格式是:
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。
rcp命令的各选项含义如下:
-r 递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。
-p 试图保留源文件的修改时间和模式,忽略umask。
-k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线(\\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。 需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。 - Turbolinux 提供稿件。通过本文你就了解Linux网络操作命令,希望对你有所帮助。
1.Java调用shell
Java语言以其跨平台性和简易性而著称,在Java里面的lang包里(java.lang.Runtime)提供了一个允许Java程序与该程序所运
行的环境交互的接口,这就是Runtime类,在Runtime类里提供了获取当前运行环境的接口。
其中的exec函数返回一个执行shell命令的子进程。exec函数的具体实现形式有以下几种:
public Process exec(String command) throws IOException
public Process exec(String command,String[] envp) throws
IOException
public Process exec(String command,String[] envp,File dir) throws
IOException
public Process exec(String[] cmdarray) throws IOException
public Process exec(String[] cmdarray, String[] envp) throws
IOException
public Process exec(String[] cmdarray, String[] envp,File dir)
throws IOException
我们在这里主要用到的是第一个和第四个函数,具体方法很简单,就是在exec函数中传递一个代表命令的字符串。exec函数返回的是一个Process类
型的类的实例。Process类主要用来控制进程,获取进程信息等作用。(具体信息及其用法请参看Java doc)。
1)执行简单的命令的方法:
代码如下:
上面的代码首先是声明了一个代表命令的字符串commands,它代表了ls -l
这个命令。之后我们用Runtime.getRuntime().exec(commands)来生成一个子进程来执行这个命令,如果这句话运行成功,则
命令 ls -l 运行成功(由于没有让它显示,不会显示ls -l
的结果)。后面的流操作则是获取进程的流信息,并把它们一行行输出到屏幕。2)执行带有参数的命令(尤其是参数需要用引号的)时则需要用String的数组来表示整个命令,而且要用转义符把引号的特殊含义去除,例如我们要执行
find / -name "*mysql*" -print 时,用如下代码
Java 可以通过 Runtime 调用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例)该实例可用于控制进程或取得进程的相关信息。
由于调用 Runtime.exec 方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过 Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream() 方法重定向给它的父进程了。
用户需要用这些stream来向子进程输入数据或获取子进程的输出,下面的代码可以取到 linux 命令的执行结果: