linux学习资料(自己总结)

时间:2024.4.13

Linux 相关知识

■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包。

■ 常用网络命令

1.netconf:

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命令。

3.netstat

在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  fortop.test.edu.tw       fortop

Œ栏:定义主机的IP address。

?栏:定义主机的网域名称。

?栏:定义主机的别名。

※ 注意:此处所指的主机并不是网络伺服主机,而是泛指一般联机的机器。

您可使用vi、joe、mc等文字编辑工具编辑/etc/hosts文件,请加入其它主机信息,如:

192.168.1.10        redhat.test.edu.tw     redhat

192.168.1.15        book.test.edu.tw        book

192.168.1.20        asp.test.edu.tw         asp

无论您的网络环境是真实或是虚拟网域,我们可在网域内先架设一部DNS Server,当您架设好Apache Web Server后,您可在 /var/named/named.test档里(DNS 的主网域正解档)加入:

 Œ     ?                  ?

fortop   IN        fortop.test.edu.tw.

www CNAME       fortop

Œ 栏:主机名称。

? 栏:IN,代表所指定的网络型态

? 栏:主机网域名称。(务必输入正确)

上述第一列「fortop  IN  fortop.test.edu.tw.」是宣告fortop这部Web Server原来的网域名称,但是通常Web Server的网域名称都是以 www做为开头,即www.test.edu.tw为Web Server的网域名称,此时,您必须加上如上述第二列

「www   CNAME  fortop」,将fortop取别名为www,往后,当您输入 http://www.test.edu.tw,实际上就是联机到 http://fortop.test.edu.tw;当然您也可将Web Server在安装系统时就将主机名称取名为www,如此只要在DNS Server的主网域正解档里输入「www  IN  www.test.edu.tw.」即可。

除了在主网域正解档里输入网域注册数据后,请别忘了还需要在主网域反解档(如:/var/named/named.test.arpa)里输入 IP与网域名称的对应关系,如下所示:

16     IN      PTR     fortop.test.edu.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  db.nyist.net      创建正向解析文件“db.nyist.net”

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术语

/etc/host.conf是用来控制本地转换程序的文件的设置。该文件告诉转换程序使用哪些服务、按照什么顺序进行。

表2 /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配置文件

表4概括了named.conf文件中使用的各种配置语句,它提供的信息能帮助我们了解这一些例子:

表4 named.boot文件的配置选项

配置named.conf文件所使用的方法,是用来控制将域名服务器作为主服务器、辅助服务器还是唯高速缓存服务器的。

表5 常见标准资源记录

