Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1595069
  • 博文数量: 317
  • 博客积分: 10283
  • 博客等级: 上将
  • 技术积分: 3566
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-04 11:38
个人简介

哥使用Linux

文章分类

全部博文(317)

分类: LINUX

2007-09-04 14:53:30

 
Q34:如何使你的系统对ping没反应哦?
A34:防止你的系统对ping请求做出反应,对于网络安全很有好处,因为没人能够ping你的服务器并得到任何反应。TCP/IP协议本身有很多的弱点,黑客可以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据。使你的系统对ping请求没有反应可以把这个危险减到最小。用下面的命令:

[code:1]echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all[/code:1]

注意要恢复的话,就echo一个0进去. )


Q35:如何启动多个X哦,有什么好的办法哦?

A35:哦,你还经常要启动多个X,我平时也就是启动一个,KDE或GNOME都不想使,用多的还是WindowMaker或Xfce。其实你只要在另外的一个虚假终端来启动,输入startx -- :2等即可。为了方便,你可以在~/.bashrc中加入 以下几行:

[code:1]
alias X='startx -- -bpp 32 -quiet&'
alias X1='startx -- :1 -bpp 32 -quiet&'
alias X2='startx -- :2 -bpp 32 -quiet&'
alias X3='startx -- :3 -bpp 32 -quiet&'
alias X4='startx -- :4 -bpp 32 -quiet&'
alias X5='startx -- :5 -bpp 32 -quiet&'
[/code:1]
其中32是显示器的色彩深度,你应该根据自己的实际情况设置。 之后运行# bash
使改变生效,以后只要依次运行X,X1,X2,X3,X4,X5就可以启动6个X-Windows了。然后可以用Crtl+Atl+Fn来切换你的6个X,Fn=F7,F8,.....,F12。


Q36:Mandrake8.1下如何设置权限使得windows98下的一个盘如E盘(Mandrake下的mnt目录下的一个win_e文件夹)只有特定的用户如root可见?
A36:mount -t vfat -o umask=0077 /dev/hda7 /mnt/win_e
umask means in contrary to permission settings. So 0077 is meant that owner has full access and group pals and others haven't any permission.


另外,Mandrake已经很好地为你mount好ms的分区了,比如我的,cat /etc/fstab
[code:1] /dev/hdc6 / ext3 defaults 1 1
/dev/hdc7 /boot ext3 defaults 1 2
none /dev/pts devpts mode=0620 0 0
/dev/hdb /mnt/cdrom auto user,iocharset=gb2312,codepage=936,noauto,ro,exec 0 0
/dev/fd0 /mnt/floppy auto user,iocharset=gb2312,sync,codepage=936,noauto,exec 0 0
/dev/hda1 /mnt/win_c vfat iocharset=gb2312,codepage=936 0 0
/dev/hda5 /mnt/win_d vfat iocharset=gb2312,codepage=936 0 0
/dev/hda6 /mnt/nt ntfs iocharset=gb2312,ro 0 0
/dev/hda7 /mnt/win_e vfat iocharset=gb2312,codepage=936 0 0
/dev/hdc8 /mnt/win_c2 vfat iocharset=gb2312,codepage=936 0 0
/dev/hdc9 /mnt/win_d2 vfat iocharset=gb2312,codepage=936 0 0
/dev/hdc10 /mnt/win_e2 vfat iocharset=gb2312,codepage=936 0 0
none /proc proc defaults 0 0
/dev/hdc11 /usr ext3 defaults 1 2
/dev/hdc2 /var ext3 defaults 1 2
/dev/hdc5 swap swap defaults 0 0
[/code:1]
呵呵,Mandrake还有更强悍的supermount呢。

Q37:rpm是Mandrake Linux下最为常用的工具,能不能介绍下最为基本的用法哦?
A37:是哦,但更为具体的用法你可以看她的Man 页哦,我只介绍下它的一般用法叭:

查找安装在系统中的Linux内核的版本:
[code:1]rpm -q kernel[/code:1]
  
查找gcc的版本号:
  [code:1]rpm -q gcc[/code:1]
     
查找所有已安装的rpm列表
  [code:1]rpm -qa | more[/code:1]

可以加上grep, 例如 :
   [code:1]rpm -qa | grep kernel[/code:1]

列出软件包所有的配置文件Linux

[code:1]rpm -qc 包名[/code:1]

列出所有文档:
[code:1]rpm -qd 包名[/code:1]

列出详细信息

   [code:1]rpm -qi 包名[/code:1]

列出所有文件

    [code:1] rpm -ql 包名[/code:1]

列出所有文件状态
    [code:1]rpm -qs 包名[/code:1]
  
安装rpm包

    [code:1]rpm -ivh 包名[/code:1]

强制安装:
    [code:1]rpm -i --force rpm_source[/code:1]

删除rpm:

     [code:1] rpm -e 包名[/code:1] (可以不需要包名之后的东西)

升级rpm
    [code:1] rpm -U 新的rpm包[/code:1]
   
验证rpm
   
     [code:1]  rpm -V 包名[/code:1]
   

例如, 我的Mandrake9.0,
    [code:1] [root@huang jboard]# rpm -qa | grep XFree
           XFree86-xfs-4.2.1-3mdk
           XFree86-4.2.1-3mdk
            XFree86-75dpi-fonts-4.2.1-3mdk
            XFree86-100dpi-fonts-4.2.1-3mdk
            XFree86-devel-4.2.1-3mdk
            XFree86-cyrillic-fonts-4.2.1-3mdk
            XFree86-server-4.2.1-3mdk
            XFree86-libs-4.2.1-3mdk[/code:1]

