linux学习资料(自己总结)


####第一章
ifconfig eth1 192.168.0.1 netmask 255.255.255.0 up
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
将192.168.0.0/24网段的ip进行ip伪装,MASQUERADE作用和snat一样,不过对于拨号的动态IP更适合.
iptables -t nat -a PREROUTING --dst https://www.360docs.net/doc/d29123295.html, -p tcp --dport 80 -j DNAT --to-destination
192.168.0.10
iptables -t nat -a POSTROUTING --dst 192.168.0.10 -p tcp --dport 80 -j SNAT --to-soure 192.168.0.1
iptables -t nat -a OUTPUT --dst https://www.360docs.net/doc/d29123295.html, -p tcp --dport 80 -j DNAT --to-destination 192.168.0.10
把内网ip为192.168.0.10的80端口映射到https://www.360docs.net/doc/d29123295.html,绑定的IP
外网用户可以直接通过https://www.360docs.net/doc/d29123295.html, 80端口访问内网192.168.0.10在80端口上提供的服务。
iptables -t filter -I INPUT -p tcp -m multiport --dport 22,21 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 1:1024 -j DROP
做了1-1024,的端口限制,低端口只允许22(openssh)和21(vsftp)通过
iptables –f
清空所有规则
iptables –t nat –f
清空nat表中的所有规则
■用iptables --list查看一下没有定义规则时iptables的样子:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -F //清空防火墙规则
iptables -P INPUT DROP //设置输入默认规则为拒绝
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 80 -j ACCEPT //append一条INPUT规则,允许192.168.1.2访问目标192.168.1.3的80端口
iptables -L //列出所有规则
iptables -D INPUT 1 //删除INPUT的第1条规则
iptables -R INPUT 2 ......(此处见上面的) //修改INPUT的第2条规则为后面的内容
iptables -A OUPUT -p tcp --sport 80 -j ACCEPT //append一条INPUT规则,允许本机源80端口output
service iptables save //保存
####第二章
■Linux安装至少要两个分区:Linux native(文件)分区和Linux Swap(交换)分区。主分区用作存放LINUX的文件,交换分区为运行LINUX时提供虚拟内存。
■Linux通过字母和数字的组合来标识硬盘分区,如“hda1”,其具体含义是:分区名的前头两个字母表明分区所在设备的类型,例如
hd指IDE硬盘,sd(指SCSI硬盘);第三个字母分区在哪个设备,按a,b,c,d的顺序排列,如hda是IDE 1口的主硬盘,则IDE 2口的主硬盘就应该是hdc了;最后的数字在该设备上的分区顺序,前四个分区(主分区或扩展分区)用数字1 到4表示, 逻辑分区从5开始, 例如: hda3表示第一个IDE硬盘上的第三个主分区或扩展分区。
Linux通过字母和数字的组合来标识硬盘分区,
如“hda1”,其具体含义是:分区名的前

头两个字母表明分区所在设备的类型,
例如hd指IDE硬盘,sd(指SCSI硬盘);第三个字母分区在哪个设备,按a,b,c,d的顺序排列,如hda是IDE 1口的主硬盘,则IDE 2口的主硬盘就应该是hdc了;最后的数字在该设备上的分区顺序,前四个分区(主分区或扩展分区)用数字1 到4表示, 逻辑分区从5开始, 例如: hda3表示第一个IDE硬盘上的第三个主分区或扩展分区。
■LILO,就是Linux Loader,即Linux引导器,它负责启动Linux操作系统。
如果你想默认的选择是Windows的话,那你可以在启动Linux后,用vi修改/etc目录下的lilo.conf文件,加上default=windows,然后再执行/sbin/lilo重新生成LILO

■关闭机器
在Linux系统中,普通用户是无权关闭系统的!只有root用户才能够关闭它。可以通过以下几种方法实现:
1) 按下CTRL+ALT+DEL组合键,这样系统将重新启动!
2) 执行reboot命令,这样系统也将重新启动!
3) 执行shutdown -h now命令,这样系统将关闭计算机!
4) 执行halt命令,可以关闭计算机。
注意千万不要随意采用硬关机、重启动键等方式关闭系统,那样会导致Linux文件系统遭受破坏!

■虚拟控制台
Linux是真正的多用户操作系统,可以同时接受多个用户的远程和本地登录,也允许同一个用户多次登录。Linux为本地用户(也就是做在计算机面前的用户)提供了虚拟控制台访问方式,允许用户在同一时间从不同的控制台进行多次登录。
虚拟控制台的选择可以通过按ALT键加上F1-F6六个功能键来实现。例如,用户登录后,按一下ALT+F2组合键,用户又可以看到“login:”提示符,这其实就是第二个虚拟控制台,而这时再按下ALT+F1组合键,用户则又可以回到第一个虚拟控制台。
####第三章
■在Linux下只有一个根目录,而不象Windows那样一个分区一个根目录。如果有多个分区的话,就需要将其它分区mount到根目录上来用。
■一些重要的目录:
/bin:存放着一百多个Linux下常用的命令、工具
/dev:存放着Linux下所有的设备文件!
/home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间
/lost+found:顾名思义,一些丢失的文件可能可以在这里找到
/mnt:外部设备的挂接点,通常用cdrom与floppy两个子目录!它的存在简化了光盘与软盘的使用。你只需在塞入光盘后,运行:mount /mnt/cdrom,就可以将光盘上的内容Mount到/mnt/cdrom上,你就可以访问了。不过你使用完成后,应该离开该目录,并执行umount /mnt/cdrom。同样的,软盘就是mount /mnt/floppy和umount /mnt/floppy了。
/proc:这其实是一个假的目录,通过这里你可以访问到内

