﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA学习之路-文章分类-Linux专题</title><link>http://www.blogjava.net/joaquin25/category/31029.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 25 Apr 2008 05:42:37 GMT</lastBuildDate><pubDate>Fri, 25 Apr 2008 05:42:37 GMT</pubDate><ttl>60</ttl><item><title>Linux必学的60个命令</title><link>http://www.blogjava.net/joaquin25/articles/195918.html</link><dc:creator>joaquin25</dc:creator><author>joaquin25</author><pubDate>Fri, 25 Apr 2008 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/joaquin25/articles/195918.html</guid><wfw:comment>http://www.blogjava.net/joaquin25/comments/195918.html</wfw:comment><comments>http://www.blogjava.net/joaquin25/articles/195918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/joaquin25/comments/commentRss/195918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joaquin25/services/trackbacks/195918.html</trackback:ping><description><![CDATA[
		<p>
				<strong>转自：<a href="http://blog.csdn.net/benny5609/archive/2008/04/12/2285352.aspx">http://blog.csdn.net/benny5609/archive/2008/04/12/2285352.aspx</a></strong>
		</p>
		<p>
				<strong>编者按]：</strong>Linux提供了大量的命令，利用它可以有效地完成大量的工作，如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以，在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统，就必须从Linux命令学起，通过基础的命令学习可以进一步理解Linux系统。 <br /><br />不同Linux发行版的命令数量不一样，但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令，按照它们在系统中的作用分成下面六个部分一一介绍。 <br /><br />◆ 安装和登录命令：login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last； <br /><br />◆ 文件处理命令：file、mkdir、grep、dd、find、mv、ls、diff、cat、ln； <br /><br />◆ 系统管理相关命令：df、top、free、quota、at、lp、adduser、groupadd、kill、crontab； <br /><br />◆ 网络操作命令：ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup； <br /><br />◆ 系统安全相关命令：passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who； <br /><br />◆ 其它命令：tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 <br /><br />本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例，介绍Linux下的安装和登录命令。 <br /><br /><strong>login</strong><br /><br />1.作用 <br /><br />login的作用是登录系统，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>login [name][－p ][－h 主机名称]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.主要参数 <br /><br />－p:通知login保持现在的环境参数。 <br /><br />－h:用来向远程登录的之间传输用户名。 <br /><br />如果选择用命令行模式登录Linux的话，那么看到的第一个Linux命令就是login：。 <br /><br />一般界面是这样的： <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>Manddrake Linux release 9.1(Bamboo) for i586 <br />renrel 2.4.21－0.13mdk on i686 / tty1<br />localhost login:root<br />password:</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />上面代码中，第一行是Linux发行版本号，第二行是内核版本号和登录的虚拟控制台，我们在第三行输入登录名，按“Enter”键在Password后输入账户密码，即可登录系统。出于安全考虑，输入账户密码时字符不会在屏幕上回显，光标也不移动。 <br /><br />登录后会看到下面这个界面（以超级用户为例）： <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>[root@localhost root]#<br />last login:Tue ,Nov 18 10:00:55 on vc/1</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 <br /><br />4.应用技巧 <br /><br />Linux是一个真正的多用户操作系统，可以同时接受多个用户登录，还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样，提供了虚拟控制台的访问方式，允许用户在同一时间从控制台（系统的控制台是与系统直接相连的监视器和键盘）进行多次登录。每个虚拟控制台可以看作是一个独立的工作站，工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现，通常使用F1-F6 。 <br /><br />例如，用户登录后，按一下“Alt+F2”键，用户就可以看到上面出现的“login:”提示符，说明用户看到了第二个虚拟控制台。然后只需按“Alt+F1”键，就可以回到第一个虚拟控制台。 一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是，当一个程序出错造成系统死锁时，可以切换到其它虚拟控制台工作，关闭这个程序。 <br /><br /><strong>shutdown</strong><br /><br />1.作用 <br /><br />shutdown命令的作用是关闭计算机，它的使用权限是超级用户。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>shutdown [－h][－i][－k][－m][－t]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.重要参数 <br /><br />－t：在改变到其它运行级别之前，告诉init程序多久以后关机。 <br /><br />－k：并不真正关机，只是送警告信号给每位登录者。 <br /><br />－h：关机后关闭电源。 <br /><br />－c：cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数，但是可以输入一个用来解释的讯息，而这信息将会送到每位使用者。 <br /><br />－F：在重启计算机时强迫fsck。 <br /><br />－time：设定关机前的时间。 <br /><br />－m: 将系统改为单用户模式。 <br /><br />－i：关机时显示系统信息。 <br /><br />4.命令说明 <br /><br />shutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统，这是十分危险的。因为Linux与Windows不同，其后台运行着许多进程，所以强制关机可能会导致进程的数据丢失，使系统处于不稳定的状态，甚至在有的系统中会损坏硬件设备（硬盘）。在系统关机前使用shutdown命令，系统管理员会通知所有登录的用户系统将要关闭，并且login指令会被冻结，即新的用户不能再登录。 <br /><br /><strong>halt</strong><br /><br />1.作用 <br /><br />halt命令的作用是关闭系统，它的使用权限是超级用户。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>halt [－n] [－w] [－d] [－f] [－i] [－p]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.主要参数说明 <br /><br />－n：防止sync系统调用，它用在用fsck修补根分区之后，以阻止内核用老版本的超级块覆盖修补过的超级块。 <br /><br />－w：并不是真正的重启或关机,只是写wtmp（/var/log/wtmp）纪录。 <br /><br />－f：没有调用shutdown，而强制关机或重启。 <br /><br />－i：关机（或重启）前，关掉所有的网络接口。 <br /><br />－f：强迫关机，不呼叫shutdown这个指令。 <br /><br />－p: 当关机的时候顺便做关闭电源的动作。 <br /><br />－d：关闭系统，但不留下纪录。　 <br /><br />4.命令说明 <br /><br />halt就是调用shutdown －h。halt执行时，杀死应用进程，执行sync(将存于buffer中的资料强制写入硬盘中)系统调用，文件系统写操作完成后就会停止内核。若系统的运行级别为0或6，则关闭系统；否则以shutdown指令（加上－h参数）来取代。　 <br /><br /><strong>reboot</strong><br /><br />1.作用 <br /><br />reboot命令的作用是重新启动计算机，它的使用权限是系统管理者。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>reboot [－n] [－w] [－d] [－f] [－i]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.主要参数 <br /><br />－n: 在重开机前不做将记忆体资料写回硬盘的动作。 <br /><br />－w: 并不会真的重开机，只是把记录写到/var/log/wtmp文件里。 <br /><br />－d: 不把记录写到/var/log/wtmp文件里（－n这个参数包含了－d）。 <br /><br />－i: 在重开机之前先把所有与网络相关的装置停止。 <br /><br /><strong>install</strong><br /><br />1.作用 <br /><br />install命令的作用是安装或升级软件或备份数据，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />(1)install [选项]... 来源 目的地 <br /><br />(2)install [选项]... 来源... 目录 <br /><br />(3)install －d [选项]... 目录... <br /><br />在前两种格式中，会将&lt;来源&gt;复制至&lt;目的地&gt;或将多个&lt;来源&gt;文件复制至已存在的&lt;目录&gt;，同时设定权限模式及所有者/所属组。在第三种格式中，会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。 <br /><br />3.主要参数 <br /><br />－－backup[=CONTROL]：为每个已存在的目的地文件进行备份。 <br /><br />－b：类似 －－backup，但不接受任何参数。 <br /><br />－c：(此选项不作处理)。 <br /><br />－d，－－directory：所有参数都作为目录处理，而且会创建指定目录的所有主目录。 <br /><br />－D：创建&lt;目的地&gt;前的所有主目录，然后将&lt;来源&gt;复制至 &lt;目的地&gt;；在第一种使用格式中有用。 <br /><br />－g，－－group=组：自行设定所属组，而不是进程目前的所属组。 <br /><br />－m，－－mode=模式：自行设定权限模式 (像chmod)，而不是rwxr－xr－x。 <br /><br />－o，－－owner=所有者：自行设定所有者 (只适用于超级用户)。 <br /><br />－p，－－preserve－timestamps：以&lt;来源&gt;文件的访问/修改时间作为相应的目的地文件的时间属性。 <br /><br />－s，－－strip：用strip命令删除symbol table，只适用于第一及第二种使用格式。 <br /><br />－S，－－suffix=后缀：自行指定备份文件的&lt;后缀&gt;。 <br /><br />－v，－－verbose：处理每个文件/目录时印出名称。 <br /><br />－－help：显示此帮助信息并离开。 <br /><br />－－version：显示版本信息并离开。 <br /><br /><strong>mount</strong><br /><br />1.作用 <br /><br />mount命令的作用是加载文件系统，它的用权限是超级用户或/etc/fstab中允许的使用者。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>mount －a [－fv] [－t vfstype] [－n] [－rw] [－F] device dir</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.主要参数 <br /><br />－h：显示辅助信息。 <br /><br />－v：显示信息，通常和－f用来除错。 <br /><br />－a：将/etc/fstab中定义的所有文件系统挂上。 <br /><br />－F：这个命令通常和－a一起使用，它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。 <br /><br />－f：通常用于除错。它会使mount不执行实际挂上的动作，而是模拟整个挂上的过程，通常会和－v一起使用。 <br /><br />－t vfstype：显示被加载文件系统的类型。 <br /><br />－n：一般而言，mount挂上后会在/etc/mtab中写入一笔资料，在系统中没有可写入文件系统的情况下，可以用这个选项取消这个动作。 <br /><br />4.应用技巧 <br /><br />在Linux和Unix系统上，所有文件都是作为一个大型树（以/为根）的一部分访问的。要访问CD-ROM上的文件，需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包，那么这个步骤可自动进行。在Linux中，如果要使用硬盘、光驱等储存设备 ，就得先将它加载，当储存设备挂上了之后，就可以把它当成一个目录来访问。挂上一个设备使用mount命令。 在使用mount这个指令时，至少要先知道下列三种信息：要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 <br /><br />（1）Linux可以识别的文件系统 <br /><br />◆ Windows 95/98常用的FAT 32文件系统：vfat ； <br /><br />◆ Win NT/2000 的文件系统：ntfs ； <br /><br />◆ OS/2用的文件系统：hpfs； <br /><br />◆ Linux用的文件系统：ext2、ext3； <br /><br />◆ CD-ROM光盘用的文件系统：iso9660。 <br /><br />虽然vfat是指FAT 32系统，但事实上它也兼容FAT 16的文件系统类型。 <br /><br />（2）确定设备的名称 <br /><br />在Linux中，设备名称通常都存在/dev里。这些设备名称的命名都是有规则的，可以用“推理”的方式把设备名称找出来。例如，/dev/hda1这个IDE设备，hd是Hard Disk(硬盘)的，sd是SCSI Device，fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备，通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。hda1中的“1”代表hda的第一个硬盘分区 (partition)，hda2代表hda的第二主分区，第一个逻辑分区从hda5开始，依此类推。 此外，可以直接检查/var/log/messages文件，在该文件中可以找到计算机开机后系统已辨认出来的设备代号。 <br /><br />（3）查找挂接点 <br /><br />在决定将设备挂接之前，先要查看一下计算机是不是有个/mnt的空目录，该目录就是专门用来当作挂载点(Mount Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录，当作目录的专用挂载点。举例而言，如要挂载下列5个设备，其执行指令可能如下 (假设都是Linux的ext2系统，如果是Windows XX请将ext2改成vfat)： <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>软盘 ===&gt;mount －t ext2 /dev/fd0 /mnt/floppy <br />cdrom ===&gt;mount －t iso9660 /dev/hdc /mnt/cdrom <br />SCSI cdrom ===&gt;mount －t iso9660 /dev/sdb /mnt/scdrom <br />SCSI cdr ===&gt;mount －t iso9660 /dev/sdc /mnt/scdr</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />不过目前大多数较新的Linux发行版本（包括红旗 Linux、中软Linux、Mandrake Linux等）都可以自动挂装文件系统，但Red Hat Linux除外。 <br /><br /><strong>umount</strong><br /><br />1.作用 <br /><br />umount命令的作用是卸载一个文件系统，它的使用权限是超级用户或/etc/fstab中允许的使用者。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>unmount －a [－fFnrsvw] [－t vfstype] [－n] [－rw] [－F] device dir</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.使用说明 <br /><br />umount命令是mount命令的逆操作，它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后，会锁定CD—ROM，这样就不能用CD-ROM面板上的Eject按钮弹出它。但是，当不再需要光盘时，如果已将/cdrom作为符号链接，请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时，该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。 <br /><br /><strong>chsh</strong><br /><br />1.作用 <br /><br />chsh命令的作用是更改使用者shell设定，它的使用权限是所有使用者。 <br /><br />2.格式 <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>chsh [ －s ] [ －list] [ －－help ] [ －v ] [ username ]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />3.主要参数 <br /><br />－l：显示系统所有Shell类型。 <br /><br />－v：显示Shell版本号。 <br /><br />4.应用技巧 <br /><br />前面介绍了Linux下有多种Shell，一般缺省的是Bash，如果想更换Shell类型可以使用chsh命令。先输入账户密码，然后输入新Shell类型，如果操作正确系统会显示“Shell change”。其界面一般如下： <br /><br /></p>
		<ccid_nobr>
		</ccid_nobr>
		<p>
		</p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>Changing fihanging shell for cao<br />Password: <br />New shell [/bin/bash]:   /bin/tcsh</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<br />
				<br />上面代码中，[ ]内是目前使用的Shell。普通用户只能修改自己的Shell，超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell，可以使用chsh -l 命令，见图1所示。 <br /><br /></p>
		<center>
				<img alt="" src="http://publishblog.blogchina.com/control/attachment/2004/3/279573.jpg" />
				<br />
				<br />图1 系统可以使用的Shell类型 <br /><br /></center>
		<p>
				<br />
				<br />从图1中可以看到，笔者系统中可以使用的Shell有bash（缺省）、csh、sh、tcsh四种。 <br /><br /><strong>exit</strong><br /><br />1.作用 <br /><br />exit命令的作用是退出系统，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />exit <br /><br />3.参数 <br /><br />exit命令没有参数，运行后退出系统进入登录界面。 <br /><br /><strong>last</strong><br /><br />1.作用 <br /><br />last命令的作用是显示近期用户或终端的登录情况，它的使用权限是所有用户。通过last命令查看该程序的log，管理员可以获知谁曾经或企图连接系统。 <br /><br />2.格式 <br /><br /><ccid_nobr></ccid_nobr></p>
		<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
				<tbody>
						<tr>
								<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
										<pre>
												<ccid_code>
												</ccid_code>1ast[—n][－f file][－t tty] [—h 节点][－I —IP][—1][－y][1D]</pre>
								</td>
						</tr>
				</tbody>
		</table>
		<br />
		<br />3.主要参数 <br /><br />－n：指定输出记录的条数。 <br /><br />－f file：指定用文件file作为查询用的log文件。 <br /><br />－t tty：只显示指定的虚拟控制台上登录情况。 <br /><br />－h 节点：只显示指定的节点上的登录情况。 <br /><br />－i IP：只显示指定的IP上登录的情况。 <br /><br />－1：用IP来显示远端地址。 <br /><br />－y：显示记录的年、月、日。 <br /><br />－ID：知道查询的用户名。 <br /><br />－x:显示系统关闭、用户登录和退出的历史。 <br /><br /><strong>动手练习</strong><br /><br />上面介绍了Linux安装和登录命令，下面介绍几个实例，动手练习一下刚才讲过的命令。 <br /><br />1.一次运行多个命令 <br /><br />在一个命令行中可以执行多个命令，用分号将各个命令隔开即可，例如： <br /><br /><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>＃last －x；halt</pre></td></tr></tbody></table><br /><br />上面代码表示在显示系统关闭、用户登录和退出的历史后关闭计算机。 <br /><br />2.利用mount挂装文件系统访问Windows系统 <br /><br />许多Linux发行版本现在都可以自动加载Vfat分区来访问Windows系统，而Red Hat各个版本都没有自动加载Vfat分区，因此还需要进行手工操作。 <br /><br />mount可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下，从而将Windows的分区和/mnt这个目录联系起来。因此，只要访问这个文件夹就相当于访问该分区了。首先要在/mnt下建立winc文件夹，在命令提示符下输入下面命令： <br /><br /><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>＃mount -t vfat /dev/hda1 /mnt/winc</pre></td></tr></tbody></table><br /><br />即表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时，在/mnt/winc目录下就可以看到Windows中C盘的内容了。使用类似的方法可以访问Windows系统的D、E盘。在Linux系统显示Windows的分区一般顺序这样的：hda1为C盘、hda5为D盘、hda6为E盘……以此类推。上述方法可以查看Windows系统有一个很大的问题，就是Windows中的所有中文文件名或文件夹名全部显示为问号“？”，而英文却可以正常显示。我们可以通过加入一些参数让它显示中文。还以上面的操作为例，此时输入命令： <br /><br /><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>＃mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc</pre></td></tr></tbody></table><br /><br />现在它就可以正常显示中文了。 <br /><br />3.使用mount加挂闪盘上的文件系统 <br /><br />在Linux下使用闪盘非常简单。Linux对USB设备有很好的支持，当插入闪盘后，闪盘被识别为一个SCSI盘，通常输入以下命令： <br /><br /><ccid_nobr></ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code></ccid_code>＃ mount /dev/sda1 /usb</pre></td></tr></tbody></table><br /><br />就能够加挂闪盘上的文件系统。 <br /><br /><strong><font color="#330099">小知识</font></strong><br /><br /><strong>Linux命令与Shell</strong><br /><br />所谓Shell，就是命令解释程序，它提供了程序设计接口，可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重要的。Linux系统的Shell作为操作系统的外壳，为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称，是用户和Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心，Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命令时，内核会做出相应的反应。Shell在Linux系统的作用和MS DOS下的COMMAND.COM和Windows 95/98 的 explorer.exe相似。Shell虽然不是系统核心的一部分，只是系统核心的一个外延，但它能够调用系统内核的大部分功能。因此，可以说Shell是Unux/Linux最重要的实用程序。 <br /><br />Linux中的Shell有多种类型，其中最常用的是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。大多数Linux发行版本缺省的Shell是Bourne Again Shell，它是Bourne Shell的扩展，简称bash，与Bourne Shell完全向后兼容，并且在Bourne Shell的基础上增加了很多特性。bash放在/bin/bash中，可以提供如命令补全、命令编辑和命令历史表等功能。它还包含了很多C Shell和Korn Shell中的优点，有灵活和强大的编程接口，同时又有很友好的用户界面。Linux系统中200多个命令中有40个是bash的内部命令，主要包括exit、less、lp、kill、 cd、pwd、fc、fg等。<br /><br /><strong>find</strong><br /><br />1.作用 <br /><br />find命令的作用是在目录中搜索文件，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />find [path][options][expression] <br /><br />path指定目录路径，系统从这里开始沿着目录树向下查找文件。它是一个路径列表，相互用空格分离，如果不写path，那么默认为当前目录。 <br /><br />3.主要参数 <br /><br />[options]参数： <br /><br />－depth：使用深度级别的查找过程方式，在某层指定目录中优先查找文件内容。 <br /><br />－maxdepth levels：表示至多查找到开始目录的第level层子目录。level是一个非负数，如果level是0的话表示仅在当前目录中查找。 <br /><br />－mindepth levels：表示至少查找到开始目录的第level层子目录。 <br /><br />－mount：不在其它文件系统（如Msdos、Vfat等）的目录和文件中查找。 <br /><br />－version：打印版本。 <br /><br />[expression]是匹配表达式，是find命令接受的表达式，find命令的所有操作都是针对表达式的。它的参数非常多，这里只介绍一些常用的参数。 <br /><br />—name：支持统配符*和?。 <br /><br />－atime n：搜索在过去n天读取过的文件。 <br /><br />－ctime n：搜索在过去n天修改过的文件。 <br /><br />－group grpoupname：搜索所有组为grpoupname的文件。 <br /><br />－user 用户名：搜索所有文件属主为用户名（ID或名称）的文件。 <br /><br />－size n：搜索文件大小是n个block的文件。 <br /><br />－print：输出搜索结果，并且打印。 <br /><br />4.应用技巧 <br /><br />find命令查找文件的几种方法： <br /><br />（1）根据文件名查找 <br /><br />例如，我们想要查找一个文件名是lilo.conf的文件，可以使用如下命令： <br /><br />find / －name lilo.conf <br /><br />find命令后的“/”表示搜索整个硬盘。 <br /><br />（2）快速查找文件 <br /><br />根据文件名查找文件会遇到一个实际问题，就是要花费相当长的一段时间，特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中，那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件，从它的文件后缀“.conf”可以判断这是一个配置文件，那么它应该在/etc目录内，此时可以使用下面命令： <br /><br />find /etc －name smb.conf <br /><br />这样，使用“快速查找文件”方式可以缩短时间。 <br /><br />（3）根据部分文件名查找方法 <br /><br />有时我们知道只某个文件包含有abvd这4个字，那么要查找系统中所有包含有这4个字符的文件可以输入下面命令： <br /><br />find / －name '*abvd*' <br /><br />输入这个命令以后，Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件（其中*是通配符），比如abvdrmyz等符合条件的文件都能显示出来。 <br /><br />(4) 使用混合查找方式查找文件 <br /><br />find命令可以使用混合查找的方法，例如，我们想在/etc目录中查找大于500000字节，并且在24小时内修改的某个文件，则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。 <br /><br />find /etc -size +500000c -and -mtime +1 <br /><br /><strong>mv</strong><br /><br />1.作用 <br /><br />mv命令用来为文件或目录改名，或者将文件由一个目录移入另一个目录中，它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 <br /><br />2.格式 <br /><br />mv[options] 源文件或目录 目标文件或目录 <br /><br />3.[options]主要参数 <br /><br />－i：交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答“y”或“n”，这样可以避免误覆盖文件。 <br /><br />－f：禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示，指定此参数后i参数将不再起作用。 <br /><br />4.应用实例 <br /><br />（1）将/usr/cbu中的所有文件移到当前目录（用“.”表示）中： <br /><br />$ mv /usr/cbu/ * . <br /><br />（2）将文件cjh.txt重命名为wjz.txt： <br /><br />$ mv cjh.txt wjz.txt　 <br /><br /><strong>ls</strong><br /><br />1.作用 <br /><br />ls命令用于显示目录内容，类似DOS下的dir命令，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />ls [options][filename] <br /><br />3.options主要参数 <br /><br />－a, －－all：不隐藏任何以“.” 字符开始的项目。 <br /><br />－A, －－almost－all：列出除了“ . ”及 “.. ”以外的任何项目。 <br /><br />－－author：印出每个文件著作者。 <br /><br />－b, －－escape：以八进制溢出序列表示不可打印的字符。 <br /><br />－－block－size=大小：块以指定&lt;大小&gt;的字节为单位。 <br /><br />－B, －－ignore－backups：不列出任何以 ~ 字符结束的项目。 <br /><br />－f：不进行排序，－aU参数生效，－lst参数失效。 <br /><br />－F, －－classify：加上文件类型的指示符号 (*/=@| 其中一个)。 <br /><br />－g：like －l, but do not list owner。 <br /><br />－G, －－no－group：inhibit display of group information。 <br /><br />－i, －－inode：列出每个文件的inode号。 <br /><br />－I, －－ignore=样式：不印出任何符合Shell万用字符&lt;样式&gt;的项目。 <br /><br />－k：即－－block－size=1K。 <br /><br />－l：使用较长格式列出信息。 <br /><br />－L, －－dereference：当显示符号链接的文件信息时，显示符号链接所指示的对象，而并非符号链接本身的信息。 <br /><br />－m：所有项目以逗号分隔，并填满整行行宽。 <br /><br />－n, －－numeric－uid－gid：类似－l，但列出UID及GID号。 <br /><br />－N, －－literal：列出未经处理的项目名称，例如不特别处理控制字符。 <br /><br />－p, －－file－type：加上文件类型的指示符号 (/=@| 其中一个)。 <br /><br />－Q, －－quote－name：将项目名称括上双引号。 <br /><br />－r, －－reverse：依相反次序排列。 <br /><br />－R, －－recursive：同时列出所有子目录层。 <br /><br />－s, －－size：以块大小为序。 <br /><br />4.应用举例 <br /><br />ls命令是Linux系统使用频率最多的命令，它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色，其中蓝色表示是目录，绿色表示是可执行文件，红色表示是压缩文件，浅蓝色表示是链接文件，加粗的黑色表示符号链接，灰色表示是其它格式文件。ls最常使用的是ls- l，见图1所示。 <br /><br /><center><img alt="" src="http://publishblog.blogchina.com/control/attachment/2004/4/285119.jpg" /><br /><br />图1 使用ls-l命令</center><p><br /><br />文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型，它可以是下述类型之一：－（普通文件）、d（目录）、l（符号链接）、b（块设备文件）、c（字符设备文件）。后面的9个字符表示文件的访问权限，分为3组，每组3位。第一组表示文件属主的权限，第二组表示同组用户的权限，第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读（r）、写（w）和执行权限（x）。对于目录，表示进入权限。s表示当文件被执行时，把该文件的UID或GID赋予执行进程的UID（用户ID）或GID（组 ID）。t表示设置标志位（留在内存，不被换出）。如果该文件是目录，那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件，那么在该文件执行后，指向其正文段的指针仍留在内存。这样再次执行它时，系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称。 <br /><br />文件:<br /><br />Linux系统信息存放在文件里，文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息，如文件的用户、文件的大小等。文件可以是一封信、一个通讯录，或者是程序的源语句、程序的数据，甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构，系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 <br /></p><p> </p><p><font size="3">file <br /></font>1.作用 <br />file通过探测文件内容判断文件类型，使用权限是所有用户。 <br />2.格式 <br />file [options] 文件名 <br />3.[options]主要参数 <br />-v：在标准输出后显示版本信息，并且退出。 <br />-z：探测压缩过的文件类型。 <br />-L：允许符合连接。 <br />-f name：从文件namefile中读取要分析的文件名列表。 <br />4.简单说明 <br />使用file命令可以知道某个文件究竟是二进制（ELF格式）的可执行文件, 还是Shell Script文件，或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 <br />5.应用实例 <br />如果我们看到一个没有后缀的文件grap，可以使用下面命令： <br />$ file grap <br />grap： English text <br />此时系统显示这是一个英文文本文件。需要说明的是，file命令不能探测包括图形、音频、视频等多媒体文件类型。 <br /><font size="4">mkdir <br /></font>1.作用 <br />mkdir命令的作用是建立名称为dirname的子目录，与MS DOS下的md命令类似，它的使用权限是所有用户。 <br />2.格式 <br />mkdir [options] 目录名 <br />3.[options]主要参数 <br />－m, －－mode=模式：设定权限&lt;模式&gt;，与chmod类似。 <br />－p, －－parents：需要时创建上层目录；如果目录早已存在，则不当作错误。 <br />－v, －－verbose：每次创建新目录都显示信息。 <br />－－version：显示版本信息后离开。 <br />4.应用实例 <br />在进行目录创建时可以设置目录的权限，此时使用的参数是“－m”。假设要创建的目录名是“tsk”，让所有用户都有rwx(即读、写、执行的权限)，那么可以使用以下命令： $ mkdir －m 777 tsk <br /><font size="4">grep </font><br />1.作用 <br />grep命令可以指定文件中搜索特定的内容，并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print，表示全局正则表达式版本，它的使用权限是所有用户。 <br />2.格式 <br />grep [options] <br />3.主要参数 <br />[options]主要参数： <br />－c：只输出匹配行的计数。 <br />－I：不区分大小写（只适用于单字符）。 <br />－h：查询多文件时不显示文件名。 <br />－l：查询多文件时只输出包含匹配字符的文件名。 <br />－n：显示匹配行及行号。 <br />－s：不显示不存在或无匹配文本的错误信息。 <br />－v：显示不包含匹配文本的所有行。 <br />pattern正则表达式主要参数： <br />：忽略正则表达式中特殊字符的原有含义。 <br />^：匹配正则表达式的开始行。 <br />$: 匹配正则表达式的结束行。 <br />&lt;：从匹配正则表达式的行开始。 <br />&gt;：到匹配正则表达式的行结束。 <br />[ ]：单个字符，如[A]即A符合要求 。 <br />[ - ]：范围，如[A-Z]，即A、B、C一直到Z都符合要求 。 <br />。：所有的单个字符。 <br />* ：有字符，长度可以为0。 <br />正则表达式是Linux/Unix系统中非常重要的概念。正则表达式（也称为“regex”或“regexp”）是一个可以描述一类字符串的模式（Pattern）。如果一个字符串可以用某个正则表达式来描述，我们就说这个字符和该正则表达式匹配（Match）。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上，正则表达式通常被用来查找文本的模式，以及对文本执行“搜索－替换”操作和其它功能。 <br />4.应用实例 <br />查询DNS服务是日常工作之一，这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址，但是却忘了第二部分中的其余部分，只知到有两个句点，例如nnn nn..。要抽取其中所有nnn.nnn IP地址，使用[0－9 ]{3 }.[0－0。含义是任意数字出现3次，后跟句点，接着是任意数字出现3次，后跟句点。 <br />$grep '[0－9 ]{3 }.[0－0' ipfile <br />补充说明，grep家族还包括fgrep和egrep。fgrep是fix grep，允许查找字符串而不是一个模式；egrep是扩展grep，支持基本及扩展的正则表达式，但不支持q模式范围的应用及与之相对应的一些更加规范的模式。 <br /><font size="4">dd</font><br />1.作用 <br />dd命令用来复制文件，并根据参数将数据转换和格式化。 <br />2.格式 <br />dd [options] <br />3.[opitions]主要参数 <br />bs=字节：强迫 ibs=&lt;字节&gt;及obs=&lt;字节&gt;。 <br />cbs=字节：每次转换指定的&lt;字节&gt;。 <br />conv=关键字：根据以逗号分隔的关键字表示的方式来转换文件。 <br />count=块数目：只复制指定&lt;块数目&gt;的输入数据。 <br />ibs=字节：每次读取指定的&lt;字节&gt;。 <br />if=文件：读取&lt;文件&gt;内容，而非标准输入的数据。 <br />obs=字节：每次写入指定的&lt;字节&gt;。 <br />of=文件：将数据写入&lt;文件&gt;，而不在标准输出显示。 <br />seek=块数目：先略过以obs为单位的指定&lt;块数目&gt;的输出数据。 <br />skip=块数目：先略过以ibs为单位的指定&lt;块数目&gt;的输入数据。 <br />4.应用实例 <br />　　dd命令常常用来制作Linux启动盘。先找一个可引导内核，令它的根设备指向正确的根分区，然后使用dd命令将其写入软盘： <br />$ rdev vmlinuz /dev/hda <br />$dd if＝vmlinuz of＝/dev/fd0 <br />　　上面代码说明，使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda，请把“hda”换成自己的根分区，接下来用dd命令将该内核写入软盘。<br /><font size="4">find</font><br />1.作用 <br />find命令的作用是在目录中搜索文件，它的使用权限是所有用户。 <br />2.格式 <br />find [path][options][expression] <br />path指定目录路径，系统从这里开始沿着目录树向下查找文件。它是一个路径列表，相互用空格分离，如果不写path，那么默认为当前目录。 <br />3.主要参数 <br />[options]参数： <br />－depth：使用深度级别的查找过程方式，在某层指定目录中优先查找文件内容。 <br />－maxdepth levels：表示至多查找到开始目录的第level层子目录。level是一个非负数，如果level是0的话表示仅在当前目录中查找。 <br />－mindepth levels：表示至少查找到开始目录的第level层子目录。 <br />－mount：不在其它文件系统（如Msdos、Vfat等）的目录和文件中查找。 <br />－version：打印版本。 <br />[expression]是匹配表达式，是find命令接受的表达式，find命令的所有操作都是针对表达式的。它的参数非常多，这里只介绍一些常用的参数。 <br />—name：支持统配符*和?。 <br />－atime n：搜索在过去n天读取过的文件。 <br />－ctime n：搜索在过去n天修改过的文件。 <br />－group grpoupname：搜索所有组为grpoupname的文件。 <br />－user 用户名：搜索所有文件属主为用户名（ID或名称）的文件。 <br />－size n：搜索文件大小是n个block的文件。 <br />－print：输出搜索结果，并且打印。 <br />4.应用技巧 <br />find命令查找文件的几种方法： <br />（1）根据文件名查找 <br />例如，我们想要查找一个文件名是lilo.conf的文件，可以使用如下命令： <br />find / －name lilo.conf <br />find命令后的“/”表示搜索整个硬盘。 <br />（2）快速查找文件 <br />根据文件名查找文件会遇到一个实际问题，就是要花费相当长的一段时间，特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中，那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件，从它的文件后缀“.conf”可以判断这是一个配置文件，那么它应该在/etc目录内，此时可以使用下面命令： <br />find /etc －name smb.conf <br />这样，使用“快速查找文件”方式可以缩短时间。 <br />（3）根据部分文件名查找方法 <br />有时我们知道只某个文件包含有abvd这4个字，那么要查找系统中所有包含有这4个字符的文件可以输入下面命令： <br />find / －name '*abvd*' <br />　　输入这个命令以后，Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件（其中*是通配符），比如abvdrmyz等符合条件的文件都能显示出来。 <br />(4) 使用混合查找方式查找文件 <br />　　find命令可以使用混合查找的方法，例如，我们想在/etc目录中查找大于500000字节，并且在24小时内修改的某个文件，则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。 <br />find /etc -size +500000c -and -mtime +1 <br /><font size="4">mv</font><br />1.作用 <br />mv命令用来为文件或目录改名，或者将文件由一个目录移入另一个目录中，它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 <br />2.格式 <br />mv[options] 源文件或目录 目标文件或目录 <br />3.[options]主要参数 <br />－i：交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答“y”或“n”，这样可以避免误覆盖文件。 <br />－f：禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示，指定此参数后i参数将不再起作用。 <br />4.应用实例 <br />（1）将/usr/cbu中的所有文件移到当前目录（用“.”表示）中： <br />$ mv /usr/cbu/ * . <br />（2）将文件cjh.txt重命名为wjz.txt： <br />$ mv cjh.txt wjz.txt　 <br /><font size="4">ls</font><br />1.作用 <br />ls命令用于显示目录内容，类似DOS下的dir命令，它的使用权限是所有用户。 <br />2.格式 <br />ls [options][filename] <br />3.options主要参数 <br />－a, －－all：不隐藏任何以“.” 字符开始的项目。 <br />－A, －－almost－all：列出除了“ . ”及 “.. ”以外的任何项目。 <br />－－author：印出每个文件著作者。 <br />－b, －－escape：以八进制溢出序列表示不可打印的字符。 <br />－－block－size=大小：块以指定&lt;大小&gt;的字节为单位。 <br />－B, －－ignore－backups：不列出任何以 ~ 字符结束的项目。 <br />－f：不进行排序，－aU参数生效，－lst参数失效。 <br />－F, －－classify：加上文件类型的指示符号 (*/=@| 其中一个)。 <br />－g：like －l, but do not list owner。 <br />－G, －－no－group：inhibit display of group information。 <br />－i, －－inode：列出每个文件的inode号。 <br />－I, －－ignore=样式：不印出任何符合Shell万用字符&lt;样式&gt;的项目。 <br />－k：即－－block－size=1K。 <br />－l：使用较长格式列出信息。 <br />－L, －－dereference：当显示符号链接的文件信息时，显示符号链接所指示的对象，而并非符号链接本身的信息。 <br />－m：所有项目以逗号分隔，并填满整行行宽。 <br />－n, －－numeric－uid－gid：类似－l，但列出UID及GID号。 <br />－N, －－literal：列出未经处理的项目名称，例如不特别处理控制字符。 <br />－p, －－file－type：加上文件类型的指示符号 (/=@| 其中一个)。 <br />－Q, －－quote－name：将项目名称括上双引号。 <br />－r, －－reverse：依相反次序排列。 <br />－R, －－recursive：同时列出所有子目录层。 <br />－s, －－size：以块大小为序<br /><font size="4">diff</font><br />1.作用 <br />diff命令用于两个文件之间的比较，并指出两者的不同，它的使用权限是所有用户。 <br />2.格式 <br />diff [options] 源文件 目标文件 <br />3.[options]主要参数 <br />-a：将所有文件当作文本文件来处理。 <br />-b：忽略空格造成的不同。 <br />-B：忽略空行造成的不同。 <br />-c：使用纲要输出格式。 <br />-H：利用试探法加速对大文件的搜索。 <br />-I：忽略大小写的变化。 <br />-n --rcs：输出RCS格式。 <br /><font size="4">cmp</font><br />1.作用 <br />cmp（“compare”的缩写）命令用来简要指出两个文件是否存在差异，它的使用权限是所有用户。 <br />2.格式 <br />cmp[options] 文件名 <br />3.[options]主要参数 <br />-l: 将字节以十进制的方式输出，并方便将两个文件中不同的以八进制的方式输出。 <br /><font size="4">cat</font><br />1.作用 <br />cat（“concatenate”的缩写）命令用于连接并显示指定的一个和多个文件的有关信息，它的使用权限是所有用户。 <br />2.格式 <br />cat [options] 文件1 文件2…… <br />3.[options]主要参数 <br />－n：由第一行开始对所有输出的行数编号。 <br />－b：和－n相似，只不过对于空白行不编号。 <br />－s：当遇到有连续两行以上的空白行时，就代换为一行的空白行。 <br />4.应用举例 <br />（1）cat命令一个最简单的用处是显示文本文件的内容。例如，我们想在命令行看一下README文件的内容，可以使用命令： <br />$ cat README　 <br />（2）有时需要将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件，并将它们作为一个单独的文件打印到它的输出。例如，把README和INSTALL的文件内容加上行号（空白行不加）之后，将内容附加到一个新文本文件File1 中： <br />$ cat README INSTALL File1 <br />（3）cat还有一个重要的功能就是可以对行进行编号，见图2所示。这种功能对于程序文档的编制，以及法律和科学文档的编制很方便，打印在左边的行号使得参考文档的某一部分变得容易，这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 <br />对行进行编号功能有-b（只能对非空白行进行编号）和-n（可以对所有行进行编号）两个参数： <br />$ cat -b /etc/named.conf <br /><font size="4">ln</font><br />1.作用 <br />ln命令用来在文件之间创建链接，它的使用权限是所有用户。 <br />2.格式 <br />ln [options] 源文件 [链接名] <br />3.参数 <br />－f：链结时先将源文件删除。 <br />－d：允许系统管理者硬链结自己的目录。 <br />－s：进行软链结(Symbolic Link)。 <br />－b：将在链结时会被覆盖或删除的文件进行备份。 <br />　　链接有两种，一种被称为硬链接（Hard Link），另一种被称为符号链接（Symbolic Link）。默认情况下，ln命令产生硬链接。 <br />　　硬连接指通过索引节点来进行的连接。在Linux的文件系统中，保存在磁盘分区中的文件不管是什么类型都给它分配一个编号，称为索引节点号(Inode Index)。在Linux中，多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名，这样用户就可以建立硬连接到重要文件，以防止“误删”的功能。其原因如上所述，因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接，只有当最后一个连接被删除后，文件的数据块及目录的连接才会被释放。也就是说，文件才会被真正删除。 <br />　　与硬连接相对应，Lnux系统中还存在另一种连接，称为符号连接（Symbilc Link），也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中，文件实际上是一个文本文件，其中包含的有另一文件的位置信息。 <br />动手联系 <br />　　上面我们介绍了Linux文件处理命令，下面介绍几个实例，大家可以动手练习一下刚才讲过的命令。 <br />1.利用符号链接快速访问关键目录 <br />　　符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用，但由于Linux的文件和目录结构等原因，这个文件或目录在很深的子目录中。比如，Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中，并且不想每次都要从主目录进入这样一个长的路径之中(实际上，这个路径也非常不容易记忆)。 <br />　　为了解决这个问题，可以在主目录中创建一个符号链接，这样在需要进入该目录时，只需进入这个链接即可。 <br />　　为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录，在主目录下可以使用以下命令： $ ln -s /usr/local/httpd/htdocs gg <br />　　这样每次进入gg目录就可访问Web服务器的文档，以后如果不再访问Web服务器的文档时，删除gg即可，而真正的Web服务器的文档并没有删除。 <br />2.使用dd命令将init.rd格式的root.ram内容导入内存 <br />dd if=/dev/fd0 of=floppy.fd <br />dd if=root.ram of=/dev/ram0 # <br />3.grep命令系统调用 <br />　　grep是Linux/Unix中使用最广泛的命令之一，许多Linux系统内部都可以调用它。 <br />　　(1)如果要查询目录列表中的目录，方法如下： <br />$ ls -l | grep '∧d' <br />　　(2)如果在一个目录中查询不包含目录的所有文件，方法如下： <br />$ ls -l | grep '∧[∧d]' <br />　　(3)用find命令调用grep，如所有C源代码中的“Chinput”，方法如下： <br />$find /ZhXwin -name *.c -exec grep -q -s Chinput {} ;-print<br /></p><p><br /><strong>diff</strong><br /><br />1.作用 <br /><br />diff命令用于两个文件之间的比较，并指出两者的不同，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />diff [options] 源文件 目标文件 <br /><br />3.[options]主要参数 <br /><br />-a：将所有文件当作文本文件来处理。 <br /><br />-b：忽略空格造成的不同。 <br /><br />-B：忽略空行造成的不同。 <br /><br />-c：使用纲要输出格式。 <br /><br />-H：利用试探法加速对大文件的搜索。 <br /><br />-I：忽略大小写的变化。 <br /><br />-n --rcs：输出RCS格式。 <br /><br /><strong>cmp</strong><br /><br />1.作用 <br /><br />cmp（“compare”的缩写）命令用来简要指出两个文件是否存在差异，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />cmp[options] 文件名 <br /><br />3.[options]主要参数 <br /><br />-l: 将字节以十进制的方式输出，并方便将两个文件中不同的以八进制的方式输出。 <br /><br /><strong>cat</strong><br /><br />1.作用 <br /><br />cat（“concatenate”的缩写）命令用于连接并显示指定的一个和多个文件的有关信息，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />cat [options] 文件1 文件2…… <br /><br />3.[options]主要参数 <br /><br />－n：由第一行开始对所有输出的行数编号。 <br /><br />－b：和－n相似，只不过对于空白行不编号。 <br /><br />－s：当遇到有连续两行以上的空白行时，就代换为一行的空白行。 <br /><br />4.应用举例 <br /><br />（1）cat命令一个最简单的用处是显示文本文件的内容。例如，我们想在命令行看一下README文件的内容，可以使用命令： <br /><br />$ cat README　 <br /><br />（2）有时需要将几个文件处理成一个文件，并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件，并将它们作为一个单独的文件打印到它的输出。例如，把README和INSTALL的文件内容加上行号（空白行不加）之后，将内容附加到一个新文本文件File1 中： <br /><br />$ cat README INSTALL File1 <br /><br />（3）cat还有一个重要的功能就是可以对行进行编号，见图2所示。这种功能对于程序文档的编制，以及法律和科学文档的编制很方便，打印在左边的行号使得参考文档的某一部分变得容易，这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 <br /><br /></p><center><img alt="" src="http://publishblog.blogchina.com/control/attachment/2004/4/285120.jpg" /><br /><br />图2 使用cat命令/etc/named.conf文件进行编号</center><p><br /><br />对行进行编号功能有-b（只能对非空白行进行编号）和-n（可以对所有行进行编号）两个参数： <br /><br />$ cat -b /etc/named.conf <br /><br /><strong>ln</strong><br /><br />1.作用 <br /><br />ln命令用来在文件之间创建链接，它的使用权限是所有用户。 <br /><br />2.格式 <br /><br />ln [options] 源文件 [链接名] <br /><br />3.参数 <br /><br />－f：链结时先将源文件删除。 <br /><br />－d：允许系统管理者硬链结自己的目录。 <br /><br />－s：进行软链结(Symbolic Link)。 <br /><br />－b：将在链结时会被覆盖或删除的文件进行备份。 <br /><br />链接有两种，一种被称为硬链接（Hard Link），另一种被称为符号链接（Symbolic Link）。默认情况下，ln命令产生硬链接。 <br /><br />硬连接指通过索引节点来进行的连接。在Linux的文件系统中，保存在磁盘分区中的文件不管是什么类型都给它分配一个编号，称为索引节点号(Inode Index)。在Linux中，多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名，这样用户就可以建立硬连接到重要文件，以防止“误删”的功能。其原因如上所述，因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接，只有当最后一个连接被删除后，文件的数据块及目录的连接才会被释放。也就是说，文件才会被真正删除。 <br /><br />与硬连接相对应，Lnux系统中还存在另一种连接，称为符号连接（Symbilc Link），也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中，文件实际上是一个文本文件，其中包含的有另一文件的位置信息。 <br /><br /><strong>动手联系</strong><br /><br />上面我们介绍了Linux文件处理命令，下面介绍几个实例，大家可以动手练习一下刚才讲过的命令。 <br /><br />1.利用符号链接快速访问关键目录 <br /><br />符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用，但由于Linux的文件和目录结构等原因，这个文件或目录在很深的子目录中。比如，Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中，并且不想每次都要从主目录进入这样一个长的路径之中(实际上，这个路径也非常不容易记忆)。 <br /><br />为了解决这个问题，可以在主目录中创建一个符号链接，这样在需要进入该目录时，只需进入这个链接即可。 <br /><br />为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录，在主目录下可以使用以下命令： <br /><br />$ ln -s /usr/local/httpd/htdocs gg <br /><br />这样每次进入gg目录就可访问Web服务器的文档，以后如果不再访问Web服务器的文档时，删除gg即可，而真正的Web服务器的文档并没有删除。 <br /><br />2.使用dd命令将init.rd格式的root.ram内容导入内存 <br /><br />dd if=/dev/fd0 of=floppy.fd <br /><br />dd if=root.ram of=/dev/ram0 # <br /><br />3.grep命令系统调用 <br /><br />grep是Linux/Unix中使用最广泛的命令之一，许多Linux系统内部都可以调用它。 <br /><br />(1)如果要查询目录列表中的目录，方法如下： <br /><br />$ ls -l | grep '∧d' <br /><br />(2)如果在一个目录中查询不包含目录的所有文件，方法如下： <br /><br />$ ls -l | grep '∧[∧d]' <br /><br />(3)用find命令调用grep，如所有C源代码中的“Chinput”，方法如下： <br /><br />$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print <br /></p><img src ="http://www.blogjava.net/joaquin25/aggbug/195918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joaquin25/" target="_blank">joaquin25</a> 2008-04-25 11:24 <a href="http://www.blogjava.net/joaquin25/articles/195918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>