下面的例子列出你安装上的所有包以及它们的大小(Byte):
[code:1]rpm -qa|xargs rpm -q --qf "%{NAME}-%{VERSION}\t :  %{SIZE}\n[/code:1]
当然,更简单的是
[code:1]$ rpm -qa --qf "%{NAME}-%{VERSION}\t: %{SIZE}\n"[/code:1]


Q38:如何防止core文件的产生呢?

A38:core文件是用来记录某些程序出问题时的运行状态信息,对一般用户意义不大,可以删除掉。在你的/etc/profile里加上:
# No core files by default
[code:1]ulimit -S -c 0 > /dev/null 2>&1[/code:1]
或者
[code:1]ulimit -c 0[/code:1]
就没有core dump的文件了。

如果用的是tcsh的话, 以试著在 .tcshrc 里加一行:
[code:1]limit coredumpsize 0[/code:1]


Q39:如何知道Mandrake是否打开了硬盘的DMA?

A39:hdparm -d /dev/hda   #显示你的HD是否打开了DMA
hdparm -c /dev/hda   #显示你的HD是否在使用32位I/O
hdparm -d 1 /dev/hda  #(你要打开哪个,就用哪个,比如HDB),打开DMA
hdparm -c 1 /dev/hda #打开32位I/O
hdparm -k 1 /dev/hda #使你的配置生效
hdparm -t /dev/had #查看你的配置是否生效
你如果想每次启动都启动以上配置,可以在/etc/rc.d/rc.local文件最后加上[code:1]hdparm -c 1 -d 1 -k 1 /dev/hda[/code:1]一切就搞定了。
(注:如果你的硬盘不支持这个,请你不要随意试,更为详细的使用你还是看Mandrake的man页吧,呵呵,不要忙于泡MM,其实,有时多看下,多和"Man"交流还是有很大乐趣的)


Q40:KDE桌面图标消失怎么办哦?

[code:1]A40:KDE出错但又不至于崩溃的常见情形之一就是桌面(包括墙纸和桌面的图标)统统消失,并且在用户目录下生成core文件;很多时候,用户不得不退出X再启动来解决这一问题。其实我们只要简单地在terminal(例如konsole、rxvt甚至是不推荐的cxterm等)中运行不带参数的/usr/bin/kdesktop就可以恢复桌面了。此外,任务栏对应的程序是/usr/bin/kicker。如果你不慎用xkill干掉了任务栏,同样可用不带参数运行kicker把它找回来。事实上,kde启动时就是先起kdesktop,接着起kicker,然后起像ktip、klipper这类小工具的。[/code:1]

Q41:konqueror如何装flash插件哦?
A41:konqueror可以很容易加载,安装时选择安装到mozilla的安装目录里,然后在konqueror的插件扫描路径设置里将插件路径指向mozilla的插件目录,重新扫描一下就发现新插件了,然后重新运行konqueror应该就可以支持flash了.呵呵,我的Mandrake90只能用稳定版本即5.0的插件,不知道你的能什么,你自己试试就知道了。

Q42:KDE常用快捷键都是什么东西哦?
A42:ctl+tab 切换工作桌面
alt+tab 切换应用程序
alt+f1 打开应用程序菜单
alt+f2 打开命令窗口
alt+f3 打开窗口菜单
alt+f4 关闭窗口
f1 帮助
f2 在页面中搜索
f3 在页面中查找下一个
space 选中/取消选中 文件
ctl+n 打开文件管理器
ctl+a 全选当前目录下的文件和目录
ctl+t 在当前目录下打开一个终端
ctl+w 关闭窗口
ctl+f 搜索文件
ctl+c 拷贝
ctl+v 粘贴
Ctrl+Alt+d 显示桌面


Q43:GNOME常用快捷键都是什么东西哦?
A43:ctl+b 书签
ctl+d 复制粘贴
ctl+f 查找
shift+ctl+f Web查找
ctl+i 显示属性页
ctl+h 切换到home
ctl+u 向上一级
ctl+n 建立新文件夹
ctl+o 打开
ctl+w 关闭窗口
shift+ctl+w 关闭所有窗口
ctl+= 放大
ctl+- 缩小
ctl+[ 返回
ctl+] 向前
ctl+t 放到垃圾筒
ctl+r 刷新
Ctrl+Alt+d 显示桌面


Q44:Mandrake下面的terminal下的一些小技巧是什么哦
A44:Ctrl+s:锁定终端
Ctrl+q:解锁终端
Ctrl+r:本终端历史最长的命令匹配
当然,在字符终端下,按scrollLock键可以锁住屏幕信息的滚动,但程序还在执行;按住ALT键,然后顺序按小键盘上的1和8数字键,可以按关键字在历史命令里搜索.
Crtl+c:中断终端的执行(大家已经很熟悉了吧)。在terminal下输入reset有时比clear有用。
Ctrl + D = logout -- 我想这个已经是众人皆知了.
另外一些可能用到的Bash Hot Keys:
> Ctrl+A  将光标移到行首
> Ctrl+C  中断进程
> Ctrl+D  输入文件结束符

