??xml version="1.0" encoding="utf-8" standalone="yes"?>
Linux必学的重要命?Q?Q?br />作者:(x)曹元?发文旉Q?004.12.16
在前面几讲中Q我们把Linux命o(h)按照在系l中的作用分成几个部分分别予以介l。但是,q有一些命令不好划分,然而学?fn)它们同h比较重要的?
tar
1.作用
tar命o(h)是Unix/Linuxpȝ中备份文件的可靠Ҏ(gu)Q几乎可以工作于M环境中,它的使用权限是所有用戗?/p>
2.格式
tar [主选项+辅选项] 文g或目?/p>
3.主要参数
使用该命令时Q主选项是必要有的Q它告诉tar要做什么事情,辅选项是辅助用的Q可以选用?/p>
主选项Q?br />-c 创徏新的档案文g。如果用h备䆾一个目录或是一些文Ӟp选择q个选项?/p>
-r 把要存档的文件追加到档案文g的未。例如用户已l做好备份文Ӟ又发现还有一个目录或是一些文件忘记备份了(jin)Q这时可以用该选项Q将忘记的目录或文gq加到备份文件中?br />-t 列出档案文g的内容,查看已经备䆾?jin)哪些文件?br />-u 更新文g。就是说Q用新增的文件取代原备䆾文gQ如果在备䆾文g中找不到要更新的文gQ则把它q加到备份文件的最后?br />-x 从档案文件中释放文g?/p>
辅助选项Q?br />-b 该选项是ؓ(f)带定的Q其后跟一数字Q用来说明区块的大小Q系l预讑րgؓ(f)20Q?0×512 bytesQ?br />-f 使用档案文g或设备,q个选项通常是必选的?br />-k 保存已经存在的文件。例如把某个文gq原Q在q原的过E中遇到相同的文Ӟ不会(x)q行覆盖?br />-m 在还原文件时Q把所有文件的修改旉讑֮为现在?br />-M 创徏多卷的档案文Ӟ以便在几个磁盘中存放?br />-v 详细报告tar处理的文件信息。如无此选项Qtar不报告文件信息?br />-w 每一步都要求认?br />-z 用gzip来压~?解压~文Ӟ加上该选项后可以将档案文gq行压羃Q但q原时也一定要使用该选项q行解压~?/p>
4.应用说明
tar 是Tape ArchiveQ磁带归档)(j)的羃写,最初设计用于将文g打包到磁带上。如果下载过Linux的源代码Q或许已l碰到过tar文g
h意,不要忘了(jin)Linux是区分大写的。例如,tar命o(h)应该L以小写的形式执行。命令行开兛_以是大写、小写或大小写的混合。例如,-t?T执行不同的功能。文件或目录名称可以混合使用大小写,而且像命o(h)和命令行开关一h区分大小写的?/p>
5.应用实例
tar是一个命令行的工P没有囑Ş界面。用Konsole打开一个终端窗口,接下来是一个简单的备䆾命o(h)Q在/temp目录中创Z个back.tar的文Ӟ/usr目录中所有内定w包含在其中。)(j)Q?br />$tar cvf - /usr > /temp/back.tar
另外Qtar命o(h)支持前面W三讲中讲过的crontab命o(h)Q可以用crontab工具讄成基于时间的有规律地q行。例如,每晚6Ҏ(gu)/usr目录备䆾到hda—第一个IDE接口的主驱动?(L位于W一个硬?中,只要下面语句添加到root的crontab中即可:(x)
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
一般情况下Q以下这些目录是需要备份的Q?br />?etc 包含所有核?j)配|文Ӟ其中包括|络配置、系l名U、防火墙规则、用戗组Q以?qing)其它全局pȝV?br />?/var 包含pȝ守护q程Q服务)(j)所使用的信息,包括DNS配置、DHCPU期、邮件缓冲文件、HTTP服务器文件、dB2实例配置{?br />?home 包含所有默认用L(fng)ȝ录,包括个h讄、已下蝲的文件和用户不希望失ȝ其它信息?br />?root 根(rootQ用L(fng)ȝ录?br />?opt 是安装许多非pȝ文g的地斏VIBM软g安装在q里。OpenOffice、JDK和其它Y件在默认情况下也安装在这里?/p>
有些目录是可以不备䆾的:(x)
?/proc 应该永远不要备䆾q个目录。它不是一个真实的文gpȝQ而是q行内核和环境的虚拟化视图,包括诸如/proc/kcoreq样的文Ӟq个文g是整个运行内存的虚拟视图。备份这些文件只是在费资源?br />?dev 包含g讑֤的文件表C。如果计划还原到一个空白的pȝQ就可以备䆾/dev。然而,如果计划q原C个已安装的Linux pȝQ那么备?dev是没有必要的?/p>
unzip
1.作用
unzip 命o(h)位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip?qing)MS Windows中的Winzip软g功能一P文件压~成.zip文gQ以节省盘I间Q当需要的时候再压~文件用unzip命o(h)解开。该命o(h)使用权限是所有用戗?/p>
2.格式
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文g][文g][-d <目录>][-x <文g>]
3.主要参数
-cQ将解压~的l果昄到屏q上Qƈ对字W做适当的{换?br />-fQ更新现有的文g?br />-lQ显C压~文件内所包含的文件?br />-pQ与-c参数cMQ会(x)解压羃的结果显C到屏幕上,但不?x)执行Q何的转换?br />-tQ检查压~文件是否正?br />-uQ与-f参数cMQ但是除?jin)更新现有的文g外,也会(x)压~文件中的其它文件解压羃到目录中?br />-vQ执行是时显Cl的信息?br />-zQ仅昄压羃文g的备注文字?br />-aQ对文本文gq行必要的字W{换?br />-bQ不要对文本文gq行字符转换?br />-CQ压~文件中的文件名U区分大写?br />-jQ不处理压羃文g中原有的目录路径?br />-LQ将压羃文g中的全部文g名改为小写?br />-MQ将输出l果送到moreE序处理?br />-nQ解压羃时不要覆盖原有的文g?br />-oQ不必先询问用户Qunzip执行后覆盖原有文件?br />-P<密码>Q用zip的密码选项?br />-qQ执行时不显CZQ何信息?br />-sQ将文g名中的空白字W{换ؓ(f)底线字符?br />-VQ保留VMS的文件版本信息?br />-XQ解压羃时同时回存文件原来的UID/GID?br />[.zip文g]Q指?zip压羃文g?br />[文g]Q指定要处理.zip压羃文g中的哪些文g?br />-d<目录>Q指定文件解压羃后所要存储的目录?br />-x<文g>Q指定不要处?zip压羃文g中的哪些文g?br />-Z unzipQ?Z{于执行zipinfo指o(h)。在Linux中,q提供了(jin)一个叫zipinfo的工P能够察看zip压羃文g的详l信息。unzip最新版本是5.50?/p>
gunzip
1.作用
gunzip命o(h)作用是解压文Ӟ使用权限是所有用戗?/p>
2.格式
gunzip [-acfhlLnNqrtvV][-s <压羃字尾字符?gt;][文g...]
或?br />gunzip [-acfhlLnNqrtvV][-s <压羃字尾字符?gt;][目录]
3.主要参数
-a?-asciiQ用ASCII文字模式?br />-c?-stdout?-to-stdoutQ把解压后的文g输出到标准输?gu)备?br />-f?forceQ强行解开压羃文gQ不理会(x)文g名称或硬q接是否存在Q以?qing)该文g是否为符可接?br />-h?-helpQ在U帮助?br />-l?-listQ列出压~文件的相关信息?br />-L?-licenseQ显C版本与版权信息?br />-n?-no-nameQ解压羃Ӟ若压~文件内含有原来的文件名U及(qing)旉戌Q则其忽略不予处理?br />-N?-nameQ解压羃Ӟ若压~文件内含有原来的文件名U及(qing)旉戌Q则其回存到解开的文件上?br />-q?-quietQ不昄警告信息?br />-r?-recursiveQ递归处理Q将指定目录下的所有文件及(qing)子目录一q处理?br />-S<压羃字尾字符?gt;?-suffix<压羃字尾字符?gt;Q更改压~字֭W串?br />-t?-testQ测试压~文件是否正无误?br />-v?-verboseQ显C指令执行过E?br />-V?-versionQ显C版本信息?/p>
4.说明
gunzip是个使用q泛的解压羃E序Q它用于解开被gzip压羃q的文gQ这些压~文仉设最后的扩展名ؓ(f)?gz”。事实上Qgunzip是gzip的硬q接Q因此不论是压羃或解压羃Q都可通过gzip指o(h)单独完成。gunzip最新版本是1.3.3 ?/p>
unarj
1.作用
unarj解压~格式ؓ(f).arj格式的文Ӟ使用权限是所有用戗?/p>
2.格式
unarj [eltx][.arj压羃文g]
3.主要参数
eQ解压羃.arj文g?br />lQ显C压~文件内所包含的文件?br />tQ检查压~文件是否正?br />xQ解压羃时保留原有的路径?/p>
4.说明
带有.arj扩展名的文g是由用于MS DOS和W(xu)indows的ARJ实用E序创徏的。因为ARJ是一U不能免费获得源代码的共享gE序Q所以在
mtools
1.作用
mtools 实际上是一个命令集合,是DOS文gpȝ的工L(fng)序,它可以模拟许多DOS命o(h)Q用v来非常方ѝ用权限是所有用戗Linuxpȝ提供?jin)一l称?mtools的可UL工具Q可以让用户LC标准的DOS软盘上读、写文g和目录。它们对DOS和Linux环境之间交换文g非常有用。mtools的用非常简单,如果x软盘里所有的文g都拷贝到盘上,那么可以执行以下命令:(x)
mcopy a:*.*
也就是说Q只需要在相应的DOS命o(h)之前加上一个字母“m”,可以完成对应的功能?jin)。一般Linux发行版本中都有这个YӞ可以使用下面命o(h)(g)查一下?br />rpm -qa|grep mtools
如果没有安装Q也没有关系Q可以从|上下蝲(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本?/p>
2.包括的命?br />mcd 目录名:(x)改变MS DOS下的目录?br />mcopy 源文?目标文gQ在MS DOS和Unix之间复制文g?br />mdel 文g名:(x)删除MS DOS下的文g?br />mdir 目录名:(x)昄MS DOS下的目录?br />mformat 驱动器号Q在低格式化的软盘上创建MS DOS文gpȝ?br />rnlabel 驱动器号Q生MS DOS下的h?br />mmd 目录名:(x)建立MS DOS下的目录?br />mrd 目录名:(x)删除MS DOS下的目录?br />mren 源文?目标文gQ重新命名已存在的MS DOS文g?br />mtype 文g名:(x)昄MS DOS文g的内宏V?/p>
h意,q些命o(h)和对应的MS DOS命o(h)非常怼。在mtools命o(h)中,?”和“\”是可以L(fng)的。因为文件列表的是DOSpȝ下的文档Q对大小写ƈ不敏感,所以“CDE”和“cde”在q里是一L(fng)?/p>
3.应用实例
(1)如果把Y盘进行快速格式化Q可以用命令mformatQ?br />mformat AQ?/p>
mtools 当初发展的目的是用来处理DOS文gpȝ的,所以只能用在FAT文g格式的分Z。需要注意的是,如果用mount命o(h)来挂载了(jin)FAT16/32分区Q那么就不能使用mtools的指令来处理q些分区上的文g。这是因Z旦FAT16/32分区挂到?jin)Linux文g目录下,Linux׃(x)其视ؓ(f)文gpȝ本n的一部分Q这时如果要对其操作必M用Linux本n所附带的指令集?/p>
(2)DOS盘上的文件htca.c复制到当前目录下Qƈ用ls命o(h)q行验证?/p>
$ mcopy a:\htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c
man
1.作用
man命o(h)用来提供在线帮助Q用权限是所有用戗在Linuxpȝ中存储着一部联Z用的手册Q以供用户在l端上查找。用man命o(h)可以调阅其中的帮助信息,非常方便和实用?/p>
2.格式
man 命o(h)名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
3.参数
-C config_fileQ指定设定文件man.confQ缺省值是/etc/man.conf?br />-M pathQ指定了(jin)联机手册的搜寻\? 如果没有指定则用环境变数MANPATH的设定;如果没有使用MANPATHQ?则会(x)使用/usr/lib/man.conf内的讑֮Q如果MANPATH是空字串Q则表示使用~省倹{?br />-P pagerQ指定用何Upager.man?x)优先用此选项讑֮Q然后是依环境变数MANPAGER讑֮Q然后是环境变数PAGERQman~省使用/usr/bin/less -is?br />-S section_list manQ所搜寻的章节列?以冒号分?Q此选项?x)覆盖环境变数MANSECT的设定?br />-a manQ缺省情冉|在显C第一个找到的手册之后Q就?x)停止搜寻,使用此选项?x)强qmanl箋昄所有符合name的联机手册?br />-cQ即使有最新的cat pageQ也l箋对联机手册重C排版Q本选项在屏q的行列数改变时或已排版的联机手册损坏时特别有意义?br />-dQ不要真的显C机手册,只显C除错讯息?br />-DQ同时显C机手册与除错讯息?br />-hQ显C求助讯息然后结束程??br />-KQ对所有的联机手册搜寻所指定的字丌Ӏ请注意Q本功能回应速度可能很慢Q如果指定sectionQ区域)(j)?x)对速度有帮助?br />-m systemQ依所指定的system名称而指定另一l的联机手册?br />manQ是manualQ手册)(j)的羃写。在输入命o(h)有困难时Q可以立d到这个文档。例? 如果使用ps命o(h)旉到困难,可以输入man ps得到帮助信息Q此时会(x)昄出ps的手册页Qman pageQ?/p>
׃手册man page是用lessE序来看?可以方便C屏幕上翻和下?, 所以在man page里可以用less的所有选项?/p>
less中比较重要的功能键有:
[q] 退出;
[Enter] 一行行C;
[Space] 一页C;
[b] 上翻一;
[/] 后跟一个字W串和[Enter]来查扑֭W串Q?br />[n] 发现上一ơ查扄下一个匹配?/p>
4.阅读手册?br />手册在很少的空间里提供?jin)很多的信息Q?q里单介l一下大多数手册中都有的部分内宏VLinux手册主要有?ji)个部分Q用h令、系l调用、程序库、设备说明、文件格式、游戏、杂V系l指令、内核,手册快照见?所C?/p>
? ps命o(h)手册快?/p>
Linux手册布局见表1?/p>
5.应用实例
Linux 命o(h)中有一些基的、重要的命o(h)Q例如ps、find、cat和ls{。下面来举一个综合应用的例子Q由此可以看出man的地位在Linux中可谓至关重要。但是,man所昄的信息却不是普通的文本Q如果直接将q些文字重定向到一个文本文Ӟ׃(x)发现在man中高亮显C的文字变成了(jin)两个Q而且有不计其数的制表W,使打印、编辑都变得非常不便。不q,使用下面q样一条语句就能得到ps命o(h)打印?br /># man ps | col -b | lpr
q条命o(h)同时q用?jin)输出重定向和管道两U技巧,作用是将ps命o(h)的帮助信息可以直接打印出来。更多的Man文g可以查看Linux Man
unencode
1.作用
unencode命o(h)可以把一个二q制文g表编码ؓ(f)一个文本文Ӟ使用权限是所有用戗?/p>
2.格式
uuencode [-hv] [源文件] 目标文g
3.主要参数
QhQ列出指令用格?help) ?br />QvQ列出版本信息?/p>
4.应用说明
uuencode指o(h)可以二q制文g转化成可使用?sh)子邮g发送的ASCII~码形式。uuencode~码后的资料都以 begin开始,以end作ؓ(f)l束Q且通常其中的每一行的开始均为“M”,中间部分是编码过的文Ӟ~码后的文g比源文g要大一些?/p>
uudecode
1.作用
uudecode命o(h)用来uuencode~码后的档案q原Quudecode只会(x)begin与end标记之间的编码资料还原,E序?x)蟩q标C外的资料。它的用权限ؓ(f)所有用戗?/p>
2.格式
uuencode [-hv] [file1 ...]
3.主要参数
QhQ列出指令用格?help)?br />QvQ列出版本信息?/p>
4.应用实例
使用下面命o(h)一ơ还原几个文Ӟ(x)
uuencode file1.uud file2.uud file3.uud
动手l习(fn)
1.在Linux命o(h)行下发送邮?br />虽然Linux桌面应用发展很快Q但是命令行QShellQ在Linux中依然有很强的生命力。如果能认?sh)子邮g服务器支?bit的字节,可以直接用下面命令:(x)
cat Q附件文件名Q?| mail Q邮件地址Q?/p>
catQcat是concatenate的羃写)(j)命o(h)是将几个文g处理成一个文Ӟq将q种处理的结果保存到一个单独的输出文gQ这里我们用它来合ƈ邮g的文本?/p>
写好邮g名称Q比如叫cjkmailQ然后用下面命令:(x)
$uuencode Q附件文件名Q?Q附件文件名Q?>>cjkmail
q样可以用vi~辑器写cjkmail文gQƈ在前面写上信的正文,然后寄出?/p>
Ҏ(gu)收到信后Q把信中属于cjkmail中的内容拯出来Q存为themail.uue。如果对Ҏ(gu)在Windows下,可以用WinRAR或WinZip解压Q这样就可以看到附g?/p>
如果Ҏ(gu)也用LinuxQ可以用undecode命o(h)q原Q?br />$ uudencode -oQ附件文件名Q?themail.uue
2.实现tar的分?br />W者想把一?78MB的文件压~成多个63MB的文ӞW者的USB?4MBQ,使用下面命o(h)Q?br />$tar czvf - dir | split -d -b 63m
然后合ƈ命o(h)Q?br />$cat x* > dir.tgz
以上例子实际是由三个命o(h)l合完成的,即用tar打包Q用split分割Q用cat合ƈ。“tar czvf - dir”的意思是把dir目录打包Qƈ输出到标准输出(argvQ,q样可以直接用道输出lsplit?/p>
3.q箋执行一个命?br />使用watch命o(h)Q可以反复执行命令。如果和ls配合Q可以达到观察某文g大小变化的效果?br />$watch ls Ql file.name
4.用tar命o(h)导出一个文?br />有一个tar格式的DVD文gGLvPro6.4_linux.tarQ因文g非常大(4.7GBQ,如果全部解压比较ȝ(ch)Q可以用下面命o(h)先导出readme.txt看看?br />tar xvf GLvPro6.4_linux.tar readme.txt
q样readme.txt单独被导出?jin)?/p>
5.用tar打包一个目录时只备份其中的几个子目?br />tar cf --exclude home/cjh home/cao
q样home目录下只有cjh和cao两个子目录备份?/p>
到此为止QLinux必学?0个命令已l全部介l完?jin)。Linux的命令行方式功能强大Q如果熟l掌握了(jin)Linux的常用命令,往往只需要通过各种技巧就可以l合构成一条复杂的命o(h)Q从而完成用户Q务。Linuxpȝ中的命o(h)实在是太多了(jin)Q不可能像在MS DOS中把所有的命o(h)?qing)参数都C。Linuxpȝ提供?jin)一些方法,比如可以通过“help”和“man”来查询名o(h)?/p>
passwd
1.作用
passwd命o(h)原来修改账户的登陆密码,使用权限是所有用戗?/p>
2.格式
passwd [选项] 账户名称
3.主要参数
-lQ锁定已l命名的账户名称Q只有具备超U用h限的使用者方可用?br />-uQ解开账户锁定状态,只有具备用户权限的用者方可用?br />-x, --maximum=DAYSQ最大密码用时_(d)天)(j)Q只有具备超U用h限的使用者方可用?br />-n, --minimum=DAYSQ最密码用时_(d)天)(j)Q只有具备超U用h限的使用者方可用?br />-dQ删除用者的密码, 只有具备用户权限的用者方可用?br />-SQ检查指定用者的密码认证U类, 只有具备用户权限的用者方可用?/p>
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命o(h)需要输入旧的密码,然后再输入两ơ新密码?/p>
su
1.作用
su的作用是变更为其它用者的w䆾Q超U用户除外,需要键入该使用者的密码?/p>
2.格式
su [选项]... [-] [USER [ARG]...]
3.主要参数
-f Q?--fastQ不必读启动文gQ如 csh.cshrc {)(j)Q仅用于csh或tcsh两种Shell?br />-l Q?--loginQ加?jin)这个参C后,好像是重新登陆使用者一P大部分环境变量(例如HOME、SHELL和USER{)(j)都是以该使用者(USERQؓ(f)主,q且工作目录也会(x)改变。如果没有指定USERQ缺省情冉|root?br />-mQ?-p Q?-preserve-environmentQ执行su时不改变环境变数?br />-c commandQ变更̎号ؓ(f)USER的用者,q执行指令(commandQ后再变回原来用者?br />USERQ欲变更的用者̎PARG传入新的Shell参数?/p>
4.应用实例
变更账号U用Pq在执行df命o(h)后还原用者?su -c df root
umask
1.作用
umask讄用户文g和目录的文g创徏~省屏蔽|若将此命令放入profile文gQ就可控制该用户后箋所建文件的存取许可。它告诉pȝ在创建文件时不给谁存取许可。用权限是所有用戗?/p>
2.格式
umask [-p] [-S] [mode]
3.参数
QSQ确定当前的umask讄?br />QpQ修改umask 讄?br />[mode]Q修Ҏ(gu)倹{?/p>
4.说明
传统Unix的umask值是022Q这样就可以防止同属于该l的其它用户?qing)别的组的用户修改该用户的文件。既然每个用户都拥有q属于一个自qU有l,那么q种“组保护模式”就不在需要了(jin)。严密的权限讑֮构成?jin)Linux安全的基Q在权限上犯错误是致命的。需要注意的是,umask命o(h)用来讄q程所创徏的文件的d权限Q最保险的值是0077Q即关闭创徏文g的进E以外的所有进E的d权限Q表CZؓ(f)-rw-------。在?.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell? q程的umask权限都可以被正确讑֮?/p>
5.应用实例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先昄当前状态,然后把umask值改?77Q结果只有文件所有者具有读写文件的权限Q其它用户不能访问该文g。这昄是一U非常安全的讄?/p>
chgrp
1.作用
chgrp表示修改一个或多个文g或目录所属的l。用权限是用户?/p>
2.格式
chgrp [选项]... l?文g...
?br />chgrp [选项]... --reference=参考文?文g...
每?lt;文g>的所属组讑֮?lt;l?gt;?/p>
3.参数
-c, --changes Q像 --verboseQ但只在有更Ҏ(gu)才显C结果?br />--dereferenceQ会(x)影响W号链接所指示的对象,而非W号链接本n?br />-h, --no-dereferenceQ会(x)影响W号链接本nQ而非W号链接所指示的目的地(当系l支持更改符号链接的所有者,此选项才有??br />-f, --silent, --quietQ去除大部分的错误信息?br />--reference=参考文Ӟ(x)使用<参考文?gt;的所属组Q而非指定?lt;l?gt;?br />-R, --recursiveQ递归处理所有的文g?qing)子目录?br />-v, --verboseQ处理Q何文仉?x)显CZ息?/p>
4.应用说明
该命令改变指定指定文件所属的用户l。其中group可以是用L(fng)IDQ也可以?etc/group文g中用L(fng)的组名。文件名是以I格分开的要改变属组的文件列表,支持通配W。如果用户不是该文g的属L用户Q则不能改变该文件的l?/p>
5.应用实例
改变/opt/local /book/?qing)其子目录下的所有文件的属组为bookQ命令如下:(x)
$ chgrp - R book /opt/local /book
chmod
1.作用
chmod命o(h)是非帔R要的Q用于改变文件或目录的访问权限,用户可以用它控制文g或目录的讉K权限Q用权限是用户?/p>
2.格式
chmod命o(h)有两U用法。一U是包含字母和操作符表达式的字符讑֮法(相对权限讑֮Q;另一U是包含数字的数字设定法Q绝Ҏ(gu)限设定)(j)?/p>
Q?Q字W设定法
chmod [who] [+ | - | =] [mode] 文g?/p>
◆操作对象who可以是下q字母中的Q一个或它们的组?br />uQ表C用Px件或目录的所有者?br />gQ表C同l用P即与文g属主有相同组ID的所有用戗?br />oQ表C其它用戗?br />aQ表C所有用P它是pȝ默认倹{?/p>
◆操作符?br />+Q添加某个权限?br />-Q取消某个权限?br />=Q赋予给定权限,q取消其它所有权限(如果有的话)(j)?/p>
◆设|mode的权限可用下q字母的Ll合
rQ可诅R?br />wQ可写?br />xQ可执行?br />XQ只有目标文件对某些用户是可执行的或该目标文件是目录时才q加x属性?br />sQ文件执行时把进E的属主或组ID|ؓ(f)该文件的文g属主。方式“uQs”设|文件的用户ID位,“gQs”设|组ID位?br />tQ保存程序的文本C换设备上?br />uQ与文g属主拥有一L(fng)权限?br />gQ与和文件属dl的用户拥有一L(fng)权限?br />oQ与其它用户拥有一L(fng)权限?br />文g名:(x)以空格分开的要改变权限的文件列表,支持通配W?br />一个命令行中可以给出多个权限方式,光用逗号隔开?/p>
Q?Q?数字讑֮?br />数字讑֮法的一般Ş式ؓ(f)Q?chmod [mode] 文g?/p>
数字属性的格式应ؓ(f)3??的八q制敎ͼ光序是(u)(g)(o)文g名,以空格分开的要改变权限的文件列表,支持通配W?/p>
数字表示的权限的含义如下Q?001为所有者的执行权限Q?002为所有者的写权限;0004为所有者的L限;0010为组的执行权限;0020为组的写权限Q?040为组的读权限Q?100为其他h的执行权限;0200为其他h的写权限Q?400为其他h的读权限Q?000为粘贴位|位Q?000表示假如q个文g是可执行文gQ则为组IDZ|位Q否则其中文仉定位|位Q?000表示假如q个文g是可执行文gQ则为用户IDZ|位?/p>
3.实例
如果一个系l管理员写了(jin)一个表?tem)让所有用户填写,那么必须授权用户对这个文件有d权限Q可以用命令:(x)Qchmod 666 tem
上面代码中,q个666数字是如何计出来的呢?0002为所有者的写权限,0004为所有者的L限,0020为组的写权限Q?040为组的读权限Q?0200为其他h的写权限Q?400为其他h的读权限Q这6个数字相加就?66Q注以上数字都是八进制数Q,l果见图1所C?/p>
? 用chmod数字Ҏ(gu)讑֮文g权限
从图1可以看出Qtem文g的权限是-rw-rw-rw-Q即用户对这个文件有d权限?/p>
如果用字W权限设定用下面命令:(x)
Qchmod a =wx tem
chown
1.作用
更改一个或多个文g或目录的属主和属l。用权限是用户?/p>
2.格式
chown [选项] 用户或组 文g
3.主要参数
--dereferenceQ受影响的是W号链接所指示的对象,而非W号链接本n?br />-h, --no-dereferenceQ会(x)影响W号链接本nQ而非W号链接所指示的目的地(当系l支持更改符号链接的所有者,此选项才有??br />--from=目前所有?目前l只当每个文件的所有者和l符合选项所指定的,才会(x)更改所有者和l。其中一个可以省略,q已省略的属性就不需要符合原有的属性?br />-f, --silent, --quietQ去除大部分的错误信息?br />-R, --recursiveQ递归处理所有的文g?qing)子目录?br />-v, --verboseQ处理Q何文仉?x)显CZ息?/p>
4.说明
chown 指定文件的拥有者改为指定的用户或组Q用户可以是用户名或用户IDQ组可以是组名或lIDQ文件是以空格分开的要改变权限的文件列表,支持通配W。系l管理员l常使用chown命o(h)Q在文件拷贝到另一个用L(fng)目录下以后,让用h有用该文g的权限?/p>
5.应用实例
1.把文件shiyan.c的所有者改为wan
$ chown wan shiyan.c
2.把目?hi?qing)其下的所有文件和子目录的属主Ҏ(gu)wanQ属l改成users?br />$ chown - R wan.users /hi
chattr
1.作用
修改ext2和ext3文gpȝ属?attribute)Q用权限超U用戗?/p>
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文g或目?/p>
3.主要参数
QRQ递归处理所有的文g?qing)子目录?br />QVQ详l显CZ改内容,q打印输出?br />Q:(x)失效属性?br />Q:(x)Ȁzd性?br />= Q指定属性?br />AQAtimeQ告诉系l不要修改对q个文g的最后访问时间?br />SQSyncQ一旦应用程序对q个文g执行?jin)写操作Qɾpȝ立刻把修改的l果写到盘?br />aQAppend OnlyQ系l只允许在这个文件之后追加数据,不允怓Q何进E覆盖或截断q个文g。如果目录具有这个属性,pȝ只允许在这个目录下建立和修Ҏ(gu)Ӟ而不允许删除M文g?br />iQImmutableQ系l不允许对这个文件进行Q何的修改。如果目录具有这个属性,那么M的进E只能修改目录之下的文gQ不允许建立和删除文件?br />DQ检查压~文件中的错误?br />dQNo dumpQ在q行文gpȝ备䆾ӞdumpE序忽略这个文件?br />CQCompressQ系l以透明的方式压~这个文件。从q个文gdӞq回的是解压之后的数据;而向q个文g中写入数据时Q数据首先被压羃之后才写入磁盘?br />sQSecure DeleteQ让pȝ在删除这个文件时Q?填充文g所在的区域?br />uQUndeleteQ当一个应用程序请求删除这个文Ӟpȝ?x)保留其数据块以便以后能够恢复删除这个文件?/p>
4.说明
chattr 命o(h)的作用很大,其中一些功能是由Linux内核版本来支持的Q如果Linux内核版本低于2.2Q那么许多功能不能实现。同PD(g)查压~文件中的错误的功能Q需?.5.19以上内核才能支持。另外,通过chattr命o(h)修改属性能够提高系l的安全性,但是它ƈ不适合所有的目录。chattr命o(h)不能保护/?dev?tmp?var目录?/p>
5.应用实例
1.恢复/root目录,卛_目录的所有文?br /># chattr -R +u/root
2.用chattr命o(h)防止pȝ中某个关键文件被修改
在Linux下,有些配置文g(passwd ,fatab)是不允许MZ改的Qؓ(f)?jin)防止被误删除或修改Q可以设定该文g的“不可修改位(immutable)”,命o(h)如下Q?br /># chattr +i /etc/fstab
sudo
1.作用
sudo是一U以限制配置文g中的命o(h)为基Q在有限旉内给用户使用Qƈ且记录到日志中的命o(h)Q权限是所有用戗?/p>
2.格式
sudo [-bhHpV] [-s <shell>] [-u <用户>] [指o(h)]
sudo [-klv]
3.主要参数
QbQ在后台执行命o(h)?br />-hQ显C帮助?br />-HQ将HOME环境变量设ؓ(f)新n份的HOME环境变量?br />-kQ结束密码的有效期,即下ơ将需要输入密码?br />-lQ列出当前用户可以用的命o(h)?br />-pQ改变询问密码的提示W号?br />-s <shell>Q执行指定的Shell?br />-u <用户>Q以指定的用户ؓ(f)新n份,不用时默认为root?br />-vQg长密码有效期5分钟?/p>
4.说明
sudo 命o(h)的配|在/etc/sudoers文g中。当用户使用sudoӞ需要输入口令以验证使用者n份。随后的一D|间内可以使用定义好的命o(h)Q当使用配置文g中没有的命o(h)Ӟ会(x)有报警的记录。sudo是系l管理员用来允许某些用户以rootw䆾q行部分/全部pȝ命o(h)的程序。一个明昄用途是增强?jin)站点的安全性,如果需要每天以用户的n份做一些日常工作,l常执行一些固定的几个只有用户w䆾才能执行的命令,那么用sudo是非帔R合的?/p>
ps
1.作用
ps昄瞬间q程 (process) 的动态,使用权限是所有用者?/p>
2.格式
ps [options] [--help]
3.主要参数
ps的参数非常多, 此出仅列出几个常用的参数?/p>
-AQ列出所有的q程?br />-lQ显C长列表?br />-mQ显C内存信息?br />-wQ显C加宽可以显C多的信息?br />-eQ显C所有进E?br />aQ显C终端上的所有进E?包括其它用户的进E?br />-auQ显C详细的信息?br />-auxQ显C所有包含其它用者的q程?/p>
4.说明
要对q程q行监测和控Ӟ首先要了(jin)解当前进E的情况Q也是需要查看当前进E。ps命o(h)是最基本、也是非常强大的q程查看命o(h)。用该命o(h)可以定有哪些进E正在运行、运行的状态、进E是否结束、进E有没有僵尸、哪些进E占用了(jin)q多的资源等。图2l出?jin)ps-aux命o(h)详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就l合q三个参数详l说明ps命o(h)的作用:(x)ps aux
? ps-aux命o(h)详解
?W?行代码中QUSER表示q程拥有者;PID表示q程标示W;%CPU表示占用的CPU使用率;%MEM占用的物理内存用率QVSZ表示占用的虚拟内存大;RSSE占用的物理内存|TTY为终端的ơ要装置L(fng)?/p>
STAT 表示q程的状态,其中DZ可中断的?rn)止QI/O动作Q;R正在执行中;S?rn)止状态;T暂停执行QZ不存在,但暂时无法消除;W没有_的内存分可分配Q高优先序的q程QN低优先序的进E;L有内存分分配ƈ锁在内存体内 (实时pȝ?I/O)。STARTE开始时间。TIME为执行的旉。COMMAND是所执行的指令?/p>
4.应用实例
在进行系l维护时Q经怼(x)出现内存使用量惊人,而又不知道是哪一个进E占用了(jin)大量q程的情c(din)除?jin)可以用top命o(h)查看内存使用情况之外Q还可以使用下面的命令:(x)
ps aux | sort +5n
who
1.作用
who昄pȝ中有哪些用户登陆pȝQ显C的资料包含?jin)用者ID、用的登陆l端、上U时间、呆滞时间、CPU占用Q以?qing)做了(jin)些什么?使用权限为所有用戗?/p>
2.格式
who - [husfV] [user]
3.主要参数
-hQ不要显C标题列?br />-uQ不要显CZ用者的动作/工作?br />-sQ用简短的格式来显C?br />-fQ不要显CZ用者的上线位置?br />-VQ显C程序版本?/p>
4.说明
该命令主要用于查看当前在U上的用hc(din)如果用h和其它用户徏立即旉信Q比如用talk命o(h)Q那么首先要定的就是该用户实在线?不然 talkq程无法徏立v来。又如,pȝ理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命o(h)。who命o(h)应用h非常单,可以比较准确地掌握用L(fng)情况,所以用非常广泛?/p>
动手l习(fn)
1.使用Linux命o(h)(g)系l入侵?br />安装qMandrake Linux和Red Hat Linux的用户都?x)知道,Linuxpȝ?x)内|三U不同别(标准、高、更高)(j)的防火墙Q当q行?jin)Linux服务器的安装和一些基本的讄后,服务器应该说是比较安全的Q但是也?x)有黑客通过各种Ҏ(gu)利用pȝ理员的疏忽侵入pȝ。如何快速查N客非帔R要。一般来_(d)可以使用命o(h)查询黑客是否入RQ见?1?/p>
? 查询黑客入R现象的命令对应表
举例说明Q如果黑客嗅探网l,那么它必Mɾ|卡接口处于h模式Q用下面命令进行查询:(x)
Qifconfig -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
......
从这个命令的输出中,可以看到上面讲到的这些概c(din)第一行的00:00:E8:A0:25:86是mac地址Q第二行?92.168.1.7是IP地址Q第四行讲的是接收数据状态,q时正在被黑客嗅探。一般而言Q网卡有几种接收数据帧的状态,如Broadcast、Multicast?Promiscuous{。Broadcast是指接收所有类型ؓ(f)q播报文的数据QMulticast是指接收特定的组播报文;Promiscuous 则是通常说的h模式Q是指对报文中的目的g地址不加M(g)查、全部接收的工作模式?/p>
2.限制su命o(h)的滥?br />我们知道Q超U用户在Linux中有最大的权利Q几乎所有黑客都惛_到这个目标。Linux可以增加对切换到用户的限制。用PAM QPluggable Authentication ModulesQ可以禁止除在wheell以外的M人su成rootQ修?etc/pam.d/su文gQ除d蔽标?。?/usr/sbin/usermod G10 bjecadmbjecadmq个账号加入gid?0的组Q就是wheell。命令如下:(x)
/etc/pam.d/su # 使用密码验证Q?br />auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheell用h可以切换到rootQ?br />auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外Q每当用戯图用su命o(h)q入pȝ用户?命o(h)在/usr/adm/sulog文g中写一条信?若该文g记录?jin)大量试囄suq入root的无效操作信?则表明了(jin)可能有h企图破译root口o(h)?/p>
Linux命o(h)有着强大的功能。对于Linuxpȝ理员来_(d)往往只需要通过各种安全命o(h)技巧,l合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系l,Linuxpȝ也不例外?/p>
--
ifconfig
1.作用
ifconfig用于查看和更改网l接口的地址和参敎ͼ包括IP地址、网l掩码、广播地址Q用权限是用户?/p>
2.格式
ifconfig -interface [options] address
3.主要参数
-interfaceQ指定的|络接口名,如eth0和eth1?br />upQ激zL定的|络接口卡?br />downQ关闭指定的|络接口?br />broadcast addressQ设|接口的q播地址?br />pointopointQ启用点对点方式?br />addressQ设|指定接口设备的IP地址?br />netmask addressQ设|接口的子网掩码?/p>
4.应用说明
ifconfig是用来设|和配置|卡的命令行工具。ؓ(f)?jin)手工配|网l,q是一个必L握的命o(h)。用该命o(h)的好处是无须重新启动机器。要赋给eth0接口IP地址207.164.186.2Qƈ且马上激zdQ用下面命令:(x)
#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
该命令的作用是设|网卡eth0的IP地址、网l掩码和|络的本地广播地址。若q行不带M参数的ifconfig命o(h)Q这个命令将昄机器所有激zL口的信息。带有?a”参数的命o(h)则显C所有接口的信息Q包括没有激zȝ接口。注意,用ifconfig命o(h)配置的网l设备参敎ͼ机器重新启动以后会(x)丢失?br />如果要暂停某个网l接口的工作Q可以用down参数Q?br />#ifconfig eth0 down
ip
1.作用
ip是iproute2软g包里面的一个强大的|络配置工具Q它能够替代一些传l的|络理工具Q例如ifconfig、route{,使用权限U用戗几乎所有的Linux发行版本都支持该命o(h)?/p>
2.格式
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
3.主要参数
OPTIONS是修改ip行ؓ(f)或改变其输出的选项。所有的选项都是?字符开_(d)分ؓ(f)ѝ短两种形式。目前,ip支持如表1所C选项?/p>
OBJECT是要理者获取信息的对象。目前ip认识的对象见?所C?/p>
? ip支持的选项
-V,-Version 打印ip的版本ƈ退出?br />-s,-stats,-statistics 输出更ؓ(f)详尽的信息。如果这个选项出现两次或多ơ,则输出的信息更?br />-f,-family q个选项后面接协议种c,包括inet、inet6或linkQ强调用的协议U类。如果没有够的信息告诉ip使用的协议种c,ip׃(x)使用默认值inet或any。link比较Ҏ(gu)Q它表示不涉?qing)Q何网l协议?br />-4 ?family inet的简写?br />-6 ?family inet6的简写?br />-0 ?family link的简写?br />-o,-oneline Ҏ(gu)行记录都使用单行输出Q回行用字符代替。如果需要用wc、grep{工具处理ip的输出,则会(x)用到q个选项?br />-r,-resolve 查询域名解析pȝQ用获得的主机名代替LIP地址
COMMAND 讄针对指定对象执行的操作,它和对象的类型有兟뀂一般情况下Qip支持对象的增?add)、删?delete)和展C?show或list)。有些对象不支持q些操作Q或者有其它的一些命令。对于所有的对象Q用户可以用help命o(h)获得帮助。这个命令会(x)列出q个对象支持的命令和参数的语法。如果没有指定对象的操作命o(h)Qip?x)用默认的命o(h)。一般情况下Q默认命令是listQ如果对象不能列出,׃(x)执行help命o(h)?/p>
ARGUMENTS 是命令的一些参敎ͼ它们倚赖于对象和命o(h)。ip支持两种cd的参敎ͼ(x)flag和parameter。flag׃个关键词l成Qparameter׃个关键词加一个数值组成。ؓ(f)?jin)方便,每个命o(h)都有一个可以忽略的默认参数。例如,参数dev是ip link命o(h)的默认参敎ͼ因此ip link ls eth0{于ip link ls dev eth0。我们将在后面的详细介绍每个命o(h)的用,命o(h)的默认参数将使用default标出?/p>
4.应用实例
dI(yng)P地址192.168.2.2/24到eth0|卡上:(x)
#ip addr add 192.168.1.1/24 dev eth0
丢弃源地址属于192.168.2.0/24|络的所有数据报Q?br />#ip rule add from 192.168.2.0/24 prio 32777 reject
ping
1.作用
ping(g)主机网l接口状态,使用权限是所有用戗?/p>
2.格式
ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址
3.主要参数
-dQ用Socket的SO_DEBUG功能?br />-cQ设|完成要求回应的ơ数?br />-fQ极限检?br />-iQ指定收发信息的间隔U数?br />-IQ网l界面用指定的|络界面送出数据包?br />-lQ前|蝲入,讄在送出要求信息之前Q先行发出的数据包?br />-nQ只输出数倹{?br />-pQ设|填满数据包的范本样式?br />-qQ不昄指o(h)执行q程Q开头和l尾的相关信息除外?br />-rQ忽略普通的Routing TableQ直接将数据包送到q端L上?br />-RQ记录\pE?br />-sQ设|数据包的大?br />-tQ设|存?gu)zL值TTL的大?br />-vQ详l显C指令的执行q程?/p>
ping 命o(h)是用最多的|络指o(h)Q通常我们使用它检网l是否连通,它用ICMP协议。但是有时会(x)有这L(fng)情况Q我们可以浏览器查看一个网,但是却无?ping通,q是因ؓ(f)一些网站处于安全考虑安装?jin)防火墙。另外,也可以在自己计算Z试一试,通过下面的方法ɾpȝ对ping没有反应Q?br /># echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
netstat
1.作用
(g)查整个Linux|络状态?
2.格式
netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]
3.主要参数
-a--allQ显C所有连U中的Socket?br />-AQ列?gu)|络cdq线中的IP相关地址和网l类型?br />-c--continuousQ持l列出网l状态?br />-C--cacheQ显C\由器配置的快取信息?br />-e--extendQ显C网l其它相关信息?br />-F--fibQ显CFIB?br />-g--groupsQ显C多重广播功能群l组员名单?br />-h--helpQ在U帮助?br />-i--interfacesQ显C网l界面信息表单?br />-l--listeningQ显C监控中的服务器的Socket?br />-M--masqueradeQ显CZ装的|络q线?br />-n--numericQ直接用IP地址Q而不通过域名服务器?br />-N--netlink--symbolicQ显C网l硬件外围设备的W号q接名称?br />-o--timersQ显C时器?br />-p--programsQ显C正在用Socket的程序识别码和程序名U?br />-r--routeQ显CRouting Table?br />-s--statisticeQ显C网l工作信息统计表?br />-t--tcpQ显CTCP传输协议的连U状c(din)?br />-u--udpQ显CUDP传输协议的连U状c(din)?br />-v--verboseQ显C指令执行过E?br />-V--versionQ显C版本信息?br />-w--rawQ显CRAW传输协议的连U状c(din)?br />-x--unixQ和指定?A unix”参数相同?br />--ip--inetQ和指定?A inet”参数相同?/p>
4.应用实例
netstat 主要用于Linux察看自n的网l状况,如开启的端口、在为哪些用h务,以及(qing)服务的状态等。此外,它还昄pȝ路由表、网l接口状态等。可以说Q它是一个综合性的|络状态的察看工具。在默认情况下,netstat只显C已建立q接的端口。如果要昄处于监听状态的所有端口,使用-a参数卛_Q?/p>
#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
......
上面昄出,q台L同时提供HTTP、FTP、NFS、MySQL{服务?/p>
telnet
1.作用
telnet表示开启终端机阶段作业Qƈdq端L。telnet是一个Linux命o(h)Q同时也是一个协议(q程登陆协议Q?/p>
2.格式
telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][L名称IP地址<通信端口>]
3.主要参数
-8Q允怋?位字W资料,包括输入与输出?br />-aQ尝试自动登入远端系l?br />-bQ用别名指定远端主机名U?br />-cQ不d用户专属目录里的.telnetrc文g?br />-dQ启动排错模式?br />-eQ设|脱dW?br />-EQo(h)除脱dW?br />-fQ此参数的效果和指定?F”参数相同?br />-FQ用Kerberos V5认证Ӟ加上此参数可把本C机的认证数据上传到远端主机?br />-kQ用Kerberos认证Ӟ加上此参数让q端L采用指定的领域名Q而非该主机的域名?br />-KQ不自动dq端L?br />-lQ指定要dq端L的用户名U?br />-LQ允许输?位字W资料?br />-nQ指定文件记录相关信息?br />-rQ用类似rlogin指o(h)的用L(fng)面?br />-SQ服务类型,讄telnetq线所需的IP TOS信息?br />-xQ假设主机有支持数据加密的功能,׃用它?br />-XQ关闭指定的认证形态?/p>
4.应用说明
用户使用telnet命o(h)可以q行q程dQƈ在远E计机之间q行通信。用户通过|络在远E计机上登录,像d到本地机上执行命令一栗ؓ(f)?jin)通过 telnetd到远E计机上,必须知道q程Z的合法用户名和口令。虽然有些系l确实ؓ(f)q程用户提供d功能Q但Z对安全的考虑Q要限制来宾的操作权限,因此Q这U情况下能用的功能是很的?/p>
telnet只ؓ(f)普通终端提供终端仿真,而不支持X-Window{图形环境。当允许q程用户dӞpȝ通常把这些用h在一个受限制的Shell中,以防pȝ被怀有恶意的或不心(j)的用L(fng)坏。用戯可以使用telnet从远E站点登录到自己的计机上,(g)查电(sh)子邮件、编辑文件和q行E序Q就像在本地d一栗?/p>
ftp
1.作用
ftp命o(h)q行q程文g传输。FTP是ARPANet的标准文件传输协议,该网l就是现今Internet的前w,所以ftp既是协议又是一个命令?/p>
2.格式
ftp [-dignv][L名称IP地址]
3.主要参数
-dQ详l显C指令执行过E,便于排错分析E序执行的情形?br />-iQ关闭互动模式,不询问Q何问题?br />-gQ关闭本C机文件名U支持特D字W的扩充Ҏ(gu)?br />-nQ不使用自动登陆?br />-vQ显C指令执行过E?/p>
4.应用说明
ftp 命o(h)是标准的文g传输协议的用h口,是在TCP/IP|络计算Z间传输文件简单有效的Ҏ(gu)Q它允许用户传输ASCⅡ文件和二进制文件。ؓ(f)?jin)用ftp 来传输文Ӟ用户必须知道q程计算Z的合法用户名和口令。这个用户名/口o(h)的组合用来确认ftp?x)话Qƈ用来定用户对要传输的文件进行什么样的访问。另外,用户需要知道对其进行ftp?x)话的计机名字的IP地址?/p>
用户可以通过使用ftp客户E序Q连接到另一台计机上;可以在目录中上下Ud、列出目录内容;可以把文件从q程计算机机拯到本地机上;q可以把文g从本地机传输到远E系l中。ftp内部命o(h)?2个,下面列出主要几个内部命o(h)Q?/p>
lsQ列?gu)E机的当前目录?br />cdQ在q程Z改变工作目录?br />lcdQ在本地Z改变工作目录?br />closeQ终止当前的ftp?x)话?br />hashQ每ơ传输完数据~冲Z的数据后显CZ?受?br />getQmgetQ:(x)从远E机传送指定文件到本地机?br />putQmputQ:(x)从本地机传送指定文件到q程机?br />quitQ断开与远E机的连接,q出ftp?/p>
route
1.作用
route表示手工产生、修改和查看路由表?/p>
2.格式
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
#route [Qdelete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
3.主要参数
-addQ增加\由?br />-deleteQ删除\由?br />-netQ\由到辄是一个网l,而不是一C机?br />-hostQ\由到辄是一C机?br />-netmask NmQ指定\q子网掩码?br />gwQ指定\q|关?br />[dev]IfQ强q\由链指定接口?/p>
4.应用实例
route命o(h)是用来查看和讄Linuxpȝ的\׃息,以实C其它|络的通信。要实现两个不同的子|之间的通信Q需要一台连接两个网l的路由器,或者同时位于两个网l的|关来实现?/p>
在Linuxpȝ中,讄路由通常是ؓ(f)?jin)解决以下问题?x)该Linuxpȝ在一个局域网中,局域网中有一个网养I能够让机器访问InternetQ那么就需要将q台机器的IP地址讄为Linux机器的默认\由。用下面命令可以增加一个默认\由:(x)
route add 0.0.0.0 192.168.1.1
rlogin
1.作用
rlogin用来q行q程注册?/p>
2.格式
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
3.主要参数
-8Q此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其它的Ҏ(gu)代码。如果不用这个选项Q除非远端的不是l止和启动字W,否则去掉奇偶校验位?br />-EQ停止把M字符当作转义字符。当?8选项一起用时Q它提供一个完全的透明q接?br />-KQ关闭所有的Kerberos认。只有与使用Kerberos 认协议的主接时才用这个选项?br />-LQ允许rlogin?x)话在litout模式中运行。要?jin)解更多信息Q请查阅tty联机帮助?br />-dQ打开与远E主行通信的TCP sockets的socket调试。要?jin)解更多信息Q请查阅setsockopt的联机帮助?br />-eQؓ(f)rlogin?x)话讄转义字符Q默认的转义字符是“~”?br />-kQ请求rlogin获得在指定区域内q程L的Kerberos许可Q而不是获得由krb_realmofhost(3)定的远E主机区域内的远E主机的Kerberos许可?br />-xQؓ(f)所有通过rlogin?x)话传送的数据打开DES加密。这?x)?jing)响响应时间和CPU利用率,但是可以提高安全性?/p>
4.使用说明
如果在网l中的不同系l上都有账号Q或者可以访问别人在另一个系l上的̎P那么要访问别的系l中的̎P首先p注册到系l中Q接着通过|络q程注册到̎h在的pȝ中。rlogin可以q程注册到别的系l中Q它的参数应是一个系l名?br />rcp
1.作用
rcp代表q程文g拯Q用于计机之间文g拯Q用权限是所有用戗?/p>
2.格式
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
3.主要参数
-rQ递归地把源目录中的所有内Ҏ(gu)贝到目的目录中。要使用q个选项Q目的必L一个目录?br />-pQ试图保留源文g的修Ҏ(gu)间和模式Q忽略umask?br />-kQ请求rcp获得在指定区域内的远E主机的Kerberos许可Q而不是获得由krb_relmofhost(3)定的远E主机区域内的远E主机的Kerberos许可?br />-xQؓ(f)传送的所有数据打开DES加密?/p>
finger
1.作用
finger用来查询一CZ的登录̎L(fng)信息Q通常?x)显C用户名、主目录、停滞时间、登录时间、登录Shell{信息,使用权限为所有用戗?/p>
2.格式
finger [选项] [使用者] [用户@L]
3.主要参数
-sQ显C用h册名、实际姓名、终端名U、写状态、停滞时间、登录时间等信息?br />-lQ除?jin)?s选项昄的信息外Q还昄用户ȝ录、登录Shell、邮件状态等信息Q以?qing)用户主目录下?plan?project?forward文g的内宏V?br />-pQ除?jin)不昄?plan文g?project文g以外Q与-l选项相同?/p>
4.应用实例
在计机上用fingerQ?/p>
[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.应用说明
如果要查询远E机上的用户信息Q需要在用户名后面接“@L名”,采用[用户名@L名]的格式,不过要查询的|络L需要运行finger守护q程的支持?/p>
1.作用
mail作用是发送电(sh)子邮Ӟ使用权限是所有用戗此外,mailq是一个电(sh)子邮件程序?/p>
2.格式
mail [-s subject] [-c address] [-b address]
mail -f [mailbox]mail [-u user]
3.主要参数
-b addressQ表CZ息的匿名收信人地址清单?br />-c addressQ表CZ息的抄送(Q收信h地址清单?br />-f [mailbox]Q从收gp指定邮p取邮件?br />-s subjectQ指定输Z息的M行?br />[-u user]Q端口指定优化的收gp取邮件?/p>
nslookup
1.作用
nslookup命o(h)的功能是查询一台机器的IP地址和其对应的域名。用权限所有用戗它通常需要一台域名服务器来提供域名服务。如果用户已l设|好域名服务器,可以用q个命o(h)查看不同L的IP地址对应的域名?/p>
2.格式
nslookup QIP地址/域名Q?/p>
3.应用实例
Q?Q在本地计算Z使用nslookup命o(h)
$ nslookup
Default Server: name.cao.com.cn
Address: 192.168.1.9
>
在符号?gt;”后面输入要查询的IP地址域名Qƈ回R卛_。如果要退?gu)命o(h)Q输入“exit”,q回车即可?/p>
Q?Q用nslookup命o(h)试named
输入下面命o(h)Q?br />nslookup
然后p入交换式nslookup环境。如果named正常启动Q则nslookup?x)显C当前DNS服务器的地址和域名,否则表示named没能正常启动?/p>
下面单介l一些基本的DNS诊断?br />?(g)查正向DNS解析Q在nslookup提示W下输入带域名的L名,如hp712.my.comQnslookup应能昄该主机名对应的IP地址。如果只输入hp712Qnslookup?x)根?etc/resolv.conf的定义,自动dmy.com域名Qƈ回答对应的IP地址?br />◆检查反向DNS解析Q在nslookup提示W下输入某个IP地址Q如192.22.33.20Qnslookup应能回答该IP地址所对应的主机名?br />◆检查MX邮g地址记录在nslookup提示W下输入Q?br />set q=mx
然后输入某个域名Q输入my.com和mail.my.comQnslookup应能够回{对应的邮g服务器地址Q即support.my.com和support2.my.com?/p>
动手l习(fn)
1.危险的网l命?br />互联|的发展使安全成Z个不能忽视的问题Qfinger、ftp、rcp和telnet在本质上都是不安全的Q因为它们在|络上用明文传送口令和数据Q嗅探器可以非常Ҏ(gu)地截莯些口令和数据。而且Q这些服务程序的安全验证方式也是有弱点的Q很Ҏ(gu)受到“中间服务器”方式的d。这里笔者把一些不安全的命令根据危险等U列出,见表3所C?/p>
现在ftp、telnet可以被SSH命o(h)代替l定在端?2上,其连接采用协商方式,使用RSA加密。n份鉴别完成之后,后面的所有流量都使用IDEA q行加密。SSHQSecure ShellQ程序可以通过|络d到远E主机,q执行命令。rcp、rlogin{远E调用命令也逐渐被VNC软g代替?/p>
2.在一张网卡上l定多个IP地址
在Linux下,可以使用ifconfig方便地绑定多个IP地址C张网卡。例如,eth0接口的原有IP地址?92.168.0 .254Q可以执行下面命令:(x)
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地址
首先必须关闭|卡讑֤Q命令如下:(x)
/sbin/ifconfig eth0 down
修改MAC地址Q命令如下:(x)
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新启用|卡Q?br />/sbin/ifconfig eht0 up
q样|卡的MAC地址更改完成了(jin)。每张网卡的MAC地址是惟一Q但不是不能修改的,只要保证在网l中的MAC地址的惟一性就可以?jin)?/p>
4.初步部vIPv6
IPv4 技术在|络发展中vC(jin)巨大的作用,不过随着旉的流逝它无论在网l地址的提供、服务质量、安全性等斚w都越来越力不从心(j)QIPv6gƲ出。Linux 是所有操作系l中最先支持IPv6的,一般LinuxZ2.4内核的Linux发行版本都可以直接用IPv6Q不q主要发行版本没有加载IPv6模块Q可以用命令手工加载,需要超U用L(fng)权限?/p>
(1)加蝲IPv6模块
使用命o(h)(g),其中inet6 addr: fe80::5054:abff:fe34:5b09/64Q就是eth0|卡的IPv6地址?/p>
# modprobe IPv6
Qifconfig
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命o(h)(g)网卡的IPv6地址是否有效
#ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586
和IPv4不一P使用ping6命o(h)时必L定一个网卡界面,否则pȝ不知道将数据包发送到哪个|络讑֤。I表示Interface、eth0是第一个网卡,Qc表示回\Q?表示ping6操作两次。结果见?所C?/p>
? IPv6|络下的ping6命o(h)
(3)使用ip命o(h)在IPv6下ؓ(f)eth0增加一个IP地址
#ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
使用ifconfig命o(h)Q查看网卡是否出现第二个IPv6地址?/p>
Linux|络的主要优Ҏ(gu)能够实现资源和信息的׃nQƈ且用户可以远E访问信息。Linux提供?jin)一l强有力的网l命令来为用h务,q些工具能够帮助用户q行|络讑֮、检查网l状c(din)登录到q程计算Z、传输文件和执行q程命o(h){?/p>
上面介绍?jin)Linux中比较重要的|络命o(h)Q其实Linuxq有许多命o(h)需要学?fn)。Linux|络操作命o(h)的一个特点就是命令参数选项很多Qƈ不要求全部记住,关键在于理解命o(h)的主要用途和学会(x)使用帮助信息?
Linux必学?0个命令:(x)pȝ理相关命o(h)
Linux必学的系l管理命?br />作者:(x)曹元?发文旉Q?004.10.18
对于Linuxpȝ来说Q无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,q是用户{都是文ӞLinuxpȝ理的命令是它正常运行的核心(j)。熟(zhn)了(jin)Linux常用的文件处理命令以后,q一讲介l对pȝ和用戯行管理的命o(h)?/p>
df
1.作用
df命o(h)用来(g)查文件系l的盘I间占用情况Q用权限是所有用戗?/p>
2.格式
df [options]
3.主要参数
QsQ对每个Names参数只给出占用的数据块L?br />QaQ递归地显C指定目录中各文件及(qing)子目录中各文件占用的数据块数。若既不指定QsQ也不指定-aQ则只显CNames中的每一个目录及(qing)其中的各子目录所占的盘块数?br />QkQ以1024字节为单位列出磁盘空间用情c(din)?br />QxQ蟩q在不同文gpȝ上的目录不予l计?br />QlQ计所有的文g大小Q对链接文件则计算多次?br />QiQ显Cinode信息而非块用量?br />QhQ以Ҏ(gu)理解的格式印出文件系l大,例如136KB?54MB?1GB?br />QPQ用POSIX输出格式?br />QTQ显C文件系l类型?/p>
4.说明
df命o(h)被广泛地用来生成文gpȝ的用统计数据,它能昄pȝ中所有的文gpȝ的信息,包括d量、可用的I闲I间、目前的安装点等?/p>
权限用户使用df命o(h)时会(x)发现q样的情况:(x)某个分区的容量超q了(jin)100Q。这是因为LinuxpȝU用户保留了(jin)10Q的I间Q由其单独支配。也是_(d)对于用户而言Q他所见到的硬盘容量将?10Q。这L(fng)安排对于pȝ理而言是有好处的,当硬盘被使用的容量接q?00Q时pȝ理员还可以正常工作?/p>
5.应用实例
Linux支持的文件系l非常多Q包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS{。用df -T命o(h)查看盘I间时还可以得到文gpȝ的信息:(x)
Qdf QT
文gpȝ cd 定w 已用 可用 已用% 挂蝲?br />/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
从上面除?jin)可以看到磁盘空间的定w、用情况外Q分区的文gpȝcd、挂载点{信息也一览无遗?/p>
top
1.作用
top命o(h)用来昄执行中的E序q程Q用权限是所有用戗?/p>
2.格式
top [Q] [d delay] [q] [c] [S] [s] [i] [n]
3.主要参数
dQ指定更新的间隔Q以U计?br />qQ没有Q何gq的更新。如果用者有用户Q则top命o(h)会(x)以最高的优先序执行?br />cQ显CE完整的路径与名U?br />SQ篏U模式,?x)将己完成或消失的子行程的CPU旉累积h?br />sQ安全模式?br />iQ不昄M闲置(Idle)或无?Zombie)的行E?br />nQ显C更新的ơ数Q完成后会(x)退出top?/p>
4.说明
top命o(h)是Linuxpȝ理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它l出的信息?/p>
? top命o(h)的显C?/p>
在图1中,W一行表C的目依次为当前时间、系l启动时间、当前系l登录用h目、^均负载。第二行昄的是所有启动的q程、目前运行的、挂?(Sleeping)的和无用(Zombie)的进E。第三行昄的是目前CPU的用情况,包括pȝ占用的比例、用户用比例、闲|?Idle)比例。第四行昄物理内存的用情况,包括ȝ可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行昄交换分区使用情况Q包括ȝ交换分区、用的、空闲的和用于高速缓存的大小。第六行昄的项目最多,下面列出?jin)详l解释?br />PIDQProcess IDQ:(x)q程标示受?br />USERQ进E所有者的用户名?br />PRQ进E的优先U别?br />NIQ进E的优先U别数倹{?br />VIRTQ进E占用的虚拟内存倹{?br />RESQ进E占用的物理内存倹{?br />SHRQ进E用的׃n内存倹{?br />SQ进E的状态,其中S表示休眠QR表示正在q行QZ表示僉|状态,N表示该进E优先值是负数?br />%CPUQ该q程占用的CPU使用率?br />%MEMQ该q程占用的物理内存和d存的癑ֈ比?br />TIMEQ:(x)该进E启动后占用的ȝCPU旉?br />CommandQ进E启动的启动命o(h)名称Q如果这一行显CZ下,q程?x)有一个完整的命o(h)行?br />top命o(h)使用q程中,q可以用一些交互的命o(h)来完成其它参数的功能。这些命令是通过快捷键启动的?br /><I格>Q立d新?br />PQ根据CPU使用大小q行排序?br />TQ根据时间、篏计时间排序?br />qQ退出top命o(h)?br />mQ切换显C内存信息?br />tQ切换显CE和CPU状态信息?br />cQ切换显C命令名U和完整命o(h)行?br />MQ根据用内存大进行排序?br />WQ将当前讄写入~/.toprc文g中。这是写top配置文g的推荐方法?/p>
可以看到Qtop命o(h)是一个功能十分强大的监控pȝ的工P对于pȝ理员而言其重要。但是,它的~点是会(x)消耗很多系l资源?/p>
5.应用实例
使用top命o(h)可以监视指定用户Q缺省情冉|监视所有用L(fng)q程。如果想查看指定用户的情况,在终端中按“U”键Q然后输入用户名Q系l就?x)切换?f)指定用户的进E运行界面,见图2所C?/p>
? 使用top命o(h)监视指定用户
free
1.作用
free命o(h)用来昄内存的用情况,使用权限是所有用戗?/p>
2.格式
free [Qb|Qk|Qm] [Qo] [Qs delay] [Qt] [QV]
3.主要参数
Qb Qk QmQ分别以字节QKB、MBQؓ(f)单位昄内存使用情况?br />Qs delayQ显C每隔多秒数来昄一ơ内存用情c(din)?br />QtQ显C内存d列?br />QoQ不昄~冲节列?/p>
4.应用实例
free命o(h)是用来查看内存用情늚主要命o(h)。和top命o(h)相比Q它的优Ҏ(gu)使用单,q且只占用很的pȝ资源。通过QS参数可以使用free命o(h)不间断地监视有多内存在使用Q这样可以把它当作一个方便实时监控器?br />Qfree Qb Qs5
使用q个命o(h)后终端会(x)q箋不断地报告内存用情况(以字节ؓ(f)单位Q,?U更Cơ?/p>
quota
1.作用
quota命o(h)用来昄盘使用情况和限制情况,使用权限用户?/p>
2.格式
quota [Qg][Qu][Qv][Qp] 用户?l名
3.参数
QgQ显C用h在组的磁盘用限制?br />QuQ显C用L(fng)盘使用限制?br />QvQ显C没有分配空间的文gpȝ的分配情c(din)?br />QpQ显C简化信息?/p>
4.应用实例
在企业应用中盘配额非常重要Q普通用戯学会(x)看懂自己的磁盘用情c(din)要查询自己的磁盘配额可以用下面命令(下例中用戯̎hcaojh)Q?/p>
Qquota 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号ؓ(f)502的caojh账号Q文件个数设|ؓ(f)500?000个,盘I间限制讄?00MB?00MB。一旦磁盘配额要用完Ӟ需要删除一些垃圾文件或向系l管理员hq加配额?/p>
at
1.作用
at命o(h)用来在指定时L行指定的命o(h)序列?/p>
2.格式
at [QV] [Qq x] [Qf file] [Qm] time
3.主要参数
QVQ显C标准错误输出?br />QqQ许多队列输出?br />QfQ从文g中读取作业?br />QmQ执行完作业后发送电(sh)子邮件到用户?br />timeQ设定作业执行的旉。time格式有严格的要求Q由时、分钟、日期和旉的偏U量l成Q其中日期的格式为MM.DD.YYQMM是分钟,DD是日期,YY是指q䆾。偏U量的格式ؓ(f)旉Q偏U量Q单位是minutes、hours和days?/p>
4.应用实例
Qat Qf data 15:30 +2 days
上面命o(h)表示让系l在两天后的17Q?0执行文gdata中指明的作业?/p>
lp
1.作用
lp是打印文件的命o(h)Q用权限是所有用戗?/p>
2.格式
lp [Qc][Qd][Qm][Qnumber][Qtitle][-p]
3.主要参数
QcQ先拯文g再打印?br />QdQ打印队列文件?br />QmQ打印结束后发送电(sh)子邮件到用户?br />QnumberQ打C数?br />QtitleQ打印标题?br />QpQ设定打印的优先U别Q最高ؓ(f)100?/p>
4.应用实例
Q?Q用lp命o(h)打印多个文g
Qlp 2 3 4
request id is 11 (3 file(s))
其中2??分别是文件名Q“request id is 11 (3 file(s)) ”表C是第11个打印命令,依次打印q三个文件?/p>
Q?Q设定打C先?br />Qlp lp -d LaserJet -p 90 /etc/aliases
通过d?p 90”,规定?jin)打C业的优先Uؓ(f)90。它?yu)在优先U低?0的打C业之前打华ͼ包括没有讄优先U的作业Q缺省优先?0
useradd
1.作用
useradd命o(h)用来建立用户帐号和创建用L(fng)起始目录Q用权限是用户?/p>
2.格式
useradd [Qd home] [Qs shell] [Qc comment] [Qm [Qk template]] [Qf inactive] [Qe expire ] [Qp passwd] [Qr] name
3.主要参数
QcQ加上备注文字,备注文字保存在passwd的备注栏中。
QdQ指定用L(fng)入时的启始目录?br />QDQ变更预讑ր{?br />QeQ指定̎L(fng)有效期限Q缺省表C永久有效?br />QfQ指定在密码q期后多天卛_闭该账号?br />QgQ指定用h属的组?br />QGQ指定用h属的附加组?br />QmQ自动徏立用L(fng)d目录?br />QMQ不要自动徏立用L(fng)d目录?br />QnQ取消徏立以用户名称为名的群l?br />QrQ徏立系l̎受?br />QsQ指定用L(fng)入后所使用的shell?br />QuQ指定用户ID受?/p>
4.说明
useradd可用来徏立用戯̎P它和adduser命o(h)是相同的。̎号徏好之后,再用passwd讑֮账号的密码。用useradd命o(h)所建立的̎P实际上是保存?etc/passwd文本文g中?/p>
5.应用实例
建立一个新用户账户Qƈ讄IDQ?br />Quseradd caojh Qu 544
需要说明的是,讑֮ID值时量要大?00Q以免冲H。因为Linux安装后会(x)建立一些特D用P一??99之间的值留lbin、mailq样的系l̎受?/p>
groupadd
1.作用
groupadd命o(h)用于新l加入系l?/p>
2.格式
groupadd [Qg gid] [Qo]] [Qr] [Qf] groupname
3.主要参数
Qg gidQ指定组ID受?br />QoQ允许组IDP不必惟一?br />QrQ加入组IDP低于499pȝ账号?br />QfQ加入已l有的组Ӟ发展E序退出?/p>
4.应用实例
建立一个新l,q设|组ID加入pȝQ?br />Qgroupadd Qg 344 cjh
此时?etc/passwd文g中生一个组IDQGIDQ是344的项目?/p>
kill
1.作用
kill命o(h)用来中止一个进E?/p>
2.格式
kill [ Qs signal | Qp ] [ Qa ] pid ...
kill Ql [ signal ]
3.参数
QsQ指定发送的信号?br />QpQ模拟发送信受?br />QlQ指定信L(fng)名称列表?br />pidQ要中止q程的ID受?br />SignalQ表CZ受?/p>
4.说明
q程是Linuxpȝ中一个非帔R要的概念。Linux是一个多d的操作系l,pȝ上经常同时运行着多个q程。我们不兛_(j)q些q程I竟是如何分配的Q或者是内核如何理分配旉片的Q所兛_(j)的是如何L制这些进E,让它们能够很好地为用h务?/p>
Linux 操作pȝ包括三种不同cd的进E,每种q程都有自己的特点和属性。交互进E是׃个Shell启动的进E。交互进E既可以在前台运行,也可以在后台q行。批处理q程和终端没有联p,是一个进E序列。监控进E(也称pȝ守护q程Q时Linuxpȝ启动时启动的q程Qƈ在后台运行。例如,httpd是著名的 Apache服务器的监控q程?/p>
kill命o(h)的工作原理是Q向Linuxpȝ的内核发送一个系l操作信号和某个E序的进E标识号Q然后系l内核就可以对进E标识号指定的进E进行操作。比如在top命o(h)中,我们看到pȝq行许多q程Q有时就需要用kill中止某些q程来提高系l资源。在讲解安装和登陆命令时Q曾提到pȝ多个虚拟控制台的作用是当一个程序出错造成pȝ死锁Ӟ可以切换到其它虚拟控制台工作关闭q个E序。此时用的命o(h)是killQ因为kill是大多数Shell内部命o(h)可以直接调用的?/p>
5.应用实例
Q?Q强行中止(l常使用杀掉)(j)一个进E标识号?24的进E:(x)
Qkill Q? 324
Q?Q解除Linuxpȝ的死?br />在Linux 中有时会(x)发生q样一U情况:(x)一个程序崩溃,q且处于死锁的状态。此时一般不用重新启动计机Q只需要中?或者说是关?q个有问题的E序卛_。当 kill处于X-Window界面Ӟ主要的程?除了(jin)崩溃的程序之?一般都已经正常启动?jin)。此时打开一个终端,在那里中止有问题的程序。比如,如果 Mozilla览器程序出C(jin)锁死的情况,可以使用kill命o(h)来中止所有包含有Mozolla览器的E序。首先用top命o(h)查处该程序的PIDQ然后用kill命o(h)停止q个E序Q?br />Qkill QSIGKILL XXX
其中QXXX是包含有Mozolla览器的E序的进E标识号?/p>
Q?Q用命令回收内?br />我们知道内存对于pȝ是非帔R要的Q回收内存可以提高系l资源。kill命o(h)可以?qing)时C止一些“越轨”的E序或很长时间没有相应的E序。例如,使用top命o(h)发现一个无?(Zombie) 的进E,此时可以使用下面命o(h)Q?br />Qkill Q? XXX
其中QXXX是无用的q程标识受?/p>
然后使用下面命o(h)Q?br />Qfree
此时?x)发现可用内存容量增加?jin)?/p>
Q?Qkillall命o(h)
Linux下还提供?jin)一个killall命o(h)Q可以直接用进E的名字而不是进E标识号Q例如:(x)
Q?killall -HUP inetd
crontab
1.作用
使用crontab命o(h)可以修改crontab配置文gQ然后该配置由cron公用E序在适当的时间执行,该命令用权限是所有用戗?/p>
2.格式
crontab [ Qu user ] 文g
crontab [ Qu user ] { Ql | Qr | Qe }
3.主要参数
QeQ执行文字编辑器来设定时E表Q内定的文字~辑器是vi?br />QrQ删除目前的时程表?br />QlQ列出目前的时程表?/p>
crontab 文g的格式ؓ(f)“M H D m d cmd”。其中,M代表分钟Q??9Q,H代表时Q??3Q,D代表天(1?1Q,m代表月(1?2Q,d代表一星期内的天(0?Q?为星期天Q。cmd表示要运行的E序Q它被送入sh执行Q这个Shell只有USER、HOME、SHELL三个环境变量?/p>
4.说明
和at命o(h)相比Qcrontab命o(h)适合完成固定周期的Q务?/p>
5.应用实例
讄一个定时、定期的pȝ提示Q?br />[cao @www cao]#crontab Qe
此时pȝ?x)打开一个vi~辑器?/p>
如果输入以下内容Q?5 17 * * 5 wall "Tomorrow is Saturday I will go CS"Q然后存盘退出。这时在/var/spool/cron/目录下会(x)生一个cao的文Ӟ内容如下Q?/p>
# DO NOT EDIT THIS FILE Q?edit the master and reinstall.
# (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004)
# (Cron version Q- $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 "
q样每个星期?7Q?5pȝ׃(x)弹出一个终端,提醒星期六可以打打CS?jin)!昄l果见图3所C?/p>
? 一个定时、定期的pȝ提示
动手l习(fn)
1.联合使用kill和top命o(h)观察pȝ性能的变?/p>
首先启动一个终端运行top命o(h)Q然后再启动一个终端用kill命o(h)Q见?所C?/p>
? 观察kill命o(h)对topl端的媄(jing)?/p>
q时利用上面介绍的kill命o(h)来中止一些程序:(x)
Qkill SIGKILL XXX
然后再看top命o(h)l端的变化,包括内存定w、CPU使用率、系l负载等。注意,有些q程是不能中止的Q不q学?fn)Linux命o(h)时可以试试,看看pȝ有什么反应?/p>
2.使用at和halt命o(h)定时x
首先讑֮x旉?7:35Q输入下面代码:(x)
Qat 17:35
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at>halt `-i Qp
at> <EOT>
job 6 at 2004Q?1Q?1 17:35
此时实际上就已经q入Linuxpȝ的ShellQƈ且编写一个最单程序:(x)halt Qi Qp。上面Shell中的文本l束W号表示按“CtrlQD”组合键关闭命o(h)Q提交Q务退出Shell。“Job 6 at 2004Q?1Q?1 17:35”表C系l接受第6个at命o(h)Q在?004Q?1Q?1 17:35”时执行命o(h)Q先把所有网l相关的装置停止Q关闭系l后关闭甉|?/p>
3.用crontab命o(h)实现每天定时的病毒扫?br />前面已经介绍?jin)一个简单的crontab命o(h)操作Q这里看一些更重要的操作?/p>
Q?Q徏立一个文Ӟ文g名称自己讑֮Q假设ؓ(f)caoprojectQ?br />Qcrontab Qe
Q?Q文件内容如下:(x)
05 09 * * * antivir
用vi~辑后存盘退出。antivir是一个查杀Linux病毒的YӞ当然需要时先安装在pȝ中?/p>
Q?Q用crontab命o(h)dCQ务列表中Q?br />Qcrontab caoproject
q样pȝ内所有用户在每天??5分会(x)自动q行病毒扫描?/p>
4.用kill使修改的配置文g马上生效
Windows用户一般都知道Q重要配|文件修改后往往都要重新启动计算机才能修改生效。而Linux׃采用?jin)模块化设计Q可以自己根据需要实时设定服务。这里以|络服务inetdZ介绍一些操作技巧?/p>
inetd 是一个监听守护进E,监听与提供互联网服务q程Q如rlogin、telnet、ftp、rshQ进行连接的要求Qƈ扩展所需的服务进E。默认情况下Qinetd监听的这些daemon均列?etc /inetd.conf文g中。编?etc/inetd.conf文gQ可以改变inetd启动服务器守护进E的选项Q然后驱使inetd?SIGHUPQsignal 1Q向当前的inetdq程发送信P使inetd重读该文件。这一q程由kill命o(h)来实现?br />用vi或其它编辑器修改inetd.conf后,首先使用下面命o(h)Q?br />Qps -ef |grep inetd
上面代码表明查询inetd.conf的进E号(PID)Q这里假设是1426Q然后用下面命令:(x)
Q?kill -1426 inetd
q样配置文gq效了(jin)?/p>
q一讲介l的pȝ理命o(h)都是比较重要的,特别是crontab命o(h)和quota命o(h)使用h?x)有一定难度,需要多做一些练?fn)。另外,使用kill命o(h)要注意“-9“这个参敎ͼl习(fn)时最好不要运行一些重要的E序?/p>
1.作用 件内容判断文件类型,使用权限是所有用戗?/p>
2.格式
file通过探测?/p>
file [options] 文g?/p>
3.[options]主要参数
-vQ在标准输出后显C版本信息,q且退出?/p>
-zQ探压~过的文件类型?/p>
-LQ允许符合连接?/p>
-f nameQ从文gnamefile中读取要分析的文件名列表?/p>
4.单说?/p>
使用file命o(h)可以知道某个文gI竟是二q制QELF格式Q的可执行文? q是Shell Script文gQ或者是其它的什么格式。file能识别的文gcd有目录、Shell脚本、英文文本、二q制可执行文件、C语言源文件、文本文件、DOS的可执行文g?/p>
5.应用实例
如果我们看到一个没有后~的文件grapQ可以用下面命令:(x)
$ file grap
grapQ?English text
此时pȝ昄q是一个英文文本文件。需要说明的是,file命o(h)不能探测包括囑Ş、音频、视频等多媒体文件类型?/p>
mkdir
1.作用
mkdir命o(h)的作用是建立名称为dirname的子目录Q与MS DOS下的md命o(h)cMQ它的用权限是所有用戗?/p>
2.格式
mkdir [options] 目录?/p>
3.[options]主要参数
Qm, Q-mode=模式Q设定权?lt;模式>Q与chmodcM?/p>
Qp, Q-parentsQ需要时创徏上层目录Q如果目录早已存在,则不当作错误?/p>
Qv, Q-verboseQ每ơ创建新目录都显CZ息?/p>
Q-versionQ显C版本信息后d?/p>
4.应用实例
在进行目录创建时可以讄目录的权限,此时使用的参数是“-m”。假设要创徏的目录名是“tsk”,让所有用户都有rwx(卌、写、执行的权限)Q那么可以用以下命令:(x)
$ mkdir Qm 777 tsk
grep
1.作用
grep命o(h)可以指定文g中搜索特定的内容Qƈ含有这些内容的行标准输出。grep全称是Global Regular Expression PrintQ表C全局正则表达式版本,它的使用权限是所有用戗?/p>
2.格式
grep [options]
3.主要参数
[options]主要参数Q?/p>
QcQ只输出匚w行的计数?/p>
QIQ不区分大小写(只适用于单字符Q?/p>
QhQ查询多文g时不昄文g名?/p>
QlQ查询多文g时只输出包含匚w字符的文件名?/p>
QnQ显C匹配行?qing)行受?/p>
QsQ不昄不存在或无匹配文本的错误信息?/p>
QvQ显CZ包含匚w文本的所有行?/p>
pattern正则表达式主要参敎ͼ(x)
\Q忽略正则表辑ּ中特D字W的原有含义?/p>
^Q匹配正则表辑ּ的开始行?/p>
$: 匚w正则表达式的l束行?/p>
\<Q从匚w正则表达式的行开始?/p>
\>Q到匚w正则表达式的行结束?/p>
[ ]Q单个字W,如[A]即AW合要求 ?/p>
[ - ]Q范_(d)如[A-Z]Q即A、B、C一直到Z都符合要??/p>
。:(x)所有的单个字符?/p>
* Q有字符Q长度可以ؓ(f)0?/p>
正则表达式是Linux/Unixpȝ中非帔R要的概念。正则表辑ּQ也UCؓ(f)“regex”或“regexp”)(j)是一个可以描qCcdW串的模式(PatternQ。如果一个字W串可以用某个正则表辑ּ来描qͼ我们pq个字符和该正则表达式匹配(MatchQ。这和DOS中用户可以用通配W??”代表Q意字W类伹{在Linuxpȝ上,正则表达式通常被用来查找文本的模式Q以?qing)对文本执行“搜索-替换”操作和其它功能?/p>
4.应用实例
查询DNS服务是日常工作之一Q这意味着要维护覆盖不同网l的大量IP地址。有时IP地址?x)超q?000个。如果要查看nnn.nnn|络地址Q但是却忘了(jin)W二部分中的其余部分Q只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址Q用[0Q? ]\{3 \}\.[0Q?\{3\}\。含义是L数字出现3ơ,后跟句点Q接着是Q意数字出?ơ,后跟句点?/p>
$grep '[0Q? ]\{3 \}\.[0Q?\{3\}\' ipfile
补充说明Qgrep家族q包括fgrep和egrep。fgrep是fix grepQ允许查扑֭W串而不是一个模式;egrep是扩展grepQ支持基本及(qing)扩展的正则表辑ּQ但不支持\q模式范围的应用及(qing)与之相对应的一些更加规范的模式?/p>
dd
1.作用
dd命o(h)用来复制文gQƈҎ(gu)参数数据{换和格式化?/p>
2.格式
dd [options]
3.[opitions]主要参数
bs=字节Q强q?ibs=<字节>?qing)obs=<字节>?/p>
cbs=字节Q每ơ{换指定的<字节>?/p>
conv=关键字:(x)Ҏ(gu)以逗号分隔的关键字表示的方式来转换文g?/p>
count=块数目:(x)只复制指?lt;块数?gt;的输入数据?/p>
ibs=字节Q每ơ读取指定的<字节>?/p>
if=文gQ读?lt;文g>内容Q而非标准输入的数据?/p>
obs=字节Q每ơ写入指定的<字节>?/p>
of=文gQ将数据写入<文g>Q而不在标准输出显C?/p>
seek=块数目:(x)先略q以obs为单位的指定<块数?gt;的输出数据?/p>
skip=块数目:(x)先略q以ibs为单位的指定<块数?gt;的输入数据?/p>
4.应用实例
dd命o(h)常常用来制作Linux启动盘。先找一个可引导内核Qo(h)它的根设备指向正的根分区,然后使用dd命o(h)其写入软盘Q?/p>
$ rdev vmlinuz /dev/hda
$dd ifQvmlinuz ofQ?dev/fd0
上面代码说明Q用rdev命o(h)可引导内核vmlinuz中的根设备指?dev/hdaQ请把“hda”换成自q根分区,接下来用dd命o(h)该内核写入软盘?br />find
1.作用
find命o(h)的作用是在目录中搜烦(ch)文gQ它的用权限是所有用戗?/p>
2.格式
find [path][options][expression]
path指定目录路径Q系l从q里开始沿着目录?wi)向下查找文件。它是一个\径列表,怺用空格分,如果不写pathQ那么默认ؓ(f)当前目录?/p>
3.主要参数
[options]参数Q?/p>
QdepthQ用深度别的查找q程方式Q在某层指定目录中优先查找文件内宏V?/p>
Qmaxdepth levelsQ表C多查扑ֈ开始目录的Wlevel层子目录。level是一个非负数Q如果level?的话表示仅在当前目录中查找?/p>
Qmindepth levelsQ表C查扑ֈ开始目录的Wlevel层子目录?/p>
QmountQ不在其它文件系l(如Msdos、Vfat{)(j)的目录和文g中查找?/p>
QversionQ打印版本?/p>
[expression]是匹配表辑ּQ是find命o(h)接受的表辑ּQfind命o(h)的所有操作都是针对表辑ּ的。它的参数非常多Q这里只介绍一些常用的参数?/p>
—nameQ支持统配符*??/p>
Qatime nQ搜索在q去n天读取过的文件?/p>
Qctime nQ搜索在q去n天修改过的文件?/p>
Qgroup grpoupnameQ搜索所有组为grpoupname的文件?/p>
Quser 用户名:(x)搜烦(ch)所有文件属Mؓ(f)用户名(ID或名Uͼ(j)的文件?/p>
Qsize nQ搜索文件大是n个block的文件?/p>
QprintQ输出搜索结果,q且打印?/p>
4.应用技?/p>
find命o(h)查找文g的几U方法:(x)
Q?Q根据文件名查找
例如Q我们想要查找一个文件名是lilo.conf的文Ӟ可以使用如下命o(h)Q?/p>
find / Qname lilo.conf
find命o(h)后的?”表C搜索整个硬盘?/p>
Q?Q快速查找文?/p>
Ҏ(gu)文g名查找文件会(x)遇到一个实际问题,是要花费相当长的一D|_(d)特别是大型Linux文gpȝ和大定w盘文g攑֜很深的子目录中时。如果我们知道了(jin)q个文g存放在某个目录中Q那么只要在q个目录中往下寻扑ְ能节省很多时间。比如smb.conf文gQ从它的文g后缀?conf”可以判断这是一个配|文Ӟ那么它应该在/etc目录内,此时可以使用下面命o(h)Q?/p>
find /etc Qname smb.conf
q样Q用“快速查找文件”方式可以羃短时间?/p>
Q?Q根据部分文件名查找Ҏ(gu)
有时我们知道只某个文件包含有abvdq?个字Q那么要查找pȝ中所有包含有q?个字W的文g可以输入下面命o(h)Q?/p>
find / Qname '*abvd*'
输入q个命o(h)以后QLinuxpȝ?x)将?目录中查找所有的包含有abvdq?个字W的文gQ其?是通配W)(j)Q比如abvdrmyz{符合条件的文g都能昄出来?/p>
(4) 使用混合查找方式查找文g
find命o(h)可以使用混合查找的方法,例如Q我们想?etc目录中查扑֤?00000字节Qƈ且在24时内修改的某个文gQ则可以使用-and (?把两个查扑֏数链接v来组合成一个合的查找方式?/p>
find /etc -size +500000c -and -mtime +1
mv
1.作用
mv命o(h)用来为文件或目录改名Q或者将文g׃个目录移入另一个目录中Q它的用权限是所有用戗该命o(h)如同DOS命o(h)中的ren和move的组合?/p>
2.格式
mv[options] 源文件或目录 目标文g或目?/p>
3.[options]主要参数
QiQ交互方式操作。如果mv操作导致对已存在的目标文g的覆盖,此时pȝ询问是否重写Q要求用户回{“y(c)”或“n”,q样可以避免误覆盖文件?/p>
QfQ禁止交互操作。mv操作要覆盖某个已有的目标文g时不lQ何指C,指定此参数后i参数不再v作用?/p>
4.应用实例
Q?Q将/usr/cbu中的所有文件移到当前目录(用?”表C)(j)中:(x)
$ mv /usr/cbu/ * .
Q?Q将文gcjh.txt重命名ؓ(f)wjz.txtQ?/p>
$ mv cjh.txt wjz.txt
ls
1.作用
ls命o(h)用于昄目录内容Q类似DOS下的dir命o(h)Q它的用权限是所有用戗?/p>
2.格式
ls [options][filename]
3.options主要参数
Qa, Q-allQ不隐藏M以??字符开始的目?/p>
QA, Q-almostQallQ列出除?jin)?. ”及(qing) ?. ”以外的M目?/p>
Q-authorQ印出每个文件著作者?/p>
Qb, Q-escapeQ以八进制溢出序列表CZ可打印的字符?/p>
Q-blockQsize=大小Q块以指?lt;大小>的字节ؓ(f)单位?/p>
QB, Q-ignoreQbackupsQ不列出M?~ 字符l束的项目?/p>
QfQ不q行排序Q-aU参数生效Q-lst参数失效?/p>
QF, Q-classifyQ加上文件类型的指示W号 (*/=@| 其中一??/p>
QgQlike Ql, but do not list owner?/p>
QG, Q-noQgroupQinhibit display of group information?/p>
Qi, Q-inodeQ列出每个文件的inode受?/p>
QI, Q-ignore=样式Q不印出MW合Shell万用字符<样式>的项目?/p>
QkQ即Q-blockQsize=1K?/p>
QlQ用较长格式列Z息?/p>
QL, Q-dereferenceQ当昄W号链接的文件信息时Q显C符号链接所指示的对象,而ƈ非符号链接本w的信息?/p>
QmQ所有项目以逗号分隔Qƈ填满整行行宽?/p>
Qn, Q-numericQuidQgidQ类|lQ但列出UID?qing)GID受?/p>
QN, Q-literalQ列出未l处理的目名称Q例如不特别处理控制字符?/p>
Qp, Q-fileQtypeQ加上文件类型的指示W号 (/=@| 其中一??/p>
QQ, Q-quoteQnameQ将目名称括上双引受?/p>
Qr, Q-reverseQ依相反ơ序排列?/p>
QR, Q-recursiveQ同时列出所有子目录层?/p>
Qs, Q-sizeQ以块大ؓ(f)序?/p>
4.应用举例
ls 命o(h)是Linuxpȝ使用频率最多的命o(h)Q它的参C是Linux命o(h)中最多的。用ls命o(h)时会(x)有几U不同的颜色Q其中蓝色表C是目录Q绿色表C是可执行文ӞU色表示是压~文Ӟ蓝色表C是链接文gQ加_的黑色表示W号链接Q灰色表C是其它格式文g。ls最怋用的是ls- lQ见?所C?/p>
? 使用ls-l命o(h)
文gcd开头是?0个字W构成的字符丌Ӏ其中第一个字W表C文件类型,它可以是下述cd之一Q-Q普通文Ӟ(j)、dQ目录)(j)、lQ符号链接)(j)、bQ块讑֤文gQ、cQ字W设备文Ӟ(j)。后面的9个字W表C文件的讉K权限Q分?l,每组3位。第一l表C文件属ȝ权限Q第二组表示同组用户的权限,W三l表C其他用L(fng)权限。每一l的三个字符分别表示Ҏ(gu)件的读(rQ、写QwQ和执行权限QxQ。对于目录,表示q入权限。s表示当文件被执行Ӟ把该文g的UID 或GID赋予执行q程的UIDQ用户IDQ或GIDQ组 IDQ。t表示讄标志位(留在内存Q不被换出)(j)。如果该文g是目录,那么在该目录中的文g只能被超U用戗目录拥有者或文g属主删除。如果它是可执行文gQ那么在该文件执行后Q指向其正文D늚指针仍留在内存。这样再ơ执行它Ӟpȝp更快地装入该文g。接着昄的是文g大小、生成时间、文件或命o(h)名称?br />diff
1.作用
diff命o(h)用于两个文g之间的比较,q指Z者的不同Q它的用权限是所有用戗?/p>
2.格式
diff [options] 源文?目标文g
3.[options]主要参数
-aQ将所有文件当作文本文件来处理?/p>
-bQ忽略空格造成的不同?/p>
-BQ忽略空行造成的不同?/p>
-cQ用纲要输出格式?/p>
-HQ利用试探法加速对大文件的搜烦(ch)?/p>
-IQ忽略大写的变化?/p>
-n --rcsQ输出RCS格式?/p>
cmp
1.作用
cmpQ“compare”的~写Q命令用来简要指Z个文件是否存在差异,它的使用权限是所有用戗?/p>
2.格式
cmp[options] 文g?/p>
3.[options]主要参数
-l: 字节以十进制的方式输出Qƈ方便两个文件中不同的以八进制的方式输出?/p>
cat
1.作用
catQ“concatenate”的~写Q命令用于连接ƈ昄指定的一个和多个文g的有关信息,它的使用权限是所有用戗?/p>
2.格式
cat [options] 文g1 文g2…?/p>
3.[options]主要参数
QnQ由W一行开始对所有输出的行数~号?/p>
QbQ和Qn怼Q只不过对于I白行不~号?/p>
QsQ当遇到有连l两行以上的I白行时Q就代换Z行的I白行?/p>
4.应用举例
Q?Qcat命o(h)一个最单的用处是显C文本文件的内容。例如,我们惛_命o(h)行看一下README文g的内容,可以使用命o(h)Q?/p>
$ cat README
Q?Q有旉要将几个文g处理成一个文Ӟq将q种处理的结果保存到一个单独的输出文g。cat命o(h)在其输入上接受一个或多个文gQƈ它们作Z个单独的文g打印到它的输出。例如,把README和INSTALL的文件内容加上行PI白行不加)(j)之后Q将内容附加C个新文本文gFile1 中:(x)
$ cat README INSTALL File1
Q?Qcatq有一个重要的功能是可以对行q行~号Q见?所C。这U功能对于程序文档的~制Q以?qing)法律和U学文档的编制很方便Q打印在左边的行号得参考文档的某一部分变得Ҏ(gu)Q这些在~程、科学研I、业务报告甚x立法工作中都是非帔R要的?/p>
? 使用cat命o(h)/etc/named.conf文gq行~号
对行q行~号功能?bQ只能对非空白行q行~号Q和-nQ可以对所有行q行~号Q两个参敎ͼ(x)
$ cat -b /etc/named.conf
ln
1.作用
ln命o(h)用来在文件之间创建链接,它的使用权限是所有用戗?/p>
2.格式
ln [options] 源文?[链接名]
3.参数
QfQ链l时先将源文件删除?/p>
QdQ允许系l管理者硬铄自己的目录?/p>
QsQ进行Y铄(Symbolic Link)?/p>
QbQ将在链l时?x)被覆盖或删除的文gq行备䆾?/p>
链接有两U,一U被UCؓ(f)链接(Hard LinkQ,另一U被UCؓ(f)W号链接QSymbolic LinkQ。默认情况下Qln命o(h)产生链接?/p>
连接指通过索引节点来进行的q接。在Linux的文件系l中Q保存在盘分区中的文g不管是什么类型都l它分配一个编PUCؓ(f)索引节点?Inode Index)。在Linux中,多个文g名指向同一索引节点是存在的。一般这U连接就是硬q接。硬q接的作用是允许一个文件拥有多个有效\径名Q这L(fng)户就可以建立连接到重要文gQ以防止“误删”的功能。其原因如上所qͼ因ؓ(f)对应该目录的索引节点有一个以上的q接。只删除一个连接ƈ不媄(jing)响烦(ch)引节Ҏ(gu)w和其它的连接,只有当最后一个连接被删除后,文g的数据块?qing)目录的q接才会(x)被释放。也是_(d)文g才会(x)被真正删除?/p>
与硬q接相对应,Lnuxpȝ中还存在另一U连接,UCؓ(f)W号q接QSymbilc LinkQ,也叫软连接。Y链接文g有点cM于Windows的快h式。它实际上是Ҏ(gu)文g的一U。在W号q接中,文g实际上是一个文本文Ӟ其中包含的有另一文g的位|信息?/p>
动手联系
上面我们介绍?jin)Linux文g处理命o(h)Q下面介l几个实例,大家可以动手l习(fn)一下刚才讲q的命o(h)?/p>
1.利用W号链接快速访问关键目?/p>
W号链接是一个非常实用的功能。假设有一些目录或文g需要频J用,但由于Linux的文件和目录l构{原因,q个文g或目录在很深的子目录中。比如, Apache Web服务器文档位于系l的/usr/local/httpd/htdocs中,q且不想每次都要从主目录q入q样一个长的\径之?实际上,q个路径也非怸Ҏ(gu)记忆)?/p>
Z(jin)解决q个问题Q可以在ȝ录中创徏一个符号链接,q样在需要进入该目录Ӟ只需q入q个链接卛_?/p>
Z(jin)能方便地q入Web服务?/usr/local/httpd/htdocs)文档所在的目录Q在ȝ录下可以使用以下命o(h)Q?/p>
$ ln -s /usr/local/httpd/htdocs gg
q样每次q入gg目录可讉KWeb服务器的文档Q以后如果不再访问Web服务器的文档Ӟ删除gg卛_Q而真正的Web服务器的文档q没有删除?/p>
2.使用dd命o(h)init.rd格式的root.ram内容导入内存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命o(h)pȝ调用
grep是Linux/Unix中用最q泛的命令之一Q许多Linuxpȝ内部都可以调用它?/p>
(1)如果要查询目录列表中的目录,Ҏ(gu)如下Q?/p>
$ ls -l | grep '∧d'
(2)如果在一个目录中查询不包含目录的所有文ӞҎ(gu)如下Q?/p>
$ ls -l | grep '∧[∧d]'
(3)用find命o(h)调用grepQ如所有C源代码中的“Chinput”,Ҏ(gu)如下Q?/p>
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
转自ChinaUnix
不同Linux发行版的命o(h)数量不一P但Linux发行版本最的命o(h)也有200多个。这里笔者把比较重要和用频率最多的命o(h)Q按照它们在pȝ中的作用分成下面六个部分一一介绍?/p>
?安装和登录命令:(x)login、shutdown、halt、reboot、install、mount、umount、chsh、exit、lastQ?/p>
?文g处理命o(h)Qfile、mkdir、grep、dd、find、mv、ls、diff、cat、lnQ?/p>
?pȝ理相关命o(h)Qdf、top、free、quota、at、lp、adduser、groupadd、kill、crontabQ?/p>
?|络操作命o(h)Qifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail?nslookupQ?/p>
?pȝ安全相关命o(h)Qpasswd、su、umask、chgrp、chmod、chown、chattr、sudo ps、whoQ?/p>
?其它命o(h)Qtar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode?/p>
本文以Mandrake Linux 9.1(Kenrel 2.4.21)ZQ介lLinux下的安装和登录命令?/p>
login
1.作用
login的作用是dpȝQ它的用权限是所有用戗?/p>
2.格式
login [name][Qp ][Qh L名称]
3.主要参数
Qp:通知login保持现在的环境参数?/p>
Qh:用来向远E登录的之间传输用户名?/p>
如果选择用命令行模式dLinux的话Q那么看到的W一个Linux命o(h)是loginQ?/p>
一般界面是q样的:(x)
Manddrake Linux release 9.1(Bamboo) for i586
renrel 2.4.21Q?.13mdk on i686 / tty1
localhost login:root
password:
上面代码中,W一行是Linux发行版本PW二行是内核版本号和d的虚拟控制台Q我们在W三行输入登录名Q按“Enter”键在Password后输入̎户密码,卛_dpȝ。出于安全考虑Q输入̎户密码时字符不会(x)在屏q上回显Q光标也不移动?/p>
d后会(x)看到下面q个界面Q以用户ZQ:(x)
[root@localhost root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面昄的是d星期、月、日、时间和使用的虚拟控制台?/p>
4.应用技?/p>
Linux是一个真正的多用h作系l,可以同时接受多个用户dQ还允许一个用戯行多ơ登录。这是因为Linux和许多版本的Unix一P提供?jin)虚拟控制台的访问方式,允许用户在同一旉从控制台Q系l的控制台是与系l直接相q的监视器和键盘Q进行多ơ登录。每个虚拟控制台可以看作是一个独立的工作站,工作C间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实玎ͼ通常使用F1-F6 ?/p>
例如Q用L(fng)录后Q按一下“Alt+F2”键Q用户就可以看到上面出现的“login:”提C符Q说明用L(fng)C(jin)W二个虚拟控制台。然后只需按“Alt+ F1”键Q就可以回到W一个虚拟控制台。一个新安装的Linuxpȝ允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是Q当一个程序出错造成pȝ死锁Ӟ可以切换到其它虚拟控制台工作Q关闭这个程序?/p>
shutdown
1.作用
shutdown命o(h)的作用是关闭计算机,它的使用权限是超U用戗?/p>
2.格式
shutdown [Qh][Qi][Qk][Qm][Qt]
3.重要参数
QtQ在改变到其它运行别之前,告诉initE序多久以后x?/p>
QkQƈ不真正关机,只是送警告信L(fng)每位d者?/p>
QhQ关机后关闭甉|?/p>
QcQcancel current process取消目前正在执行的关机程序。所以这个选项当然没有旉参数Q但是可以输入一个用来解释的讯息Q而这信息会(x)送到每位使用者?/p>
QFQ在重启计算机时fsck?/p>
QtimeQ设定关机前的时间?/p>
Qm: 系l改为单用户模式?/p>
QiQ关机时昄pȝ信息?/p>
4.命o(h)说明
shutdown命o(h)可以安全地将pȝx。有些用户会(x)使用直接断掉甉|的方式来关闭LinuxpȝQ这是十分危险的。因为Linux与Windows不同Q其后台q行着许多q程Q所以强制关机可能会(x)Dq程的数据丢失,使系l处于不E_的状态,甚至在有的系l中?x)损坏硬件设备(盘Q。在pȝx前?shutdown命o(h)Q系l管理员?x)通知所有登录的用户pȝ要关闭Qƈ且login指o(h)?x)被ȝQ即新的用户不能再登录?/p>
halt
1.作用
halt命o(h)的作用是关闭pȝQ它的用权限是用户?/p>
2.格式
halt [Qn] [Qw] [Qd] [Qf] [Qi] [Qp]
3.主要参数说明
QnQ防止syncpȝ调用Q它用在用fsck修补根分Z后,以阻止内核用老版本的块覆盖修补过的超U块?/p>
QwQƈ不是真正的重启或x,只是写wtmpQ?var/log/wtmpQ纪录?/p>
QfQ没有调用shutdownQ而强制关机或重启?/p>
QiQ关机(或重启)(j)前,x所有的|络接口?/p>
QfQ强q关机,不呼叫shutdownq个指o(h)?/p>
Qp: 当关机的时候顺便做关闭甉|的动作?/p>
QdQ关闭系l,但不留下U录。
4.命o(h)说明
halt是调用shutdown Qh。halt执行Ӟ杀d用进E,执行sync(存于buffer中的资料强制写入盘?pȝ调用Q文件系l写操作完成后就?x)停止内核。若pȝ的运行别ؓ(f)0?Q则关闭pȝQ否则以shutdown指o(h)Q加上-h参数Q来取代。
reboot
1.作用
reboot命o(h)的作用是重新启动计算机,它的使用权限是系l管理者?/p>
2.格式
reboot [Qn] [Qw] [Qd] [Qf] [Qi]
3.主要参数
Qn: 在重开机前不做记忆体资料写回盘的动作?/p>
Qw: q不?x)真的重开机,只是把记录写?var/log/wtmp文g里?/p>
Qd: 不把记录写到/var/log/wtmp文g里(Qnq个参数包含?jin)-dQ?/p>
Qi: 在重开Z前先把所有与|络相关的装|停止?/p>
install
1.作用
install命o(h)的作用是安装或升UY件或备䆾数据Q它的用权限是所有用戗?/p>
2.格式
(1)install [选项]... 来源 目的?/p>
(2)install [选项]... 来源... 目录
(3)install Qd [选项]... 目录...
在前两种格式中,?x)?lt;来源>复制?lt;目的?gt;或将多个<来源>文g复制臛_存在?lt;目录>Q同时设定权限模式及(qing)所有?所属组。在W三U格式中Q会(x)创徏所有指定的目录?qing)它们的ȝ录。长选项必须用的参数在用短选项时也是必ȝ?/p>
3.主要参数
Q-backup[=CONTROL]Qؓ(f)每个已存在的目的地文件进行备份?/p>
QbQ类?Q-backupQ但不接受Q何参数?/p>
QcQ?此选项不作处理)?/p>
QdQ-QdirectoryQ所有参数都作ؓ(f)目录处理Q而且?x)创建指定目录的所有主目录?/p>
QDQ创?lt;目的?gt;前的所有主目录Q然后将<来源>复制?<目的?gt;Q在W一U用格式中有用?/p>
QgQ-Qgroup=l:(x)自行讑֮所属组Q而不是进E目前的所属组?/p>
QmQ-Qmode=模式Q自行设定权限模?(像chmod)Q而不是rwxrQxrQx?/p>
QoQ-Qowner=所有者:(x)自行讑֮所有?(只适用于超U用??/p>
QpQ-QpreserveQtimestampsQ以<来源>文g的访?修改旉作ؓ(f)相应的目的地文g的时间属性?/p>
QsQ-QstripQ用strip命o(h)删除symbol tableQ只适用于第一?qing)第二种使用格式?/p>
QSQ-Qsuffix=后缀Q自行指定备份文件的<后缀>?/p>
QvQ-QverboseQ处理每个文?目录时印出名U?/p>
Q-helpQ显C此帮助信息q离开?/p>
Q-versionQ显C版本信息ƈd?/p>
mount
1.作用
mount命o(h)的作用是加蝲文gpȝQ它的用权限是超U用h/etc/fstab中允许的使用者?/p>
2.格式
mount Qa [Qfv] [Qt vfstype] [Qn] [Qrw] [QF] device dir
3.主要参数
QhQ显C助信息?/p>
QvQ显CZ息,通常和-f用来除错?/p>
QaQ将/etc/fstab中定义的所有文件系l挂上?/p>
QFQ这个命令通常和-a一起用,它会(x)为每一个mount的动作生一个行E负责执行。在pȝ需要挂上大量NFS文gpȝ时可以加快加载的速度?/p>
QfQ通常用于除错。它?x)mount不执行实际挂上的动作Q而是模拟整个挂上的过E,通常?x)和Qv一起用?/p>
Qt vfstypeQ显C加蝲文gpȝ的类型?/p>
QnQ一般而言Qmount挂上后会(x)?etc/mtab中写入一W资料,在系l中没有可写入文件系l的情况下,可以用这个选项取消q个动作?/p>
4.应用技?/p>
在Linux和Unixpȝ上,所有文仉是作Z个大型树(wi)Q以/为根Q的一部分讉K的。要讉KCD-ROM上的文gQ需要将CD-ROM讑֤挂装在文件树(wi)中的某个挂装炏V如果发行版安装?jin)自动挂装包Q那么这个步骤可自动q行。在Linux中,如果要用硬盘、光q储存讑֤Q就得先它加蝲Q当储存讑֤挂上?jin)之后,可以把它当成一个目录来讉K。挂上一个设备用mount命o(h)。在使用mountq个指o(h)Ӟ臛_要先知道下列三种信息Q要加蝲对象的文件系l类型、要加蝲对象的设备名U及(qing)要将讑֤加蝲到哪个目录下?/p>
Q?QLinux可以识别的文件系l?/p>
?Windows 95/98常用的FAT 32文gpȝQvfat Q?/p>
?Win NT/2000 的文件系l:(x)ntfs Q?/p>
?OS/2用的文gpȝQhpfsQ?/p>
?Linux用的文gpȝQext2、ext3Q?/p>
?CD-ROM光盘用的文gpȝQiso9660?/p>
虽然vfat是指FAT 32pȝQ但事实上它也兼容FAT 16的文件系l类型?/p>
Q?Q确定设备的名称
在Linux中,讑֤名称通常都存?dev里。这些设备名U的命名都是有规则的Q可以用“推理”的方式把设备名U找出来。例如,/dev/hda1q个 IDE讑֤Qhd是Hard Disk(盘)的,sd是SCSI DeviceQfd是Floppy Device(或是Floppy Disk?)。a代表W一个设备,通常IDE接口可以接上4个IDE讑֤(比如4块硬?。所以要识别I(xin)DE盘的方法分别就是hda、hdb、hdc?hdd。hda1中的?”代表hda的第一个硬盘分?(partition)Qhda2代表hda的第二主分区Q第一个逻辑分区从hda5开始,依此cL。此外,可以直接(g)?var/log/messages文gQ在该文件中可以扑ֈ计算机开机后pȝ已L认出来的讑֤代号?/p>
Q?Q查找挂接点
在决定将讑֤挂接之前Q先要查看一下计机是不是有?mnt的空目录Q该目录是专门用来当作挂蝲?Mount Point)的目录。徏议在/mnt里徏几个/mnt/cdrom?mnt/floppy?mnt/mo{目录,当作目录的专用挂载点。D例而言Q如要挂载下?个设备,其执行指令可能如?(假设都是Linux的ext2pȝQ如果是Windows XX请将ext2Ҏ(gu)vfat)Q?/p>
软盘 ===>mount Qt ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount Qt iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount Qt iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount Qt iso9660 /dev/sdc /mnt/scdr
不过目前大多数较新的Linux发行版本Q包括红?Linux、中软Linux、Mandrake Linux{)(j)都可以自动挂装文件系l,但Red Hat Linux除外?/p>
umount
1.作用
umount命o(h)的作用是卸蝲一个文件系l,它的使用权限是超U用h/etc/fstab中允许的使用者?/p>
2.格式
unmount Qa [QfFnrsvw] [Qt vfstype] [Qn] [Qrw] [QF] device dir
3.使用说明
umount命o(h)是mount命o(h)的逆操作,它的参数和用方法和mount命o(h)是一L(fng)。Linux挂装CD-ROM后,?x)锁定CD—ROMQ这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时Q如果已?cdrom作ؓ(f)W号链接Q请使用umount/cdrom来卸装它。仅当无用户正在使用光盘Ӟ该命令才?x)成功。该命o(h)包括?jin)将带有当前工作目录当作该光盘中的目录的l端H口?/p>
chsh
1.作用
chsh命o(h)的作用是更改使用者shell讑֮Q它的用权限是所有用者?/p>
2.格式
chsh [ Qs ] [ Qlist] [ Q-help ] [ Qv ] [ username ]
3.主要参数
QlQ显C系l所有Shellcd?/p>
QvQ显CShell版本受?/p>
4.应用技?/p>
前面介绍?jin)Linux下有多种ShellQ一般缺省的是BashQ如果想更换Shellcd可以使用chsh命o(h)。先输入账户密码Q然后输入新ShellcdQ如果操作正系l会(x)昄“Shell change”。其界面一般如下:(x)
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自qShellQ超U用户可以修改全体用L(fng)Shell。要x询系l提供哪些ShellQ可以用chsh -l 命o(h)Q见?所C?/p>
? pȝ可以使用的Shellcd
从图1中可以看刎ͼW者系l中可以使用的Shell有bashQ缺省)(j)、csh、sh、tcsh四种?/p>
exit
1.作用
exit命o(h)的作用是退出系l,它的使用权限是所有用戗?/p>
2.格式
exit
3.参数
exit命o(h)没有参数Q运行后退出系l进入登录界面?/p>
last
1.作用
last命o(h)的作用是昄q期用户或终端的d情况Q它的用权限是所有用戗通过last命o(h)查看该程序的logQ管理员可以L(fng)谁曾l或企图q接pȝ?/p>
2.格式
1ast[—n][Qf file][Qt tty] [—h 节点][QI —IP][?][Qy][1D]
3.主要参数
QnQ指定输?gu)录的条数?/p>
Qf fileQ指定用文gfile作ؓ(f)查询用的log文g?/p>
Qt ttyQ只昄指定的虚拟控制台上登录情c(din)?/p>
Qh 节点Q只昄指定的节点上的登录情c(din)?/p>
Qi IPQ只昄指定的IP上登录的情况?/p>
Q?Q用IP来显C端地址?/p>
QyQ显C录的q、月、日?/p>
QIDQ知道查询的用户名?/p>
Qx:昄pȝ关闭、用L(fng)录和退出的历史?/p>
动手l习(fn)
上面介绍?jin)Linux安装和登录命令,下面介绍几个实例Q动手练?fn)一下刚才讲q的命o(h)?/p>
1.一ơ运行多个命?/p>
在一个命令行中可以执行多个命令,用分号将各个命o(h)隔开卛_Q例如:(x)
Qlast QxQhalt
上面代码表示在显C系l关闭、用L(fng)录和退出的历史后关闭计机?/p>
2.利用mount挂装文gpȝ讉KWindowspȝ
许多Linux发行版本现在都可以自动加载Vfat分区来访问WindowspȝQ而Red Hat各个版本都没有自动加载Vfat分区Q因此还需要进行手工操作?/p>
mount可以Windows分区作ؓ(f)Linux的一个“文件”挂接到Linux的一个空文g夹下Q从而将Windows的分区和/mntq个目录联系h。因此,只要讉Kq个文g夹就相当于访问该分区?jin)。首先要?mnt下徏立winc文g夹,在命令提C符下输入下面命令:(x)
Qmount -t vfat /dev/hda1 /mnt/winc
卌C将Windows的C分区挂到Liunx?mnt/winc目录下。这Ӟ?mnt/winc目录下就可以看到Windows中C盘的内容?jin)。用类似的Ҏ(gu)可以讉KWindowspȝ的D、E盘。在Linuxpȝ昄Windows的分Z般顺序这L(fng)Qhda1为C盘、hda5为D盘?hda6为E盘……以此类推。上q方法可以查看Windowspȝ有一个很大的问题Q就是Windows中的所有中文文件名或文件夹名全部显CZؓ(f)问号 “?”,而英文却可以正常昄。我们可以通过加入一些参数让它显CZ文。还以上面的操作ZQ此时输入命令:(x)
Qmount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc
现在它就可以正常昄中文?jin)?/p>
3.使用mount加挂闪盘上的文gpȝ
在Linux下用闪盘非常简单。Linux对USB讑֤有很好的支持Q当插入闪盘后,闪盘被识别ؓ(f)一个SCSI盘,通常输入以下命o(h)Q?/p>
Q?mount /dev/sda1 /usb
p够加挂闪盘上的文件系l?/p>
知?/p>
Linux命o(h)与Shell
所谓ShellQ就是命令解释程序,它提供了(jin)E序设计接口Q可以用程序来~程。学?fn)Shell对于Linux初学者理解Linuxpȝ是非帔R要的?Linuxpȝ的Shell作ؓ(f)操作pȝ的外壻I为用h供了(jin)使用操作pȝ的接口。Shell是命令语a、命令解释程序及(qing)E序设计语言的统Uͼ是用户和 Linux内核之间的接口程序。如果把Linux内核惌成一个球体的中心(j)QShell是围绕内核的外层。当从Shell或其它程序向Linux传递命令时Q内怼(x)做出相应的反应。Shell在Linuxpȝ的作用和MS DOS下的COMMAND.COM和W(xu)indows 95/98 ?explorer.exe怼。Shell虽然不是pȝ核心(j)的一部分Q只是系l核?j)的一个外Ӟ但它能够调用pȝ内核的大部分功能。因此,可以?Shell是Unux/Linux最重要的实用程序?/p>
Linux中的Shell有多U类型,其中最常用的是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。大多数Linux发行版本~省的Shell是Bourne Again ShellQ它是Bourne Shell的扩展,UbashQ与Bourne Shell完全向后兼容Qƈ且在Bourne Shell的基上增加了(jin)很多Ҏ(gu)。bash攑֜/bin/bash中,可以提供如命令补全、命令编辑和命o(h)历史表等功能。它q包含了(jin)很多C Shell和Korn Shell中的优点Q有灉|和强大的~程接口Q同时又有很友好的用L(fng)面。Linuxpȝ?00多个命o(h)中有40个是bash的内部命令,主要包括 exit、less、lp、kill?cd、pwd、fc、fg{?/p>