存里的内容。
/sbin:这里存放着系统级的命令与工具
/usr:通常用来安装各种软
件的地方
/usr/X11R6 X Window目录
/usr/bin与/usr/sbin 一些后安装的命令与工具
/usr/include、/usr/lib及/usr/share 则是存放一些共享链接库
/usr/local 常用来安装新软件
/usr/src Linux源程序
/boot:Linux就是从这里启动的
/etc:这里存放在Linux大部分的配置文件
/lib:静态链接库
/root:root用户的主目录,这就是特权之一!
/var:通常用来存放一些变化中的东西!
/var/log:存放系统日志
/var/spool:存放一些邮件、新闻、打印队列等
另外,要说明的是,在Linux下“当前目录”、“路径”等概念与Windows下是一样的。
/etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息。
/etc/group
类似/etc/passwd ,但说明的不是用户而是组。见group 的man页。
/etc/inittab
init 的配置文件。
/etc/issue
getty 在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。内容由系统管理员确定。
/etc/shadow
在安装了影子口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读。这使破译口令更困难。
####第四章
■每一个文件或目录的访问权限都有三组,每组用三位表示,如:
d rwx r-x r—
第一部分:这里的d代表目录,其它的有:- 代表普通文件 c 代表字符设备文件;
第二部分:文件所有者的权限字,这里为r w x表示可读、可写、可执行 (目录的可执行指的可以进入目录);
第三部分:与文件所有者同组的用户的权限字,这里为r - x表示可读、不可写、可执行。由于同组用户之间交流较多,让他看看文件,别乱改就行了嘛。
第四部分:其它用户的权限字,这里为- - -,当然给我无关的人嘛,我的文件当然不但不给你写,也不让你读。
■在Red Hat Linux下,应用软件的安装包通常有两种格式:
1) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux创造的一种包封装格式。
2) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
而且,大多数Linux应用软件包的命名也有一定的规律,它遵循:
名称-版本-修正版-类型
通常,用tar打包的,都是源程序;而用rpm打包的则常是可执行程序。
安装:rpm -ivh rpm软件包名
卸载:rpm -e 软件名 注意:后面使用的是软件名,而不是软件包名。
■linux图形化窗口界面:X Window、GNOME与KDE
X Window将使用GNOME做为窗口管理器,除非你在安装时将GNOME去掉,而选择了KDE包。
####第五章
■ 常用网络命令
https://www.360docs.net/doc/d29123295.html,conf


netconf是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。
2.ifconfig
ifconfig是Linux系统中最常用的
一个用来显示和设置网络设备的工具。
简单地说明常用的命令组合:
1) 将第一块网卡的IP地址设置为192.168.0.1:
ifconfig eth0 192.168.0.1 (格式:ifconfig 网络设备名 IP地址)
2) 暂时关闭或启用网卡:
关闭第一块网卡:ifconfig eth0 down
启用第一块网卡:ifconfig eth0 up
3) 将第一块网卡的子网掩码设置为255.255.255.0:
ifconfig eth0 netmask 255.255.255.0(格式:ifconfig 网络设备名 netmask 子网掩码)
我们也可以同时设置IP地址和子网掩码:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
4) 将第一块网卡的广播地址设置为192.168.0.255:
ifconfig eth0 -broadcast 192.168.0.255
5) 将第一块网卡设置为不接收多播数据包:
ifconifg eth0 allmulti
如果要让其接收,则使用命令:ifconfig eth0 -allmulti
6) 查看第一块网卡的状态:
ifconfig eth0
如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可。
3.route
route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通讯。
1) 增加一个默认路由:
route add 0.0.0.0 gw 网关地址
2) 删除一个默认路由:
route del 0.0.0.0 gw 网关地址
3) 显示出当前路由表
Route
####第六章
第二类:诊断工具
1.ping
ping是一个最常用的检测是否能够与远端机器建立网络通讯连接。
需要检测某块网卡(系统中有多块)能否ping通远方机器。我们需要在执行ping命令时指出:
ping -I eth0 192.168.0.1
2.traceroute
如果你ping不通远方的机器,想知道是在什么地方出的问题;或者你想知道你的信息到远方机器都经过了哪些路由器,可以使用traceroute命令。
https://www.360docs.net/doc/d29123295.html,stat
在Linux系统中,提供了一个功能十分强大的查看网络状态的工具:netstat。它可以让您得知整个Linux系统的网络情况。
1)统计出各网络设备传送、接收数据包的情况:
使用命令:netstat -i
2)显示网络的统计信息
使用命令:netstat -s
使用这个命令,将会以摘要的形式统计出IP、ICMP、TCP、UDP、TCPEXT形式的通信信息。
3)显示出TCP传输协议的网络连接情况:
使用命令:netstat -t
4)只显示出使用UDP的网络连接情况:
使用命令:netstat –t
5)显示路由表:
使用命令:netstat –r
####第七章
■DNS服务器
一种不必架设DNS Server,而能让网域内联机正常运作的简单方法是:增加 /etc/hosts文件里主机的IP address与网域名称。因为当您一启动Redhat Linux时,系统内定查询【解析IP address与网域名称的对应关系】时,会先检查/etc/hosts文件里所

定义的主机IP address与网域名称,再检查DNS Server的定义档。
原本在 /etc/hosts文件里只纪录着两笔单纯的记录:
? ? ?
127.0.0.1 localhost localhost.localdomain
192.168.
1.16 https://www.360docs.net/doc/d29123295.html,.tw fortop
?栏:定义主机的IP address。
?栏:定义主机的网域名称。
?栏:定义主机的别名。

※ 注意:此处所指的主机并不是网络伺服主机,而是泛指一般联机的机器。
您可使用vi、joe、mc等文字编辑工具编辑/etc/hosts文件,请加入其它主机信息,如:
192.168.1.10 https://www.360docs.net/doc/d29123295.html,.tw redhat
192.168.1.15 https://www.360docs.net/doc/d29123295.html,.tw book
192.168.1.20 https://www.360docs.net/doc/d29123295.html,.tw asp
无论您的网络环境是真实或是虚拟网域,我们可在网域内先架设一部DNS Server,当您架设好Apache Web Server后,您可在 /var/named/named.test档里(DNS 的主网域正解档)加入:
? ? ?
fortop IN https://www.360docs.net/doc/d29123295.html,.tw.
www CNAME fortop
? 栏:主机名称。
? 栏:IN,代表所指定的网络型态
? 栏:主机网域名称。(务必输入正确)
上述第一列「fortop IN https://www.360docs.net/doc/d29123295.html,.tw.」是宣告fortop这部Web Server原来的网域名称,但是通常Web Server的网域名称都是以 www做为开头,即https://www.360docs.net/doc/d29123295.html,.tw为Web Server的网域名称,此时,您必须加上如上述第二列
「www CNAME fortop」,将fortop取别名为www,往后,当您输入 https://www.360docs.net/doc/d29123295.html,.tw,实际上就是联机到 https://www.360docs.net/doc/d29123295.html,.tw;当然您也可将Web Server在安装系统时就将主机名称取名为www,如此只要在DNS Server的主网域正解档里输入「www IN https://www.360docs.net/doc/d29123295.html,.tw.」即可。
除了在主网域正解档里输入网域注册数据后,请别忘了还需要在主网域反解档(如:/var/named/named.test.arpa)里输入 IP与网域名称的对应关系,如下所示:
16 IN PTR https://www.360docs.net/doc/d29123295.html,.tw.
DNS(Domain Name System)是域名系统。DNS服务器的作用是帮我们将文字主机名转成数字的网址,许多网络服务都需要DNS服务器的协助才能成功地完成工作;如电邮系统和许多网络服务的虚拟主机功能等。
常见的DNS服务器有两种:1.快取(Caching)DNS服务器,和2.主(Master)DNS服务器。
通常每部要上网的计算机都要指定使用一个DNS服务器,为我们的每一个Internet连接将域名转成网址,而我们都会使用网络供货商(ISP)提供的DNS服务器。如果我们自己架设一个快取DNS服务器,那么我们就可以直接使用自己的快取DNS服务器,不用再使用ISP提供的了。快取DNS服务器有缓存查询过数据的功能,可以加快下次再查询相同数据的速度。
主DNS服务器提供自己网域内的域名转网址查询服务。
BIND可被配置成几种不同的运行方式,通用的BIND配置为纯解析器系统,纯缓存服务器,主