> Ctrl+E  将光标移到行尾
> Ctrl+K  删除光标之后的所有字符并放入剪贴板
> Ctrl+L  刷新屏幕输出
> Ctrl+Q  继续屏幕输出
> Ctrl+R  历史命令匹配
> Ctrl+S  暂停屏幕输出
> Ctrl+T  交换最后两个输入字符
> Ctrl+U  删除光标之前的所有字符并放入剪贴板
> Ctrl+V  输入控制字符
> Ctrl+W  回删一个单词
> Ctrl+X  在光标位置和行首来回切换
> Ctrl+Y  输出剪贴板中存放的字串
> Ctrl+Z  将进程挂起
> Ctrl+\  强行终止进程
> Alt+Tab 补齐历史命令所带的参数

Ctrl+f 向前移动 1 个字符
Alt+f  向前移动 到单词的结尾
Ctrl+b 向后移动 1 个字符
Alt+b  向后移动 到单词的开始
Alt+[backspace] 向后删除到单词的开始
Ctrl+d 向前删除 1 个字符 (如果编辑非空,否则为输入 EOF)
Alt+d  向前删除到单词的结尾

  

Q45: Mandrake 8.1下更换root启动KDE时的刺眼背景
A45:/etc/X11/Xsession中把xsetroot -solid "#B20003"改成xsetroot -solid "#1E72A0";再到/usr/bin/startkde中把xsetroot -cursor_name left_ptr -solid '#B20003'改成xsetroot -cursor_name left_ptr -solid '#1E72A0'。
以上配置的是是KDE启动背景,运行时的背景就在齿轮->配置->KDE->观感->背景中改。


Q46: How to get rid of fonts-ttf-big5 in Mandrake 9.0?

A46:这是我的Mandrake 9.0上面:
# rpm -q -a | grep big
(什么都没有输出)
# ps auxw | grep input | grep -v grep
root      1413  0.2  1.0  6212 2648 tty1     S    15:44   0:00 chinput
#
而且我的chinput当然是好用的(否则我怎么发这篇文章嗫?)

方法很简单,只要修改/usr/lib/ZWinPro/Chinput.ad里面的only一行:
chinput.big5font      =       -*-*-*-*-*--16-*-*-*-*-*-gb2312.1980-0


Q47: linux下如何实现为一个网卡绑定多个IP地址和如何实现多网卡bonding 哦?
A47:1)一个网卡绑定多个IP:
Linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面,对于以太网的第一个网络设备,配置文件名一般为 ifcfg-eth0 如果需要为第一个网络设备绑定多一个IP地址,只需要在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,内容样例为:
[code:1]
DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"

  其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT表示在系统启动时自动启动。
  如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。  [/code:1]

2) 多网卡bonding一个IP:
首选是你要内核支持,如果不支持,请你自己重新编译,在编译的时候把网络设备选项中的Bonding driver support选中就可以了。执行如下命令:
  [code:1]ismod bonding
  ifconfig eth0 down
  ifconfig eth1 down
  ifconfig bond0 ipaddress
  ifenslave bond0 eth0
  ifenslave bond0 eth1
  现在两块网卡已经象一块一样工作了.这样可以提高集群节点间的数据传输.你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local调用,以便一开机就生效.[/code:1]

Q48:我不想把Lilo或Grub装在MBR,因为我担心它会搞坏的我的winnt/2k/xp的引导,有没有更好的办法哦?

[code:1]A48:有哦。你可以把lilo装在linux启动分区的第一个扇区上。首选修改你的/etc/lilo.conf或/boot/grub/menu.lst文件,将"boot=/dev/hda"改为"boot=/dev/hdaX",其中hdaX正是你linux启动分区。然后在终端下运行/sbin/lilo,如果你原来是Grub的,就不用运行,直接裸改就可以了。接着,"dd if=/dev/hdaX of=linux.sec bs=512 count=1",然后把linux.sec文件cp到你的ms系统下的c盘根目录下,接着在ms下修改c盘根目录下的boot.ini文件,在后面裸加上一行c:\linux.sec="Mandrake Linux ",然后reboot你的机器就可以从Ntloader来启动你的机器了。
如果你还感到这个不好,你可以用一个叫bootpart的小工具,它是一个强悍引导的小东西,你可以到google上找,他的readme文件里面有详细的说明。呵呵,我从来就不会在引导linux上出个任何问题。其实,Mandrake的引导做得很好,但你还要做多做张启动盘吧。这样可以在出了问题的时候,她可是一个可爱的小东西,而且一张软盘也不贵嘛。[/code:1]

Q49:为什么我装了Mandrake后我的winnt/2k/xp会启动得爆慢无比哦?

[code:1]A49:你说的这个问题我从来没有遇到到过。不过,你的分区可能有点儿问题。你可这么解决。先装好你的winni/2k/xp,然后再用分区的工具来分你想装linux的区,在/winnt/2k/xp的硬盘管理中把你的linux分区删掉,然后再装Mandrake,就可以了。不过,我如果你熟悉的话,先装ms或linux都没有什么关系。呵呵,我经常是先装Mandrake,再装MS(呵呵,可以玩游戏哦),也没有什么不正常的。[/code:1]


Q50:Mandrake linux怎么给一个普通用户reboot权限?
A50:大约可以分四种情况:

[code:1]1)、让任何人(包括根本不拥有系统帐号的人)都可以通过控制台reboot
    在/etc/inittab文件中保留ca::ctrlaltdel:/sbin/shutdown -t3 -r now
这一行。这样全国人民都可以reboot你的机器,只要你把控制台交出来。[/code:1]