例:

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 "test.net" IN { //指定一个域名为test.net的正向区域

type master;

file "test.net”

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/test.net文件

@ IN SOA linux.test.net. Webmaster.test.net. ( SOA表示授权开始

/*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.net,即表示一个域名记录定义的开始。而linux.test.net则是这个域的主域名服务器,而webmaster.test.net则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始

*/

2003012101 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。*/

28800 ; refresh

/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的*/

7200 ;retry

/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试 */

3600000 ; expiry

/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的*/

8400 )

/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记录*/

IN NS linux // linux.test.net作为该域的域名服务器

IN MX 10 linux //为整个域定义一个邮件服务器,该记录假定linux是test.net域的邮件服务器,其优先值是10

linux IN A 168.192.0.14 //定义了一条A记录,即主机名到IP地址的对应记录linux.test.net的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 linux.test.net. webmastert.linux.net. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS linux.test.net.

/*以上的各关键字的含义跟test.net是相同的

14 IN PTR linux.test.net. //建立一个反向记录168.192.0.14的IP地址域名为linux.test.net

133 IN PTR it-test1.test.net.

/*

上面的第一列表示的是主机的IP地址。省略了网络地址部分。如14完整应该是:

168.192.0.14

PTR:表示反向记录

最后一列表示的是主机的域名。

辅助服务器的配置与主服务器的配置不同,它使用slave语句代替master语句。slave语句指向用作域信息源的远程服务器,以替代本地磁盘文件。下面的named.conf文件可以将vale配置成为vbrew.com域的辅助服务器:

// 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 "test.net" IN { //指定一个域名为test.net的正向区域

type slave;  //这个服务器成为test.net的辅助服务器

file "test.net”

allow-update { none;};

masters { 191.72.1.3; };//191.72.1.3为主服务器地址;从IP地址为191.72.1.3的服务器中下载test.net的信息,并将其数据保存在/var/named/ test.net文件中, 如果该文件不存在,named就创造一个,并从远程服务器中取得区数据,然后将这些数据写入新创建的文件中。如果存在该文件,named就要检查远程服务器,以了解该远程服务器的数据是否不同于该文件中的数据,如果数据有变化,它就下载更新后的数据,用新数据覆盖该文件的内容;如果数据没有变化,named就加载磁盘文件的内容,不必做麻烦的区转移工作。

};

zone "72.191.in-addr.arpa"{

type slave;

file "named.rev";

masters {191.72.1.3;};

};

表6 资源记录格式中的字段

DNS资源记录的格式是:

[domain] [ttl] [class] type rdate

各个字段之间有空格或指标符分隔。表6讨论了这些字段的含义。

例:

基本的named.ca文件包含根服务器的NS记录和提供根服务器地址的A记录。下面就是基本的named.ca文件:

; named.ca file

; servers for the root domain

. 99999999 IN NS NS.NIC.DDN.MIL.  //根域,TTL=99999999 TCP/IP网络 域名记录

99999999 IN NS NS.NASA.GOV.

99999999 IN NS KAVA.NISC.SRI.COM.

99999999 IN NS TERP.UMD.EDU.

99999999 IN NS C.NYSER.NET.

99999999 IN NS NS.INTERNIC.NET.

;

; root servers by address

;

NS.NIC.DDN.MIL. 99999999 IN A 199.112.36.4

NS.NASA.GOV. 99999999 IN A 128.102.16.10

KAVA.NISC.SRI.COM. 99999999 IN A 192.33.33.24

TERP.UMD.EDU. 99999999 IN A 128.8.10.90

C.NYSER.NET. 99999999 IN A 192.33.4.12

NS.INTERNIC.NET. 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.conf     ;设定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,当您使用浏览器读取 http://www.test.edu.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="http://www.test.edu.tw/icons/apache_pb.gif">

 所谓虚拟目录是将实际的磁盘目录,以一个简单的名称对应到网站上的目录,如上例将/home/httpd/icons目录对应到 icons虚拟目录,此后icons目录表面上是以网站http://www.test.edu.tw/(简写 / )为根目录下的子目录,实际上是读取/home/httpd/icons目录下的数据,这个观念在建置网站时被广泛应用,请务必熟记!

Apache Server的组态设定

基本上您可在不做任何设定的情况下使用Apache www Server,只要记得下列几个原则就行了:

1. /home/httpd/html目录是放置WWW 网站网页的根目录,也就是说请您将做好的网页,以此目录为网站最上层目录(网站根目录),开始放置相关的网页数据,首页网页务必取名为:index.html。当您使用浏览器浏览网站,请输入URL地址为http://www.test.edu.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账号为例其结构如下。

linux学习资料(自己总结)

Ø  首先须做设定的组态档是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/conf/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地址 为http://www.test.edu.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      "uliwzx.com"; #定义域名为 uliwzx.com

 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 "teacher.uliwzx.com"; #定义FQDN

        }

      host admin {

    hardware ethernet 00:50:56:c0:00:02;

                fixed-address 192.168.1.211;

                option host-name "admin.uliwzx.com";

        }

}

说明:

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 20## 显示20##年的日历

    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<

>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指令。

更多相关推荐:
linux学习总结01

/etc/inittab关于启动的一些配置文件停止系统init0haltpoweroffshutdown重启系统init6reboot如果设置成1或6的话,那么将永远无法进入系统,总是处于不断的重启或开机动作。…

ARM-linux学习总结

AEM-linux学习总结系统要求:windows下虚拟机安装RedLinux挂接ARM开发板知识点1.1.WindowsXP与Linux共享文件夹问题在Linux系统中选择VM-Settings在弹出的Vir…

linux学习总结

Linux学习总结一、什么是Linux操作系统?Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、…

linux学习总结

学习总结1.在虚拟机VmareWorkstation上安装RedHatLinux9系统并且配置;1.1.安装FTP服务;1.1.1.挂载光驱:mount/mnt/cdrom1.1.2.在RedHatLinux系…

linux学习总结

学习Linux,首先得了解它,linux是一种类unix的操作系统,在源代码级上兼容绝大部分的Unix标准,他的标志是一直可爱的企鹅,linux从一开始,就决定自由扩散它,包括源代码,这引起了很多爱好者的注意,…

linux学习心得

Linux学习心得我们这一代90后从小接触的是windows98家里条件好的自己有电脑装的是20xx后来又有了XP上大学时又有了win7说实话小时候没想过搞IT也计算机了解也只是一些皮毛至于什么UNIXLinu...

Linux学习总结

重庆工业职业技术学院服务器安装与布署课题名称服务器安装与布署专业班级学生姓名陈贵芳指导教师顾宏久二O13年11月1目录目录Linux学习总结1一LINUX介绍11LINUX概述12发展简史13文件系统34主要特...

linux个人总结

个人linux总结1更改telnet登录慢的问题cdetcviresolvconf将里面内容清空2更改root用户不能直接远程登录问题cdetccdpamdvilogin注释掉这行authrequiredpam...

Linux学习心得

Linux学习心得总结第二事业部KevinSunLinux简介Linux是一套免费使用和自由传播的类Unix开源操作系统是自由软件和开源代码的经典范例由世界各地的成千上万的程序员设计和实现的具有开放性多用户多任...

linux学习心得及其建议

Linux学习心得转眼一个学期又过去了心中总有点失落在这一年半的大学生活里我得到了什么收获了什么感觉好迷茫回想自己刚踏入校门的那份纯情无知现在回味起来都感觉有点好笑记得刚开始报选修课的时候当在网上看见齐老师的名...

韩顺平.linux视频教程学习小结.v1.0

linux视频教程第0讲开山篇为什么学习linuxlinux是一个开源免费的操作系统其稳定性安全性处理多并发已经得到业界的认可目前很多中型大型甚至是巨型项目都在使用linuxlinux内核redhat红旗lin...

Linux内核学习经验总结

开篇学习内核每个人都有自己的学习方法仁者见仁智者见智以下是我在学习过程中总结出来的东西对自身来说我认为比较有效率拿出来跟大家交流一下内核学习一偏之见疏漏难免恳请指正为什么写这篇博客刚开始学内核的时候不要执着于一...

linux学习总结(37篇)