服务器,辅服务器.
touch https://www.360docs.net/doc/d29123295.html, 创建正向解析文件“https://www.360docs.net/doc/d29123295.html,”
touch db.240.102.202 创建反向解析文件“db.240.102.202”

术语“区(zone)”往往可以与单词“域(domain)”互换使用,但这里却有
一些区别,“区”是指域数据库文件,而“域”则比较通用。域是用域名定义的域结构中的一部分,而区则是域数据库文件中包含域信息的集合,包含域信息的文件称为“区文件”。
主服务器 主服务器(primary name server)是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对它域的任何查询。
配置主服务器需要一整套配置文件,包括正规域的区文件(named.hosts)和反向域的区文件(named.rev)、引导文件(named.conf)、高速缓存(named.ca)和回送文件(named.local),其它的配置都不需要这样一整套文件。
辅助域名服务器 辅助域名服务器(secondary name server)可从主服务器中转移一整套域信息。区文件是从主服务器中转移出来的,并作为本地磁盘文件存储在辅助服务器中。这种转移称为“区文件转移”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询,因此,辅助域名服务器也称作权威性服务器。
####第八章
表1 常用DNS术语
术语 说明
域 代表网络一部分的逻辑实体或组织
域名 主机名的一部分,它代表包含这个主机的域。它可以和域交换使用
主机 网络上的一台计算机
节点 网络上的一台计算机
域名服务器 提供DNS服务的计算机,它将DNS名字转化为IP地址
解析 把一个DNS服务器转化为与其相映的IP地址的过程
解析器 从域名服务器中提取DNS信息的程序或库子程序
反向解析 将给出的IP地址转化为其相映的DNS名字
欺骗 使网络看上去好象具有不同的IP地址或域名的行为
/etc/host.conf是用来控制本地转换程序的文件的设置。该文件告诉转换程序使用哪些服务、按照什么顺序进行。
表2 /etc/host.conf文件的配置选项
选项 说明
Order 指定按照哪种顺序来尝试不同的名字解析机制。按列出的顺序来进行指定的解析服务。支持下面的名字解析机制:
Hosts 试图通过查找本地/etc/hosts文件来解析名字
Bind 使用DNS域名服务器来解析名字
Nis 使用网络信息服务(NIS)协议来解析主机名字
Multi 以off和on为参数。与host查询一起使用,用来确定一台主机是否在/etc/hosts文件中指定了多个IP地址
Nospoof 如果用逆向解

析找出与指定的地址匹配的主机名,对返回的地址进行解析以确认它确实与您查询的地址相配。为了防止“骗取”IP地址,通过指定nospoof on来允许这种功能
Aler 以off和on为参数。如果打开,任何试图骗取IP地址的行为都通过syslog工具进行记录
Trim 以域名为参数。在/etc/hosts中查找名字前,trim删除这个域名。着使你只把基本主机名放在/etc/host.conf中而不指定域名
转换程序/配置文件/etc/resolv.conf
当配置转换程序使用BIND域名服务查询主机时,我们必须告诉转换程序使用哪一个域名服务器。用来完成这项任务的工具就是/etc/resolv.conf文件。
/etc/resolv.conf是一个简单而易读的文件。在/etc/resov.conf中使用的命令,具有系统专用的形式,但一般都支持domain和nameserver两项命令。
nameserver项利用IP地址去识别让转换程序去识别查询域信息的那些服务器。我们可以多次使用nameserver选项,可以使用多达三个域名服务器。这些名服务器是按照它们在文件中的顺序进行查询的,如果没有接收到一个服务器的响应,就去试表中的下一个服务器,直到所有服务器试完为止(如果在/etc/resolv.conf文件中设置了三个以上的域名服务器,那么,即使前三个服务器都没有响应查询请求,Linux也不会去请求后面的服务器)。我们应该将最可靠的域名服务器列在最前面,以便在查询时不会超时。
在Linux上的域名服务是由named守护进程来执行的,named守护进程通常在系统启动时开始工作,并一直工作到系统关闭。该进程从被称作/etc/named.boot的配置文件中获取有关信息和将主机名映射为IP地址的各种文件。
为了运行named,只要在命令行中输入:
# /etc/rc.d/init.d/named start
表3 named配置文件
配置文件 说明
named.conf 设置一般的named参数,指向该服务器使用的域数据库信息的源,这类源可以是本地磁盘文件或远程服务器
named.ca 指向根域名服务器
named.local 用于在本地转换回送地址
named.hosts 将主机名映射为IP地址
named.rev 用于反向域的、将IP地址映射到主机名的区文件
表4概括了named.conf文件中使用的各种配置语句,它提供的信息能帮助我们了解这一些例子:
表4 named.boot文件的配置选项
选项 说明
Directory 指定DNS文件所在的目录。您可以重复此选项以指定几个不同的目录。可以给出这些目录相关的文件路径名
Master 以一个域名和一个文件名为参数。此选项声明named对指定的域具有控制权,并使named从指定的区域加载信息 主域服务器
Hint 为named建立高速缓存信息。以一个域名和一个文件名为参数。域名通常用“.”指定。指定的文件包括一组称为服