[code:1]2)、让所有系统用户都可以reboot
    执行# > /etc/security/console.apps/reboot即可。这就在console.apps
目录下生成了一个空文件,文件名就是授权的application。以上路径是针对
Mandrake系统而言的,其他系统我不清楚。不过,真正高雅的Mandraker或许
根本就不会去靠“>"来生成这个文件——他们会使用msec来进行控制的。 [/code:1]

[code:1]3)、让指定的用户才可以reboot
    假设我们要让用户pk拥有reboot的权限,我们靠uid/gid来完成控制:
# groupadd reboot
# cd /usr/local
# mkdir reboot
# chown root:reboot reboot/
# chmod 750 reboot/
# cd reboot
# cp /sbin/reboot .
# chmod 4755 reboot  
# usermod -G reboot pk
    现在,pk就可以运行/usr/local/reboot/reboot来重启动机器。 [/code:1]

[code:1]4)、在一台不设普通用户的机器上启用口令验证reboot
    这实际上是靠添加一个关机帐号来实现的,该帐号的shell就是加了s位的

/sbin/halt,并且口令只有少数维护人员知道。[/code:1]
 
 
Q51:软猫的一般安装步骤是什么哦?
A51:其实,我在Mandrake下曾经用过软猫,即所谓的windomdem,我原来买的时候,由于时间比较早些,贵了些,大约是150RMB,现在估计几十块RMB就可以搞到新的吧。那JS还宣称是内置硬猫,说比内置软猫强多了我不太清楚这两种类型的东西有什么区别,反正都是本身没有DSP芯片,通过软件驱动CPU来承担DSP工作的,除非有相关的芯片驱动驱动,否则linux下还是很难支持的。我不知道那js说的强到底在什么地方,呵呵

这种PnP型的猫在Ms下一般都很容易装上,一般装上厂商所给我的驱动就能安装。下面我给出的是那三张图片是我在ms下面的载图,你可以看到我的猫大约的信息,名称就是Ecom Em-56Ham V93 Data Fax Voice,简称好像就是Ecom-Ham56 modem,是深圳一家网络产品公司生产的,好像叫什么龙维电子科技有限公司,不太记得了。另外一些ms下的驱动信息。另外,也看可看到irq和io的值,还有用com4。

这些信息我发现在linux基本上都有什么东西因为都是本身没有DSP芯片,通过软件驱动CPU来承担DSP工作的。这里着重说明一下,像这种类型的猫,你知道猫的芯片(你自己打开机箱拿下来看看吧。)是最为关键的,如果你的猫的芯片没有相关的驱动,你在linux基本上很难用上的了。我的猫显然用的是Intel Ham芯片,后来好像也叫什么Abient的。只要你能找到你软猫的驱动。在
Mandrake下是很容易装上的。说实在的,在Mandrake装猫也并不是一件难事。下面说说我经前装过的一些经验吧。

1)你到下面的几个网站下载你的驱动,一般都能找到你所需要的,如果没有,那你不不好运了,可能是你的猫的芯片太新。我的驱动是Intel-v92ham-453-M90.tgz。具体的网址如下:
[code:1]
http://linmodems.technion.ac.il/packages/Intel/

http://linmodems.technion.ac.il/packages/

http://~gromitkc/dips/roster.html
[/code:1]

2)[code:1]
tar -zxvf Intel-v92ham-453-M90.tgz[/code:1]
得到Intel-v92ham-453-M90这个目录。

3)
A.如果你想直接安装,不想编译,那也是可以的。因为它已经是经过一般的编译的,能合适Mandake90工作的。
[code:1]#cd Intel-v92ham-453-M90
#make install
[/code:1]
不过,如果你这样装的话,可能会些提示,具体的提示我不太记得,大约的意思就是说,你没有权利删除rm /dev/ham这个设备。不过,不要紧,你可这样做下。
<<注>>[code:1]# lsmod  
Module                  Size  Used by    Tainted: PF  
ham                     7388   0  (unused)
hamcore               511456   0  [ham]
.......
[/code:1]
那么说明,我的猫已经成功加载了。
然后再试下:
[code:1]
# ls /dev/ham -l
crw-rw-r--    1 root     root     240,   1 2003-02-26 04:32 /dev/ham
# ls /dev/modem -l
lrwxrwxrwx    1 root     root            8 2003-02-26 04:32 /dev/modem -> /dev/ham
#
[/code:1]
哈哈,看到没有,我的猫已经成功了。
Mandrake Linux真是强哦。

B.如果你想编译成,首选确定你的内核源码要装上,如果没有装上,就自己装上吧。第一张光盘里面,名称就是叫kernel-2.4.19.16mdk-1-1mdk.i586.rpm的那rpm包。

[code:1]#rpm -ivh kernel-2.4.19.16mdk-1-1mdk.i586.rpm[/code:1]

然后还是cd到Intel-v92ham-453-M90,开始编译,也是巨简单:
[code:1]
#make clean
#make ham
#make install
[/code:1]
如果你还是想检查下,就按照A步骤中的<<注>>那个步骤了。

3)配置你的拔号软件,在Mandakre下你可以用kppp这个工具,如果你还没有装上,就直接装上吧,光盘里面就有。如果你还真的没有找到,可以到rpmfind.net上找。

