2004年10月04日
用wget下载整个网站的方法
wget -r -p -np -k http://202.38.75.11/~jbhuang/blog/
2004年09月23日
Linux下配置DHCP服务器
http://www.codesky.com/info/5144.htm
配置DHCP
Redhat使用dhcpd进程提供DHCP服务,启动时dhcpd自动读它的配置文件/etc/dhcpd.conf。dhcpd将客户的租用信息保存在/var/lib/dhcp/dhcpd.leases文件中,该文件不断被更新,从这里面可以查到IP地址分配的情况。
dhcpd为了向一个子网提供服务,需要知道子网的网络地址和网络掩码,并且还要知道地址分配的范围,下面给出一个简单的dhcpd.conf文件:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
}
此例中,dhcpd将给192.168.100.0网络分配192.168.100.10到192.168.100.253的IP地址。
租期时间可以从0秒到无限长,可以根据需要来定。缺省的租期时间为一天,即86400秒。可以为主机定义两个租期长度:
default-lease-time 默认租期时间;
max-lease-time 用户可以获得的最长租期时间。
下面的配置将缺省的租期时间设置为10分钟,最长租用时间为1小时:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
default-lease-time 600;
max-lease-time 3600;
}
DHCP还可以向客户提供更多的参数,这些参数可以用option来指定,例如:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
default-lease-time 600;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option routers 192.168.100.254; 默认路由
option domain-name-servers 202.102.134.68; DNS服务器
}
现在大家对DHCP配置应该有个了解了,其实过程就是这么简单,中间就隔了一层窗户纸。
实际演练
接下来给大家一个示例,把我的redhat9.0配置成一台DHCP服务器。
vi /etc/dhcpd.conf
配置后,我的机器的该文件内容如下(注释的部分都已经删除掉了,至于原文,大家可以对照/usr/share/doc/
dhcp-3.0pl1/dhcpd.conf.sample文件):
[root@rh9 test]# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name-servers
202.96.199.133, 202.96.133.134;
range dynamic-bootp 192.168.0.1 192.168.0.255;
default-lease-time 21600;
max-lease-time 43200;
}
这儿我解释一下配置部分,首先subnet定义了网络的地址,然后option routers定义了网关地址;subnet-mask定义子网掩码;broadcast-address定义广播地址;domain-name-servers定义DNS NAMESERVER的地址;dynamic-bootp是给客户端分配的地址,定义的是192.168.0.1-- 192.168.0.255整个网段地址;最后2行是讲分配出的地址的缺省租期时间设置为10分钟,最长租用时间为1小时。这样,一个DHCP服务器就配置好了。
我们可以测试一下结果:在另外一个redhat linux7.2上,把IP设置成DHCP主机的IP地址,通过netconfig命令配置。
检查配置:
[root@rh72 root]# more /etc/sysconfig/ network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
[root@rh72 root]#
确定网卡已经是DHCP的了。
[root@rh72 root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A3:C6:71
inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
查看地址,发现ETH0已经分配了一个254的地址,说明DHCP服务器配置成功。
小结
至此,我们已经完成了一台Linux DHCP服务器的安装和配置工作。在实际的使用过程中,上述操作步骤应该可以满足一般应用的需求,但是我们还需要经常研究具体的命令参数,让DHCP服务器能更好地为我们服务
2004年09月16日
VNC
VNC(Virtual Network Computing,虚拟网络计算),是用来显示远程计算机整个桌面的轻量型远程控制程序。
1. 下载:http://www.uk.research.att.com/vnc
2. 使用方法:
1) 服务器端:
#vncserver
$vncserver
注意到每个用户都可以启动自己的vncserver,每个用户可以启动多个vncserver,用显示端口号:1,:2,:3等等来标识。
2) 客户端:
a)在linux下,运行vncviewer命令即可,服务器地址的写法形如192.168.3.119:1
b)在windows下,运行windows版本的vncviewer即可,用法与linux下相近。
c)用浏览器(平台无关),作为java applet来实现,以形如http://192.168.3.119:5801的方式来启动
3) 密码修改:
第一次启动vncserver会提示输入密码,以后要修改的话,运行:
#vncpassword
4) 停止vnc server:
#vncserver -kill :1
#vncserver -kill :2
注意到vncserver只能由启动它的用户来关闭,即时是root也不能关闭其它用户开启的vncserver,除非用kill命令暴力杀死进程。
5) 指定显示端口号启动VNC server:
#vncserver :3
$vncserver :6
6) 设置VNC server分辨率:
#vncserver -geometry 800x600
#vncserver -geometry 640x480
7) 设置vncserver的色深:
8位为256色,16位为64k色
#vncserver -depth 8
#vncserver -depth 16
8) 稳定性设置:
vncserver默认在多个客户机连接同一个vncserver的显示端口时,vncserver端口旧连接,而为新连接服务,可通过-dontdisconnect拒绝新连接请求而保持旧的连接。
9) 设置vncserver的同一个显示端口可以连接多个客户机
#vncserver -alwaysshared