务器提示的记录,这些记录列出了根域名服务器的信息
Forwarders 以一个域名服务器的列表作为参数。告诉本地域名服务器:如果它不能从它的本地信息中解析出地址,那么就与该列表中的服务器联系
Slave 把本地域名服务器变成一个从属服务器。如果给出了此选项,那么本地服务
器就试着通过递归查询来解析DNS名字。它只把请求传递给forwarders选项行列出的服务器中的一个
配置named.conf文件所使用的方法,是用来控制将域名服务器作为主服务器、辅助服务器还是唯高速缓存服务器的。
表5 常见标准资源记录
资源记录名 记录类型 功能说明
地址 A 将主机名转换为地址。这个字段保存以点分隔的十进制形式的IP地址。任何给定的主机都只能有一个A记录,因为这个记录被认为是授权信息。这个主机的任何附加地址名或地址映射必须用CNAME类型给出
规范名 CNAME 给定一个主机的别名,主机的规范名字是在这个主机的A记录中指定的
主机信息 HINFO 描述主机的硬件和操作系统
邮件交换 MX 建立邮件交换器记录。MX记录告诉邮件传送进程把邮件送到另一个系统,这个系统知道如何将它递送到它的最终目的地
域名服务器 NS 标识一个域的域名服务器。NS资源记录的数据字段包括这个域名服务器的DNS名。我们还需要指定这个名字名字服务器的地址与主机名相匹配的A记录
指针 PTR 将地址变换成主机名。主机名必须是规范主机名
管理开始 SOA 告诉域名服务器它后面跟着的所有所有资源记录是控制这个域的(SOA)表示授与控制权)。其数据字段用()括起来并且通常是多行字段。SOA记录的数据字段包含下面的项:
origin
这个域的主域名服务器的规范主机名。用点“.” 结尾的绝对主机名,因此,它不能被named守护进程修改
contact
负责维护这个域的人的电子邮件联系地址。因为@在资源记录中有特殊的意义,所以用点“.”代替这个符号。如果负责维护https://www.360docs.net/doc/d29123295.html,的人是clfls,那么联系地址就是https://www.360docs.net/doc/d29123295.html,
serial
这个区信息文件的版本号,它是一个整数。辅助域名服务器用它来确定这个区信息的文件是何时改变的。每次改变信息文件时都应该使这个数加一
refresh
辅助域名服务器在试图检查主域名服务器的SOA记录之前应等待的秒数。SOA记录不经常改变,因此可以把这个值设置为一天
retry
辅助服务器在主服务器不能使用时,重试对主服务器的请求应等待的秒数。通常,它应该按分进行设置
expire
这是辅助服务器在不能与主服务器取得联系的情况下丢掉区信息之前应等待的秒数,一般应该设置成30天左右
minimum

当没有指定ttl资源记录时默认的ttl值。如果网络没有太大的变化,那么这个数可以设得很大。可以在资源记录中指定一个ttl值来代替它

例:
etc/named.conf
/在NAMED.CONF配置文件中使用//和/* */来进行注释,
options { /*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DIRECTORY用来指定在本文件指定的区文件的路径,如
这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53
*/
directory "/var/named";
//allow-transfer{202.102.240.x;} //202.102.240.x为辅助DNS服务器的IP
forwarders {172.16.0.1;172.16.0.11;}; //其中的IP地址是你网络中主服务器和辅服务器的IP地址
}; //

// a caching only nameserver config
controls {
inet 127.0.0.1
allow { localhost; }
keys { rndckey; };
};
zone "." IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
type hint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
*/
file "named.ca"; //用来指定具体存放DNS记录的文件
};

zone "localhost" IN { //定义一个域名为localhost的正向区域
type master; //作为localhost主域名服务器
file "localhost.zone" ; //存放DNS记录的区文件为localhost.zone
allow-update { none; };
};
zone "https://www.360docs.net/doc/d29123295.html," IN { //指定一个域名为https://www.360docs.net/doc/d29123295.html,的正向区域
type master;
file "https://www.360docs.net/doc/d29123295.html,”
allow-update { none;};
};

zone "0.0.127.in-addr.arpa" IN { //定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "0.192.168.in-addr.arpa" IN { //定义一个IP为168.192.0.*反向域区
type master;
file "168.192.0";

/var/named/https://www.360docs.net/doc/d29123295.html,文件
@ IN SOA https://www.360docs.net/doc/d29123295.html,. https://www.360docs.net/doc/d29123295.html,. ( SOA表示授权开始
/*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表https://www.360docs.net/doc/d29123295.html,,即表示一个域名记录定义的开始。而https://www.360docs.net/doc/d29123295.html,则是这个域的主域名服务器,而https://www.360docs.net/doc/d29123295.html,则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
*/
2003012101 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就

不会反映出你的更新,也就对他们来说你更新是没有意义的。*/
28800 ; refresh
/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的*/
7200 ;retry
/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试 */
3600000 ; expiry
/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除
对应的记录,上述的数值是以分钟为单位的*/
8400 )
/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记录*/
IN NS linux // https://www.360docs.net/doc/d29123295.html,作为该域的域名服务器
IN MX 10 linux //为整个域定义一个邮件服务器,该记录假定linux是https://www.360docs.net/doc/d29123295.html,域的邮件服务器,其优先值是10
linux IN A 168.192.0.14 //定义了一条A记录,即主机名到IP地址的对应记录https://www.360docs.net/doc/d29123295.html,的IP地址为168.192.0.14
it-test1 IN A 168.192.0.133
www IN CNAME linux //使用CNAME定义了linux 的别名www