运行你的kppp。这里最为关键的就是要设置好你的那个设备,其它的可以不改,应该是/dev/modem,而不是那/dev/ttyX什么的其余的你应该很熟悉了吧,就像MS中那个丑陋的"我的连接"一样配置。

当然,你如果不想用kppp,还有其它的拔号软件,例如,wvdial,这个是很好的工具,小而快,你可下载它的rpm包,也可以下载源码来自己编译,而且在驱动中的readme文件,作者就给出了一个最为简洁的shell script.

4)最后就是连接了,如果是你已经拔号成功了,比如能ping通IP,但不能打开网页,那么么可能是你的DNS的问题了。你要在/etc/resolv.conf加上你本地的DNS.比如我的:
[code:1]
#more /etc/resolv.conf
nameserver 202.96.134.133
nameserver 202.96.128.133
#
[/code:1]
如果一切顺利的话,你那就可以在强悍的
Mandrake Linux下跑你的软猫了。

费后话,如果你的爱猫芯片不同,你只要下载相关的驱动就可以了,然后步骤就是这些了,万变不离其宗。
Good lucky!
Happy
Mandrake Linux!!
 
Q52:如何实现分区的转移哦?
A52:分区转移的问题,我已经在Debian下搞好,为了方便有类似问题的兄弟,我写了下。同样在Mandrake linux中也会适用。你具体的情况还是自己掌握吧。其中最为关键的还是文件的属性不能改变,而且还要注意修改你/etc/fstab里面相关的内容。不过,如果你在做这事情之前,还要注意下后果的。万一没有十足的把握,还是少做吧。呵呵,因我的机器里面还有Mandrake呢,坏了的话,我可以mount过来修复。
[code:1]
# mkdir /usr.new
# mount /dev/hda11 /usr.new
# cp --perserve=all /usr/* /usr.new
(or: (cd /usr && tar cpf - . ) | (cd /usr.new && tar xpf -)
##可能tar还是比cp好一点?
# umount /usr.new
# rmdir /usr.new
# vi /etc/fstab
for example我的:/dev/hda11 /usr reiserfs defaults 0 0
(注意,这一步应该在mv之前,不然你mv后,有可能找不到vi这个命令,不过,你还要要备份处你的fstab好些。)
# mv /usr /usr.bak
# mkdir /usr

# mount /usr
<测试下你的新分区>
<When everything is OK:>
# rm -rf /usr.bak (注:这个如果你没有十成的把握,还是先留下放一些时间,等到完全没有问题的时候再rm掉也没有事.
[/code:1]


Q53:我自己编译了一个X,如何在kdm里面加上它哦?[

A53:呵呵,Mandrake Linux下的KDM,很方便的。
1)不是很体面的方法:
[code:1]"齿轮"-->配置”-->“KDE”-->“系统”-->“登录管理器”里的“会话”-->“新建类型”下输入"fvwm"然后点击“添加新类型”。[/code:1]

注意你的fvwm是第几个顺序的。如果像我的KDE、GNOME、Windowmaker、blackbox、XFCE、、fvwm、failsafe、default,则fvwm是第六个,则以root在/etc/X11/wmsession.d下建立“06fvwm”这样一个文件,内容大致如下:
[code:1]
NAME=fvwm
ICON=xwmnet.xpm
EXEC=/usr/X11R6/bin/fvwm
DESC="Cool Fvwm DeskTop Environment"
SCRIPT:
exec /usr/X11R6//bin/fvwm
[/code:1]

2)相对比较体面的方法:
[code:1]
# find /usr/ -name "kdmrc"
/usr/share/config/kdm/kdmrc
[/code:1]

然后用vim看看kdmrc这个内容,找到SessionType这个关键的字段的定义,比如我强悍的Mandrake Linux 9.0的就是这样的:

[code:1]
SessionTypes=KDE,GNOME,WindowMaker,Enlightenment,BlackBox,XFce,IceWM,fvwm,failsa
fe,default,
[/code:1]

加上你X,比如,我的fvwm显然是在第八的位置。

以root在/etc/X11/wmsession.d下建立“08fvwm”这样一个文件,内容大致如下:
[code:1]
NAME=fvwm
ICON=xwmnet.xpm
EXEC=/usr/X11R6/bin/fvwm
DESC="Cool Fvwm DeskTop Environment"
SCRIPT:
exec /usr/X11R6//bin/fvwm
[/code:1]

呵呵,这样就可搞掂你用kdm搞好你想搞的各种X了。哈哈,原来xdm/gdm/kdm就是这么一回事情。如何还要加其它的东西,你自己试试吧,这是最为简陋的方法了。不过,要想启动你的X,还得配置它的配置文件了。
 
 
 
Q54:如何使用超级强悍的下载之工具curl分段下载
A54:Mandrake Linux 9.1就要向我们走来了,我有点等不及了。先下rc2的iso文件来看看,但由于我现在上网的时候有限,我就想着怎么样下载ISO文件。但用号称linux的下FlashGet的nt下载还是不够快。

    从网站下载诸如iso这样的大型文件时,即便对方能提供1MB/s的下载速率,其等待过程也是令人烦恼的,而Linux下也好像目前并没有什么成熟的多线程下载工具。即便是Windows下的某些著名软件也拿“每IP只限一个连接”的站点没办法。新出的FlashGet 1.3支持对各个下载线程使用不同的代理,则实际上就可以同时分多块部分从那种小气的站点下大文件了

    不过呢,这没有考虑到现今ftp站点的冗余备份特性:同一个iso很可能在多个站点上都有镜像,我们能不能对此特点加以利用呢?

    我们采用超级强悍的下载工具curl,它好像不是多线程的,但我们用shell来控制多个进程配合工作。没有用过这个工具的不妨安装一下:
[code:1]
# rpm -q curl
#curl-7.9.4-4mdk
[/code:1]
   
     下面我们以下载Mandrake Linux 9.1 rc2的第一张iso为例来介绍其使用方法。经过采点,找到了三个可用的地址,分别标为url1~url3.
[code:1]
# cat 1.sh
#!/bin/bash
url1=ftp://mirrors.kernel.org/mandrake-iso/i586/\
MandrakeLinux-9.1rc2-CD1.i586.iso
url2=ftp://mandrake.redbox.cz/Mandrake-iso/i586/MandrakeLinux-9.1rc2-CD1.i586.iso
url3=ftp://ftp.uninett.no/pub/linux/Mandrake/Mandrake-iso/i586/\
MandrakeLinux-9.1rc2-CD1.i586.iso
curl -r 0-199999999 -o inst.1 $url1 &
curl -r 200000000-399999999 -o inst.2 $url2 &
curl -r 400000000- -o inst.3 $url3 &
echo "TODO: cat inst.2 >> inst.1; cat inst.3 >> inst.1"
echo "THEN: mv inst.1 MandrakeLinux-9.1rc2-CD1.i586.iso"
[/code:1]

    上面这几行命令应该很容易看懂。我执行了一下,很快就拿到了三块文件碎片,如果下载完成后,你在当前的目录下看到的还是inst.[1,3]这个三个文件,那可能还没有合拼到,你合并下就可以了。
[code:1]
cat inst.2 >> inst.1
cat inst.3 >> inst.1
mv inst.1 MandrakeLinux-9.1rc2-CD1.i586.iso
[/code:1]
拼接后拿md5一算,
[code:1]
md5sum MandrakeLinux-9.1rc2-CD1.i586.iso
342862f7a2da34b6d9d772d6bdf91b4d
[/code:1]
哈哈,哈希值跟他们的一致。Done

      当然,如果你的网络足够快,没有必要这么折腾,不过,我还是喜欢这样做。呵呵当然啦,你还能可分得更详细,比如分为5段下载,对应不同的ftp,你就修改下上面的那个Shell Script就可以了。对于详细的使用curl,你还是看看它的Man页吧。

      呵呵,我只下载了Mandrake linux 9.1rc的第一个iso文件,也试验装了下,感觉其中的中文字体还是做得很粗糙,不过,其它的还算可以。要玩就等正式版本出来的时候再玩吧。
   哈哈,其实不只是Mandrkae可以这样做,其它的发行版本也是一样的,你要找好几个ftp的下载地址就可以了。同时也能出了下载大型iso的一点方案。爽吧,curl,超cool强悍的下载工具.
 
 
Q55:如何用grub或lilo来安装其它版本的Linux哦?
A55: 各位Mandrakers,你准备好了没有,Mandrake Linux 9.1就要快来了,你是不是很兴奋哦。你做好准备没有,打算如何安装呢?呵呵,如果你的系统中已经一个Mandrake linux9.0(或其它的发行版本一样也可以的),这是最好不过了,你可很方便地安装上新版本。请看下下面的吧,或许对你有点帮助。

    至少你要有第一个iso文件,假设你把它放在/mnt/win_c目录下(其它的位置一样的,这里只是个假设而已)。你在现在的linux系统中,把它mount过来。

    [code:1]
    #mkdir /iso
    #mount  -t iso9660 -o loop /mnt/win_c/Mandrake91-cd1-inst.i586.iso /iso
    #cp /iso/images/hd.img /tmp
    [/code:1]

    哈哈,我们都不知道Mandrake linux 9.1的第一个iso文件叫什么,估计会和这差不多的,然后提取引导内核,

    [code:1]
    #mkdir hdimage
    #mount -o loop /tmp/hd.img /hdimage
    #cp /hdimage/vmlinuz /boot/vmlinuzmdk91-install
    #cp /hdimage/hd.rdz /boot
    [/code:1]

    好,内核的提取已经完成,就得修改你的lilo或grub来引导Mandrake linux 9.1的安装程序了。
   
    1)如果你是用lilo引导的,修改/etc/lilo.conf,在后面加上下面的大致的内容:
   
    [code:1]
    image=/boot/vmlinuzmdk91-install
    label=Mandrake91-setup
    initrd=/boot/hd.rdz
    read-only
    [/code:1]
    修改后,不要忘记更新下lilo,
    [code:1]
    #/sbin/lilo
    #
    [/code:1]
   
    2)如果你linux系统引导器为grub,假定你现在的linux的boot区是hda5,grub安装在boot区,如果不是的,请你自行修改。修改/boot/grub/menu.lst,也是在后面加上:

    [code:1]
    title Mandrake91-setup
    kernel (hd0,4)/boot/vmlinuzmdk91-install root=
    initrd (hd0,4)/boot/hd.rdz
    [/code:1]
       
