目 录
引言 1
1、安装和登陆 2
(一) login 2
(二) shutdown 2
(三) halt 3
(四) reboot 3
(五) install 4
(六) mount 4
(七) umount 6
(八) chsh 6
(九) exit 7
(十) last 7
(十一) 动手练习 7
2、文件处理 9
(一) file 9
(二) mkdir 9
(三) grep 10
(四) dd 11
(五) find 11
(六) mv 13
(七) ls 13
(八) diff 14
(九) cmp 15
(十) cat 15
(十一) ln 16
(十二) 动手练习 16
3、系统管理 18
(一) df 18
(二) top 19
(三) free 20
(四) quota 20
(五) at 21
(六) lp 21
(七) useradd 22
(八) groupadd 23
(九) kill 23
(十) crontab 24
(十一) 动手练习 25
4、网络操做 27
(一) ifconfig 27
(二) ip 27
(三) ping 28
(四) netstat 29
(五) telnet 30
(六) ftp 31
(七) route 32
(八) rlogin 33
(九) rcp 33
(十) finger 34
(十一) mail 34
(十二) nslookup 34
(十三) 动手练习 35
5、系统安全 38
(一) passwd 38
(二) su 38
(三) umask 39
(四) chgrp 39
(五) chmod 40
(六) chown 41
(七) chattr 42
(八) sudo 43
(九) ps 43
(十) who 44
(十一) 动手练习 45
6、其余 47
(一) tar 47
(二) unzip 48
(三) gunzip 49
(四) unarj 50
(五) mtools 50
(六) man 51
(七) unencode 53
(八) uudecode 53
(九) 动手练习 53
引言
Linux提供了大量的命令,利用它能够有效地完成大量的工做,如磁盘操做、文件存取、目录操做、进程管理、文件权限设定等。因此,在Linux系 统上工做离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,经过基础的命令学习能够进一步理解Linux系统。
不一样Linux发行版的命令数量不同,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的做用分红下面六个部分一一介绍。
◆ 安装和登陆命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操做命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
1、安装和登陆
本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登陆命令。
(一) login
1.做用
login的做用是登陆系统,它的使用权限是全部用户。
2.格式
login [name][-p ][-h 主机名称]
3.主要参数
-p:通知login保持如今的环境参数。
-h:用来向远程登陆的之间传输用户名。
若是选择用命令行模式登陆Linux的话,那么看到的第一个Linux命令就是login:。
通常界面是这样的:
Manddrake Linux release 9.1(Bamboo) for i586
renrel 2.4.21-0.13mdk on i686 / tty1
localhost login:root
password:
上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登陆的虚拟控制台,咱们在第三行输入登陆名,按“Enter”键在Password后输入帐户密码,便可登陆系统。出于安全考虑,输入帐户密码时字符不会在屏幕上回显,光标也不移动。
登陆后会看到下面这个界面(以超级用户为例):
[root@localhost root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面显示的是登陆星期、月、日、时间和使用的虚拟控制台。
4.应用技巧
Linux是一个真正的多用户操做系统,能够同时接受多个用户登陆,还容许一个用户进行屡次登陆。这是由于Linux和许多版本的Unix同样,提 供了虚拟控制台的访问方式,容许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行屡次登陆。每一个虚拟控制台能够看做是一个独立 的工做站,工做台之间能够切换。虚拟控制台的切换能够经过按下Alt键和一个功能键来实现,一般使用F1-F6 。
例如,用户登陆后,按一下“Alt+F2”键,用户就能够看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。而后只需按 “Alt+ F1”键,就能够回到第一个虚拟控制台。一个新安装的Linux系统容许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制 台最有用的是,当一个程序出错形成系统死锁时,能够切换到其它虚拟控制台工做,关闭这个程序。
(二) shutdown
1.做用
shutdown命令的做用是关闭计算机,它的使用权限是超级用户。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要参数
-t:在改变到其它运行级别以前,告诉init程序多久之后关机。
-k:并不真正关机,只是送警告信号给每位登陆者。
-h:关机后关闭电源。
-c:cancel current process取消目前正在执行的关机程序。因此这个选项固然没有时间参数,可是能够输入一个用来解释的讯息,而这信息将会送到每位使用者。
-F:在重启计算机时强迫fsck。
-time:设定关机前的时间。
-m: 将系统改成单用户模式。
-i:关机时显示系统信息。
4.命令说明
shutdown命令能够安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。由于Linux与 Windows不一样,其后台运行着许多进程,因此强制关机可能会致使进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。 在系统关机前使用 shutdown命令,系统管理员会通知全部登陆的用户系统将要关闭,而且login指令会被冻结,即新的用户不能再登陆。
(三) halt
1.做用
halt命令的做用是关闭系统,它的使用权限是超级用户。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要参数说明
-n:防止sync系统调用,它用在用fsck修补根分区以后,以阻止内核用老版本的超级块覆盖修补过的超级块。
-w:并非真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
-f:没有调用shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉全部的网络接口。
-f:强迫关机,不呼叫shutdown这个指令。
-p: 当关机的时候顺便作关闭电源的动做。
-d:关闭系统,但不留下纪录。
4.命令说明
halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操做完成后就会中止内核。若系统的 运行级别为0或6,则关闭系统;不然以shutdown指令(加上-h参数)来取代。
(四) reboot
1.做用
reboot命令的做用是从新启动计算机,它的使用权限是系统管理者。
2.格式
reboot [-n] [-w] [-d] [-f] [-i]
3.主要参数
-n: 在重开机前不作将记忆体资料写回硬盘的动做。
-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i: 在重开机以前先把全部与网络相关的装置中止。
(五) install
1.做用
install命令的做用是安装或升级软件或备份数据,它的使用权限是全部用户。
2.格式
(1)install [选项]... 来源 目的地
(2)install [选项]... 来源... 目录
(3)install -d [选项]... 目录...
在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同 时设定权限模式及全部者/所属组。在第三种格式中,会建立全部指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。
3.主要参数
--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
1.做用
mount命令的做用是加载文件系统,其使用权限是超级用户或/etc/fstab中容许的使用者。
2.格式
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
3.主要参数
-h:显示辅助信息。
-v:显示信息,一般和-f用来除错。
-a:将/etc/fstab中定义的全部文件系统挂上。
-F:这个命令一般和-a一块儿使用,它会为每个mount的动做产生一个行程负责执行。在系统须要挂上大量NFS文件系统时能够加快加载的速度。
-f:一般用于除错。它会使mount不执行实际挂上的动做,而是模拟整个挂上的过程,一般会和-v一块儿使用。
-t vfstype:显示被加载文件系统的类型。
-n:通常而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的状况下,能够用这个选项取消这个动做。
4.应用技巧
在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用的文件系统:ext二、ext3;
◆ CD-ROM光盘用的文件系统:iso9660。
虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。
(2)肯定设备的名称
在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文件,在该文件中能够找到计算机开机后系统已辨认出来的设备代号。
(3)查找挂接点
在决定将设备挂接以前,先要查看一下计算机是否是有个/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
1.做用
umount命令的做用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中容许的使用者。
2.格式
unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
3.使用说明
umount命令是mount命令的逆操做,它的参数和使用方法和mount命令是同样的。Linux挂装CD-ROM后,会锁定CD—ROM,这 样就不能用CD-ROM面板上的Eject按钮弹出它。可是,当再也不须要光盘时,若是已将/cdrom做为符号连接,请使用umount/cdrom来卸 装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工做目录看成该光盘中的目录的终端窗口。
(八) chsh
1.做用
chsh命令的做用是更改使用者shell设定,它的使用权限是全部使用者。
2.格式
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
3.主要参数
-l:显示系统全部Shell类型。
-v:显示Shell版本号。
4.应用技巧
前面介绍了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 命令,见图1所示。
图1 系统能够使用的Shell类型
从图1中能够看到,笔者系统中能够使用的Shell有bash(缺省)、csh、sh、tcsh四种。
(九) exit
1.做用
exit命令的做用是退出系统,它的使用权限是全部用户。
2.格式
exit
3.参数
exit命令没有参数,运行后退出系统进入登陆界面。
(十) last
1.做用
last命令的做用是显示近期用户或终端的登陆状况,它的使用权限是全部用户。经过last命令查看该程序的log,管理员能够获知谁曾经或企图链接系统。
2.格式
1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]
3.主要参数
-n:指定输出记录的条数。
-f file:指定用文件file做为查询用的log文件。
-t tty:只显示指定的虚拟控制台上登陆状况。
-h 节点:只显示指定的节点上的登陆状况。
-i IP:只显示指定的IP上登陆的状况。
-1:用IP来显示远端地址。
-y:显示记录的年、月、日。
-ID:知道查询的用户名。
-x:显示系统关闭、用户登陆和退出的历史。
(十一) 动手练习
上面介绍了Linux安装和登陆命令,下面介绍几个实例,动手练习一下刚才讲过的命令。
1.一次运行多个命令
在一个命令行中能够执行多个命令,用分号将各个命令隔开便可,例如:
#last -x;halt
上面代码表示在显示系统关闭、用户登陆和退出的历史后关闭计算机。
2.利用mount挂装文件系统访问Windows系统
许多Linux发行版本如今均可以自动加载Vfat分区来访问Windows系统,而Red Hat各个版本都没有自动加载Vfat分区,所以还须要进行手工操做。
mount能够将Windows分区做为Linux的一个“文件”挂接到Linux的一个空文件夹下,从而将Windows的分区和/mnt这个目 录联系起来。所以,只要访问这个文件夹就至关于访问该分区了。首先要在/mnt下创建winc文件夹,在命令提示符下输入下面命令:
#mount -t vfat /dev/hda1 /mnt/winc
即表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时,在/mnt/winc目录下就能够看到Windows中C盘的内 容了。使用相似的方法能够访问Windows系统的D、E盘。在Linux系统显示Windows的分区通常顺序这样的:hda1为C盘、hda5为D 盘、 hda6为E盘……以此类推。上述方法能够查看Windows系统有一个很大的问题,就是Windows中的全部中文文件名或文件夹名所有显示为问号 “?”,而英文却能够正常显示。咱们能够经过加入一些参数让它显示中文。还以上面的操做为例,此时输入命令:
#mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc
如今它就能够正常显示中文了。
3.使用mount加挂闪盘上的文件系统
在Linux下使用闪盘很是简单。Linux对USB设备有很好的支持,当插入闪盘后,闪盘被识别为一个SCSI盘,一般输入如下命令:
# mount /dev/sda1 /usb
就可以加挂闪盘上的文件系统。
(十二) 小知识
Linux命令与Shell
所谓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最重要的实用程序。
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等。
2、文件处理
Linux 系统信息存放在文件里,文件与普通的公务文件相似。每一个文件都有本身的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件能够是一封信、一个通信录,或者是程序的源语句、程序的数据,甚至能够包括可执行的程序和其它非正文内容。 Linux文件系统具备良好的结构,系统提供了不少文件处理程序。这里主要介绍经常使用的文件处理命令。
(一) file
1.做用
根据文件内容判断文件类型,使用权限是全部用户。
2.格式
file经过探测文
file [options] 文件名
3.[options]主要参数
-v:在标准输出后显示版本信息,而且退出。
-z:探测压缩过的文件类型。
-L:容许符合链接。
-f name:从文件namefile中读取要分析的文件名列表。
4.简单说明
使用file命令能够知道某个文件到底是二进制(ELF格式)的可执行文件, 仍是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。
5.应用实例
若是咱们看到一个没有后缀的文件grap,能够使用下面命令:
$ file grap
grap: English text
此时系统显示这是一个英文文本文件。须要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。
(二) mkdir
1.做用
mkdir命令的做用是创建名称为dirname的子目录,与MS DOS下的md命令相似,它的使用权限是全部用户。
2.格式
mkdir [options] 目录名
3.[options]主要参数
-m, --mode=模式:设定权限<模式>,与chmod相似。
-p, --parents:须要时建立上层目录;若是目录早已存在,则不看成错误。
-v, --verbose:每次建立新目录都显示信息。
--version:显示版本信息后离开。
4.应用实例
在进行目录建立时能够设置目录的权限,此时使用的参数是“-m”。假设要建立的目录名是“tsk”,让全部用户都有rwx(即读、写、执行的权限),那么能够使用如下命令:
$ mkdir -m 777 tsk
(三) grep
1.做用
grep命令能够指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是全部用户。
2.格式
grep [options]
3.主要参数
[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系统上,正则表达式一般被用来查找文本的模式,以及对文本执行“搜索-替换”操做和其它功能。
4.应用实例
查询DNS服务是平常工做之一,这意味着要维护覆盖不一样网络的大量IP地址。有时IP地址会超过2000个。若是要查看nnn.nnn网络地址,但 是却忘了第二部分中的其他部分,只知到有两个句点,例如nnn nn..。要抽取其中全部nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
$grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile
补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,容许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。
(四) dd
1.做用
dd命令用来复制文件,并根据参数将数据转换和格式化。
2.格式
dd [options]
3.[opitions]主要参数
bs=字节:强迫 ibs=<字节>及obs=<字节>。
cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
count=块数目:只复制指定<块数目>的输入数据。
ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。
obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。
4.应用实例
dd命令经常用来制做Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,而后使用dd命令将其写入软盘:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成本身的根分区,接下来用dd命令将该内核写入软盘。
(五) find
1.做用
find命令的做用是在目录中搜索文件,它的使用权限是全部用户。
2.格式
find [path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,若是不写path,那么默认为当前目录。
3.主要参数
[options]参数:
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,若是level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录。
-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。
-version:打印版本。
[expression]是匹配表达式,是find命令接受的表达式,find命令的全部操做都是针对表达式的。它的参数很是多,这里只介绍一些经常使用的参数。
—name:支持统配符*和?。
-atime n:搜索在过去n天读取过的文件。
-ctime n:搜索在过去n天修改过的文件。
-group grpoupname:搜索全部组为grpoupname的文件。
-user 用户名:搜索全部文件属主为用户名(ID或名称)的文件。
-size n:搜索文件大小是n个block的文件。
-print:输出搜索结果,而且打印。
4.应用技巧
find命令查找文件的几种方法:
(1)根据文件名查找
例如,咱们想要查找一个文件名是lilo.conf的文件,能够使用以下命令:
find / -name lilo.conf
find命令后的“/”表示搜索整个硬盘。
(2)快速查找文件
根据文件名查找文件会遇到一个实际问题,就是要花费至关长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。若是我 们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省不少时间。好比smb.conf文件,从它的文件后缀“.conf”能够判断这 是一个配置文件,那么它应该在/etc目录内,此时能够使用下面命令:
find /etc -name smb.conf
这样,使用“快速查找文件”方式能够缩短期。
(3)根据部分文件名查找方法
有时咱们知道只某个文件包含有abvd这4个字,那么要查找系统中全部包含有这4个字符的文件能够输入下面命令:
find / -name '*abvd*'
输入这个命令之后,Linux系统会将在/目录中查找全部的包含有abvd这4个字符的文件(其中*是通配符),好比abvdrmyz等符合条件的文件都能显示出来。
(4) 使用混合查找方式查找文件
find命令能够使用混合查找的方法,例如,咱们想在/etc目录中查找大于500000字节,而且在24小时内修改的某个文件,则能够使用-and (与)把两个查找参数连接起来组合成一个混合的查找方式。
find /etc -size +500000c -and -mtime +1
(六) mv
1.做用
mv命令用来为文件或目录更名,或者将文件由一个目录移入另外一个目录中,它的使用权限是全部用户。该命令如同DOS命令中的ren和move的组合。
2.格式
mv[options] 源文件或目录 目标文件或目录
3.[options]主要参数
-i:交互方式操做。若是mv操做将致使对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样能够避免误覆盖文件。
-f:禁止交互操做。mv操做要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将再也不起做用。
4.应用实例
(1)将/usr/cbu中的全部文件移到当前目录(用“.”表示)中:
$ mv /usr/cbu/ * .
(2)将文件cjh.txt重命名为wjz.txt:
$ mv cjh.txt wjz.txt
(七) ls
1.做用
ls命令用于显示目录内容,相似DOS下的dir命令,它的使用权限是全部用户。
2.格式
ls [options][filename]
3.options主要参数
-a, --all:不隐藏任何以“.” 字符开始的项目。
-A, --almost-all:列出除了“ . ”及 “.. ”之外的任何项目。
--author:印出每一个文件著做者。
-b, --escape:以八进制溢出序列表示不可打印的字符。
--block-size=大小:块以指定<大小>的字节为单位。
-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。
-f:不进行排序,-aU参数生效,-lst参数失效。
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每一个文件的inode号。
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。
-k:即--block-size=1K。
-l:使用较长格式列出信息。
-L, --dereference:当显示符号连接的文件信息时,显示符号连接所指示的对象,而并不是符号连接自己的信息。
-m:全部项目以逗号分隔,并填满整行行宽。
-n, --numeric-uid-gid:相似-l,但列出UID及GID号。
-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。
-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。
-Q, --quote-name:将项目名称括上双引号。
-r, --reverse:依相反次序排列。
-R, --recursive:同时列出全部子目录层。
-s, --size:以块大小为序。
4.应用举例
ls 命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不一样的颜色,其中蓝色表示是目录,绿色表示是可执 行文件,红色表示是压缩文件,浅蓝色表示是连接文件,加粗的黑色表示符号连接,灰色表示是其它格式文件。ls最常使用的是ls- l,见图1所示。
图1 使用ls-l命令
文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型,它能够是下述类型之一:-(普通文件)、d(目录)、l(符号连接)、 b(块设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限, 第三组表示其余用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被执行时,把该 文件的UID 或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标志位(留在内存,不被换出)。若是该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。若是它是可执行文 件,那么在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名 称。
(八) diff
1.做用
diff命令用于两个文件之间的比较,并指出二者的不一样,它的使用权限是全部用户。
2.格式
diff [options] 源文件 目标文件
3.[options]主要参数
-a:将全部文件看成文本文件来处理。
-b:忽略空格形成的不一样。
-B:忽略空行形成的不一样。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-I:忽略大小写的变化。
-n --rcs:输出RCS格式。
(九) cmp
1.做用
cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差别,它的使用权限是全部用户。
2.格式
cmp[options] 文件名
3.[options]主要参数
-l: 将字节以十进制的方式输出,并方便将两个文件中不一样的以八进制的方式输出。
(十) cat
1.做用
cat(“concatenate”的缩写)命令用于链接并显示指定的一个和多个文件的有关信息,它的使用权限是全部用户。
2.格式
cat [options] 文件1 文件2……
3.[options]主要参数
-n:由第一行开始对全部输出的行数编号。
-b:和-n类似,只不过对于空白行不编号。
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
4.应用举例
(1)cat命令一个最简单的用处是显示文本文件的内容。例如,咱们想在命令行看一下README文件的内容,能够使用命令:
$ cat README
(2)有时须要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们做为一 个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)以后,将内容附加到一个新文本文件File1 中:
$ cat README INSTALL File1
(3)cat还有一个重要的功能就是能够对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工做中都是很是重要的。
图2 使用cat命令/etc/named.conf文件进行编号
对行进行编号功能有-b(只能对非空白行进行编号)和-n(能够对全部行进行编号)两个参数:
$ cat -b /etc/named.conf
(十一) ln
1.做用
ln命令用来在文件之间建立连接,它的使用权限是全部用户。
2.格式
ln [options] 源文件 [连接名]
3.参数
-f:链结时先将源文件删除。
-d:容许系统管理者硬链结本身的目录。
-s:进行软链结(Symbolic Link)。
-b:将在链结时会被覆盖或删除的文件进行备份。
连接有两种,一种被称为硬连接(Hard Link),另外一种被称为符号连接(Symbolic Link)。默认状况下,ln命令产生硬连接。
硬链接指经过索引节点来进行的链接。在Linux的文件系统中,保存在磁盘分区中的文件无论是什么类型都给它分配一个编号,称为索引节点号 (Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。通常这种链接就是硬链接。硬链接的做用是容许一个文件拥有多个有效路径名,这样用户 就能够创建硬链接到重要文件,以防止“误删”的功能。其缘由如上所述,由于对应该目录的索引节点有一个以上的链接。只删除一个链接并不影响索引节点自己和 其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件才会被真正删除。
与硬链接相对应,Lnux系统中还存在另外一种链接,称为符号链接(Symbilc Link),也叫软链接。软连接文件有点相似于Windows的快捷方式。它其实是特殊文件的一种。在符号链接中,文件其实是一个文本文件,其中包含的有另外一文件的位置信息。
(十二) 动手练习
上面咱们介绍了Linux文件处理命令,下面介绍几个实例,你们能够动手练习一下刚才讲过的命令。
1.利用符号连接快速访问关键目录
符号连接是一个很是实用的功能。假设有一些目录或文件须要频繁使用,但因为Linux的文件和目录结构等缘由,这个文件或目录在很深的子目录中。比 如, Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,而且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也 很是不容易记忆)。
为了解决这个问题,能够在主目录中建立一个符号连接,这样在须要进入该目录时,只需进入这个连接便可。
为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下能够使用如下命令:
$ ln -s /usr/local/httpd/htdocs gg
这样每次进入gg目录就可访问Web服务器的文档,之后若是再也不访问Web服务器的文档时,删除gg便可,而真正的Web服务器的文档并无删除。
2.使用dd命令将init.rd格式的root.ram内容导入内存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命令系统调用
grep是Linux/Unix中使用最普遍的命令之一,许多Linux系统内部均可以调用它。
(1)若是要查询目录列表中的目录,方法以下:
$ ls -l | grep '∧d'
(2)若是在一个目录中查询不包含目录的全部文件,方法以下:
$ ls -l | grep '∧[∧d]'
(3)用find命令调用grep,如全部C源代码中的“Chinput”,方法以下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
3、系统管理
对于Linux系统来讲,不管是中央处理器、内存、磁盘驱动器、键盘、鼠标,仍是用户等都是文件,Linux系统管理的命令是它正常运行的核心。熟悉了Linux经常使用的文件处理命令之后,这一讲介绍对系统和用户进行管理的命令。
(一) df
1.做用
df命令用来检查文件系统的磁盘空间占用状况,使用权限是全部用户。
2.格式
df [options]
3.主要参数
-s:对每一个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每个目录及其中的各子目录所占的磁盘块数。
-k:以1024字节为单位列出磁盘空间使用状况。
-x:跳过在不一样文件系统上的目录不予统计。
-l:计算全部的文件大小,对硬连接文件则计算屡次。
-i:显示inode信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
-P:使用POSIX输出格式。
-T:显示文件系统类型。
4.说明
df命令被普遍地用来生成文件系统的使用统计数据,它能显示系统中全部的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等。
超级权限用户使用df命令时会发现这样的状况:某个分区的容量超过了100%。这是由于Linux系统为超级用户保留了10%的空间,由其单独支 配。也就是说,对于超级用户而言,他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员 还能够正常工做。
5.应用实例
Linux支持的文件系统很是多,包括JFS、ReiserFS、ext、ext二、ext三、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还能够获得文件系统的信息:
#df -T
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /
/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C
/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D
/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E
/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F
/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G
从上面除了能够看到磁盘空间的容量、使用状况外,分区的文件系统类型、挂载点等信息也一览无遗。
(二) top
1.做用
top命令用来显示执行中的程序进程,使用权限是全部用户。
2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
3.主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。若是使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。
4.说明
top命令是Linux系统管理的一个主要命令,经过它能够得到许多信息。这里咱们结合图1来讲明它给出的信息。
图1 top命令的显示
在图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登陆用户数目、平均负载。第二行显示的是全部启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用状况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。 第四行显示物理内存的使用状况,包括总的能够使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用状况,包括总的交换分区、使用 的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
PID(Process ID):进程标示号。
USER:进程全部者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,若是这一行显示不下,进程会有一个完整的命令行。
top命令使用过程当中,还能够使用一些交互的命令来完成其它参数的功能。这些命令是经过快捷键启动的。
<空格>:马上刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
能够看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤为重要。可是,它的缺点是会消耗不少系统资源。
5.应用实例
使用top命令能够监视指定用户,缺省状况是监视全部用户的进程。若是想查看指定用户的状况,在终端中按“U”键,而后输入用户名,系统就会切换为指定用户的进程运行界面,见图2所示。
图2 使用top命令监视指定用户
(三) free
1.做用
free命令用来显示内存的使用状况,使用权限是全部用户。
2.格式
free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用状况。
-s delay:显示每隔多少秒数来显示一次内存使用状况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
4.应用实例
free命令是用来查看内存使用状况的主要命令。和top命令相比,它的优势是使用简单,而且只占用不多的系统资源。经过-S参数能够使用free命令不间断地监视有多少内存在使用,这样能够把它看成一个方便实时监控器。
#free -b -s5
使用这个命令后终端会接二连三地报告内存使用状况(以字节为单位),每5秒更新一次。
(四) quota
1.做用
quota命令用来显示磁盘使用状况和限制状况,使用权限超级用户。
2.格式
quota [-g][-u][-v][-p] 用户名 组名
3.参数
-g:显示用户所在组的磁盘使用限制。
-u:显示用户的磁盘使用限制。
-v:显示没有分配空间的文件系统的分配状况。
-p:显示简化信息。
4.应用实例
在企业应用中磁盘配额很是重要,普通用户要学会看懂本身的磁盘使用状况。要查询本身的磁盘配额能够使用下面命令(下例中用户帐号是caojh):
#quota caojh
Disk quotas for user caojh(uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 58 200000 400000 41 500 1000
以上显示ID号为502的caojh帐号,文件个数设置为500~1000个,硬盘空间限制设置为200MB~400MB。一旦磁盘配额要用完时,就须要删除一些垃圾文件或向系统管理员请求追加配额。
(五) at
1.做用
at命令用来在指定时刻执行指定的命令序列。
2.格式
at [-V] [-q x] [-f file] [-m] time
3.主要参数
-V:显示标准错误输出。
-q:许多队列输出。
-f:从文件中读取做业。
-m:执行完做业后发送电子邮件到用户。
time:设定做业执行的时间。time格式有严格的要求,由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YY,MM是分钟,DD是日期,YY是指年份。偏移量的格式为时间+偏移量,单位是minutes、hours和days。
4.应用实例
#at -f data 15:30 +2 days
上面命令表示让系统在两天后的17:30执行文件data中指明的做业。
(六) lp
1.做用
lp是打印文件的命令,使用权限是全部用户。
2.格式
lp [-c][-d][-m][-number][-title][-p]
3.主要参数
-c:先拷贝文件再打印。
-d:打印队列文件。
-m:打印结束后发送电子邮件到用户。
-number:打印份数。
-title:打印标题。
-p:设定打印的优先级别,最高为100。
4.应用实例
(1)使用lp命令打印多个文件
#lp 2 3 4
request id is 11 (3 file(s))
其中二、三、4分别是文件名;“request id is 11 (3 file(s)) ”表示这是第11个打印命令,依次打印这三个文件。
(2)设定打印优先级别
#lp lp -d LaserJet -p 90 /etc/aliases
经过添加“-p 90”,规定了打印做业的优先级为90。它将在优先级低于90的打印做业以前打印,包括没有设置优先级的做业,缺省优先级是50
(七) useradd
1.做用
useradd命令用来创建用户账号和建立用户的起始目录,使用权限是超级用户。
2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
3.主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变动预设值。
-e:指定帐号的有效期限,缺省表示永久有效。
-f:指定在密码过时后多少天即关闭该帐号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动创建用户的登入目录。
-M:不要自动创建用户的登入目录。
-n:取消创建以用户名称为名的群组。
-r:创建系统帐号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。
4.说明
useradd可用来创建用户帐号,它和adduser命令是相同的。帐号建好以后,再用passwd设定帐号的密码。使用useradd命令所创建的帐号,其实是保存在/etc/passwd文本文件中。
5.应用实例
创建一个新用户帐户,并设置ID:
#useradd caojh -u 544
须要说明的是,设定ID值时尽可能要大于500,以避免冲突。由于Linux安装后会创建一些特殊用户,通常0到499之间的值留给bin、mail这样的系统帐号。
(八) groupadd
1.做用
groupadd命令用于将新组加入系统。
2.格式
groupadd [-g gid] [-o]] [-r] [-f] groupname
3.主要参数
-g gid:指定组ID号。
-o:容许组ID号,没必要唯一。
-r:加入组ID号,低于499系统帐号。
-f:加入已经有的组时,发展程序退出。
4.应用实例
创建一个新组,并设置组ID加入系统:
#groupadd -g 344 cjh
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。
(九) kill
1.做用
kill命令用来停止一个进程。
2.格式
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
3.参数
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。
pid:要停止进程的ID号。
Signal:表示信号。
4.说明
进程是Linux系统中一个很是重要的概念。Linux是一个多任务的操做系统,系统上常常同时运行着多个进程。咱们不关心这些进程到底是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们可以很好地为用户服务。
Linux 操做系统包括三种不一样类型的进程,每种进程都有本身的特色和属性。交互进程是由一个Shell启动的进程。交互进程既能够在前台运行,也能够在后台运行。 批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的 Apache服务器的监控进程。
kill命令的工做原理是,向Linux系统的内核发送一个系统操做信号和某个程序的进程标识号,而后系统内核就能够对进程标识号指定的进程进行操 做。好比在top命令中,咱们看到系统运行许多进程,有时就须要使用kill停止某些进程来提升系统资源。在讲解安装和登录命令时,曾提到系统多个虚拟控 制台的做用是当一个程序出错形成系统死锁时,能够切换到其它虚拟控制台工做关闭这个程序。此时使用的命令就是kill,由于kill是大多数Shell内 部命令能够直接调用的。
5.应用实例
(1)强行停止(常用杀掉)一个进程标识号为324的进程:
#kill -9 324
(2)解除Linux系统的死锁
在Linux 中有时会发生这样一种状况:一个程序崩溃,而且处于死锁的状态。此时通常不用从新启动计算机,只须要停止(或者说是关闭)这个有问题的程序便可。当 kill处于X-Window界面时,主要的程序(除了崩溃的程序以外)通常都已经正常启动了。此时打开一个终端,在那里停止有问题的程序。好比,若是 Mozilla浏览器程序出现了锁死的状况,能够使用kill命令来停止全部包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID,然 后使用kill命令中止这个程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla浏览器的程序的进程标识号。
(3)使用命令回收内存
咱们知道内存对于系统是很是重要的,回收内存能够提升系统资源。kill命令能够及时地停止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时能够使用下面命令:
#kill -9 XXX
其中,XXX是无用的进程标识号。
而后使用下面命令:
#free
此时会发现可用内存容量增长了。
(4)killall命令
Linux下还提供了一个killall命令,能够直接使用进程的名字而不是进程标识号,例如:
# killall -HUP inetd
(十) crontab
1.做用
使用crontab命令能够修改crontab配置文件,而后该配置由cron公用程序在适当的时间执行,该命令使用权限是全部用户。
2.格式
crontab [ -u user ] 文件
crontab [ -u user ] { -l | -r | -e }
3.主要参数
-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
-r:删除目前的时程表。
-l:列出目前的时程表。
crontab 文件的格式为“M H D m d cmd”。其中,M表明分钟(0~59),H表明小时(0~23),D表明天(1~31),m表明月(1~12),d表明一星期内的天(0~6,0为星期 天)。cmd表示要运行的程序,它被送入sh执行,这个Shell只有USER、HOME、SHELL三个环境变量。
4.说明
和at命令相比,crontab命令适合完成固定周期的任务。
5.应用实例
设置一个定时、按期的系统提示:
[cao @www cao]#crontab -e
此时系统会打开一个vi编辑器。
若是输入如下内容:35 17 * * 5 wall "Tomorrow is Saturday I will go CS",而后存盘退出。这时在/var/spool/cron/目录下会生产一个cao的文件,内容以下:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
35 17 * * 5 wall "Tomorrow is Saturday I will play CS "
这样每一个星期五17:35系统就会弹出一个终端,提醒星期六能够打打CS了!显示结果见图3所示。
图3 一个定时、按期的系统提示
(十一) 动手练习
1.联合使用kill和top命令观察系统性能的变化
首先启动一个终端运行top命令,而后再启动一个终端使用kill命令,见图4所示。
图4 观察kill命令对top终端的影响
这时利用上面介绍的kill命令来停止一些程序:
#kill SIGKILL XXX
而后再看top命令终端的变化,包括内存容量、CPU使用率、系统负载等。注意,有些进程是不能停止的,不过学习Linux命令时能够试试,看看系统有什么反应。
2.使用at和halt命令定时关机
首先设定关机时间是17:35,输入下面代码:
#at 17:35
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at>halt `-i -p
at> <EOT>
job 6 at 2004-01-01 17:35
此时实际上就已经进入Linux系统的Shell,而且编写一个最简单程序:halt -i -p。上面Shell中的文本结束符号表示按“Ctrl+D”组合键关闭命令,提交任务退出Shell。“Job 6 at 2004-01-01 17:35”表示系统接受第6个at命令,在“2004-01-01 17:35”时执行命令:先把全部网络相关的装置中止,关闭系统后关闭电源。
3.用crontab命令实现天天定时的病毒扫描
前面已经介绍了一个简单的crontab命令操做,这里看一些更重要的操做。
(1)创建一个文件,文件名称本身设定,假设为caoproject:
#crontab -e
(2)文件内容以下:
05 09 * * * antivir
用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件,固然须要时先安装在系统中。
(3)使用crontab命令添加到任务列表中:
#crontab caoproject
这样系统内全部用户在天天的9点05分会自动进行病毒扫描。
4.用kill使修改的配置文件立刻生效
Windows用户通常都知道,重要配置文件修改后每每都要从新启动计算机才能使修改生效。而Linux因为采用了模块化设计,能够本身根据须要实时设定服务。这里以网络服务inetd为例介绍一些操做技巧。
inetd 是一个监听守护进程,监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行链接的要求,并扩展所需的服务进程。默认状况 下,inetd监听的这些daemon均列于/etc /inetd.conf文件中。编辑/etc/inetd.conf文件,能够改变inetd启动服务器守护进程的选项,而后驱使inetd以 SIGHUP(signal 1)向当前的inetd进程发送信号,使inetd重读该文件。这一过程由kill命令来实现。
用vi或其它编辑器修改inetd.conf后,首先使用下面命令:
#ps -ef |grep inetd
上面代码代表查询inetd.conf的进程号(PID),这里假设是1426,而后使用下面命令:
# kill -1426 inetd
这样配置文件就生效了。
这一讲介绍的系统管理命令都是比较重要的,特别是crontab命令和quota命令使用起来会有必定难度,须要多作一些练习。另外,使用kill命令要注意“-9“这个参数,练习时最好不要运行一些重要的程序。
4、网络操做
由于Linux系统是在Internet上起源和发展的,它与生俱来拥有强大的网络功能和丰富的网络应用软件,尤为是TCP/IP网络协 议的实现尤其成 熟。Linux的网络命令比较多,其中一些命令像ping、 ftp、telnet、route、netstat等在其它操做系统上也能看到,但也有一些Unix/Linux系统独有的命令,如ifconfig、 finger、mail等。Linux网络操做命令的一个特色是,命令参数选项和功能不少,一个命令每每还能够实现其它命令的功能。
(一) ifconfig
1.做用
ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。
2.格式
ifconfig -interface [options] address
3.主要参数
-interface:指定的网络接口名,如eth0和eth1。
up:激活指定的网络接口卡。
down:关闭指定的网络接口。
broadcast address:设置接口的广播地址。
pointopoint:启用点对点方式。
address:设置指定接口设备的IP地址。
netmask address:设置接口的子网掩码。
4.应用说明
ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络,这是一个必须掌握的命令。使用该命令的好处是无须从新启动机器。要赋给eth0接口IP地址207.164.186.2,而且立刻激活它,使用下面命令:
#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
该命令的做用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令,这个命令将显示机器全部激 活接口的信息。带有“-a”参数的命令则显示全部接口的信息,包括没有激活的接口。注意,用ifconfig命令配置的网络设备参数,机器从新启动之后将 会丢失。
若是要暂停某个网络接口的工做,能够使用down参数:
#ifconfig eth0 down
(二) ip
1.做用
ip是iproute2软件包里面的一个强大的网络配置工具,它可以替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎全部的Linux发行版本都支持该命令。
2.格式
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
3.主要参数
OPTIONS是修改ip行为或改变其输出的选项。全部的选项都是以-字符开头,分为长、短两种形式。目前,ip支持如表1所示选项。
OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。
表1 ip支持的选项
-V,-Version 打印ip的版本并退出。
-s,-stats,-statistics 输出更为详尽的信息。若是这个选项出现两次或屡次,则输出的信息将更为详尽。
-f,-family 这个选项后面接协议种类,包括inet、inet6或link,强调使用的协议种类。若是没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或any。link比较特殊,它表示不涉及任何网络协议。
-4 是-family inet的简写。
-6 是-family inet6的简写。
-0 是-family link的简写。
-o,-oneline 对每行记录都使用单行输出,回行用字符代替。若是须要使用wc、grep等工具处理ip的输出,则会用到这个选项。
-r,-resolve 查询域名解析系统,用得到的主机名代替主机IP地址
COMMAND 设置针对指定对象执行的操做,它和对象的类型有关。通常状况下,ip支持对象的增长(add)、删除(delete)和展现(show或list)。有些 对象不支持这些操做,或者有其它的一些命令。对于全部的对象,用户能够使用help命令得到帮助。这个命令会列出这个对象支持的命令和参数的语法。若是没 有指定对象的操做命令,ip会使用默认的命令。通常状况下,默认命令是list,若是对象不能列出,就会执行help命令。
ARGUMENTS 是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个 关键词加一个数值组成。为了方便,每一个命令都有一个能够忽略的默认参数。例如,参数dev是ip link命令的默认参数,所以ip link ls eth0等于ip link ls dev eth0。咱们将在后面的详细介绍每一个命令的使用,命令的默认参数将使用default标出。
4.应用实例
添加IP地址192.168.2.2/24到eth0网卡上:
#ip addr add 192.168.1.1/24 dev eth0
丢弃源地址属于192.168.2.0/24网络的全部数据报:
#ip rule add from 192.168.2.0/24 prio 32777 reject
(三) ping
1.做用
ping检测主机网络接口状态,使用权限是全部用户。
2.格式
ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址
3.主要参数
-d:使用Socket的SO_DEBUG功能。
-c:设置完成要求回应的次数。
-f:极限检测。
-i:指定收发信息的间隔秒数。
-I:网络界面使用指定的网络界面送出数据包。
-l:前置载入,设置在送出要求信息以前,先行发出的数据包。
-n:只输出数值。
-p:设置填满数据包的范本样式。
-q:不显示指令执行过程,开头和结尾的相关信息除外。
-r:忽略普通的Routing Table,直接将数据包送到远端主机上。
-R:记录路由过程。
-s:设置数据包的大小。
-t:设置存活数值TTL的大小。
-v:详细显示指令的执行过程。
ping 命令是使用最多的网络指令,一般咱们使用它检测网络是否连通,它使用ICMP协议。可是有时会有这样的状况,咱们能够浏览器查看一个网页,可是却没法 ping通,这是由于一些网站处于安全考虑安装了防火墙。另外,也能够在本身计算机上试一试,经过下面的方法使系统对ping没有反应:
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(四) netstat
1.做用
检查整个Linux网络状态。
2.格式
netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]
3.主要参数
-a--all:显示全部连线中的Socket。
-A:列出该网络类型连线中的IP相关地址和网络类型。
-c--continuous:持续列出网络状态。
-C--cache:显示路由器配置的快取信息。
-e--extend:显示网络其它相关信息。
-F--fib:显示FIB。
-g--groups:显示多重广播功能群组组员名单。
-h--help:在线帮助。
-i--interfaces:显示网络界面信息表单。
-l--listening:显示监控中的服务器的Socket。
-M--masquerade:显示假装的网络连线。
-n--numeric:直接使用IP地址,而不经过域名服务器。
-N--netlink--symbolic:显示网络硬件外围设备的符号链接名称。
-o--timers:显示计时器。
-p--programs:显示正在使用Socket的程序识别码和程序名称。
-r--route:显示Routing Table。
-s--statistice:显示网络工做信息统计表。
-t--tcp:显示TCP传输协议的连线情况。
-u--udp:显示UDP传输协议的连线情况。
-v--verbose:显示指令执行过程。
-V--version:显示版本信息。
-w--raw:显示RAW传输协议的连线情况。
-x--unix:和指定“-A unix”参数相同。
--ip--inet:和指定“-A inet”参数相同。
4.应用实例
netstat 主要用于Linux察看自身的网络情况,如开启的端口、在为哪些用户服务,以及服务的状态等。此外,它还显示系统路由表、网络接口状态等。能够说,它是一 个综合性的网络状态的察看工具。在默认状况下,netstat只显示已创建链接的端口。若是要显示处于监听状态的全部端口,使用-a参数便可:
#netstat -a
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:32768 *:* LISTEN
tcp 0 0 *:32769 *:* LISTEN
tcp 0 0 *:nfs *:* LISTEN
tcp 0 0 *:32770 *:* LISTEN
tcp 0 0 *:868 *:* LISTEN
tcp 0 0 *:617 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:10000 *:* LISTEN
tcp 0 0 *:http *:* LISTEN
......
上面显示出,这台主机同时提供HTTP、FTP、NFS、MySQL等服务。
(五) telnet
1.做用
telnet表示开启终端机阶段做业,并登入远端主机。telnet是一个Linux命令,同时也是一个协议(远程登录协议)。
2.格式
telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址<通讯端口>]
3.主要参数
-8:容许使用8位字符资料,包括输入与输出。
-a:尝试自动登入远端系统。
-b:使用别名指定远端主机名称。
-c:不读取用户专属目录里的.telnetrc文件。
-d:启动排错模式。
-e:设置脱离字符。
-E:滤除脱离字符。
-f:此参数的效果和指定“-F”参数相同。
-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
-k:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
-K:不自动登入远端主机。
-l:指定要登入远端主机的用户名称。
-L:容许输出8位字符资料。
-n:指定文件记录相关信息。
-r:使用相似rlogin指令的用户界面。
-S:服务类型,设置telnet连线所需的IP TOS信息。
-x:假设主机有支持数据加密的功能,就使用它。
-X:关闭指定的认证形态。
4.应用说明
用户使用telnet命令能够进行远程登陆,并在远程计算机之间进行通讯。用户经过网络在远程计算机上登陆,就像登陆到本地机 上执行命令同样。为了经过 telnet登陆到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登陆功能,但出于对安全的考虑,要限制来宾的操做 权限,所以,这种状况下能使用的功能是不多的。
telnet只为普通终端提供终端仿真,而不支持X-Window等图形环境。当容许远程用户登陆时,系统一般把这些用户放在一个受限制的 Shell中,以防系统被怀有恶意的或不当心的用户破坏。用户还能够使用telnet从远程站点登陆到本身的计算机上,检查电子邮件、编辑文件和运行程 序,就像在本地登陆同样。
(六) ftp
1.做用
ftp命令进行远程文件传输。FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身,因此ftp既是协议又是一个命令。
2.格式
ftp [-dignv][主机名称IP地址]
3.主要参数
-d:详细显示指令执行过程,便于排错分析程序执行的情形。
-i:关闭互动模式,不询问任何问题。
-g:关闭本地主机文件名称支持特殊字符的扩充特性。
-n:不使用自动登录。
-v:显示指令执行过程。
4.应用说明
ftp 命令是标准的文件传输协议的用户接口,是在TCP/IP网络计算机之间传输文件简单有效的方法,它容许用户传输ASCⅡ文件和二进制文件。为了使用ftp 来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp会话,并用来肯定用户对要传输的文件进行什么样的访问。 另外,用户须要知道对其进行ftp会话的计算机名字的IP地址。
用户能够经过使用ftp客户程序,链接到另外一台计算机上;能够在目录中上下移动、列出目录内容;能够把文件从远程计算机机拷贝到本地机上;还能够把文件从本地机传输到远程系统中。ftp内部命令有72个,下面列出主要几个内部命令:
ls:列出远程机的当前目录。
cd:在远程机上改变工做目录。
lcd:在本地机上改变工做目录。
close:终止当前的ftp会话。
hash:每次传输完数据缓冲区中的数据后就显示一个#号。
get(mget):从远程机传送指定文件到本地机。
put(mput):从本地机传送指定文件到远程机。
quit:断开与远程机的链接,并退出ftp。
(七) route
1.做用
route表示手工产生、修改和查看路由表。
2.格式
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
3.主要参数
-add:增长路由。
-delete:删除路由。
-net:路由到达的是一个网络,而不是一台主机。
-host:路由到达的是一台主机。
-netmask Nm:指定路由的子网掩码。
gw:指定路由的网关。
[dev]If:强迫路由链指定接口。
4.应用实例
route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通讯。要实现两个不一样的子网之间的通讯,须要一台链接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中,设置路由一般是为了解决如下问题:该Linux系统在一个局域网中,局域网中有一个网关,可以让机器访问Internet,那么就须要将这台机器的IP地址设置为Linux机器的默认路由。使用下面命令能够增长一个默认路由:
route add 0.0.0.0 192.168.1.1
(八) rlogin
1.做用
rlogin用来进行远程注册。
2.格式
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
3.主要参数
-8:此选项始终容许8位输入数据通道。该选项容许发送格式化的ANSI字符和其它的特殊代码。若是不用这个选项,除非远端的不是终止和启动字符,不然就去掉奇偶校验位。
-E:中止把任何字符看成转义字符。当和-8选项一块儿使用时,它提供一个彻底的透明链接。
-K:关闭全部的Kerberos确认。只有与使用Kerberos 确认协议的主机链接时才使用这个选项。
-L:容许rlogin会话在litout模式中运行。要了解更多信息,请查阅tty联机帮助。
-d:打开与远程主机进行通讯的TCP sockets的socket调试。要了解更多信息,请查阅setsockopt的联机帮助。
-e:为rlogin会话设置转义字符,默认的转义字符是“~”。
-k:请求rlogin得到在指定区域内远程主机的Kerberos许可,而不是得到由krb_realmofhost(3)肯定的远程主机区域内的远程主机的Kerberos许可。
-x:为全部经过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率,可是能够提升安全性。
4.使用说明
若是在网络中的不一样系统上都有帐号,或者能够访问别人在另外一个系统上的帐号,那么要访问别的系统中的帐号,首先就要注册到系统中,接着经过网络远程注册到帐号所在的系统中。rlogin能够远程注册到别的系统中,它的参数应是一个系统名。
(九) rcp
1.做用
rcp表明远程文件拷贝,用于计算机之间文件拷贝,使用权限是全部用户。
2.格式
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
3.主要参数
-r:递归地把源目录中的全部内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。
-p:试图保留源文件的修改时间和模式,忽略umask。
-k:请求rcp得到在指定区域内的远程主机的Kerberos许可,而不是得到由krb_relmofhost(3)肯定的远程主机区域内的远程主机的Kerberos许可。
-x:为传送的全部数据打开DES加密。
(十) finger
1.做用
finger用来查询一台主机上的登陆帐号的信息,一般会显示用户名、主目录、停滞时间、登陆时间、登陆Shell等信息,使用权限为全部用户。
2.格式
finger [选项] [使用者] [用户@主机]
3.主要参数
-s:显示用户注册名、实际姓名、终端名称、写状态、停滞时间、登陆时间等信息。
-l:除了用-s选项显示的信息外,还显示用户主目录、登陆Shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p:除了不显示.plan文件和.project文件之外,与-l选项相同。
4.应用实例
在计算机上使用finger:
[root@localhost root]# Finger
Login Name Tty Idle Login Time Office Office Phone
root root tty1 2 Dec 15 11
root root pts/0 1 Dec 15 11
root root *pts/1 Dec 15 11
5.应用说明
若是要查询远程机上的用户信息,须要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机须要运行finger守护进程的支持。
(十一) mail
1.做用
mail做用是发送电子邮件,使用权限是全部用户。此外,mail仍是一个电子邮件程序。
2.格式
mail [-s subject] [-c address] [-b address]
mail -f [mailbox]mail [-u user]
3.主要参数
-b address:表示输出信息的匿名收信人地址清单。
-c address:表示输出信息的抄送()收信人地址清单。
-f [mailbox]:从收件箱者指定邮箱读取邮件。
-s subject:指定输出信息的主体行。
[-u user]:端口指定优化的收件箱读取邮件。
(十二) nslookup
1.做用
nslookup命令的功能是查询一台机器的IP地址和其对应的域名。使用权限全部用户。它一般须要一台域名服务器来提供域名服务。若是用户已经设置好域名服务器,就能够用这个命令查看不一样主机的IP地址对应的域名。
2.格式
nslookup [IP地址/域名]
3.应用实例
(1)在本地计算机上使用nslookup命令
$ nslookup
Default Server: name.cao.com.cn
Address: 192.168.1.9
>
在符号“>”后面输入要查询的IP地址域名,并回车便可。若是要退出该命令,输入“exit”,并回车便可。
(2)使用nslookup命令测试named
输入下面命令:
nslookup
而后就进入交换式nslookup环境。若是named正常启动,则nslookup会显示当前DNS服务器的地址和域名,不然表示named没能正常启动。
下面简单介绍一些基本的DNS诊断。
◆ 检查正向DNS解析,在nslookup提示符下输入带域名的主机名,如hp712.my.com,nslookup应能显示该主机名对应的IP地址。如 果只输入hp712,nslookup会根据/etc/resolv.conf的定义,自动添加my.com域名,并回答对应的IP地址。
◆检查反向DNS解析,在nslookup提示符下输入某个IP地址,如192.22.33.20,nslookup应能回答该IP地址所对应的主机名。
◆检查MX邮件地址记录在nslookup提示符下输入:
set q=mx
而后输入某个域名,输入my.com和mail.my.com,nslookup应可以回答对应的邮件服务器地址,即support.my.com和support2.my.com。
(十三) 动手练习
1.危险的网络命令
互联网的发展使安全成为一个不能忽视的问题,finger、ftp、rcp和telnet在本质上都是不安全的,由于它 们在网络上用明文传送口令和数据,嗅探器能够很是容易地截获这些口令和数据。并且,这些服务程序的安全验证方式也是有弱点的,很容易受到“中间服务器”方 式的攻击。这里笔者把一些不安全的命令根据危险等级列出,见表3所示。
如今ftp、telnet能够被SSH命令代替绑定在端口22上,其链接采用协商方式,使用RSA加密。身份鉴别完成以后,后面的全部流量都使用 IDEA 进行加密。SSH(Secure Shell)程序能够经过网络登陆到远程主机,并执行命令。rcp、rlogin等远程调用命令也逐渐被VNC软件代 替。
2.在一张网卡上绑定多个IP地址
在Linux下,能够使用ifconfig方便地绑定多个IP地址到一张网卡。例如,eth0接口的原有IP地址为192.168.0 .254,能够执行下面命令:
ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0
......
3.修改网卡MAC地址
首先必须关闭网卡设备,命令以下:
/sbin/ifconfig eth0 down
修改MAC地址,命令以下:
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
从新启用网卡:
/sbin/ifconfig eht0 up
这样网卡的MAC地址就更改完成了。每张网卡的MAC地址是唯一,但不是不能修改的,只要保证在网络中的MAC地址的唯一性就能够了。
4.初步部署IPv6
IPv4 技术在网络发展中起到了巨大的做用,不过随着时间的流逝它不管在网络地址的提供、服务质量、安全性等方面都愈来愈力不从心,IPv6呼之欲出。Linux 是全部操做系统中最早支持IPv6的,通常Linux基于2.4内核的Linux发行版本均可以直接使用IPv6,不过主要发行版本没有加载IPv6模 块,能够使用命令手工加载,须要超级用户的权限。
(1)加载IPv6模块
使用命令检测,其中inet6 addr: fe80::5054:abff:fe34:5b09/64,就是eth0网卡的IPv6地址。
# modprobe IPv6
#ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb)
Interrupt:5 Base address:0xec00
(2)使用ping命令检测网卡的IPv6地址是否有效
#ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586
和IPv4不同,使用ping6命令时必须指定一个网卡界面,不然系统不知道将数据包发送到哪一个网络设备。I表示Interface、eth0是第一个网卡,-c表示回路,2表示ping6操做两次。结果见图1所示。
图1 IPv6网络下的ping6命令
(3)使用ip命令在IPv6下为eth0增长一个IP地址
#ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
使用ifconfig命令,查看网卡是否出现第二个IPv6地址。
Linux网络的主要优势是可以实现资源和信息的共享,而且用户能够远程访问信息。Linux提供了一组强有力的网络命令来为用户服务,这些工具可以帮助用户进行网络设定、检查网络情况、登陆到远程计算机上、传输文件和执行远程命令等。
上面介绍了Linux中比较重要的网络命令,其实Linux还有许多命令须要学习。Linux网络操做命令的一个特色就是命令参数选项不少,并不要求所有记住,关键在于理解命令的主要用途和学会使用帮助信息。
5、系统安全
虽然Linux和Windows NT/2000系统同样是一个多用户的系统,可是它们之间有很多重要的差异。对于不少习惯了Windows系统的管理员来说,如何保证Linux操做系统安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。
(一) passwd
1.做用
passwd命令原来修改帐户的登录密码,使用权限是全部用户。
2.格式
passwd [选项] 帐户名称
3.主要参数
-l:锁定已经命名的帐户名称,只有具有超级用户权限的使用者方可以使用。
-u:解开帐户锁定状态,只有具有超级用户权限的使用者方可以使用。
-x, --maximum=DAYS:最大密码使用时间(天),只有具有超级用户权限的使用者方可以使用。
-n, --minimum=DAYS:最小密码使用时间(天),只有具有超级用户权限的使用者方可以使用。
-d:删除使用者的密码, 只有具有超级用户权限的使用者方可以使用。
-S:检查指定使用者的密码认证种类, 只有具有超级用户权限的使用者方可以使用。
4.应用实例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
从上面能够看到,使用passwd命令须要输入旧的密码,而后再输入两次新密码。
(二) su
1.做用
su的做用是变动为其它使用者的身份,超级用户除外,须要键入该使用者的密码。
2.格式
su [选项]... [-] [USER [ARG]...]
3.主要参数
-f , --fast:没必要读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , --login:加了这个参数以后,就好像是从新登录为该使用者同样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,而且工做目录也会改变。若是没有指定USER,缺省状况是root。
-m, -p ,--preserve-environment:执行su时不改变环境变数。
-c command:变动帐号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:欲变动的使用者帐号,ARG传入新的Shell参数。
4.应用实例
变动帐号为超级用户,并在执行df命令后还原使用者。 su -c df root
(三) umask
1.做用
umask设置用户文件和目录的文件建立缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在建立文件时不给谁存取许可。使用权限是全部用户。
2.格式
umask [-p] [-S] [mode]
3.参数
-S:肯定当前的umask设置。
-p:修改umask 设置。
[mode]:修改数值。
4.说明
传统Unix的umask值是022,这样就能够防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每一个用户都拥有并 属于一个本身的私有组,那么这种“组保护模式”就不在须要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。须要注意的 是,umask命令用来设置进程所建立的文件的读写权限,最保险的值是0077,即关闭建立文件的进程之外的全部进程的读写权限,表示为 -rw-------。在~/.bash_profile中,加上一行命令umask 0077能够保证每次启动Shell后, 进程的umask权限均可以被正确设定。
5.应用实例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先显示当前状态,而后把umask值改成177,结果只有文件全部者具备读写文件的权限,其它用户不能访问该文件。这显然是一种很是安全的设置。
(四) chgrp
1.做用
chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。
2.格式
chgrp [选项]... 组 文件...
或
chgrp [选项]... --reference=参考文件 文件...
将每一个<文件>的所属组设定为<组>。
3.参数
-c, --changes :像 --verbose,但只在有更改时才显示结果。
--dereference:会影响符号连接所指示的对象,而非符号连接自己。
-h, --no-dereference:会影响符号连接自己,而非符号连接所指示的目的地(当系统支持更改符号连接的全部者,此选项才有效)。
-f, --silent, --quiet:去除大部分的错误信息。
--reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。
-R, --recursive:递归处理全部的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.应用说明
该命令改变指定指定文件所属的用户组。其中group能够是用户组ID,也能够是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。若是用户不是该文件的属主或超级用户,则不能改变该文件的组。
5.应用实例
改变/opt/local /book/及其子目录下的全部文件的属组为book,命令以下:
$ chgrp - R book /opt/local /book
(五) chmod
1.做用
chmod命令是很是重要的,用于改变文件或目录的访问权限,用户能够用它控制文件或目录的访问权限,使用权限是超级用户。
2.格式
chmod命令有两种用法。一种是包含字母和操做符表达式的字符设定法(相对权限设定);另外一种是包含数字的数字设定法(绝对权限设定)。
(1)字符设定法
chmod [who] [+ | - | =] [mode] 文件名
◆操做对象who能够是下述字母中的任一个或它们的组合
u:表示用户,即文件或目录的全部者。
g:表示同组用户,即与文件属主有相同组ID的全部用户。
o:表示其它用户。
a:表示全部用户,它是系统默认值。
◆操做符号
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限,并取消其它全部权限(若是有的话)。
◆设置mode的权限可用下述字母的任意组合
r:可读。
w:可写。
x:可执行。
X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t:保存程序的文本到交换设备上。
u:与文件属主拥有同样的权限。
g:与和文件属主同组的用户拥有同样的权限。
o:与其它用户拥有同样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
一个命令行中能够给出多个权限方式,其间用逗号隔开。
(2) 数字设定法
数字设定法的通常形式为: chmod [mode] 文件名
数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。
数字表示的权限的含义以下:0001为全部者的执行权限;0002为全部者的写权限;0004为全部者的读权限;0010为组的执行权限;0020 为组的写权限;0040为组的读权限;0100为其余人的执行权限;0200为其余人的写权限;0400为其余人的读权限;1000为粘贴位置 位;2000表示假如这个文件是可执行文件,则为组ID为位置位,不然其中文件锁定位置位;4000表示假如这个文件是可执行文件,则为用户ID为位置 位。
3.实例
若是一个系统管理员写了一个表格(tem)让全部用户填写,那么必须受权用户对这个文件有读写权限,能够使用命令:#chmod 666 tem
上面代码中,这个666数字是如何计算出来的呢?0002为全部者的写权限,0004为全部者的读权限,0020为组的写权限,0040为组的读权 限, 0200为其余人的写权限,0400为其余人的读权限,这6个数字相加就是666(注以上数字都是八进制数),结果见图1所示。
图1 用chmod数字方法设定文件权限
从图1能够看出,tem文件的权限是-rw-rw-rw-,即用户对这个文件有读写权限。
若是用字符权限设定使用下面命令:
#chmod a =wx tem
(六) chown
1.做用
更改一个或多个文件或目录的属主和属组。使用权限是超级用户。
2.格式
chown [选项] 用户或组 文件
3.主要参数
--dereference:受影响的是符号连接所指示的对象,而非符号连接自己。
-h, --no-dereference:会影响符号连接自己,而非符号连接所指示的目的地(当系统支持更改符号连接的全部者,此选项才有效)。
--from=目前全部者:目前组只当每一个文件的全部者和组符合选项所指定的,才会更改全部者和组。其中一个能够省略,这已省略的属性就不须要符合原有的属性。
-f, --silent, --quiet:去除大部分的错误信息。
-R, --recursive:递归处理全部的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.说明
chown 将指定文件的拥有者改成指定的用户或组,用户能够是用户名或用户ID;组能够是组名或组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员常用chown命令,在将文件拷贝到另外一个用户的目录下之后,让用户拥有使用该文件的权限。
5.应用实例
1.把文件shiyan.c的全部者改成wan
$ chown wan shiyan.c
2.把目录/hi及其下的全部文件和子目录的属主改为wan,属组改为users。
$ chown - R wan.users /hi
(七) chattr
1.做用
修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
3.主要参数
-R:递归处理全部的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程序对这个文件执行了写操做,使系统马上把修改的结果写到磁盘。
a:Append Only,系统只容许在这个文件以后追加数据,不容许任何进程覆盖或截断这个文件。若是目录具备这个属性,系统将只容许在这个目录下创建和修改文件,而不容许删除任何文件。
i:Immutable,系统不容许对这个文件进行任何的修改。若是目录具备这个属性,那么任何的进程只能修改目录之下的文件,不容许创建和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压以后的数据;而向这个文件中写入数据时,数据首先被压缩以后才写入磁盘。
s:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便之后可以恢复删除这个文件。
4.说明
chattr 命令的做用很大,其中一些功能是由Linux内核版原本支持的,若是Linux内核版本低于2.2,那么许多功能不能实现。一样-D检查压缩文件中的错误 的功能,须要2.5.19以上内核才能支持。另外,经过chattr命令修改属性可以提升系统的安全性,可是它并不适合全部的目录。chattr命令不能 保护/、/dev、/tmp、/var目录。
5.应用实例
1.恢复/root目录,即子目录的全部文件
# chattr -R +u/root
2.用chattr命令防止系统中某个关键文件被修改
在Linux下,有些配置文件(passwd ,fatab)是不容许任何人修改的,为了防止被误删除或修改,能够设定该文件的“不可修改位(immutable)”,命令以下:
# chattr +i /etc/fstab
(八) sudo
1.做用
sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,而且记录到日志中的命令,权限是全部用户。
2.格式
sudo [-bhHpV] [-s <shell>] [-u <用户>] [指令]
sudo [-klv]
3.主要参数
-b:在后台执行命令。
-h:显示帮助。
-H:将HOME环境变量设为新身份的HOME环境变量。
-k:结束密码的有效期,即下次将须要输入密码。
-l:列出当前用户能够使用的命令。
-p:改变询问密码的提示符号。
-s <shell>:执行指定的Shell。
-u <用户>:以指定的用户为新身份,不使用时默认为root。
-v:延长密码有效期5分钟。
4.说明
sudo 命令的配置在/etc/sudoers文件中。当用户使用sudo时,须要输入口令以验证使用者身份。随后的一段时间内能够使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo是系统管理员用来容许某些用户以root身份运行部分/所有系统命令的程序。一个明显的用途是加强了站点的安全性,若是须要天天以超级用户的身份作一些平常工做,常常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是很是适合的。
(九) ps
1.做用
ps显示瞬间进程 (process) 的动态,使用权限是全部使用者。
2.格式
ps [options] [--help]
3.主要参数
ps的参数很是多, 此出仅列出几个经常使用的参数。
-A:列出全部的进程。
-l:显示长列表。
-m:显示内存信息。
-w:显示加宽能够显示较多的信息。
-e:显示全部进程。
a:显示终端上的全部进程,包括其它用户的进程。
-au:显示较详细的信息。
-aux:显示全部包含其它使用者的进程。
4.说明
要对进程进行监测和控制,首先要了解当前进程的状况,也就是须要查看当前进程。ps命令就是最基本、也是很是强大的进程查看命令。 使用该命令能够肯定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部 分信息均可以经过执行该命令获得。最经常使用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的做用:ps aux
图2 ps-aux命令详解
图2第2行代码中,USER表示进程拥有者;PID表示进程标示符;%CPU表示占用的CPU使用率;%MEM占用的物理内存使用率;VSZ表示占用的虚拟内存大小;RSS为进程占用的物理内存值;TTY为终端的次要装置号码。
STAT 表示进程的状态,其中D为不可中断的静止(I/O动做);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时没法消除;W没有足够的内存分页可分 配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。
4.应用实例
在进行系统维护时,常常会出现内存使用量惊人,而又不知道是哪个进程占用了大量进程的状况。除了能够使用top命令查看内存使用状况以外,还能够使用下面的命令:
ps aux | sort +5n
(十) who
1.做用
who显示系统中有哪些用户登录系统,显示的资料包含了使用者ID、使用的登录终端、上线时间、呆滞时间、CPU占用,以及作了些什么。 使用权限为全部用户。
2.格式
who - [husfV] [user]
3.主要参数
-h:不要显示标题列。
-u:不要显示使用者的动做/工做。
-s:使用简短的格式来显示。
-f:不要显示使用者的上线位置。
-V:显示程序版本。
4.说明
该命令主要用于查看当前在线上的用户状况。若是用户想和其它用户创建即时通讯,好比使用talk命令,那么首先要肯定的就是该用户 确实在线上,否则 talk进程就没法创建起来。又如,系统管理员但愿监视每一个登陆的用户此时此刻的所做所为,也要使用who命令。who命令应用起来很是简单,能够比较准 确地掌握用户的状况,因此使用很是普遍。
(十一) 动手练习
1.使用Linux命令检测系统入侵者
安装过Mandrake Linux和Red Hat Linux的用户都会知道,Linux系统会内置三种不一样级别(标准、高、更高)的防火墙,当进行了Linux服务器的安装和一些基本的设置后,服务器应 该说是比较安全的,可是也会有黑客经过各类方法利用系统管理员的疏忽侵入系统。如何快速查找黑客很是重要。通常来讲,能够使用命令查询黑客是否入侵,见表 1。
表1 查询黑客入侵现象的命令对应表
举例说明,若是黑客嗅探网络,那么它必须使网卡接口处于混杂模式,使用下面命令进行查询:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......
从这个命令的输出中,能够看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是 IP地址,第四行讲的是接收数据状态,这时正在被黑客嗅探。通常而言,网卡有几种接收数据帧的状态,如Broadcast、Multicast、 Promiscuous等。Broadcast是指接收全部类型为广播报文的数据帧;Multicast是指接收特定的组播报文;Promiscuous 则是一般说的混杂模式,是指对报文中的目的硬件地址不加任何检查、所有接收的工做模式。
2.限制su命令的滥用
咱们知道,超级用户在Linux中有最大的权利,几乎全部黑客都想获得这个目标。Linux能够增长对切换到超级用 户的限制。使用PAM (Pluggable Authentication Modules)能够禁止除在wheel组之外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽标识#。使用 /usr/sbin/usermod G10 bjecadm将bjecadm这个帐号加入gid为10的组,就是wheel组。命令以下:
/etc/pam.d/su # 使用密码验证#
auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheel组用户才能够切换到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操做信息,则代表了可能有人企图破译root口令。
Linux命令有着强大的功能。对于Linux系统管理员来讲,每每只须要经过各类安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统,Linux系统也不例外。
6、其余
在前面几讲中,咱们把Linux命令按照在系统中的做用分红几个部分分别予以介绍。可是,还有一些命令很差划分,然而学习它们一样是比较重要的。
(一) tar
1.做用
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎能够工做于任何环境中,它的使用权限是全部用户。
2.格式
tar [主选项+辅选项] 文件或目录
3.主要参数
使用该命令时,主选项是必需要有的,它告诉tar要作什么事情,辅选项是辅助使用的,能够选用。
主选项:
-c 建立新的档案文件。若是用户想备份一个目录或是一些文件,就要选择这个选项。
-r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时能够使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,若是在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-x 从档案文件中释放文件。
辅助选项:
-b 该选项是为磁带机设定的,其后跟一数字,用来讲明区块的大小,系统预设值为20(20×512 bytes)。
-f 使用档案文件或设备,这个选项一般是必选的。
-k 保存已经存在的文件。例如把某个文件还原,在还原的过程当中遇到相同的文件,不会进行覆盖。
-m 在还原文件时,把全部文件的修改时间设定为如今。
-M 建立多卷的档案文件,以便在几个磁盘中存放。
-v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w 每一步都要求确认。
-z 用gzip来压缩/解压缩文件,加上该选项后能够将档案文件进行压缩,但还原时也必定要使用该选项进行解压缩。
4.应用说明
tar 是Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。若是下载过Linux的源代码,或许已经碰到过tar文件
请注意,不要忘了Linux是区分大小写的。例如,tar命令应该老是以小写的形式执行。命令行开关能够是大写、小写或大小写的混合。例如,-t和-T执行不一样的功能。文件或目录名称能够混合使用大小写,并且就像命令和命令行开关同样是区分大小写的。
5.应用实例
tar是一个命令行的工具,没有图形界面。使用Konsole打开一个终端窗口,接下来是一个简单的备份命令(在/temp目录中建立一个back.tar的文件,/usr目录中全部内容都包含在其中。):
$tar cvf - /usr > /temp/back.tar
另外,tar命令支持前面第三讲中讲过的crontab命令,能够用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目 录备份到hda—第一个IDE接口的主驱动器 (老是位于第一个硬盘)中,只要将下面语句添加到root的crontab中便可:
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
通常状况下,如下这些目录是须要备份的:
◆/etc 包含全部核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组,以及其它全局系统项。
◆ /var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。
◆/home 包含全部默认用户的主目录,包括我的设置、已下载的文件和用户不但愿失去的其它信息。
◆/root 根(root)用户的主目录。
◆/opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认状况下也安装在这里。
有些目录是能够不备份的:
◆ /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
◆/dev 包含硬件设备的文件表示。若是计划还原到一个空白的系统,就能够备份/dev。然而,若是计划还原到一个已安装的Linux 系统,那么备份/dev是没有必要的。
(二) unzip
1.做用
unzip 命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能同样,将文件压缩成.zip文件,以节省硬盘空间,当须要的时候再将压缩文件用unzip命令解开。该命令使用权 限是全部用户。
2.格式
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>]
3.主要参数
-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
1.做用
gunzip命令做用是解压文件,使用权限是全部用户。
2.格式
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]
或者
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
3.主要参数
-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:显示版本信息。
4.说明
gunzip是个使用普遍的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬链接,所以不管是压缩或解压缩,均可经过gzip指令单独完成。gunzip最新版本是1.3.3 。
(四) unarj
1.做用
unarj解压缩格式为.arj格式的文件,使用权限是全部用户。
2.格式
unarj [eltx][.arj压缩文件]
3.主要参数
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
4.说明
带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序建立的。由于ARJ是一种不能免费得到源代码的共享件程序,因此在
(五) mtools
1.做用
mtools 其实是一个命令集合,是DOS文件系统的工具程序,它能够模拟许多DOS命令,使用起来很是方便。使用权限是全部用户。Linux系统提供了一组称为 mtools的可移植工具,可让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件很是有用。mtools的 使用很是简单,若是想把软盘里全部的文件都拷贝到硬盘上,那么就能够执行如下命令:
mcopy a:*.*
也就是说,只须要在相应的DOS命令以前加上一个字母“m”,就能够完成对应的功能了。通常Linux发行版本中都有这个软件,能够使用下面命令检查一下。
rpm -qa|grep mtools
若是没有安装,也没有关系,能够从网上下载(http://mtools.linux.lu/)一个最新版原本安装。目前可供下载的最新mtools版本是
2.包括的命令
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”在这里是同样的。
3.应用实例
(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
1.做用
man命令用来提供在线帮助,使用权限是全部用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令能够调阅其中的帮助信息,很是方便和实用。
2.格式
man 命令名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
3.参数
-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中比较重要的功能键有:
[q] 退出;
[Enter] 一行行地下翻;
[Space] 一页页地下翻;
[b] 上翻一页;
[/] 后跟一个字符串和[Enter]来查找字符串;
[n] 发现上一次查找的下一个匹配。
4.阅读手册页
手册页在不多的空间里提供了不少的信息,这里简单介绍一下大多数手册页中都有的部份内容。Linux 手册页主要有九个部分: 用户指令、系统调用、程序库、设备说明、文件格式、游戏、杂项、系统指令、内核,手册页快照见图1所示。
图1 ps命令手册页快照
Linux手册页布局见表1。
5.应用实例
Linux 命令中有一些基础的、重要的命令,例如ps、find、cat和ls等。下面来举一个综合应用的例子,由此能够看出man的地位在Linux中可谓相当重 要。可是,man所显示的信息却不是普通的文本,若是直接将这些文字重定向到一个文本文件,就会发如今man中高亮显示的文字就变成了两个,并且有不可胜数的制表符,使打印、编辑都变得很是不便。不过,使用下面这样一条语句就能获得ps命令打印。
# man ps | col -b | lpr
这条命令同时运用了输出重定向和管道两种技巧,做用是将ps命令的帮助信息能够直接打印出来。更多的Man文件能够查看Linux Man
(七) unencode
1.做用
unencode命令能够把一个二进制文件表编码为一个文本文件,使用权限是全部用户。
2.格式
uuencode [-hv] [源文件] 目标文件
3.主要参数
-h:列出指令使用格式(help) 。
-v:列出版本信息。
4.应用说明
uuencode指令能够将二进制文件转化成可以使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始,以end做为结束,且一般其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。
(八) uudecode
1.做用
uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记之外的资料。它的使用权限为全部用户。
2.格式
uuencode [-hv] [file1 ...]
3.主要参数
-h:列出指令使用格式(help)。
-v:列出版本信息。
4.应用实例
使用下面命令一次还原几个文件:
uuencode file1.uud file2.uud file3.uud
(九) 动手练习
1.在Linux命令行下发送邮件
虽然Linux桌面应用发展很快,可是命令行(Shell)在Linux中依然有很强的生命力。若是能确认电子邮件服务器支持8bit的字节,就能够直接使用下面命令:
cat <附件文件名> | mail <邮件地址>
cat(cat是concatenate的缩写)命令是将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件,这里咱们用它来合并邮件的文本。
写好邮件名称,好比叫cjkmail,而后使用下面命令:
$uuencode <附件文件名> <附件文件名> >>cjkmail
这样就能够用vi编辑器写cjkmail文件,并在前面写上信的正文,而后寄出。
对方收到信后,把信中属于cjkmail中的内容拷贝出来,存为themail.uue。若是对方是在Windows下,就能够用WinRAR或WinZip解压,这样就能够看到附件。
若是对方也使用Linux,能够用undecode命令还原:
$ uudencode -o<附件文件名> themail.uue
2.实现tar的分卷
笔者想把一个378MB的文件压缩成多个63MB的文件(笔者的USB为64MB),使用下面命令:
$tar czvf - dir | split -d -b 63m
而后合并命令:
$cat x* > dir.tgz
以上例子实际是由三个命令组合完成的,即用tar打包,用split分割,用cat合并。“tar czvf - dir”的意思是把dir目录打包,并输出到标准输出(argv),这样就能够直接用管道输出给split。
3.连续执行一个命令
使用watch命令,能够反复执行命令。若是和ls配合,能够达到观察某文件大小变化的效果。
$watch ls -l file.name
4.用tar命令导出一个文件
有一个tar格式的DVD文件GLvPro6.4_linux.tar,由于该文件很是大(4.7GB),若是所有解压比较麻烦,能够用下面命令先导出readme.txt看看。
tar xvf GLvPro6.4_linux.tar readme.txt
这样readme.txt就单独被导出了。
5.用tar打包一个目录时只备份其中的几个子目录
tar cf --exclude home/cjh home/cao
这样home目录下只有cjh和cao两个子目录备份。
到此为止,Linux必学的60个命令已经所有介绍完了。Linux的命令行方式功能强大,若是熟练掌握了Linux的经常使用命令,每每只须要经过各 种技巧就能够组合构成一条复杂的命令,从而完成用户任务。Linux系统中的命令实在是太多了,不可能像在MS DOS中把全部的命令及参数都记住。Linux系统提供了一些方法,好比能够经过“help”和“man”来查询名令。node