/*上面的第一列表示是主机的名字,省去了后面的域。
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名

/var/named/168.192.0
@ IN SOA https://www.360docs.net/doc/d29123295.html,. https://www.360docs.net/doc/d29123295.html,. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS https://www.360docs.net/doc/d29123295.html,.
/*以上的各关键字的含义跟https://www.360docs.net/doc/d29123295.html,是相同的
14 IN PTR https://www.360docs.net/doc/d29123295.html,. //建立一个反向记录168.192.0.14的IP地址域名为https://www.360docs.net/doc/d29123295.html,
133 IN PTR https://www.360docs.net/doc/d29123295.html,.
/*
上面的第一列表示的是主机的IP地址。省略了网络地址部分。如14完整应该是:
168.192.0.14
PTR:表示反向记录
最后一列表示的是主机的域名。


辅助服务器的配置与主服务器的配置不同,它使用slave语句代替master语句。slave语句指向用作域信息源的远程服务器,以替代本地磁盘文件。下面的named.conf文件可以将vale配置成为https://www.360docs.net/doc/d29123295.html,域的辅助服务器:
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
// a caching only nameserver config
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "https://www.360docs.net/doc/d29123295.html," IN { //指

定一个域名为https://www.360docs.net/doc/d29123295.html,的正向区域
type slave; //这个服务器成为https://www.360docs.net/doc/d29123295.html,的辅助服务器
file "https://www.360docs.net/doc/d29123295.html,”
allow-update { none;};
masters { 191.72.1.3; };//191.72.1.3为主服务器地址;从IP地址为191.72.1.3的服务器中下载https://www.360docs.net/doc/d29123295.html,的信息,并将其数据保存在/var/named/ https://www.360docs.net/doc/d29123295.html,文件中, 如果该文件不存在,named就创造一个,并从远程服务器中取得区数据,然后将这些数据写入新创建的文件中。如果存在该文件,named就要检查远程服务器,以了解该远程服务器的数据是否不同于该文件中的数据,如果数据有变化,它就下载更新后的数据,用新数据覆盖该文件的内容
;如果数据没有变化,named就加载磁盘文件的内容,不必做麻烦的区转移工作。

};
zone "72.191.in-addr.arpa"{
type slave;
file "named.rev";
masters {191.72.1.3;};
};

表6 资源记录格式中的字段
字段 说明
Domain 资源记录引用的域对象名。它可以是单台主机,也可以是整个域。作为domain输入的字串除非不是以一个点结束,否则就与当前域有关系。如果该domain字段是空的,那么该记录适用于最后一个带名字的域对象
Ttl 生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常该字段是空字段,这表示使用SOA记录中为整个区域设置的缺省ttl
Class 指定网络的地址类。对于TCP/IP网络使用IN。如果没有给出类,就使用前一个资源记录的类
Type 标识这是哪一类资源记录
Rdata 指定与这个资源记录有关的数据。这个值是必要的。数据字段的格式取决于类型字段的内容
DNS资源记录的格式是:
[domain] [ttl] [class] type rdate
各个字段之间有空格或指标符分隔。表6讨论了这些字段的含义。

例:
基本的named.ca文件包含根服务器的NS记录和提供根服务器地址的A记录。下面就是基本的named.ca文件:
; named.ca file
; servers for the root domain
. 99999999 IN NS https://www.360docs.net/doc/d29123295.html,. //根域,TTL=99999999 TCP/IP网络 域名记录
99999999 IN NS https://www.360docs.net/doc/d29123295.html,.
99999999 IN NS https://www.360docs.net/doc/d29123295.html,.
99999999 IN NS https://www.360docs.net/doc/d29123295.html,.
99999999 IN NS https://www.360docs.net/doc/d29123295.html,.
99999999 IN NS https://www.360docs.net/doc/d29123295.html,.
;
; root servers by address
;
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 199.112.36.4
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 128.102.16.10
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 192.33.33.24
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 128.8.10.90
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 192.33.4.12
https://www.360docs.net/doc/d29123295.html,. 99999999 IN A 198.41.0.4
该记录只包含各服务器记录和地址记录。首先是一组标识根(.)域的各服务器的NS记录,在NS记录之后,是一组为每个根服务器提供地址的A记录。虽然不需要ttl,但习惯上每个记录的ttl是99999999(可能的最大值)。因为根服务器

是永远不会从高速缓存中删除的。

Named通常是在系统引导时启动的,但是也可以使用下面命令启动:
# /etc/rc.d/init.d/named/restart
或:
# ndc restart

####第九章

■网络配置文件
一些用于存放网络配置的文件:
1./etc/hosts
在该文件中存放的是一组IP地址与主机名的列表,如果在该列表中指出某台主机的IP地址,那么访问该主机时将无需进行DNS解析。
2./etc/host.conf
该文件用来指定域名解析方法的顺序,如:
order hosts,bind
它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP地址的对应关系,再通过域名服务器bind进行解析。
3./etc/resolv.conf
在该文件中存放域名
服务器的IP地址。
4./etc/protocols
Red Hat Linux 7.1系统使用该文件辨别本主机使用的,并通过它完成协议和协议号之间的映射,用户不应修改该文件。
5./etc/services
该用户用于定义现有的网络服务,用户无需修改它,它通常由安装网络服务的程序来维护。该文件包括网络服务名、网络端口号和使用的协议类型,其中网络端口号和使用的协议类型之间有一个斜杠分开,在设置行的最后还可以添加一些服务的别名。
6./etc/xinetd.d目录
在Linux系统中有一个超级服务程序inetd,大部分的网络服务都是由它启动的,如chargen、echo、finger、talk、telnet、wu-ftpd等…,在7.0之间的版本它的设置是在/etc/inetd.conf中配置的,在Red Hat 7.0后,它就改成了一个xinetd.d目录。
在xinetd.d目录中,每一个服务都有一个相应的配置文件,我们以telnet为例,说明一下各个配置行的含义:
service telnet
{
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
disable=yes
}
第一行,说明该配置用来设置telnet服务。
第二行,说明Socket连接类型是stream,也就是TCP
第三行,是指不等待到启动完成
第四行,是指以root用户启动服务进程
第五行,是指服务进程是/usr/sbin/in.telnetd
第六行,是用于做一些出错日志
第七行,是指禁止远方telnet,如果需要开放则将该配置改为:disable=no
修改了xinetd的配置,需要重启xinetd才能够生效,有两种方法可以实现:
1) 执行如下命令:
/etc/rc.d/init.d/xinetd restart
2) 执行如下命令:
killall -HUP xinetd
####第十章
■WEB服务器
Linux的WEB服务器,它的配置文件位于/etc/httpd/conf目录下,你可根据需要进行相应的修改,修改完后执行:/etc/rc.d/init.d/httpd restart即可。而WEB服务的主目录则在/var/www/html目录下
Redhat(Linux)内附的WWW Server是相当流行的Apache WWW Server
无论是新安装Apache或是升级Apache,若想立即执行Apache请使用如下指令


1. # cd /etc/rc.d/init.d。
2. # ./httpd start。(启动Apache Web Server)
安装完Apache后,启动Apache Web Server时,您会发现Apache的档名并不是叫做Apache,而是叫做httpd,此点请务必留意。在/etc/rc.d/init.d目录下事实上存放着各类服务器、服务的「启动/停止/重新执行」Shell Script档,其使用方式为:
# ./服务器名称(服务) start ;启动服务器(服务)
# ./服务器名称(服务) stop ;停止服务器(服务)
# ./服务器名称(服务) restart ;重新执行服务器(服务)
如:# ./httpd restart ;重新执行 Apache Web Server。
在Redhat linux 系统里,内设的Apache Web Server相关组态文件放置在 /etc/httpd目录下,其结构如下:
/etc/httpd
|-- conf
| |-- access.co
nf ;设定Apache的存取方式
| |-- httpd.conf ;设定Apache的系统环境设定
| |-- magic ;Magic data for mod_mime_magic
| `-- srm.conf ;Apache的资源设定档
|-- logs -> ../../var/log/httpd ;Apache的存取及错误纪录目录
|-- modules -> ../../usr/lib/apache;Apache的模块存放目录
`-- php3.ini ;php3组态档,须安装mod_php

※ 说明:
1. access.conf:存取权限设定档,在此设定档里您可设定此Web Server可以让某特定的网域存取,或是对存放网页的目录做权限设定,一般而言,若您不做进一步的存取权限设定是不会成系统的漏洞。
2. httpd.conf:基本环境设定档,可用来设定Web Server的联机上限人数(内定150人)、插入模块、http协议传输port、最大服务器的启动数量(内定是10)、是否使用Proxy、虚拟主机....等。
3. srm.conf:是最常使用到的组态设定档,可用来设定网页存放目录、首页命名方式、虚拟目录、媒体档案型态设定(mime-type)、CGI执行目录设定….等设定。
而在Redhat linux里,内设的Apache Web Server存放网页及CGI程序的目录皆在 /home/httpd 目录下,其结构如下:
/home/httpd
|-- cgi-bin ;存放CGI程序目录
|-- html ;存放WWW网站网页目录
| |-- index.html ;首页请取名为index.html
| |-- manual ;存放apache在线查询手册目录
`-- icons ;存放一些有用的小图标目录
上述目录结构指出:您的网页数据应放置在 /home/httpd/html目录下,并且网站的首页应取名为index.html,当您使用浏览器读取 https://www.360docs.net/doc/d29123295.html,.tw(因特网网站)时,实际上Apache会立即读取/home/httpd/html/index.html这页网页。
/home/httpd/cgi-bin目录,是用来存放CGI程序,您可将留言版、计数器、BBS等CGI程序放在此目录下。
在内定组态里,Apache已将/home/httpd/icons这个目录内定为 icons虚拟目录,在这个目录下放置一些常用的小图示,若您想在网页里使用Apache内附的小图示,请使用

如下HTML Tag语法:
<IMG SRC="/icons/apache_pb.gif"> 或是
<IMG SRC="https://www.360docs.net/doc/d29123295.html,.tw/icons/apache_pb.gif">
所谓虚拟目录是将实际的磁盘目录,以一个简单的名称对应到网站上的目录,如上例将/home/httpd/icons目录对应到 icons虚拟目录,此后icons目录表面上是以网站https://www.360docs.net/doc/d29123295.html,.tw/(简写 / )为根目录下的子目录,实际上是读取/home/httpd/icons目录下的数据,这个观念在建置网站时被广泛应用,请务必熟记!
Apache Server的组态设定
基本上您可在不做任何设定的情况下使用Apache www Server,只要记得下列几个原则就行了:
1. /home/httpd/html目录是放置WWW 网站网页的根目录,也就是说请您将做好的网页,以此目录为网站最上层目录(网站根目录),开始放置相关的网页数据,首页网页务
必取名为:index.html。当您使用浏览器浏览网站,请输入URL地址为https://www.360docs.net/doc/d29123295.html,.tw/ 或 http://192.168.1.106/ 。
2. 请使用root账号登入Redhat后,将 /home/httpd/html目录更改目录权限为 drwx—x--x,让其它的使用者无法进入网站根目录破坏数据,即:
# chmod 711 /home/httpd/html。 (注: 读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1 第一个7即文档拥有者具有r+w+x的权限,第二个为组用户权限,第三个为其它用户权限)
3.请设定/home/httpd/cgi-bin目录权限为 drwxrwxrwx,即:
# chmod 777 /home/httpd/cgi-bin。
4.个人账号目录下若要放置网页,请在账号目录下建立 public_html目录,更改目录权限为 drwx—x--x,首页网页也务必取名为:index.html,以kao账号为例其结构如下。
/home ;内设放置账号目录(chmod 755)
/kao ;个人账号目录(chmod 711)
/public_html ;个人网页目录(chmod 711)
index.html ;个人网站首页
? 首先须做设定的组态档是httpd.conf,重要的设定如下:
1. 指令ServerRoot可用来指定放置WWW 网站组态的根目录,不过必须留意的是,当一改变这项设定后,原先在/etc/httpd/目录下的所有档案及目录也要搬移到/www/httpd目录下。
2. 指令MaxClients可用来指定联机上限人数。
3. 指令Port可用来指定http协议的传输埠。
若您要变更Web Server的组态根目录到/www/httpd,用 vi 请修改/etc/httpd/conf/httpd.conf档里,将ServerRoot /etc/httpd 修改为ServerRoot /www/httpd
Redhat linux下的Apache内定联机上限人数为150人,若您要变更设定Web Server的联机上限人数为180人,请修改/etc/httpd /conf/httpd.conf档里,将
MaxClients 150 修改为
MaxClients 180
Redhat linux下的Apache内定的http传输Port是Port 80,若您要变更Port数目为8080,请修改/etc/httpd /conf/httpd.conf档里,将
Port 80 修改为
Port 8080
? 而在/etc/httpd/con

f/srm.conf组态档里,经常会用到的组态设定如下:
若您要变更放置WWW 网站网页的根目录,如:将/home/httpd/html目录变为 /home/httpd/www,请修改/etc/httpd/conf/srm.conf档,将
DocumentRoot /home/httpd/html 修改为
DocumentRoot /home/httpd/www
※注意:指令DocumentRoot可用来指定放置WWW 网站网页的根目录。
若您要变更WWW 网站首页的名称,如:将index.html变为 index.htm、default.htm,请修改/etc/httpd/conf/srm.conf档里,将
DirectoryIndex index.html index.shtml index.cgi 修改为
DirectoryIndex index.html index.shtml index.cgi index.htm \
default.htm
※注意:指令DirectoryIndex可用来指定WWW 网站首页的名称。
若您要变更放置个人网页的目录名称,如:将public_html变为 www,请修改/etc/httpd/conf/srm.conf档里,将
UserDir public_html 修改为
UserDir www
※注意:指令UserDir可用来指
定WWW 网站放置个人账号网页的目录名称。
若您要设定虚拟目录,如:将网页用的到的图形放置在 /home/httpd /images目录下,而读取图形的URL地址 为https://www.360docs.net/doc/d29123295.html,.tw/images,请修改/etc/httpd/conf/srm.conf档里,在
# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
叙述下,加入如下叙述:
Alias /images/ /home/httpd/images/
※注意:指令Alias可用来指定虚拟目录,虚拟目录名称两侧加上 / /,如 /images/,实际的对应目录则是绝对路径目录,如/home/httpd /images/。
记得无论是修改了httpd.conf或是srm.conf组态档,若是想让新的设定值生效,您必须重新执行httpd,请执行如下命令:
# /etc/rc.d/init.d/
# ./httpd restart
若您觉得每次执行这么长的命令很麻烦,您可以如下步骤建立快捷方式,往后只要执行快捷方式即可取代上述命令:
1. # cd /bin ;将快捷方式放置在可执行的路径里
2. # ln /etc/rc.d/init.d/./httpd apache ;将快捷方式取名为apache
往后无论在系统何处,只要执行 # apache restart 即可重新执行httpd。指令ln 可用来建立档案快捷方式。
####第十一章
■FTP服务器
关于FTP服务器的配置在/etc/xinetd.d目录下的wu-ftpd文件中:
service ftp
{
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.ftpd
server_args=-l –a
log_on_success+=DURATION USERID
log_on_failure+=USERID
nice=10
disable=no
}
下面,我们介绍一些关于FTP服务器的管理方法:
1、 暂时关闭FTP服务
有两种方法可以使FTP服务暂停:
1) 以root用户身份执行:
# ftpshut now
这样就会在/etc目录下生成一个shutmsg的文件,这时FTP服务器将无法使用,直到你删掉这个文件。
2) 修改配置文件/etc/xinetd.d/wu-ftpd,将disable=no改为disable=yes,然后重启xinetd。
2、 禁止某

用户使用FTP服务
有两种方法可以禁止某用户使用FTP服务器:
1) 在/etc/ftpuser中写入该用户帐号名
2) 在/etc/ftpaccess中写入一行配置:
deny-uid 用户名
用这种方法还可以禁止一个组的用户使用
deny-gid 组名
3、 禁止匿名用户(anonymous)登录FTP服务器
有许多种方法可以实现,但最简单有效的方法就是将anonymous写入配置文件:/etc/ftpuser中,就可了。
####第十二章
■DHCP 服务器
Dhcp.conf文件修改如下:
ddns-update-style interim; #DDNS更新方案
ignore client-updates; #忽略客户端更新
default-lease-time 21600; #默认租期时间
max-lease-time 43200; #最大租期时间
option time-offset -18000; # 格林威治标准时间(GMT),不是本地时间
subnet 192.168.1.0 netmask 255.255.255.0 {
#定义分配的网段为192.168.1.0/24
option routers 192.168.1.254; #定义网关为192.168.1.254
option
subnet-mask 255.255.255.0; #定义子网掩码为255.255.255.0
option domain-name "https://www.360docs.net/doc/d29123295.html,"; #定义域名为 https://www.360docs.net/doc/d29123295.html,
option domain-name-servers 61.187.98.6; #定义DNS
range 192.168.1.50 192.168.1.200; #定义分配的IP地址范围
host teacher { #定义主机标记
hardware ethernet 00:50:56:c0:00:01; #定义硬件地址
fixed-address 192.168.1.222; #定义硬件地址绑定的IP地址
option host-name "https://www.360docs.net/doc/d29123295.html,"; #定义FQDN
}
host admin {
hardware ethernet 00:50:56:c0:00:02;
fixed-address 192.168.1.211;
option host-name "https://www.360docs.net/doc/d29123295.html,";
}
}
说明:
Host段的作用是给一台计算机分配固定IP地址。执行时先执行HOST段包含的内容,当不适合HOST段内容时,再执行SUBNET段内容。
Range标记可以规定多个不连续的IP 段,用分号相隔,例如:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.25;
range 192.168.1.27 192.168.1.200;
}#给位于192.168.1.0/24网段中的计算机分配的IP从1.10---1.25, 1.27---1.200,换句话就是排除为192.168.1.26的IP。
服务器守护进程dhcpd会使用dhcpd.leases文件来存储目前的租用信息,dhcpd为每一个客户分配一个IP地址时都会在这个文件中记录
该租用信息。
用以下命令生成此文件:
[root@u root]#touch /var/lib/dhcp/dhcpd.leases
启动dhcpd服务
[root@u etc]#service dhcpd start
使用命令:
[root@u etc]#route add -host 255.255.255.255 dev eth0
在路由表(routing table)里加入255.255.255.255以激活MULTICAST功能;
####第十三章
■Linux支持多种文件系统。下面是最重要的几个:
minix
最老的,最可靠的,但缺少特色(有些没有时间标记,文件名最长30个字符),能力有局限(每个文件系统最多64MB)。
xia
minix文件系统的一个修正版本,提升了文件名和文件系统大小的局限,

但没有新的特色。不太流行,但工作得很好。
ext2
最好的Linux自己的文件系统,也是当前最通用的。其设计易于向上兼容,所以新版的文件系统代码无需重做已有的文件系统。
ext
ext2的老版,且不向上兼容。难于用新版安装程序安装,大部分人都改用ext2。
当前,ext2fs/ext3fs是最流行的
■安装前确定好Linux安装在哪个分区,Linux也有系统分区和Swap分区(类似Windows的虚拟分区,即交换文件)两个分区。由于Linux支持的分区格式与Windows分区格式不同,所以如果安装了Linux后,Windows还能继续使用,Linux就应该安装在硬盘分区的最后一个扩展分区;其次Linux的Swap分区必须保证有60MB,系统分区最少要保证240MB;此外安装前搜集好PC硬件方面的信息,特别是显示器信息,这将直接决定你安装Linux后,使用图形
界面程序的效果;在安装、使用中输入命令时,请注意大小写。
####第十四章
■常用的Shell命令。
当用户登录到字符界面系统或使用终端模拟窗口时,就是在和称为shell的命令解释程序进行通信。当用户在键盘上输入一条命令时,shell程序将对命令进行解释并完成相应的动作。这种动作可能是执行用户的应用程序,或者是调用一个编辑器、GNU/Linux实用程序或其他标准程序,或者是一条错误信息,告诉用户输入了错误的命令。
1.目录操作
mkdir Dir 创建一个目录Dir
cd Dir 将工作目录改变到Dir
cd 改变当前目录到主目录
ls 列出当前目录的内容
ls -l 输出当前目录内容的长列表,每个目录或文件占一行
pwd 显示当前目录的全路径
2.文件显示实用程序
cat file1 file2 连接file1 和file2
head filename 显示文件filename的开始10行
grep word filename 在filename中搜索包含有特定单词word的行
wc filename 统计文件filename中的行数、单词数和字符数
cat mx.c 显示mx.c文件内容
more mx.c 分屏显示mx.c内容
tail mx.c 显示文件后几行
od 文件 查看非文本文件
3.文件管理实用程序
cp file1 file2 将文件1复制到文件2
mv file1 file2 将文件重命名为file2
rm filename 删除文件filename
rm -i filename 请求用户确认删除
4.数据操作实用程序
tty 显示当前终端的路径和文件名
who 显示当前登录用户的列表
sort filename 显示文件filename中的行的排序结果
spell filename 检查文件filename中的拼写错误
5.其他实用程序
date 输出系统日期和时间
cal 显示本月的日历。cal 2002 显示2002年的日历
clear 清除终端

屏幕
history 显示你以前执行过的命令的列表
man 显示实用程序的有用信息,并提供该实用程序的基本用法
echo 读取参数并把它写到输出

####第十五章
■在shell中引号分为三种:单引号,双引号和反引号。
? 单引号 ‘
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如:
$ string=’$PATH’
$ echo $string
$PATH
$
可见$保持了其本身的含义,作为普通字符出现。
? 双引号 “
由双引号括起来的字符,除$、\、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于$来说,就是用其后指定的变量的值来代替这个变量和$;对于而言,\是转义字符,它告诉shell不要对其后面的
那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加上的只有四个字符$,\,’和”本身。而对”号,若其前面没有加\,则Shell会将它同前一个”号匹配。
例如,我们假定PATH的值为.:/usr/bin:/bin,输入如下命令:
$ TestString=”$PATH\”$PATH”
$ echo $TestString
.:/usr/bin:/ bin”$PATH
$
读者可以自己试一下在第二个双引号之前不加会产生什么结果。
 
? 反引号 `
反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。例如:
$ pwd
/home/xyz
$ string=”current directory is `pwd`”
$ echo $string
current directour is /home/xyz
$
shell执行echo命令时,首先执行`pwd`中的命令pwd,并将输出结果/home/xyz取代`pwd`这部分,最后输出替换后的整个结果。
利用反引号的这种功能可以进行命令置换,即把反引号括起来的执行结果赋值给指定变量。例如:
$ today=`date`
$ echo Today is $today
Today is Mon Apr 15 16:20:13 CST 1999
$
反引号还可以嵌套使用。但需注意,嵌套使用时内层的反引号必须用反斜线()将其转义。例如:
$ abc=`echo The number of users is `who| wc-l``
$ echo $abc
The number of users is 5
$
在反引号之间的命令行中也可以使用shell的特殊字符。Shell为得到``中命令的结果,它实际上要去执行``中指定的命令。执行时,命令中的特殊字符,如$,”,?等又将具有特殊含义,并且``所包含的可以是任何一个合法的Shell命令,如:
$ ls
note readme.txt Notice Unix.dir
$ TestString=”`echo $HOME ` ` ls [nN]*`”
$ echo $TestString
/home/yxz note Notice
$
其他情况

,读者可自行试之。

####第十六章
■另一种输入重定向称为here文档,它告诉shell当前命令的标准输入来自命令行。here文档的重定向操作符使用<<。它将一对分隔符(本例中用delim表示)之间的正文重定向输入给命令。下例将一对分隔符delim之间的正文作为wc命令的输入,统计出正文的行数、单词数和字符数。
$ wc<<delim
>this text forms the content
>of the here document,which
>continues until the end of
>text delimter
>delim
4 17 98
在<<操作符后面,任何字符都可以作为正文开始前的分隔符,本例中使用delim作为分隔符。here文档的正文一直延续到遇见另一个分隔符为止。第二个分隔符应出现在新行的开头。这时here文档的正文(不包括开始和结束的分隔符)将重新定向送给命令wc作为它的标准输入
如果要将一条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作
符>>。形式为:命令>>文件名。例如:
$ ls *.doc>>directory.out
和程序的标准输出重定向一样,程序的错误输出也可以重新定向。使用符号2>(或追加符号2>>)表示对错误输出设备重定向。例如下面的命令:
$ ls /usr/tmp 2> err.file
可在屏幕上看到程序的正常输出结果,但又将程序的任何错误信息送到文件err.file中,以备将来检查用。
还可以使用另一个输出重定向操作符(&>)将标准输出和错误输出同时送到同一文件中。例如:
$ ls /usr/tmp &> output.file
利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例如使用下面的命令序列:
$ ls /usr/bin > /tmp/dir
$ wc –w < /tmp/dir
459
统计了/usr/bin目录下的文件个数。
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出
又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。
通过使用管道符“|”来建立一个管道行。用管道重写上面的例子:
$ ls /usr/bin|wc -w
1789
命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为:
command1 `command2`
其中,command2的输出将作为command1的参数。需要注意的是这里的`符号,被它括起来的内容将作为命令执行,执行后的结果作为command1的参数。例如:
$ cd `pwd`
该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。

####第十七章

■为了管理LINUX服务器的使用者账户,系统提供

了新增使用者(useradd),修改使用者账户数据(usermod)和删除使用者(userdel)在系统内的使用权等指令。若使用者需要修改自已的登入验证密码可以使用passwd指令。




相关文档
最新文档