好了,经过这样做,你reboot你的linux系统就可以启动安装你的Mandrake linux 9.1了。

    一路下来就是选择你的硬盘(如果你有多个硬盘的话)、分区(本例中的就是hda1),然后就是输入Mandrake linux 9.1 第一个iso文件的名字,要注意大小写,而且路径是"/"而非"\"也。再接下就你和原来装旧版本的Mandrake linux是一样的了。如果你已经下载了三个iso文件,而且想一下子装完所有的东西,就要换光盘,即换iso文件了。可以参考下论坛里面我写过的一个帖子"在硬盘用ISO安裸装Mandrake90",道理应该是一样的。

     哈哈,怎么样,Mandrake linux的安装方便吧。不用其它的方式启动,而且很方便快捷其实,我原来已经介绍过,只不过,现在方便Mandrakers,就写了这个帖子,当然啦,其它的行版本也可参考下,道理一样的。我曾经用类似的方式安装Debian,可以解决2.4的内核和读取ntfs格式里面的文件。其它介质的安装方便也是一样的,只不过你提取内核不同罢了。

    不过,这样安装好像有一个缺点,就是安装界面比其它启动方式安装会难看些,色彩好像没有那么爽。哈哈。。。。。。。。。。。。。。
 
 
DNS服务是许多服务的基础,既然已经把Mandrake Linux系统架起来了,首要的任务就是要着手配置DNS服务。刚开始的时候,不知道如何配置,就在网上大量找相关的资料,阅读后,不管是照样办还是修改,我都没有成功,faint哦,辛苦了两天,还要没有把它搞掂,没有办法,只能一切从头开始,就本系统本身着手。发现,Mandrake linux和其它的发行版本是有区别的,下面说说我的DNS的配置过程吧。虽然,你可以用前端的界面dnsconf来配置,但对于新手来说,用这个工具不知道在什么地方发生了变化。由于我的DNS是用在局域网中,还没有连接Internet,仅仅限于局域网中为各个部门的各主机及服务器作解析用。

1、网络情况:
   a、拥有一个C类网段,地址为192.168.1.0;
   b、域名pk.org,没有注册;
   c、服务器的IP为192.168.1.1,主机名为huang.pk.org,它同时充当www、ftp、mail、和samba服务器。

2、配置文件:
    /etc/named.conf 来自caching-nameserver-9.0-2mdk的rpm包,需要修改;
    /etc/resolv.conf 系统自带,需要修改;
    /var/named/pk.zone 自已创建;
    /var/named/pk.reversed 自已创建;
    /var/named/named.local 来自caching-nameserver-9.0-2mdk的rpm包,一般不要修改
    /var/named/named.ca 来自caching-nameserver-9.0-2mdk的rpm包,一般不要修改;

注意,自己创建的文件你可以自己给它命名。其中的作用是用来定义域信息民,实现主机到地址间的镜像,识别mail、www、ftp、samba服务等和提供域名信息。主要的作用总之就是named2ip的作用;而pk.reversed是一个反向解析的作用,实现IP地址到域名的映射。

    如果你没有装上相关的rpm包,你可以查下:
#rpm -qa | grep bind   
bind-devel-9.2.1-4mdk
samba-winbind-2.2.6-1.0.pre2.2mdk
bind-utils-9.2.1-4mdk
bind-9.2.1-4mdk
   这几个rpm的作用就不说了,你自己看看它的内容就会知道是什么东西。

3、named的配置文件/etc/named.conf

   在Mandrake系统中named的配置文件是/etc/named.conf.我们知DNS服务器的主体应该是域名服务器进程named,named启动后向DNS客户机提供域名解极服务,把域名转换成IP地址。在bind8以前,默认的配置文件是/etc/named.boot,后来在bind8以上的版本,默认的配置文件就是/etc/named.conf了,它通常只包括一些指向DNS信息源的信息,其中某些源是可以本地的文件,而其它的源信息则是远程服务器。下面的/etc/named.conf的具体情况:
#cat /etc/named.conf
// secret must be the same as in /etc/rndc.conf
// 密钥必须与和/etc/rndc.conf一致
// /etc/rndc.conf文件的情况,你可以看看它内容,或者man rndc.conf的EXAMPLE。
key mykey {
       algorithm hmac-md5;
       secret "IriCelUSbPMypSjImBsiTHMauOumRPMkdBjoxVINAx0vxJZNRKGWzFCKibad";
};

controls {
       inet 127.0.0.1 port 953
//本地的端口我用了953。      
               allow { 127.0.0.1; } keys { mykey; };
};

options {
        directory "/var/named/";
//指定named从/var/cache/bind目录下读取DNS数据文件。
//目录用户还要自行指定并创建,所有的DNS数据文件都存放在此目录下,而且要注意
//其所有权者为named
        pid-file "/var/run/named/named.pid";              // Put pid file in working dir
//named.pid文件的地方,也要注意其目录的要限,为named所有。       
        auth-nxdomain yes;   
};
//指定named从/var/named/named.ca文件中获得Internet的顶层“根”服务器地址。
zone "." {
        type hint;
        file "named.ca";
};

//指定named作为127.0.0.网段地址的转换主服务器,named.local文件包
//含了所有127.0.0.*形式的地址到域名的转换数据。127.0.0.网段
//主要是作为局域网接口的内部回环地址。
//注意:网段地址是倒写的,区域使用数据文件的文件名可自行决定的。
zone "0.0.127.in-addr.arpa" {
        type master;
        file "named.local";
};
//指定named作为pk.org域的主域名服务器,pk.zone文件中包含有所
//有*.pk.org形式的域名转换数据。
zone "pk.org" {
        type master;
        file "pk.zone";
        allow-update { key mykey; };
};
//指定named作为192.168.1.0网段地址的转换主服务器,pk.reversed
//文件包含了所有192.168.1.*形式的地址到域名的转换数据。
zone "1.168.192.in-addr.arpa" {
        type master;
        file "pk.reversed";
        allow-update { key mykey; };
};

    这个文件是相当重要的,如果你还不太懂其中的细节,你一定要看看info named.conf或man named.conf。但是要注意其中的注释式样,这个你可以在info named.conf中有具体的说明。据我了解。它所指的意思应该是是这样:

; 这是bind 4.x的注释,前面用分号;
//从bind 8往后,有三种注释符号可以用: C样式, C++样式, 或者Shell Script样式:

/*是C样式的注释符号 */
//是 C++样式的注释符号
#是Shell Script样式的注释符号

   这些可能会涉及到后面的一些相关的文件。其中在一部分你可以从注释中了解到。

   总之:/etc/named.conf这个文件是通知named从那里寻找文件,其后命名的文件都是相对于此目录的。这文件通知named去维持一个域名服务器响应的高速缓存,并利用named,ca文件的内容去初始化该高速缓。


4、区域数据文件:
   这些区域数据文件在/var/named目录下
#ls /var/named/
named.ca
named.local
pk.reversed
pk.zone

4.1、/var/named/named.ca文件
    这个文件是系统自带的,一般都不动它。你看看它的内容就知道是怎么样一回事了。

4.2 /var/named/named.local文件

#cat /var/named/named.local
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1       IN      PTR     localhost.

这个文件的作用就是解析本地回环地址,即127.0.0.1,回环地址量种特殊的约定,它允许处理本地计算机地址时,与处理远程地址的方法一样,这样可以简化处理过程,而不必将数据发送到物理网络上。其中SOA记录将localhost标识为开创该区的服务器。

4.3  /var/named/pk.zone文件

# more /var/named/pk.zone
$ORIGIN .
$TTL 86400        ; 1 day
pk.org        IN SOA        huang.pk.org. root.huang.pk.org. (
                                2001042703 ; serial(序列号)
                                86400      ; refresh (刷新周期,1 day)
                                21600      ; retry (循环周期,6 hours)
                                3600000    ; expire (中止时间,5 weeks 6 days 16 hours)
                                3600       ; minimum (time-to-live的时间,1 hour)
                                )
                        NS        huang.pk.org. ;(定义域名服务器同,带域名的主机名后必须带一个“.”)
                        MX 10   huang.pk.org. ;(定义邮件服务器,10表示优先级,越小越高,带域名的主机名后必须带一个“.”)
$ORIGIN pk.org. ;(实现域到IP的映射)
$TTL 86400        ; 1 day
localhost                A        127.0.0.1
huang                        A        192.168.1.1
ly                        A        192.168.1.253
liang                        A        192.168.1.250
www                        A        192.168.1.1
ftp                        A        192.168.1.1
mail                        A         192.168.1.1


   这个文件包括了应该pk.org域内所有主机节点。(我只列出了一小部分)。如果这个域的主机的节点很多时,可以先放几台进入,然后慢慢调试,到调试好后,再往里面加上其它的主机节点。注意,这里面的注释是以;形式出现的。
   
    其中的第一行的$ORIGIN .你可以通过man named.conf来看看。下面是我摘录了其中的一段,它应该和/etc/named.conf密钥那段有关吧。
     Definition and Usage

     The trusted-keys statement is for use with DNSSEC-style security, origi-
     nally specified in RFC 2065.  DNSSEC is meant to provide three distinct
     services: key distribution, data origin authentication, and transaction
     and request authentication.  A complete description of DNSSEC and its use
     is beyond the scope of this document, and readers interested in more
     information should start with RFC 2065 and then continue with the Inter-
     net Drafts available at


     Each trusted key is associated with a domain name.  Its attributes are
     the non-negative integral flags, protocol, and algorithm, as well as a
     base-64 encoded string representing the key.

     Any number of trusted keys can be specified.

$TTL 86400 ;1 day 存活时间吧。

     第三行是是 SOA 记录,定义了域名数据的基本信息,依次是 DNS 服务器名、DNS 管理员邮件地址(用.代替了@),这一行也等于:
     @IN SOA        huang.pk.org. root.huang.pk.org. (
     括号内的第一个数字是文件版本号(一般当天时间和修改次数来组成),每次本文件内容修改后,必须更改此号。其余数字与DNS服务器直接的数据交换有关,在这里我们不需要改动。后面的那些数字都是以秒来计的。
     括号后面有一条NS记录和一条MX记录,定义了域名服务器本身的域名和username@huang.pk.org 形式邮件地址所对应的邮件服务器名字。
     在此以下是各种域名/地址转换数据,其中A记录是DNS域名到IP地址的记录,是必须有的。因为前面的域已经定为了pk.org.,所以huang.pk.org可以简定为huang,它的IP为192.168.1.1是。我们看www和ftp的IP都是192.168.1.1,因此它可以认为huang.pk.org的别名.后面的三项还有用CNAME的写法,
     比如:
     www CNAME huang.pk.org.
     ftp CNAMW huang.pk.org.
     mail CNAMW huang.pk.org.
     CNAME可定义了一些主机的别名,比如我们将huang.pk.org作为的www和ftp服务器,所以我们提供了
阅读(1992) | 评论(0) | 转发(0) |
0

上一篇:Mandrake FAQ(1)

下一篇:iptables脚本的优化

给主人留下些什么吧!~~