10) vnc的反向连接
大多数情况下,vncserver总处于监听状态,vnc client主动向服务器发出请求从而建立连接。然而在一些特殊的场合,需要让vnc客户机处于监听状态,vncsrever主动向客户机发出连接请求,此谓vnc的反向连接。主要步骤:
a) 启动vnc client,使vncviewer处于监听状态
#vncviewer -listen
b) 启动vncserver
#vncserver
c) 在vncserver端执行vncconnect命令,发起server到client的请求
#vncconnect -display :1 192.168.3.69
Linux 系统中的Samba配置(转)
http://www.ccw.com.cn/htm/app/salon/01_8_8_2.asp
前言:
为了实现windows 和 Linux以及其他操作系统之间的资源共享,软件商推出nfs 和samba两种解决方式。由于市场上缺乏象pc-nfs那样的客户端工具,使得Linux和windows的资源共享变得复杂。Samba的出现解决了这一问题,它以其简洁、实用、灵活配置的特点受到越来越多人们的广泛关注。
Windows利用SMB协议来实现操作系统间文件和打印机共享,而Samba本身具备SMB协议,它实现局域网内和Windows系列计算机的资源共享。
本文就Samba在Linux系统下的配置为重点,讨论局域网内windows 与 Linux 的资源共享。
一、Samba 介绍
1、SMB协议
SMB (Server Message Block,服务信息块) 协议,是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其他windows和linux 机器提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB运行在TCP/IP之上,且使用NetBIOS的nameserver让linux机器可以在windows 网络邻居里被浏览。
2、Samba
Samba是用来实现SMB的一种软件,由澳大利亚的Andew Tridgell开发,是一种在Linux 环境里运行的自由软件。它可以完成如下功能:
文件服务和打印服务,实现Windows和Linux的资源共享。
登录服务器,可以作为局域网的服务器。
作为主域控制器。
WINS服务器。
支持SSL。
支持SWAT。
二、 Samba服务
1、 核心进程
Samba 有两个守护进程:smbd 和nmbd,它们是Samba的核心进程。nmbd进程使其他计算机浏览Linux服务器,Smbd进程在SMB服务请求到达时对它们进行处理,并且为使用或共享的资源进行协调。
2、 启动服务
Samba 有两种启动方式:Daemon形式和Inetd形式。
(1)Daemon形式 建立启动脚本:rc.samba
smbd -D -d1
nmbd -D -d1
-D 表示以Daemon形式执行;-d1 表示除错记录级别
执行脚本文件rc.samba
(2)Inetd形式
设置文件:/etc/services
netbios -ssn 139/ tcp
netbios -ns 137/ udp
设置文件:/etc/inetd.conf
netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd
重启动Inetd daemon
# kill -HUP 1
3、 客户工具 smbclient
Smbclient命令用来存取远程Samba服务器上的资源。其命令形式与ftp相似。
命令语法是:#smbclient [password] [option]
(1) 解释:servicename是要连接的资源名称,资源名称的形式如下:
//server/service server 是远程服务器的NetBIOS名字,对于windows服务器而言,就是出现在网上邻居中的名字。
Service是各server所提供的资源的名字。
pssword 是存取该资源所需的口令
option 各种命令选项,其中 -L 用于列出远程服务器提供的所有资源
-I 指定远程服务器的IP地址。此时,servicesname 中的NetBIOS名部分将被忽略。
(2)多种smbclient命令:
执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:\>
这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。
4、 Samba系统装载与卸载
(1) 装载其他主机的资源
我们可以利用Samba提供的smbmount命令,装载其他主机的共享资源。
Smbmount的命令语法:# smbmount
其中 servicename 是资源名,mount-point是安装点。
例如: # smbmount "\\server\tmp" -c ' mount /mnt'
表示:把名字为“server”的计算机上的共享资源“tmp”的内容装载到本地的 /mnt
目录下。
(2) 卸载资源
卸载一个已经装载的SMB文件系统,使用smbunmount命令,同时指定要卸载的装载点。 例如: # smbunmount / mnt
三、Samba配置
Samba组件的配置文件是 /etc/smb.conf ,该文件几乎包含了Samba系统程序运行时所需的所有配置信息。
1、 配置选项
配置文件中有比较重要的几个节:[gloabal]、[homes]、[printers],下面分别给与说明。
(1)[gloabal]节 在全局参数中,参数的设置直接影响samba系统。
NetBIOS name:设置主机名称
Workgroup:用来指定主机所在网络上所属的NT域名或者工作组名称。格式是
Workgroup= Nt Domain-Name or workgroup-name
Server string:用来设置本机描述,缺省是 Samba Server
Host Allow:它允许设置哪些领域的机器可以访问它的Samba服务器
Load printers:允许自动加载打印机列表,而不需要单独设置每一台打印机。
Interface:配置Samba使用多个网络界面。
Domain controller: 仅当网络中有一台在安装时设置为主域控制器时使用此选项。
Security: 设置安全参数,定义安全模式。Samba 的安全模式有四种
Share、 user、 server 、domain
encrypt passwords 、smb passwd file:用于适用加密口令。
下面是一段参数配置例子:
[global]
smb passwd file = /etc/smbpasswd
remote announce = 172.18.158.234 172.18.153.55 172.18.153.255
dns proxy = no
security = user
encrypt passwords = yes
server string = Ftp Server
workgroup = turing
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba/log.%m
load printers = yes
guest account = dscan
remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255
printcap name = /etc/printcap
max log size = 50
hosts allow = 172.18.158. 172.18.153. 127.
... ...
(2)[homes]节 所有使用者的home目录
当任何一个客户访问Samba服务器时,在网络资源中都能出现自己的home目录共享。其配置如下:
[homes]
comment = Hnnw Directories
browseable = no
writable = yes
(3)用户共享目录
用来指定某一特定用户组或者用户拥有访问权限的目录配置,下列参数配置仅有hnnw组的用户有权访问目录/home/samba。
[public]
comment = Public Hnnw
path = /home/samba
public = yes
writable = yes
printable = no
write list = @hnnw
2、 用户映射
全局参数“username map”用来控制用户映射,它允许管理员指定一个映射文件,该文件包含了在客户机和服务器之间进行用户映射的信息。
如:username map= /etc/smbuser
用户映射经常在windows 和linux 主机间进行。 两个系统拥有不同的用户账号,用户映射的目的是将不同的用户映射成为一个用户,便于共享文件。
下面是一个映射文件的例子:
# Map Windows admin to root
root=admin administrator
;Map the member of developer to studio
studio = @developer
等号左边是单独的Linux账号,等号右边是要映射的账号列表。
服务器逐行分析映射文件,如果提供的账号和某行有右侧列表中的账号匹配,就把它
替换为等号左边的账号。
3、 使用加密口令
新版本的windows 95以及windows98、winnt(sp3以上版本),在网络传输中仅传递加密口令作为用户认证的信息。这类客户机和不支持加密口令并且以user安全级运行的Samba服务器通讯时,会出现故障。为了正常的通讯,samba服务器使用加密口令。下面讨论如何在samba中使用加密口令。
(1) 口令文件 /etc/smbpasswd
为了使用加密口令,samba 需要一份口令文件(/etc/smbpasswd),并且该文件应该和Linux的口令文件(/etc/passwd)保持同步。下面是生成文件命令:
# cat /etc/password | mksmbpasswd > /etc/smbpasswd
smbpasswd 是需要的口令文件,其权限是0600,所有者是root
smbpasswd和passwd文件的记录对应,密码部分不同。密码有两部分组成,每部分
是32个"X",前部分用于和Lanman通讯,后部分和Windows NT通讯。
Root用户可以使用smbpasswd命令为每个用户设定samba口令。
(2) 修改配置文件 /etc/smb.conf
要使Samba使用加密口令,需要在配置文件smb.conf中加入如下参数。
Encrypt passwords=yes
Smb passwd file= /etc/smbpasswd
第一行通知samba使用加密口令,第二行给出口令文件的位置。
(3) 重启动samba 服务。
修改完配置文件后,需要重新启动samba服务,可用如下命令:
# /usr/sbin/samba restart
4、windows系统中的明码口令使用
Samba系统中使用明码口令作为连接SMB的默认设置。当SMB服务器对协商协议做出响应时,响应信息包含了一位,以说明服务器是否支持询问或者响应加密。随着win95的网络重定向更新程序的发布,Microsoft修改了默认值,这样,windows客户就不会向不支持加密的服务器发送明码口令了。
在这种情况下,有两种解决办法:
(1)设置Samba服务器使用加密口令
(2)让windows客户使用明码口令
这里选用第2种解决办法,通过修改注册表来实现。下面对win95/win98、winnt用户分别给与说明。
(1)win98/win95系统用户
在注册表中加入下列注册字,并重新启动机器:
[HKLM\System\CurrentCntrolSet\Services\VxD\VNETSUP]
“EnablePlainTextPAssword”= dword:00000001
(2)Winnt系统用户
修改注册表,加入下列注册表项,并重新启动机器:
[HKLM\System\CurrentCntrolSet\Services\Rdr\Parameters]
“EnablePlainTextPAssword”= dword:00000001
四、Samba应用
1、 windows资源共享与使用
(1)windows资源共享
a. 使用TCP/IP协议作为网络默认通讯协议
b. 修改网络配置,设置文件和打印机共享。
c. 设置好计算机名和所属工作组
d.共享系统资源
(2)在windows系统中使用Linux共享资源
a. 登录进入windows网络
b. 通过网上邻居查看、使用共享资源。
c. 命令行下工具使用共享资源
使用命令行下的net.txt工具来查看、使用共享资源:
net use 命令的语法: c:>net use X:\\servername\sharename
在这里,X:是共享的驱动器盘符,\\servername\sharename是到共享的UNC的网络路径。
例如: c:\>net use h:\\hey\myfile
表示:将hey机器上的myfile共享资源映射为本地的h盘
2、Linux资源共享与使用
(1)将Linux 的资源共享
通过编辑Samba配置文件,添加需要共享的Linux资源。同时可以设定访问此资源的用户群及其访问权限。下面是一段例子,将本机的 /public/data 目录共享,所有人都有读写权限。
[data]
comment = Public Data
path = /public/data
public = yes
writable = yes
printable = no
(2)在Linux中使用共享资源
可以使用smbclient命令,访问所有的Samba资源。具体使用方法见前述。
五、Samba应用程序
smbclient :访问所有共享资源
smbstatus: 列出当前所有的samba连接状态
smbpasswd:修改samba用户口令、增加samba用户。
Nmblookup:用于查询主机的NetBIOS名,并将其映射为IP地址
Testparam: 用于检查配置文件中的参数设置是否正确
Linux 系统中的Samba配置
linux下操作光盘的几条命令
1. 从光盘中制作iso文件:
#cp /dev/cdrom ISO文件名
同理可以把上面的/dev/cdrom换成/dev/fd0、/dev/sda1等移动存储设备的设备文件名制作软盘、U盘的iso映象文件
2. 使用目录文件制作iso文件
#mkisofs -r -o ISO文件名 路径名
3. 刻录光盘
先检测光盘刻录机的参数:
#cdrecord -scanbus
……
scsibus0:
0,0,0 0)'SAMSUNG' 'CDRW/DVD DATA-348B' 'T501' Removable CDROM
……
然后刻录:
#cdrecord -v speed=刻录速度 dev=刻录机设备号 ISO文件名
如:
#cdrecord -v speed=8 dev=0,0 /home/share/data.iso
2004年09月14日
关于NFS的东东
1. 安装包为portmap和nfs-utils
2. 配置文件为/etc/exports,格式:
/home/share *(sync,ro) 192.168.3.69(sync,rw)
/home/ftp 192.168.1.0/24(sync,ro)
/home/public *.test.com(sync,rw)
3. nfs启动:
#service portmap start
#service nfs start
4. showmount命令:
showmount:显示连接到指定NFS服务器的所有主机
showmount -e [NFS服务器主机地址]:显示指定NFS服务器的输出目录列表
showmount -d [NFS服务器主机地址]:显示指定NFS服务器中已被客户端连接的所有输出目录
showmount -a [NFS服务器主机地址]:显示指定NFS服务器的所有客户端主机及其所连接的目录
5. exportfs命令:
exportfs -rv:使NFS服务器重新读取exports文件中的设置而不需要重新启动NFS服务器
exportfs -auv:停止当前主机中NFS服务器的所有目录输出
exportfs -av:输出当前主机中NFS服务器的所有共享目录
5. 挂/卸载NFS服务器中的共享目录
#showmount -e 192.168.3.69
[root@jbhuangRH root]# showmount -e 192.168.3.119
Export list for 192.168.3.119:
/writable ns.infonet.org
[root@jbhuangRH root]# mount 192.168.3.119:/writable /mnt/nfs
[root@jbhuangRH root]# ls /mnt/nfs
qterm qterm-0.3.6.tar.gz
[root@jbhuangRH root]# umount /mnt/nfs
2004年09月09日
apache+named配置虚拟主机
系统:Mandrake10.0,RH9下面的named一直搞不定,下午再看看。
1. apache的安装和配置:
到64.123或者apache的官方主页上下载一个httpd-2.0.50.tar.gz,依次
#tar xvzf httpd-2.0.50.tar.gz
#./configure --prefix=/www/apache;make;make install
编辑/www/apache/conf/httpd.conf,做了其它基本配置之后,到文件的section3,修改如下,添加两个虚拟主机:
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
ServerAdmin kingpaul@ustc.edu
DocumentRoot /www/apache/htdocs
ServerName kingpaul.infonet.org
ErrorLog logs/kingpaul.infonet.org-error_log
CustomLog logs/kingpaul.infonet.org-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin sunshine@ustc.edu
DocumentRoot /www/apache/sunshinedocs
ServerName sunshine.infonet.org
ErrorLog logs/sunshine.infonet.org-error_log
CustomLog logs/sunshine.infonet.org-access_log common
</VirtualHost>
保存退出,然后在/www/apache/htdocs和/www/apache/sunshinedocs添加不同的主页文件,最后:
#/www/apache/bin/apachectl start
启动httpd
2. named的安装配置
我的linux是ftp安装的,因此只要用下面这条命令就给我把named装上了,很简单。
#urpmi name
编辑/etc/named.conf,在options字段添加:
forward first;
forwarders {
202.38.64.1;
};
再添加如下语句:
zone "infonet.org" {
type master;
file "name2ip.db";
allow-update {localhost;};
};
保存退出。然后在/var/named/下添加一文件name2ip.db,编辑内容为:
$TTL 86400
@ IN SOA kingpaul.infonet.org. root.kingpaul.infonet.org. (
2001111601
28800
14400
3600000
86400
)
IN NS kingpaul.infonet.net
IN A 192.168.3.153
kingpaul IN A 192.168.3.153
sunshine IN A 192.168.3.153
jbhuang IN A 192.168.3.69
lab IN A 192.168.3.1
localhost A 127.0.0.1
然后,编辑/etc/resolv.conf,添加字段
search infonet.org
servername 192.168.3.153
最后:
#serice named restart
启动named
3. 在另外一台机器上,将DNS服务器设置为192.168.3.153,nslookup kingpaul.infonet.org和nslookup sunshine.infonet.org发现两者地址是一样的,打开IE,地址敲kingpaul.infonet.org和sunshine.infonet.org,可打开不同的主页,虚拟主机设置成功。
2004年08月31日
proftpd安装与配置
xinetd模式:
http://www.17lan.com/mc_631.html
standalone模式:
http://www.fanqiang.com/a6/b2/20011020/0905001485.html
一个proftpd配置例子:
http://blog.csdn.net/swordzjj/archive/2004/06/30/30490.aspx
2004年08月30日
与openssh有关的东东
一、安装和配置openssh server:
1 安装软件包(略)。
2 OpenSSH服务器配置文件:/etc/ssh/sshd_config
3 penSSH服务器状态:#service sshd status
4 启动/停止/重启enSSH server:#service sshd start/stop/restart
5 设置OpenSSH server默认启动:
#chkconfig --level 35 sshd on
#ls /etc/rc3.d/|grep sshd
二、scp:从远程主机复制文件到本机
#scp root@192.168.3.119:/etc/passwd .
三、sftp:使用ssh协议的ftp
(笔记)linux配置telnet服务器
1. 安装telnet-server软件包。(略)
2. 设置telnet-server的启动运行
telnet server不作为独立的服务器程序运行,而是受xinetd程序的控制,启动配置文件为/etc/xinetd.d/telnet,默认xinetd程序并不启动该服务,可在chkconfig --list看出telnet是关闭的,/etc/xinetd.d/telnet中disable=yes可通过下面的方式启动telnet server:
1) chkconfig telnet on //该命令修改了/etc/xinetd.d/telnet的配置,设置disable=no
2) service xinetd restart
再次chkconfig --list看到telnet server已经启动。
2004年08月27日
GRUB入门
LILO 需要知道你的内核在驱动器上的实际位置,但是GRUB
却不需要,它不仅能读文件系统还能识别内核映像,而且它还支持最新的 2.4.1 内核所带的 Reiser 日志文件系统。这意味着你不必在更新内核或者改变配置文件之后重新安装GRUB。如果BIOS 支持LBA 的话,也没有1024 柱面的问题。另外还支持网络启动和无盘客户机。
然而,或许我们对LILO 太熟悉了吧,也或许GRUB 还有很多需要完善?总之,安装 GRUB 看起来并不是一件很轻松的事情。下面我们就详细介绍GRUB 的安装和配置。
安装
在 /tmp 目录下解开文件:
# tar zxvf grub-0.5.96.1.tar.gz
进入 "grub-0.5.96.1" 目录,编译程序:
# ./configure
# make
# make install
配置:
和许多我们平常看到的多重启动管理程序一样,GRUB
提供一个菜单界面(LILO 不是菜单界面的)。GRUB的
缺省安装位置为 /boot/grub ,配置文件也放在这个目录下。缺省的配置文件名为 menu.lst,这个文件的功能就像和 lilo.conf
一样,定义多重启动选项以及磁盘映像。
我们来看一个 menu.lst 文件的示范例子:
timeout 5
color black/yellow yellow/black
default 0
password freeos
title My Mandrake
kernel (hd0,1)/vmlinuz root=/dev/hda3 idebus=66
title My Red Hat
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 idebus=66
title W2K Pro
root (hd0,0)
makeactive
chainloader +1
让我们详细分析一下各个选项的含义:
timeout - 缺省入口的显示延迟时间(秒)
color - 菜单显示的颜色组合,第一组颜色为前景色和背景色,
第二组为高亮时的组合。
default - 定义缺省的启动入口,这里的 0 就是使用定义的第一个入口。
password - 定义进入GRUB 高级特性时需要的口令。GRUB 利用其能读取文件系统的特色,提供十分强大的功能。例如用户可以在grub 的启动提示符下输 'cat /etc/shadow' 来读包含加密口令的文件,而不需要进入你的系统!所以,为你的系统设置一个口令十分重要。
下面分析启动入口,每一个入口都应该以一个 'title' 的关键字开始,后面跟上对该启动入口的描述。接下来就是 'kernel' 入口,
kernel (hd0,1)/vmlinuz root=/dev/hda3 hdc=ide-scsi
根据 GRUB 对设备的命名规则,我们可以很容易的理解上面这行的含义:软驱设备名为 fdx ,硬盘为 hdx,需要记住的是 GRUB 从0 开始计数,所以第一台硬盘为 hd0 而不是 hd1。设备名用括号括起来,硬盘上的分区用逗号连接。例如 (hd0,1) 表示第一台硬盘上的第二个分区,而 (hd1,5) 就表示第二台硬盘上的第一个逻辑分区。
GRUB 能读取大多数文件系统,上面这一行指定 GRUB 寻找
位于第一台硬盘上第二基本分区上的 /vmlinuz 文件,你也需要指定 'root=/dev/hda3' (假设你的根文件系统位于/dev/hda3),否则内核就不能挂接上根文件系统,之后就是你自己想加入的其他参数了。这些参数就和LILO 启动时传递给内核的参数一样,或者说和 lilo.conf 中 append 后面的参数一样。
另外一个比较特别的入口是启动Windows 2000 的入口,root 入口指向 Windows 2000 的安装位置(C:\),接下来的入口设置分区的激活标志,最后的入口告诉 GRUB 搜索分区的第一个扇区来启动那里的操作系统。
以上是对GRUB 的一个典型的多重启动设置的分析,在正式开始安装GRUB 之前,建议你手头有一张LILO 启动盘或者一张应急启动盘,以防不测。
以root 登录,输入"grub"命令以后,就会看到如下的画面:
GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ]
grub>
以上看到的就是 grub 提示符,我们要在这个提示符下面安装GRUB。
grub> install (hd0,1)/boot/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/boot/grub/menu.lst
GRUB 分为两个主要的步骤, stage1 和 stage2。Stage1 是一段嵌入MBR 的迷你代码。Stage2 是主要部分,在 stage1 把控制权传递给它后,就由它来接管所有事情。
install 后面指定stage1 的位置,我们不仅说明了其分区
位置:(hd0,1),因为 GRUB 能读取文件系统,所以还说
明了分区上目录位置:/boot/grub/stage1,d 参数表示 stage1 将寻找 stage2 所在的磁盘。接着就是 GRUB 的安装位置:(hd0) ,这里就是指安装在MBR。后面的参数指定 stage2 的位置:(hd0,1),和 stage1 的定义一样。p 参数指定 menu.lst 文件的位置。
对于 /boot 作为单独的分区的例子,需要采用下面的命令行:
grub> install (hd0,1)/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/grub/menu.lst
以上例子假设 /boot 位于 (hd0,1) (也就是hda2),而 / 位于(hd0,2) (也就是 hda3) ,我们不能用 '(hd0,2)/boot/grub/stage1' ,因为GRUB 不知道 (hd0,1) 是 /boot ,所以必须首先指向挂接为 /boot 的分区,然后把目录指向那里。
重新启动系统以后,就可以看到 GRUB 菜单了。看起来似乎很繁琐,这么长的命令行,是的!对于那些 LILO 能正常使用的人来说,或许没有必要来玩这个危险游戏。但是,对于那些想使用 GRUB 增强功能的人来说,试一下 GRUB 或许会有意想不到的惊喜。我的朋友告诉我说他不能用 LILO 识别 1G 内存,希望 GRUB 能帮助办到。本文旨在抛砖引玉,
GRUB 还有很多的功能有待您的开发。
如果在配置和安装中遇到了麻烦,为什么不使用
info grub 或者 man grub 来寻求帮助呢?或者干脆上
GRUB 的官方网站
http://www.gnu.org/software/grub/
寻找 FAQ 和其他文档呢?
GRUB 的下载地点:
ftp://alpha.gnu.org:/gnu/grub/
截止到写稿时的最新版本为:0.5.96.1
2004年08月23日
扫盲——/etc/fstab释疑
转载,不完全版:
http://www.mhdn.net/o/2002-01-19/4337.html
1 fstab文件的作用
文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。
2. fstab文件格式
下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为:,例如:`knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。
fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。
fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。
fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:
选项 含义
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统
fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0
fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0
3. 示例文件
# /etc/fstab
/dev/hda9 swap swap defaults 0 0
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 1
/dev/hda6 /usr ext2 defaults 1 1
/dev/hda7 /usr/local ext2 defaults 1 1
/dev/hda8 /var ext2 defaults 1 1
/dev/hdb /cdrom iso9660 noauto,user 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
2004年08月07日
some links about unix/linux
什么是Unix:
http://www.mhdn.net/o/2002-01-20/4345.html
什么是linux:
http://www.kingsoft.com/c/2004/06/09/116860.shtml
http://www.kingsoft.com/c/2004/06/09/116861.shtml
开放源码发展史上的重要事件:
http://www.kingsoft.com/c/2004/06/09/116850.shtml
http://www.kingsoft.com/c/2004/06/09/116851.shtml
2004年07月11日
(科普)什么是 GNU
在这张图片中的两个横幅都包含了一个 GNU,其中一个读作 "What's GNU?" ,另外一个则读作 "GNU's Not Unix!" 。在中间,则是一个类似 由于超越其他人而感到自豪 的 GNU 头像的表情。
我们感谢 Etienne Suvasa 绘制这件 What's GNU 艺术品。
在这个网站上用来描述 GNU 是什么的页面包括:
这张图片有下列数种格式可以取得:
在 GNU 艺廊中的 其他的艺术品。
返回 GNU 首页。
请将有关 自由软体基金会(FSF) & GNU 的 查询 & 问题 发送到 gnu@gnu.org。
也可以通过 其他联系方法 联系自由软体基金会(FSF)。
请将有关网页的建议发送到 webmasters@www.gnu.org、
其他问题发送到 gnu@gnu.org。
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
全文在保证完整性的前提下可以在任意媒体转载 - 须保留此标注。
中文译者: 马 雪萍。
验证读者: 刘 昭宏。
本文翻译自 英文版: $20 Mar 2000 tower$
最后修改日期: 2002 年 05 月 09 日。
(扫盲)rpm命令参数列表
1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.移走一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
# rpm -q < rpm package name>
6.得到被安装的包的信息
# rpm -qi < rpm package name>
7.列出该包中有哪些文件
# rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
#rpm -qf
9.可综合好几个参数一起用
# rpm -qil < rpm package name>
10.列出所有被安装的rpm package
# rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>
(http://www.fanqiang.com)
RPM命令手册
本文出自:http://www.chinaunix.net [Linux]版 作者:wind521 (2002-05-20 06:02:01)
一、安装
命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名
详细选项:
-h (or --hash) 安装时输出hash记号 (``#')
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安
装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
二、删除
命令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
参数
pkg1 ... pkgN :要删除的软件包
详细选项
--test 只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性
通用选项
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装
程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
三、升级
命令格式
rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
参数
file1.rpm ... fileN.rpm 软件包的名字
详细选项
-h (or --hash) 安装时输出hash记号 (``#')
--oldpackage 允许"升级"到一个老版本
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--percent 以百分比的形式输出安装的进度。
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
四、查询
命令格式:
rpm -q ( or --query) options
参数:
pkg1 ... pkgN :查询已安装的软件包
详细选项
-p (or ``-') 查询软件包的文件
-f 查询属于哪个软件包
-a 查询所有安装的软件包
--whatprovides 查询提供了 功能的软件包
-g 查询属于 组的软件包
--whatrequires 查询所有需要 功能的软件包
信息选项
显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scripts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
五、校验已安装的软件包
命令格式:
rpm -V ( or --verify, or -y) options
参数
pkg1 ... pkgN 将要校验的软件包名
软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包
详细选项
--noscripts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
六、校验软件包中的文件
语法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 软件包的文件名
Checksig--详细选项
--nopgp 不校验PGP签名
通用选项
-v 显示附加信息
-vv 显示调试信息
--rcfile 设置rpmrc文件为
七、其它RPM选项
--rebuilddb 重建RPM资料库
--initdb 创建一个新的RPM资料库
--quiet 尽可能的减少输出
--help 显示帮助文件
--version 显示RPM的当前版本
(http://www.fanqiang.com)
(扫盲)chsh
名称
chsh - 更换你登入时所用的shell
语法
chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]
描述
chsh 用来更换你登入时所用的shell 。在命令列没指定shell。 chsh 会提示一个给你。
有效的shell
chsh
可用指定路径全名的方式来指定任何一个可执行的档案。 然而,如果此 shell并没纪录在 /etc/shells 档上,则chsh会提出警告讯息。
选项
-s, --shell 变更你的登入shell.
-l, --list-shells
列出纪录在 /etc/shells 的shell。
-u, --help
使用短讯。
-v, --version
版本资讯
相关文件
login(1) , passwd(5) , shells(5)
作者
Salvatore Valente (BP 1.0)
2004年07月10日
Linux关机命令详解
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2.halt----最简单的关机命令
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。
4.init
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。
2004年06月29日
Linux服务器的一些基本应用
http://www.ebcom.cn/news/main/home/ns_detail.php?id=277&nowmenuid=6&cpath=0048:&catid=48
***************************************************************
Linux服务器的一些基本应用 作者:Xchen[cdcxx@etang.com] 2002.8
***************************************************************
玩linux也有有一段时间了,作为一个初学者,遇到的麻烦实在不少。所幸这是个网络时代,在众多好心大哥帮助下,我跛子般一关一关闯了过来,其间酸甜苦辣实在让人回味。向这世界上千千万万伟大的linux程序员致敬,是他们让我们能有这么优秀的操作系统可用。这篇东西主要是给刚接触linux的而又急切想配一个服务器的朋友看的,由于鄙人水平有限,错误有所难免,欢迎大家指证。
现就以本公司的网络架构为例,来说一下linux服务器的配置。在正式配置之前先说一下这个服务器所要实现的功能:
1. 数据共享
2. 打印共享
3. 模拟NT域
4. ADSL共享
5. 内部DNS服务
6. DHCP服务
7. FTP服务
8. WWW服务
9. OPENSSH
10. 磁盘配额
11. 动态域名
网络架构如下:[如下图]
www.linuxsir.org/photo/Xchen.gif
Network:10.10.0.0
Server IP:10.10.1.1
Server Subnet-mask:255.255.0.0
Client IP:10.10.1.10-10.10.1.100
Client Subnet-mask:255.255.0.0
Client getway:10.10.1.1
Client DNS:10.10.1.2,202.96.134.133
一、准备工作:
1. RedHat linux 7.2光盘一套
2. 以太ADSL拔号器及您的ADSL接入帐号
3. 两张网卡,最好是即插即用的,免跳线的请察明irq和io。
4. 当然啦,除本机以外的其它机器
二、 RedHat linux 7.2安装:
1.初学者建议用图形界面,请用定制安装。
2系统分区如下(10G):
swap:500M
/:2G
/var:1G
/home:2G
/tools:500M
/data:4G
分区的合理化请参考相关文章。
3.若是即插用网卡,系统能检测到,请设置好ip地址,子网掩码等,请分别设为10.10.1.1和10.10.1.2,subnet-mask为255.255.0.0;若是免跳线网卡,那就等装好系统再设置吧。
4.软件包选择,要全选上也没关系,只要你有空间,若是空间有限有话,不妨定制一下软件包,下面是我的选择,仅供参考:
Printing Support
Network Support
Dialup Support
SMB:windows file server
WWW:web server
DNS:DNS name server
Software Development
5.好了,现在就next一路安装下去吧,最后不要忘了做一张启动盘。
三、linux网络环境配置
1]重启机器进入系统以后,去掉一些不必要的服务吧,留着它们启动速度慢,而且也不安全,下面是我机器刚安装好以后所保留的一些服务:
gpm/iptables/netfs/network/nfs/nfslock/portmap/syslog/xfs/xinetd
至其它的服务,等我们配置好再加载吧。
2]安装linuxconf,配置网络。
放入光盘1
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm –ivh linuxconf-1.25r7-3.i386.rpm
请用setup/system services或是chkconfig –levlel 3 linuxconf on将linuxconf设置为系统自启动服务。
netconf选择Host name and IP network devices进行主机名及网络设置:
Host name + domain:cxserver
------第一张网卡----------
config mode:Manual
primary name + domain:abc
Ip address:10.10.1.2
Netmask:255.255.0.0
Net device:eth0
Kernel Module:ne
I/O port:0x300
Irq:3
------第二张网卡----------
config mode:Manual
primary name + domain:cxserver
Ip address:10.10.1.1
Netmask:255.255.0.0
Net device:eth0
Kernel Module:ne
I/O port:0x320
Irq:5
选择Accept退出,重新启动就会看到eth0和eth1两网卡启动成功,进入系统后可用ifconfig命令查看状态,用ping命令测试其连通性,比如ping一部windows机器。
四、DNS服务器配置
为了让局域网内部用户访问服务器方便一点,配置一个DNS服务器是十分有必要的,毕竟一个名字总比一串数字好记,下面我将服务器10.10.1.1配一个域名www.cx.com,ftp.cx.com,好,开始行动:
需要配置的文件:
/etc/named.conf
/etc/resolv.conf
/var/named/named.hosts
/var/named/named.local
/var/named/named.10.10
1]配置/etc/named.conf文件。此文件是dns引导文件,named进程在启动时要读取它。
vi /etc/named.conf
// generated by named-bootconf.pl
options {
directory "/var/named";
// query-source address * port 53;
};
zone "." IN {
type hint;
file "named.ca";
};
//----------------------手工添加如下两节------------------------------
zone "cx.com" IN {
type master;
file "named.hosts";
};
zone "10.10.in-addr.arpa" IN {
type master;
file "named.10.10";
};
//------------------------------------------------------------------------------
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
// include "/etc/rndc.key";
以下的三个文件是DNS数据库文件,具体参数不作详解,请参考相关资料。
2]vi /var/named/named.local
$TTL 86400
@ IN SOA ns.cx.com. root.ns.cx.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.cx.com.
1 IN PTR localhost.
3]vi /var/named/named.hosts
@ IN SOA ns.cx.com. root.ns.cx.com. (
2002042302; serial
28800; refresh
14400; retry
3600000; expire
86400; minimu
)
IN NS ns.cx.com.
cx IN A 10.10.1.1
cx1 IN A 10.10.1.223
www IN CNAME ns.cx.com.
ftp IN CNAME cx
4]vi /var/named/named.10.10
@ IN SOA ns.cx.com. root.ns.cx.com. (
2002042302; serial
28800; refresh
14400; retry
3600000; expire
86400; minimu
)
IN NS ns.cx.com.
1 IN PTR ns.cx.com.
2 IN PTR ns1.cx.com.
5]编辑/etc/resolv.conf文件
vi /etc/resolv.conf
domain cx.com
nameserver 10.10.1.1
好,让我们来启动服务吧:
/etc/rc.d/init.d/named start
chkconfig –level 3 named on #将dns服务设置成系统服务,开机自启动
测试:ping cx.cx.com
ping www.cx.com
ping ftp.cx.com
或用nslookup,用法请参考nslookup –help。
五、 DHCP服务器配置
1]安装dhcp。
放入光盘1或是光盘2
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm –ivh dhcp-2.0p15-8.i386.rpm
请用setup/system services或是chkconfig –levlel 3 linuxconf on将linuxconf设置为系统自启动服务。
2]配置dhcpd.conf文件。
Vi /etc/dhcpd.conf
subnet 10.10.0.0 netmask 255.255.0.0{
range dynamic-bootp 10.10.2.0 10.10.2.100; #IP地址分配范围
option routers 10.10.1.1; #默认网关
option subnet-mask 255.255.0.0; #默认子网掩码
option domain-name "cx.com"; #默认域名
option domain-name-servers 10.10.1.1,202.96.134.133;
}
#最后一行:DNS服务器设置,之所以把10.10.1.1放在前面是想让客户机在作域名解析的时候优先选择内部dns服务器,若域名不能解析,则用下一个dns服务器解析,202.96.134.133是深圳地区ADSL上网用户主DNS服务器.用下一个dns服务器解析,202.96.134.133是深圳地区ADSL上网用户主DNS服务器。
3]启动服务:/etc/rc.d/init.d/dhcpd start
4]使用:不论Win9x还是2K都使用自动获取IP地址,其它什么都不用设。
六、 ADSL及防火墙配置
1]下载软件:http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5.tar.gz
2]安装软件:
tar zxvf rp-pppoe-3.5.tar.gz
cd rp-pppoe-3.5
./go #开始安装软件
3]软件安装好后,会运行设置程序adsl-setup
USER NAME
>>> Enter your PPPoE user name (XXX):________ #此处填写ADSL用户帐号
INTERFACE
(default eth0):_____ #以太接口,eth0或者eth1
>>> Enter the demand value (default no): #可以不填
DNS
>>> Enter the DNS information here: 202.96.134.133 #本地电信提供的主域名服务器
>>> Enter the secondary DNS server address here: #本地电信提供的辅助域名服务器
PASSWORD
>>> Please enter your PPPoE password:
>>> Please re-enter your PPPoE password: #密码
FIREWALLING
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
>>> Choose a type of firewall (0-2): 0
防火墙设置,选择2可使主机设成局域网的internet网关,将客户机网关设为本机IP,DNS设为电信提供的DNS服务器IP即可上网了,它是由ipchains之ip伪装实现的,而rh7.2中的ipchains已经没有了ip_masq_ftp模块,所以客户机无法使用FTP服务,因此我们在这里不用防火墙,选择0。在rh72中已经有了iptables,它是ipchains的替代品,功能也更为强大了,呆会儿我们写一个脚本,用它来实现ADSL共享。
>>> Accept these settings and adjust configuration files (y/n)? y #保存设置
4]接下来,我们编写一个脚本/etc/rc.d/firewall
vi /etc/rc.d/firewall
#!/bin/sh
echo "Start iptables rules..."
/etc/rc.d/init.d/iptables stop
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -N mine
iptables -A mine -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A mine -m state --state NEW -i ! ppp0 -j ACCEPT
//允许外部访问我的www服务器
iptables -A mine -p tcp --dport 80 -i ppp0 -j ACCEPT
//允许外部使用openssh服务,openssh相当于telnet,但是它的数据传输是加密的,
//所以更安全,强烈推荐使用。
iptables -A mine -p tcp --dport 22 -i ppp0 -j ACCEPT
//允许外部访问我的ftp服务器
iptables -A mine -p tcp --dport ftp -i ppp0 -j ACCEPT
iptables -A mine -p tcp --dport ftp-data -i ppp0 -j ACCEPT
//禁止外部ping我
iptables -A mine -p icmp --icmp-type echo-request -i ppp0 -j DROP
//
iptables -A mine -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"
iptables -A mine -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"
iptables -A mine -j DROP
iptables -A INPUT -j mine
iptables -A FORWARD -j mine
//iptables功能十分强大,这里不作详解,使用方法请参考相关资料。
5]将这个脚加入到/etc/rc.d/rc.local里去,让它开机时自动运行。
chmod 700 /etc/rc.d/firewall #将firewall设为可执行文件
echo firewall >> /etc/rc.d/rc.local
当然也可以用vi编辑/etc/rc.d/rc.local文件,在尾部加入一行firewall即可。
6]chkconfig –level 3 iptables on #开机时启动iptables
7]好,重启,用root登录系统
用adsl-start命令连接网络,几秒以后出现.Connected,OK,网络已经连通,好!我们来测试:前提:前面写的防火墙脚本已经运行,内部局域网已经连通,DHCP服务已经运行,将客户端tcp/ip设置为自动获取IP地址,其它的什么都不用填,重启登录以后,试试www/ftp/qq等服务吧,速度奇快,爽死你,哈哈。
8]存在的问题:
ping一下前面我们设置的域名服务器吧,ping [urlwww.cx.com[/url],你会发现ping不通,为什么呢?你应该还记得我们在安装设置adsl的时候,填入了本地电信dns服务器地址,哈,就是它惹的祸。我们在运行adsl-start的时候,会调用adsl-connect脚本,而它会重写/etc/resolv.conf文件:
原来的:cat /etc/resolv.conf
domain cx.com
nameserver 10.10.1.0
现在的:cat /etc/resolv.conf
nameserver 202.96.134.133
在这种情况下DNS服务器要是运行起来了,那才稀奇了,呵呵。
解决方法:
修改/etc/resolv.conf文件:
vi /etc/resolv.conf
domain cx.com
nameserver 10.10.1.1
nameserver 202.96.134.133
修改/usr/sbin/adsl-connect脚本文件:
vi /usr/sbin/adsl-connect
找到下面几行,并将其注释掉:
---------------------------------------------------------------------------
if test "$DNSTYPE" = "SERVER" ; then
# Sorry, dude...
rm -f /etc/resolv.conf
ln -s /etc/ppp/resolv.conf /etc/resolv.conf
elif test "$DNSTYPE" = "SPECIFY" ; then
# Sorry, dude...
rm -f /etc/resolv.conf
echo "nameserver $DNS1" > /etc/resolv.conf
if test -n "$DNS2" ; then
echo "nameserver $DNS2" >> /etc/resolv.conf
fi
fi
-----------------------------------------------------------------------------
9]重启,ADSL连接成功,DNS服务器正常,OK,继续前进吧!
七、文件(打印)服务器、模拟NT域的实现。
1]编辑/etc/samba/smb.conf文件
vi /etc/samba/smb.conf
[global]
workgroup = CX #把它当成NT登录域吧
server string = Samba Server
netbios name = cxserver #服务器的netbios名字
hosts allow = 10.10.1. 10.10.2. 127. #只允许10.10.1.0、10.10.2.0网段访问
printcap name = /etc/printcap
load printers = yes
printing = lprng
log file = /var/log/samba/%m.log
max log size = 0
security = user #安全等级为user级,访问资源需要身份验证
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
domain master = yes
preferred master = yes
domain logons = yes #可以登录
dns proxy = no
[homes] #登录后可以看到用户home目录
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[printers] #若有打印机,在\\mineserver中可看到打印机,右键安装
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[public] #共享/mnt/data/public文件夹,共享名为public,admin组有写权限
comment = software
path = /mnt/data/public
public = yes
wirte list = @admin
2]用testparm测试/etc/samba/smb.conf文件中语法是否正确
3]/etc/rc.d/init.d/smb start启动服务,并用smbclient –L localhost测试服务器是否正常,若是提示输入密码,回车以后看到服务器信息,则服务器正常。
4]添加用户和组
useradd test
groupadd admin
gpasswd –a test admin
5]设置smb用户密码
smbpasswd –a test
输入密码并验证
6]用setup之Printer configuration配置一本地打印机,其过程请参考相关资料,这里不过多赘述。
7]测试:
请设置windows机器的网络属性,登录方式为网络用户登录,直接登录到NT域,NT域为cx,重启后用前面添加的test帐号登录,密码为smbpasswd –a test时设置的密码,进行系统后用控制面板之”用户及密码”可修改登录密码。
打开网上邻居,看是否能浏览到cxserver,亦可用\\cxserver访问。
最后设置:chkconfig –level 3 smb on #让smb开机自动运行
八、磁盘配额
前面我们在配置文件共享的时候,有一个共享资源为homes,如aa登录,在\\cxserver中有一个aa文件夹,aa用户对这个文件夹具读写权限,
如若我们不限制aa的话,他有可能会将硬盘塞满,任何一个管理员都不希望看到这种事情,下面我们用quota来实现对用户使用磁盘空间的限制。
1]首先明白一个概念,quota是针对分区的,所以我们在前面安装linux的时候单独分了一个/home区。
2]而所有的用户home目录都在/home下,现在开始在home目录下建立两个文件:
cd /home
touch quota.user
touch quota.group
chmod 600 quota.user //只允许root对这两个文件读写
chmod 600 quota.group
3]在/etc/rc.d/rc.local文件尾部加入quota启动脚本:
if [ -x /sbin/quotacheck ]
then
echo "Checking quotas. This may take some time..."
/sbin/quotacheck -avug
echo "Done"
fi
if [ -x /sbin/quotaon ]
then
echo "Turning on quota"
/sbin/quotaon -avug
echo "OK"
fi
4]修改/etc/fstab文件中定义/home分区的那一行:
原内容: /dev/hda3 /home ext3 defaults 1 2
新内容: /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
看得出来只是在defaults后面加了usrquota,grpquota而已。
注意啊,是usrquota而不是userquota,若是错了,后果难以预料。
5]重启,在启动过程中会出错,主要是因为quota在/home目录下打不到aquota.user和aquota.group两个文件,没关系,咱们进了系统以再慢慢收拾它。
6]用root登录,然后我们生成aquota.user和aquota.group两个文件:
convertquota -u /home
convertquota –g /home
若以上步骤不出错的话,我们用ls /home –al就会看到aquota.user,aquota.group两
个文件了
7]再重启,注意观察,不会再出错了。进入系统后就可以对用户home目录进行限制了。比如现在有一个test用户,我们对他进行限制:
edquota –u test #此命令将进入一个vi编辑模式,其内容如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 0 0 0 0 0
注解标识: A B C D E F
在讲解各参数之前先说说限制的两种方式:soft,hard
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入啦。
ABC为磁盘空间的限制设置,而DEF为总文件个数的限制
A:已使用空间,无需要设置
B:用户空间使用限制,为软限制,需要设置。
C:用户空间使用限制,为硬限制,需要设置。
D:已有文件总数,无需要设置。
E:文件总数限制,为软限制,需要设置。
F:文件总数限制,为硬限制,需要设置。
我们要限制test用户使用空间100M,最多不能超过120M,文件总数为2000个,
最多不能超过2500个,设置如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 102400 122880 0 2000 2500
注:空间限制是以k为单位的。
8]测试:进入自己的home目录,然后拷贝文件,若是超过120M,就不允许再写入了。
9]其它命令的使用:
复制相同调协至其它用户:
edquota –p test –u username1 username2 username3 username4……
显示某个用户当前磁盘使用情况:
quota –v username
显示所有用户当前磁盘使用情况:
repquota –a
其它的一些命令请参考相关资料。
九、FTP服务器:
Rh72自带了wu_ftp,但是由于其毛病不少,所以我们不用它,我们用性能及安全性能均优于它的proftpd来代替它。
1]下载软件:ftp://ftp.proftpd.org/distrib/sourc...pd-1.2.5.tar.gz
2]安装:
tar zxvf proftpd-1.2.5.tar.gz
cd proftpd-1.2.5
./configure –prefix=/usr/local/proftpd //指定安装在/usr/local/proftpd目录下
make
make install
cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd
chmod 700 /etc/rc.d/init.d/proftpd
chkconfig –level 3 proftpd on //设置为系统自启动服务
cp /usr/local/proftpd/sbin/proftpd /usr/sbin //将proftpd拷至/usr/sbin目录下,让系
统能自动搜索到,也免得再去加一个搜索路径
3]配置/usr/local/proftpd/etc/proftpd.conf文件:
vi /usr/local/proftpd.conf
ServerName "Xchen FTP server" //服务器登录提示
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
Group nobody //原来为nogroup,请改成nobody
RequireValidShell off //手动添加此名,重要
//限定test组用户只能访问自己的home目录,而不能向上浏览
DefaultRoot ~ test
//限定test组用户只能访问自己的/home/ftp目录,不能向上浏览
DefaultRoot ~/ftp test
//限定music组用户只能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music
//除music组中bb用户外都能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music,!bb
//上面组需要自己建立:groupadd test,gpasswd –a username test
ServerIdent off //登录时不显示版本信息
AllowOverwrite on
// /home/ftp为匿名用户登录目录
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
DenyAll
4]启动服务:/etc/rc.d/init.d/proftpd start
5]测试,在客户端用FTP软件或命令行FTP程序进行访问ftp.cx.com。
6]proftpd技岂只此,还有很多高级应用,请参考相关资料,这里就不多赘述。
十、WWW服务
www服务用apache来实现,步骤极其简单,当然,这里说的是初级应用。因为我们要实现的是简单的www服务,所以只需更改下面几个参数即可:
1]Vi /etc/httpd/conf/httpd.conf
ServerName www.cx.com
DocumentRoot ”/var/www”
2]拷贝网页文件到/var/www目录
3]启动服务:/etc/rc.d/init.d/httpd start
将httpd设置为系统自启动服务:chkconfig –level 3 httpd on
4]测试:在ie中用http://www.cx.com测试。
为什么把www服务讲得这么简单呢,主要是因为这种单一类型的网页文件服务用得较少,现在大多数都要用cgi,asp,php,还有数据库等,关于这方面配置还请参考相关资料,这里不作详解。
十一、动态域名服务
动态域名这个叫法不大妥当,应该叫动态ip for 域名才对。到现在为止,ftp和www服务我们都实现了,在局域网内可以用www.cx.com来访问,但是我们已经用ADSL连通了internet,我们怎样让外部访问我们的ftp,www服务器呢,总不成每都通知对方服务器的IP吧,所以就要用到动态域名服务,大致原理是每次ADSL拔号时将自身IP更新到外部DNS服务器数据库中所对应的那个域名,所以我们每次访问这个域名就可以了,在这里讨论一下www.3322.org提供的动态服务的实现。
1]登录www.3322.org网站,注册一个用户,并申请一个动态域名xxxx.3322.org。
2]下载linux客户端软件:
http://www.3322.org/dyndnspage/ez-i...-linux-i386.tgz
3]安装软件:
tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz
mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip
4]编辑/usr/local/ezip/qdns.conf文件:
vi /usr/local/qdns.conf
service-type=qdns
user=username:password //用户名及密码,用冒号隔开
host=xxxxx.3322.org //你申请的域名
interface=ppp0 //接口为ppp0
max-interval=2073600
cache-file=/tmp/ez-ipupdate.cache
5]将当前ip现新到我们申请的域名:
cd /usr/local/ezip
ez-ipupdate –c qdns.conf
系统会提示数据更新成功,好,我们来ping一下xxxx.3322.org,哈,果然是ppp0
的IP,再用http://xxx.3322.org试一下,一切OK,爽。
6]问题又来了,难道我们每次启动ADSL都要用手动更新一次吗,你可能会想到用crontab让它每隔几分钟更新一次,建议不错,不过为了ip更新而启用crond服务
似乎有点小题大做,我的方法,修改/usr/sbin/adsl-start脚本:
vi /usr/sbin/adsl-start
找到倒数25行”tty –s && $ECHO “ Connected ! “,在其下增加一行:
/usr/local/ezip/ez-ipupdate –c /usr/local/ezip/qdns.conf
存盘退出,OK,我们让ADSL拔号完成以后自动更新,爽吧!
7]测试一下:
adsl-start
. Connected!
ez-ipupdate Version 3.0.10
Copyright (C) 1999-2000 Angus Mackay.
connected to members.3322.org (202.108.36.139) on port 80.
request successful
OK,数据更新成功。
好,现在你随时随地都可以用xxxx.3322.org访问你的服务了,不错吧。
十二、openssh的设置
如果你在家里或者其它地方,怎样控制你的服务器,你可能会想到用telnet,本来是可以的,但是由于telnet用的是明码传输,容易给那些不怀好意者可乘之机,所以我们用openssh来代替telnet。
1]卸载原来的2.9x版,2.9x版有bug,不安全:
rpm –e openssh
2]最新软件包下载:
ftp://ftp.openbsd.org/pub/OpenBSD/O...sh-3.4p1.tar.gz
3]安装软件:
tar zxvf openssh-3.4p1.tar.gz
cd openssh-3.41
./configure --prefix=/usr/local/ssh \
--sysconfdir=/etc/ssh \
--with-tcp-wrappers \
--with-ipv4-default \
--with-md5-passwords
make
make install
注:安装完成以后,会自动生成主机密钥,还会提示需要sshd用户帐号,可用useradd加一个sshd用户。
install /contrib/redhat/sshd.pam /etc/pam.d/sshd
cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
chkconfig --level 3 sshd on ;配置成系统服务
4]配置openssh之/etc/ssh/ssh_config文件
vi /etc/ssh/ssh_config
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
BatchMode no
CheckHostIP yes
StrictHostKeyChecking ask
IdentityFile ~/.ssh/identity
Port 22
Cipher 3des
EscapeChar ~
5]配置openssh之/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 600
#PermitRootLogin yes #还是不要让root直接登录为妙!
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
RhostsAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts no
PasswordAuthentication yes
PermitEmptyPasswords no
Subsystem sftp /usr/local/ssh/libexec/sftp-server
6]配置用户的加密密钥
useradd test
passwd test
su test
ssh-keygen -d
出现提示请回车并输入passwd,再次输入passwd。
注:这个密码是系统加密运算时用到的,登录时还用原来密码。
7]启动服务
/etc/rc.d/init.d/sshd start
8]在客户端用test帐号进行测试。
乱七八糟写了一大篇,也该收尾了,冰冻三尺非一日之寒,要多练多问多看多写,前进吧,朋友!
2002.8/sz/cx
cdcxx@etang.com
linux经典问题之基础篇
http://www.ebcom.cn/news/main/home/ns_detail.php?id=236&nowmenuid=6&cpath=0048:&catid=48
好像old了,好像以前这里我就转过。
0001
修改主机名
vi /etc/sysconfig/network,修改HOSTNAME一行为HOSTNAME=主机名,重启后也能生效
0002
Ret Hat Linux启动到文字界面(不启动xwindow)
将/etc/inittab中 id:5:initdefault: 一行中的5改为3
0003
redhat的自动升级更新问题(hutuworm)
在www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。
升级除kernel外的rpm: up2date -u
升级包括kernel在内的rpm: up2date -u -f
0004
windows下看linux分区的软件
Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip
0005
mount用法(sakulagi)
fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件 mount -o loop /abc.iso /mnt/cdrom
软盘 mount /dev/fd0 /mnt/floppy
USB闪存 mount /dev/sda1 /mnt/cdrom
所有/etc/fstab内容 mount -a
可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.
0006
在vmware的LINUX中使用本地硬盘的FAT分区
将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中:
//win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0
其中win_ip是你的windows的IP地址;
D$是你的windows里面共享的D盘的共享名;
/mnt/d是要将该分区mount到linux的目录;
win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。
如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。
0007.a
删除名为-a的文件
rm ./-a
rm -- -a 告诉rm这是最后一个选项,参见getopt
ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm {} \;
0007.b
删除名为\a的文件
rm \\a
0007.c
删除名字带的/和‘\0文件
这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在Mac系统上使用
1.解决的方法,把NFS文件系统在挂到不过滤/字符的系统下删除含特殊文件名的文件。
2.也可,将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文件系统,
clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it.
最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了!
0007.d
删除名字带不可见字符的文件
列出文件名并转储到文件:ls -l >aaa
然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式:
vi aaa
[rm -r *******
]
把文件加上执行权限 chmod +x aaa
执行 $aaa
0007.e
删除文件大小为零的文件
rm -i `find ./ -size 0`
find ./ -size 0 -exec rm {} \;
find ./ -size |xargs rm -f &非常有效
for file in * #自己定义需要删除的文件类型
do
if [ ! -s ${file} ]
then
rm ${file}
echo "rm $file Success!"
fi
done
0008
redhat设置滚轮鼠标(mc1011)
进入X后,选择鼠标的配置,选择wheel mouse(ps/2)就可以了,
如果鼠标表现异常,重启计算机即可。
0009
加装xwindow
用linux光盘启动,选择升级,然后单独选择包,安装即可
0010
删除linux分区
做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除.
0011
如何退出man
q
0012
不编译内核,mount ntfs分区
原装rh8,未升级或编译内核
1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm
2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm
3. mkdir /mnt/c
4. mount -t ntfs /dev/hda1 /mnt/c
0013
redhat 8.0中用xmms听mp3
下载www.gurulabs.com/files/xmms-mp3-1.2.7-13.p.i386.rpm
rpm -Uvh xmms-mp3-1.2.7-13.p.i386.rpm
0014
找回忘记了的root口令(lilo/grub)
三种办法:
1.在系统进入单用户状态,直接用passwd root去更改
2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:
cd /mnt
mkdir hd
mount -t auto /dev/hdaX(原来/分区所在的分区号) hd
cd hd
chroot ./
passwd root
这样可以搞定
3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同
rh8中
一. lilo
1. 在出现 lilo: 提示时键入 linux single
画面显示 lilo: linux single
2. 回车可直接进入linux命令行
3. #vi /etc/shadow
将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
第一行将类似于
root::......
保存
4. #reboot重启,root密码为空
二. grub
1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键
2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
3. 修改你现在见到的命令行,加入single,结果如下:
kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
4. 回车返回,然后按b键启动,即可直接进入linux命令行
5. #vi /etc/shadow
将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
第一行将类似于
root::......
保存
6. #reboot重启,root密码为空
0015
使ctrl + alt + del失效
vi /etc/inittab
将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了
0016
如何看出redhat的版本是7还是8(hutuworm)
cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue
0017
文件在哪个rpm中(无双)
上www.rpmfind.net上搜,或者rpm -qf 文件名得到
0018
把man或info的信息存为文本文件
以 tcsh 为例:
man tcsh | col -b > tcsh.txt
info tcsh -o tcsh.txt -s
0019
利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
0020
设置com1口,让超级终端通过com1口进行登录
确认有/sbin/agetty,编辑/etc/inittab,添加
7:2345:respawn:/sbin/agetty /dev/ttyS0 9600
9600bps是因为联路由器缺省一般都是这种速率,也可以设成
19200、38400、57600、115200
修改/etc/securetty,添加一行:ttyS0,确保root用户能登录
重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了
0021
删除目录下所有文件包括子目录
rm -rf 目录名
0022
查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux的版本号 相当于 uname -r
uname -a - 看系统内核等信息
0023
去掉多余的回车符
sed s/^M// test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的
或者 dos2unix filename
0024
切换X桌面(lnx3000)
switchdesk KDE或者switchdesk GNOME
0025
通用的声卡驱动程序(lnx3000)
OSS www.opensound.com/ ALSA www.alsa-project.org/
0026
改变redhat的系统语言/字符集(beming/mc1011)
修改 /etc/sysconfig/i18n 文件,如
LANG="en_US",xwindow会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
还有一种方法
cp /etc/sysconfig/i18n $HOME/.i18n
修改 $HOME/.i18n 文件,如
LANG="en_US",xwindow会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户
0027
把屏幕设置为90列
stty cols 90
0028
使用md5sum文件
md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值
是否一致 md5sum –c hashfile
0029
一次解压多个zip文件
unzip "*",注意引号不能少
0030
看pdf文件
使用xpdf或者安装acrobat reader for linux
0031
查找权限位为S的文件
find . -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;
0032
装中文输入法
以redhat8为例,xwindow及其终端下的不用说了吧,缺省就安装了,用ctrl-space呼出。
现在讨论纯console,请下载zhcon.gnuchina.org/download/src/zhcon-0.2.1.tar.gz,
放在任一目录中,tar xvfz zhcon-0.2.1.tar.gz, cd zhcon-0.2.1, ./configure,
make, make install。安装结束,要想使用,请运行zhcon,想退出,运行exit。
0033
把弹出的光盘收回来(beike)
#eject -t
0034
cd光盘做成iso文件(弱智)
cp /dev/cdrom xxxx.iso
0035
快速观看开机的硬件检测(弱智)
dmesg | more
0036
查看硬盘的使用情况
df -k 以K为单位显示
df -h 以人性化单位显示,可以是b,k,m,g,t..
0037
查看目录的大小
du -sh dirname
-s 仅显示总计
-h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以1024为换算单 位, -H以1000为换算单位。
0038
查找或删除正在使用某文件的进程(wwwzc)
fuser filename
fuser -k filename
0039
安装软件
rpm -ivh aaa.rpm
tar xvfz aaa.tar.gz; cd aaa; ./configure; make; make install
0040
字符模式下设置/删除环境变量
bash下
设置:export 变量名=变量值
删除:unset 变量名
csh下
设置:setenv 变量名 变量值
删除:unsetenv 变量名
0041
ls如何看到.开头的文件
ls -a
0042
rpm中的文件安装到哪里去了
rpm -qpl aaa.rpm
0043
使用src.rpm
rpmbuild --rebuild *.src.rpm
0044
vim中显示颜色或不显示颜色
vi ~/.vimrc; 如果有syntax on,则显示颜色,syntax off,则不显示颜色
0045
linux是实时还是分时操作系统
分时
0046
make bzImage -j的j是什么意思(wind521)
-j主要是用在当你的系统硬件资源比较大的时候,比较富裕的时候,用这个可以来加快编译的速度,如-j 3
0047
源码包怎么没有
你没有安装源代码,你把你光盘上rpm -i *kernel*source*.rpm装上,就可以看到你的源代码了。
0048
修改系统时间
date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10
0049
开机就mount上windows下的分区
自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,加入以下一行
/dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
注意,先得手工建立一个/mnt/d目录
0050
linux怎么用这么多内存
为了提高系统性能和不浪费内存,linux把多的内存做了cache,以提高io速度
0051
FSTAB 最后的配置项里边最后两个数字是什么意思(lnx3000)
第一个叫fs_freq,用来决定哪一个文件系统需要执行dump操作,0就是不需要;
第二个叫fs_passno,是系统重启时fsck程序检测磁盘的顺序号
1 是root文件系统,2 是别的文件系统。fsck按序号检测磁盘,0表示该文件系统不被检测
dump 执行ext2的文件系统的备份操作
fsck 检测和修复文件系统
0052
linux中让用户的密码必须有一定的长度,并且符合复杂度(eapass)
vi /etc/login.defs,改PASS_MIN_LEN
0053
linux中的翻译软件
星际译王 xdict
0054
不让显示器休眠
setterm -blank 0
setterm -blank n (n为等待时间)
0055
用dat查询昨天的日期(gadfly)
date --date=yesterday
0056
xwindow下如何截屏
Ksnapshot或者gimp
0057
解压小全
tar xvfj example.tar.bz2
tar xvfz example.tar.gz
tar xvfz example.tgz
tar xvf example.tar
unzip example.zip
0058
在多级目录中查找某个文件的方法(青海湖)
find /dir -name filename.ext
du -a | grep filename.ext
locate filename.ext
0059
不让普通用户自己改密码(myxfc)
[root@xin_fc etc]# chmod 511 /usr/bin/passwd
又想让普通用户自己改密码
[root@xin_fc etc]# chmod 4511 /usr/bin/passwd
0060
显卡实在配不上怎么办(win_bigboy)
去 http://www.redflag-linux.com/,下了xfree86 4.3安装就可以了.
0061
超强删除格式化工具(弱智)
比PQMagic安全的、建立删除格式化的小工具:sfdisk.exe for msdos
http://www.wushuang.net/soft/sfdisk.zip
0062
如何让xmms播放列表里显示正确的中文(myxfc)
-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-
把这个东西完全拷贝到你的字体里面
操作方法:
右键单击xmms播放工具的任何地方
会看到一个"选项",然后选择"功能设定"选择"fonts"
然后把上面的字体完整的拷贝到"播放清单"和 "user x font
0063
linux下听MP3(hehhb)
redhat光盘原带的xmms不能播放MP3(无声), 要下载安装一个RPM包:xmms-mp3-1.2.7-13.p.i386.rpm安装即可.打开xmms,ctl-p,在font栏中
先在上半部的小框内打勾,再选择 “fixed(misc) gbk-0 13”号字
体即可显示中文歌曲名。在音频输出插件中选择 "开放音频系统驱动
程序 1.2.7 [lioOSS.so]即可正常播放MP3文件.
0064
安装中文字体(hehhb)
先下载 http://freshair.netchina.com.cn/~George/sm.sh
(参考文献: http://www.linuxeden.com/edu/doctext.php?docid=2679)
SimSun18030.ttc在微软网站可下载,http://www.microsoft.com/china/windows2000/downloads/18
030.asp 它是个msi文件,在 mswindows中安装用的,装好后在windows目录下的fonts
目录里面就可以找到它。把simsun.ttc,SimSun18030.ttc,tahoma.ttf,tahomabd.ttf
拷贝到/usr/local/temp,然后下载的shell文件也放到这个目录里,然后打开终端
cd /usr/local/temp
chmod 755 sm.sh
./sm.sh
0065
装载windows分区的FAT32、FAT16文件系统(hehhb)
以root身份进入KDE,点击桌面上的“起点”图标,在/mnt目录下建立如下文件夹:c,d,e,f,g,usb.分别用作windows下各分区和usb闪盘。
用文本编辑器打开/etc/fstab 文件.加入如下:
/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda5 /mnt/d vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda6 /mnt/e vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda7 /mnt/f vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/hda8 /mnt/g vfat iocharset=gb2312,umask=0,codepage=936 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,iocharset=gb2312,owner,kudzu,ro 0 0
/dev/sda1 /mnt/usb vfat iocharset=gb2312,umask=0,codepage=936 0 0
存盘退出. 重新启动后即可正常访问FAT32或FAT16格式分区,解决显示WINDOWS分区下和光盘中文文件名乱码
问题.其中共六列,每列用Tab键分开。注意此方法只能mount上Fat 分区格式.sda1是闪盘。
0066
在X下使用五笔和拼音,区位输入法(hmkart)
从http://www.fcitx.org/上下载fcitx的rpm包安装即可
0067
在Linux下如何解压RAR文件(hmkart)
http://www.linuxeden.com/download/softdeta....php?softid=883
下载RAR for Linux 3.2.0,解压揭开后make
然后可以用unrar e youfilename.rar解压rar文件
0068
硬盘安装后怎么添加/删除rpm包(sakulagi)
redhat-config-packages --isodir=
可以指定iso文件所在的目录
0069
字符下控制音量(grub007)
aumix
0070
用dd做iso(grub007)
dd if=/dev/cdrom of=/tmp/aaa.iso
0071
删除几天以前的所有东西(包括目录名和目录中的文件)(shally5)
find . -ctime +3 -exec rm -rf {} \;
或
find ./ -mtime +3 -print|xargs rm -f -r
0072
用户的crontab在哪里(hutuworm)
/var/spool/cron/下以用户名命名的文件
0073
以不同的用户身份运行程序
su - username -c "/path/to/command"
有时候需要运行特殊身份的程序, 就可以让su来做
0074
如何清空一个文件()
> filename
0075
为什么OpenOffice下不能显示中文(allen1970)
更改字体设置
tools->options->font replacement
Andale Sans UI -> simsun
0076
如何备份Linux系统(Purge)
Symantec Ghost 7.5以后的版本支持Ext3 native复制
0077
linux上的partition magic(wwwzc)
Linux下一个有用的分区工具: parted
可以实时修改分区大小, 删除/建立分区.
0078
/proc/sys/sem中每项代表什么意思? (sakulagi)
/proc/sys/sem内容如下
250 32000 32 128
这4个参数依次为SEMMSL(每个用户拥有信号量最大数量),SEMMNS(系统信号量最大数量),SEMOPM(每次semop系统调用操作数),SEMMNI(系统信号量集最大数量)
0079
Grub 引导菜单里 bigmem smp up 都是什么意思?(lnx3000)
smp: (symmetric multiple processor)对称多处理器模式
bigmem: 支持1G 以上内存的优化内核
up:(Uni processor) 单处理器的模式
0080
Oracle的安装程序为什么显示乱码?(lnx3000)
现在Oracle的安装程序对中文的支持有问题,只能使用英文界面来安装,在执行runinstaller之前,执行:export LANG=C;export LC_ALL=C
0081
linux下文件和目录的颜色代表什么(sakulagi,弱智)
蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝
色表示链接文件;灰色表