[转载]Linuz常用命令(1)
login
login [name][-p ][-h 主机名称]
-p:通知login保持现在的环境参数。
-h:用来向远程登录的之间传输用户名。
如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
shutdown
shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
shutdown [-h][-i][-k][-m][-t]
-t:在改变到其它运行级别之前,告诉init程序多久以后关机。
-k:并不真正关机,只是送警告信号给每位登录者。
-h:关机后关闭电源。
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改为单用户模式。
-i:关机时显示系统信息。
halt
halt命令的作用是关闭系统,它的使用权限是超级用户。
halt [-n] [-w] [-d] [-f] [-i] [-p]
-n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
-f:没有调用shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉所有的网络接口。
-f:强迫关机,不呼叫shutdown这个指令。
-p: 当关机的时候顺便做关闭电源的动作。
-d:关闭系统,但不留下纪录。
halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。
reboot
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
reboot [-n] [-w] [-d] [-f] [-i]
-n: 在重开机前不做将记忆体资料写回硬盘的动作。
-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i: 在重开机之前先把所有与网络相关的装置停止。
install
install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。
(2)install [选项]... 来源... 目录
(3)install -d [选项]... 目录...
在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。
--backup[=CONTROL]:为每个已存在的目的地文件进行备份。
-b:类似 --backup,但不接受任何参数。
-c:(此选项不作处理)。
-d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
-D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。
-g,--group=组:自行设定所属组,而不是进程目前的所属组。
-m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
-o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
-p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。
-s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
-S,--suffix=后缀:自行指定备份文件的<后缀>。
-v,--verbose:处理每个文件/目录时印出名称。
--help:显示此帮助信息并离开。
--version:显示版本信息并离开。
mount
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
-h:显示辅助信息。
-v:显示信息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-t vfstype:显示被加载文件系统的类型。
-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。
在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备 ,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。 在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。
(1)Linux可以识别的文件系统
◆ Windows 95/98常用的FAT 32文件系统:vfat ;
◆ Win NT/2000 的文件系统:ntfs ;
◆ OS/2用的文件系统:hpfs;
◆ Linux用的文件系统:ext2、ext3;
◆ CD-ROM光盘用的文件系统:iso9660。
虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。
在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文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(Mount Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat):
软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。
umount
umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。
chsh
chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
-l:显示系统所有Shell类型。
-v:显示Shell版本号。
前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下:
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,
exit
exit命令的作用是退出系统,它的使用权限是所有用户。
exit
exit命令没有参数,运行后退出系统进入登录界面。
last
last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]
-n:指定输出记录的条数。
-f file:指定用文件file作为查询用的log文件。
-t tty:只显示指定的虚拟控制台上登录情况。
-h 节点:只显示指定的节点上的登录情况。
-i IP:只显示指定的IP上登录的情况。
-1:用IP来显示远端地址。
-y:显示记录的年、月、日。
-ID:知道查询的用户名。
-x:显示系统关闭、用户登录和退出的历史。
tar
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。
tar [主选项+辅选项] 文件或目录
主选项:
-c
创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r
把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u
更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-x 从档案文件中释放文件。
辅助选项:
-b
该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512
bytes)。
-f 使用档案文件或设备,这个选项通常是必选的。
-k
保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
-m 在还原文件时,把所有文件的修改时间设定为现在。
-M 创建多卷的档案文件,以便在几个磁盘中存放。
-v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w 每一步都要求确认。
-z
用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
tar是Tape
Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过Linux的源代码,或许已经碰到过tar文件。tar是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或者从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar与文件系统无关,可以使用在ext2、ext3、JFS、Reiser和其它文件系统上。它支持各种备份介质,包括软盘、光盘写入器、可重写的光盘、JazZip、磁带、高端磁带等。Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。如果使用Linux源代码安装程序,一定使用过tar文件。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。tar官方网址是http://www.gnu.
org/software/tar/tar.html。
请注意,不要忘了Linux是区分大小写的。例如,tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t和-T执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。
$tar cvf - /usr > /temp/back.tar
另外,tar命令支持前面第三讲中讲过的crontab命令,可以用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目录备份到hda—第一个IDE接口的主驱动器
(总是位于第一个硬盘)中,只要将下面语句添加到root的crontab中即可:
一般情况下,以下这些目录是需要备份的:
◆
◆
◆
◆
◆
有些目录是可以不备份的:
◆
◆
unzip
unzip命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS
Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。
unzip [-cflptuvz][-agCjLMnoqsVX][-P
<密码>][.zip文件][文件][-d <目录>][-x
<文件>]
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f:更新现有的文件。
-l:显示压缩文件内所包含的文件。
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t:检查压缩文件是否正确。
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。
-v:执行是时显示详细的信息。
-z:仅显示压缩文件的备注文字。
-a:对文本文件进行必要的字符转换。
b:不要对文本文件进行字符转换。
-C:压缩文件中的文件名称区分大小写。
-j:不处理压缩文件中原有的目录路径。
-L:将压缩文件中的全部文件名改为小写。
-M:将输出结果送到more程序处理。
-n:解压缩时不要覆盖原有的文件。
-o:不必先询问用户,unzip执行后覆盖原有文件。
-P<密码>:使用zip的密码选项。
-q:执行时不显示任何信息。
-s:将文件名中的空白字符转换为底线字符。
-V:保留VMS的文件版本信息。
-X:解压缩时同时回存文件原来的UID/GID。
[.zip文件]:指定.zip压缩文件。
[文件]:指定要处理.zip压缩文件中的哪些文件。
-d<目录>:指定文件解压缩后所要存储的目录。
-x<文件>:指定不要处理.zip压缩文件中的哪些文件。
-Z
unzip:-Z等于执行zipinfo指令。在Linux中,还提供了一个叫zipinfo的工具,能够察看zip压缩文件的详细信息。unzip最新版本是5.50。
gunzip
gunzip命令作用是解压文件,使用权限是所有用户。
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]
或者gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
-a或--ascii:使用ASCII文字模式。
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。
-h或--help:在线帮助。
-l或--list:列出压缩文件的相关信息。
-L或--license:显示版本与版权信息。
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。
-N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-q或--quiet:不显示警告信息。
-r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。
-t或--test:测试压缩文件是否正确无误。
-v或--verbose:显示指令执行过程。
-V或--version:显示版本信息。
gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。gunzip最新版本是1.3.3
。
unarj
unarj解压缩格式为.arj格式的文件,使用权限是所有用户。
unarj [eltx][.arj压缩文件]
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
带有.arj扩展名的文件是由用于MS
DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在Linux平台上几乎不存在与其功能匹配的工具,要解压缩.arj文件,就要使用unarj实用程序。unarj比ARJ慢,能力也不如ARJ,但至少能够顺利地抽取大多数.arj文件。unarj只能将文件抽取到当前的工作目录、列出档案内容,或者测试档案。从ARJ
Software的站点或携带所需Linux发行版的FTP服务器上可以下载unarj源码。另外,unarj通常是基本Linux发行版的一部分,因此可以在主要发行版本的CD-ROM上找到它。如果需要可到所有Linux发行版链接的列表下载,ARJ软件网址为http://www.arjsoft.com,ARJ的下载页面为http://www.arjsoft.com/files.htm。unarj最新版本是2.65,注意unarj选项不是以减号(-)开头的。
mtools
mtools实际上是一个命令集合,是DOS文件系统的工具程序,它可以模拟许多DOS命令,使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:
mcopy a:*.*
也就是说,只需要在相应的DOS命令之前加上一个字母“m”,就可以完成对应的功能了。一般Linux发行版本中都有这个软件,可以使用下面命令检查一下。
rpm -qa|grep mtools
如果没有安装,也没有关系,可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是3.9.9,下载链接为http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。
mcd 目录名:改变MS DOS下的目录。
mcopy 源文件 目标文件:在MS DOS和Unix之间复制文件。
mdel 文件名:删除MS DOS下的文件。
mdir 目录名:显示MS DOS下的目录。
mformat 驱动器号:在低级格式化的软盘上创建MS DOS文件系统。
rnlabel 驱动器号:产生MS DOS下的卷标
mmd 目录名:建立MS DOS下的目录。
mrd 目录名:删除MS DOS下的目录。
mren 源文件 目标文件:重新命名已存在的MS DOS文件。
mtype 文件名:显示MS DOS文件的内容。
请注意,这些命令和对应的MS
DOS命令非常相似。在mtools命令中,“/”和“”是可以混用的。因为文件列表的是DOS系统下的文档,对大小写并不敏感,所以“CDE”和“cde”在这里是一样的。
(1)如果把软盘进行快速格式化,可以使用命令mformat:
mformat A:
mtools当初发展的目的是用来处理DOS文件系统的,所以只能用在FAT文件格式的分区上。需要注意的是,如果用mount命令来挂载了FAT16/32分区,那么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下,Linux就会将其视为文件系统本身的一部分,这时如果要对其操作就必须使用Linux本身所附带的指令集。
(2)将DOS盘上的文件htca.c复制到当前目录下,并用ls命令进行验证。
$ mcopy a:htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c
man
man命令用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便和实用。
man 命令名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M
path] [-P pager] [-S section_list] [section] name ...
-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。
-M path:指定了联机手册的搜寻路径,
如果没有指定则使用环境变数MANPATH的设定;如果没有使用MANPATH,
则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。
-P
pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变数MANPAGER设定,然后是环境变数PAGER;man缺省使用/usr/bin/less
-is。
-S section_list
man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT的设定。
-a
man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。
-c:即使有最新的cat
page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。
-d:不要真的显示联机手册,只显示除错讯息。
-D:同时显示联机手册与除错讯息。
-h:显示求助讯息然后结束程式 。
-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。
-m system:依所指定的system名称而指定另一组的联机手册。
man:是manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如,
如果使用ps命令时遇到困难,可以输入man
ps得到帮助信息,此时会显示出ps的手册页(man page)。
由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻),
所以在man page里可以使用less的所有选项。
less中比较重要的功能键有:
[Enter] 一行行地下翻;
[Space] 一页页地下翻;
[/] 后跟一个字符串和[Enter]来查找字符串;
[n] 发现上一次查找的下一个匹配。
unencode
unencode命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。
uuencode [-hv] [源文件] 目标文件
-h:列出指令使用格式(help) 。
-v:列出版本信息。
uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以
begin开始,以end作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。
uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。
uuencode [-hv] [file1 ...]
-h:列出指令使用格式(help)。
-v:列出版本信息。
mkdir
mkdir命令的作用是建立名称为dirname的子目录,与MS
DOS下的md命令类似,它的使用权限是所有用户。
mkdir [options] 目录名
-m, --mode=模式:设定权限<模式>,与chmod类似。
-p,
--parents:需要时创建上层目录;如果目录早已存在,则不当作错误。
-v, --verbose:每次创建新目录都显示信息。
--version:显示版本信息后离开。
在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:
$ mkdir -m 777 tsk
grep
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global
Regular Expression
Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep [options]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn
nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3
}.[0-0\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
$grep ´[0-9 ]{3
}.[0-0\´ ipfile
补充说明,grep家族还包括fgrep和egrep。fgrep是fix
grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式。
dd
dd命令用来复制文件,并根据参数将数据转换和格式化。
dd [options]
bs=字节:强迫 ibs=<字节>及obs=<字节>。
cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
count=块数目:只复制指定<块数目>的输入数据。
ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。
obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。
dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。