四、 Linux下的“神兵利器”:15问

55.KDE是什么,有什么特点?
   KDE项目在1996年10月发起的,其目的是在X-Window上建立一个完整易用的桌面环境。KDE现在除了拥有KFM(类似于IE4.0)、KPresenter(类似PowerPoint)、KIllustrator(类似CorelDraw或 Illustrator)等重量级软件,还有体贴用户的GUI配置软件可以帮助用户配置Unix/Linux,使其深受使用者欢迎。
    但由于KDE是基于由TrollTech公司开发的Qt程序库的,所以也受到了许多批评。虽然Qt本身作为一基于C++的跨平台开发工具是非常优秀,但可惜的是它不是自由软件。Qt的License允许任何人使用Qt编写免费软件及免费拷贝给其他用户使用,但如果利用Qt编写非免费软件则需要购买他们的License。更重要的是任何人都不可以随意修改Qt源代码。如果TrollTech公司更改Qt License、公司倒闭或给人收购等都会令KDE前功尽弃。

56.GNOME是什么,有什么特点?
    1997年8 月,为了克服KDE所遇到的QT许可协议和单一C++依赖的困难,以墨西哥的Miguel de Icaza为首的250程序员就开始了一个新项目,完全从头开始,这就是GNOME。
    经过14个月的共同努力,终于完成了这个工程。现在GNOME已得到了占Linux 市场份额最大发行商Red Hat 的支持,拥有了大量应用软件,包括文字处理软件Go,电子表格软件Gnumeric,日历程序GNOMEcal,堪与PhotoShop 媲美的图形图像处理软件Gimp 等。
    现在GNOME与KDE成为了两大竞争阵营,必将使得Linux更加易于使用。

57.在Linux下如何播放CD?
    当你成功地在Linux环境下驱动了你的声卡之后,你就可以通过使用X-window中的一个CD播放器来播放CD了,它在多媒体工具中。界面如下图所示:

58.能不能在Linux下播放VCD?
    你可以使用MpegTV Player 1.0这个Linux下的VCD播放器实现你的愿望。  安装MpegTVPlayer不需要特殊的硬件设备,只需运行X Window即可使用。
    它模仿了录像机的播放控制键,如 : 播放、快进、快退、停止、定格、搜索、音量调节、静声、音量平衡、循环播放、画面放大缩小、自动播放等。播放过程会显示整个节目要用时间、已用时间。
    你可以到下面站点下载MpegTV Play:[url]http://www.mpegtv.com[/url]。

59.有没有Linux下MP3播放工具?
     Linux下有很多MP3的播放工具,其中mpg123 应该是最经典的一种,它可以在控制台使用。许多图形界面的mp3播放软体都是利用这个程式来 播放mp3的。下面是它的一些基本的参数介绍:
    -a device 设定所使用的音效装置,预设为/dev/audio或/dev/dsp
    -@ file 从档案file中读取要播放的mp3档案名称列表
    -z 随机播放
    如果只是要单纯地播放一两首歌,或是要播放一整个目录下的歌,利用mpg123倒是个不错的选择,若是要复杂一点的功能如选择多目录内的特定mp3档案,那可能需要写个script来执行。

60.如何在Linux下浏览网页?
    想要浏览网页,需要满足两个条件:
    1) 你的电脑已经连上了Internet;
    2) 使用浏览器软件来实现浏览;在Linux下有两种常用的浏览器:
    控制台下可以使用lynx;
    X-window中可以使用netscape的Linux版本;
    它们的使用方法与在Windows中的浏览器基本类似。

61.如何在Linux下收发E-Mail
    在Linux下你可以使用mail、pine在控制台命令行下收发E-Mail,在X-window中可以使用Kmail来收来E-Mail。

62.能不能让Linux显示中文呢?
    用的英文版的Linux,你可以安装中文模拟终端chdrv使Linux能在命令行状态下显示和汉字。chdrv启动后在tty7(用Ctrl+Alt+F7)建立一个虚拟终端,用户在tty7上登录后就可以使用它提供的中文支持。
    到[url]ftp://ftp.ihep.ac.cn/pub/chinese/system[/url]获取已编译的chdrvbin-0.23.gb.tar.gz文件和字体文件chdrvfont.tar.gz,然后执行:
    tar xvzf chdrvbin-0.23.gb.tar.gz
    mv chdrvfont.tar.gz chdrv-0.23.gb/
    cd chdrv-0.23.gb 进入此目录
    ./installbin 运行安装文件

63.有没有Linux下的中文输入法?
    如果你使用的Linux是中文版,就无需另外安装了。如果你使用英文版的Linux的话,你可以安装chinput来实现中文输入。你可以到下面网址下载:
  [url]http://www.turbolinux.com.cn/~justiny/download/chinput-2.1.tar.gz[/url]
    1) 下载后,解开该文件:tar -xvzf chinput-2.1.tar.gz
    2) 解开后,进入 Chinput-2.1/src 里,修改 chinput.c文件,查找 GBK字样,将其改为 GB2312。再查找system("/usr/bin/zwincontrol &");语句,将其取消(在前面加上 // );
    3) 修改完后,执行make命令编译;
    4)编译完成后,就可以在X-Window环境下使用了。

64.除了VI,还有其他文字编辑软件吗?
    Vi是UNIX/Linux环境下最通用的一种编辑软件,但是它不是很友好。如果你对它不满意的话还可以尝试其它一些如emacs、joe等编辑工具。
    笔者极力推荐emacs,这是自由软件基金FSF之父stallman的杰作,也是GNU项目第一个重磅×××,的确十分优秀,值得一试。不过最大缺点就是太复杂。

65.Linux下有没有像office一样的软件?
    有,StarOffice就是基于Linux的一个办公软件的套件,它是一个商业软件包,其中包括字处理、电子表格、幻灯片制作等MS Office软件包含有的软件。对于个人用户还提供一个免费的版本。用户可以到以下站点下载:
  [url]http://studio.linux.org.cn[/url]。
    StarOffice Office Suite for Linux是为非商业用户准备的,商业用户要使用StarOffice Office 则需要许可证。
  [url]ftp://ftp.gwdg.de/pub/linux/staroffice[/url]

66.Linux下有没有像photoshop一样的软件?
    有,Linux下有一款十分著名的平面图形处理软件—GIMP。它的界面比Photoshop更简洁,启动时只有一个工具栏,看起来和Photoshop差不多.主菜单在用鼠标右键单击打开的图象时才弹出,像Channels,layers,brushes......一应俱全,外观也和Photoshop极为相似,用不着花时间去适应了. ....
    这还不算特点.比Photoshop优越的地方也不少:如支持的图象格式极多,支持Texture Brush,像Painter那样刷出底纹图案来. Filter也更多了,比如有一种叫Alien Map的,把RGB三色进行sin,cos运算,达到特殊效果,真是奇思妙想.Undo功能也不错,我试了一下,至少支持5次undo.还有更令人欣喜的,就是对Web的支持,可以很轻松的做出定制的箭头,按钮,背景图案等,比Photoimpact更强大。
    如果你离不开PHOTOSHOP,又付不起ADOBE掌柜的帐,又自认为玩艺术的人不用D版,试试GIMP吧!

67.能在Linux下玩游戏吗?
    现在已经有For Linux的游戏了,除了大名鼎鼎的Doom之外,还用一些像acm—空战模拟游戏、xdemineur—挖地雷、xjewel—俄罗斯方块、xboard—国际象棋、xboing—弹珠台游戏。而且现在越来越多,为你在枯燥的学习中添上一丝乐趣。

68.在Linux下有C语言吗?其它语言呢?
    在Linux下有自由软件基金FSF创建的重磅×××---GCC,它是一个强大的编译器,目前堪称是全世界效率最高的C/C++编译器,现在已经广泛应用在各种UNIX环境下。虽然,现在还没有C语言的集成开发环境,但这丝毫不影响GCC的流行,这也许就是自由的力量吧!
    同时,Linux下也提供Fortran、Pascal、Perl、Cobol等多种语言的支持。

69.Linux下有哪些数据库软件?
    Linux下有许多种数据库软件可供使用,其中有Oracle for Linux、IBM DB2 for Linux、Mysql、mSql、Post等。


五、 做好Linux的管理员:21问

70.如何检查Linux硬盘使用情况?
    在Linux环境下,你可以使用df命令来查看硬盘的使用情况。下面就是一个df –T –h(-T参数:显示文件系统类型,-h参数用可读性较高的方式来显示信息)命令的输入实例:
    Filesystem Type Size Used Avail Use% Mountedon
    /dev/hda1 ext2 7.5G 4.7G 2.5G 65% /
    /dev/hda2 ext2 653M 6.6M 613M 1% /root
    /dev/hdb1 ext2 7.5G 3.5G 3.7G 49% /usr

71.Linux下有哪些压缩工具?
   在Linux下有很多种压缩工具,常用的有:
   1) gzip/gunzip:这是GNU开发的自由软件,使用相当广泛。压缩文件扩展名为“.gz”。使用方法很简单,例如:
       gunzip eos.gz gzip /home/test/*.txt;
   2) compress/uncompress:这是一对历史悠久的压缩程序,文件经过它压缩后,压缩文件扩展名为 “.Z”。
   3)除此之外还有:zip/unzip、bzip2/bunzip2等。

72.如何管理进程?
    进程是程序的一次执行。可以使用“ps –auxw”列出在当前正在执行的进程的详细信息,包括每个进程都有的进程ID号。你可以通过“kill 进程ID号”来终止这个进程。

73.文件或目录的权限是什么意思?
    文件或目录的权限位由10位构成,如-rwxr-xr-x。
    1) 第一位代表文件/目录类型:d代表目录、-代表文件、l代表链接;
    2) 剩下的9位分成3组,每组3位;2-4位描述文件主人的权限,5-7位描述与文件主人同一用户组的权限,8-10位则是其它用户的权限。
    3) rwx:每组的3位分别是:读权限、写权限、执行权限;如果是-就代表没有这个权限。
    也就是说-rwxr-xr-x表示,这是个普通文件,文件主人可以读、写、执行这个文件,与文件主人同组的用户以及其它用户都可以读、执行这个文件。

74.什么是用户帐号?
    在Linux系统中,是通过用户帐号来标识每一个用户的,通过登录时输入不同的用户帐号和密码确定你的身份。也就是说,Linux系统通过用户帐号和管理系统的所有用户。
    然后你可以创建一些用户组,将用户加入到组中去,让其获得用户组的权限。

75. 在Linux下,如何管理用户?
    如果你想要新增一个用户:
    1) 以root登录,然后执行“adduser 用户帐号名”
    2) 执行“passwd 用户帐号名”来为这个用户帐号设置密码。
    执行“userdel 用户帐号”删除一个用户;
    执行“groupadd 用户组名”新增一个用户组;
    执行“groupdel 用户组名”删除一个用户组;

76. 如何为用户作磁盘限额?
    1)将要设置磁盘限额的分区,按以下格式修改/etc/fstab 文件:
     /dev/hda2 /home ext2 defaults,usrquota 1 2
    2)在要设置磁盘限额的分区目录下创建空文件 quota.user
     #touch /home/quota.user
     #chmod 600 /home/quota.user
    3)重启系统后,就可以使用edquota –u 用户名来设置。

77.如何备份系统?
    在Linux中,你可以使用dump/restore命令组来实现系统的备份与恢复。假设你需要将/usr目录下的所有文件完整地备份到磁带机上(假定设备是rmt8,不同的磁带机不相同),你可以使用命令:
    dump –O –f /dev/rmt8 /usr
    其中-O参数代表备份全部文件,“-f 设备文件名”参数指定备份到什么地方,最后的目录名指定要备份的内容。
    然后,你可以使用以下命令恢复:
    restore –r –f /dev/rmt8

78.如何安装.tar的软件包?
    Linux软件有两种发布方式:一种是源代码方式,另一种是可执行文件包。而发布包大多是先用tar归档,再用gzip压缩,生成是以.tar.gz结束的文件。
    你可以直接使用“tar xvfz 文件名”完成解压缩,解tar包工作。
    如果你取得是可执行文件包,安装工作结束。
    如果你取得是源代码包,则还需编译一下:
    1) 在解压目录下运行“./configure”进行配置;
    2) 在解压目录下运行“make”进行编译;
    3) 运行“make install”安装。

79.如何使用RPM安装Linux软件?
    RedHat公司提供的RPM工具,使得Linux软件安装更为方便。
    1) 安装:rpm –ivh somesoft.rpm
    2) 反安装:rpm –e somesoft.rpm
    3) 查询:rpm –q somesoft

80.如果忘了root的密码,怎么办?
    如果你忘了root的密码,可以通过以下方法恢复:
    1) 重新启动Linux,出现lilo:时,输入linuxsingle进入单用户模式;
    2) 这时无需密码就取得了root权限;
    3) 再运行passwd重新设置root的密码。

81.重装Windows而破坏了Lilo时,怎么办?
    这种情况可以使用两种方法恢复:
    1)用Linux启动软盘启动,然后执行/sbin/lilo,重新在引导区建立lilo;
    2)使用Linux安装光盘启动,选择升级系统,将会重建lilo。

82.如何制作Linux启动盘?
    在Linux下,有一个工具mkbootdisk能很方便地制作系统启动盘:
    1) 查看系统的版本,可以通过ls /usr/src来看;
    2) 插入一张空软盘;
    3) 执行“mkbootdisk --verbose 2.2.5”。

83.如何远程使用Linux?
    我们可以使用telnet、rlogin、rsh、rcp等命令来实现远程使用Linux,但这这些方法在传输过程中是明文传输的,所以有可能带来许多不安全因素。因此,应尽量避免远程使用root帐户登录系统。

如何构建安全的远程登录?
    使用SSH来实现安全的远程登录,因为SSH实现了数据传输的加密。
    1) 从ftp.cs.htu.fi/pub/ssh获取ssh-1.26.tar.gz文件;
    2) 用tar xvpf ssh-1.26.tar.gz解开这个包;
    3) 到解开的目录/usr/local/src/ssh-1.26目录下执行./configure;
    4) 执行make和make install来完成编译和安装。
    5) 你就可以使用ssh来与安装了SSH的服务器建立安全的远程连接。

85.如何运行计划任务?
    大大可能对Windows中的计划任务都比较熟悉了,它可以通过一些简单的设置,定时完成一些任务。在Linux系统的维护中,我们可以也会需要定期执行一些任务,这种情况可以使用:
    1) at命令:它可以键盘或文件中读取指令,然后在指定时间完执行;
    2) crontab守候进程:通过设置它的配置文件来定时执行某些任务。

86.Linux的开机过程都做了什么?
    1) 一开机,CPU将控制权交给BIOS,BIOS完成开机自检;
    2) 然后BIOS读取磁盘上的第一个扇区,并装入主引导扇区的lilo;
    3) lilo根据输入选择不同的内核映象,如果你选择了linux就读取/boot下的核心映象;
    4) 核心开始硬件检测和设备驱动程序的初始化,然后运行init
    5) init进程根据/etc/inittab的配置运行一系列初始化脚本;
    6) 完成后,启动getty进程接受用户的登录。

87.如何设置开机自动运行程序?
    你可以在以下几个脚本文件中加入你想一启动系统就执行的命令:
    /etc/rc.local、/etc/rc.sysinit以及/etc/rc.d/init.d。

88.为什么需要重新编译内核?
    以下情况你需要重新编译内核,或加入动态内核模块:
    1) 更新驱动程序;
    2) 根据自己的需求定制最可靠的内核;
    3) 升级Linux内核。

89.如何重新编译内核?
    1) 进入Linux源代码目录:cd /usr/src/linux
    2) 执行“make config”或“make menuconfig”、“make xconfig”配置内核选项,选中你想要的模块,去掉不想要的模块;
    3) 执行“make zImage”命令,大概30到90分钟后,会生成一个zImage的新内核映像文件,存放在/usr/src/linux/arch/i386/boot目录下;
    4) 然后将其拷贝到/boot目录下;
    5) 修改lilo.conf文件,加入:
      p_w_picpath=/boot/zImage
      label=newlinux
      root=/dev/hda1 (根据原来的文件)
    运行/sbin/lilo使修改生效。
    6)重新启动,在Lilo时,输入newlinux就可以新内核启动。

90.什么是动态内核模块?
    动态内核模块是Linux一个成功的设计,它使得Linux更加灵活,易于定制。其实动态内核模块就是一个内核模块,它可以在不重新编译内核的情况,动态地将一些功能用“insmod 模块名”命令加入内核、用“rmmod 模块名”命令将其移出内核。



六、 廉价的网络解决方案---Linux:9问

91.如何使用Linux架设WEB服务器?
    Apache服务器是在Linux架设WEB服务器的首选。你可以在安装Linux时就选择安装它。若在安装时没有安装Apache的话,你可以从光盘或者到apache网站上找到文件:apache-1.3.12.i386.rpm,然后执行以下命令完成安装:
    1)rpm –ivh apache-1.3.12.i386.rpm
    2)修改/etc/httpd/conf目录下的配置文件httpd.conf、access.conf等;
    3)将主页文件放到/home/httpd/html目录下;
    4)执行“/etc/rc.d/init.d/httpd start”启动Apache服务器
    如果需要关闭的话,可以执行/etc/rc.d/init.d/httpd stop命令。

92.如何使用Linux架设FTP服务器?
    在Linux中,最常用的FTP服务软件当数wu-ftpd,如果在安装linux时没安装上它。你可从光盘或者网站rpmfind.net/linux/RPM/WbyName.html获取它的RPM包:wu-ftpd-2.6.0-9.i386.rpm。然后执行以下命令完成安装:
      rpm -ivh wu-ftpd-2.6.0-9.i386.rpm
    编辑 "/etc/inetd.conf" 文件,指向新的ftpd守护进程,如下所示:
    ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
    到此为止,你的Linux就可以接受FTP服务了。

93.如何使用Linux架设E-MAIL服务器?
    Linux中,最常用的E-MAIL服务器是Sendmail,你可以在安装Linux时将其选中。
    1) 在DNS服务器上为E-Mail服务器做一条MX记录;
    2) 编辑/etc/inetd.conf文件,将关于pop和smtp的行的注释符去掉;
    3) 执行kill –HUP inetd,使修改生效;
    这样E-mail服务器的用户就可通过Outlook等客户端程序进行收发邮件了。

94.如何使用Linux架设News服务器?
    在安装Linux时,选择INN软件包,并允许开机时启动innd。在完成系统的安装时,大部分配置工作已经完成,无需编译源码。
    1)配置/etc/news/inn.conf:
      domain: foo.com
      organization: foo company news site
      server: localhost
      根据实际情况填写;
    2)配置/etc/news/nnrp.access
nnrp.access是用来完成News Readers服务的守候进程nnrpd的配置文件,用于控制对站点的访问,修改此文件无须启动INND。
    3)添加新闻组:
    可以手工编辑/var/lib/news/active文件添加新闻组,也可以使用ctlinnd命令来增加。若是手工方式修改新闻组,须执行以下命令使其生效:
    ctlinnd reload active "modify active"

95.如何使用Linux架设BBS?
    1) 从[url]ftp://pbbs.chpi.edu.tw/pub/pbbs/source[/url]下载PowerBBS的源代码发行包文件pbbs.tar.gz;
    2) 执行tar zxvf pbbs.tar.gz解开文件;
    3) 进入pbbs目录,运行Install;
    4) 根据具体需求改变默认的设置。

96.如何让Linux成为文件服务器?
    在Linux中,你可以用Samba来做文件服务器,你可以在安装Linux时选中Samba就可以完成安装。
    1) 编辑/etc/smb.conf,修改配置:
   netbios name=linux
    workgroup=SambaServer
    server string=Samba Server
    hosts allow=192.168.9. 127.
   securoty=share
    interfaces=192.168.9.1/24
    name resolve order=host dns bcast
    wins support=no
    2)重新启动SMB服务器:/etc/rc.d/init.d/smb restart
    3)编辑客户机的hosts文件,加入对Samba Server的解析;
    4)最后你就可以在网上邻居上看到它了。

97.如何使用Linux架设代理服务器?
    1) 到[url]http://squid.nlanr.net/Squid/[/url]下载Squid代理服务器软件squid-2.2.STABLE3-src.tar.gz;
    2) 执行tar xzxf squid-2.2.STABLE3-src.tar.gz
    3) 执行./configure
    4) 执行make,make install安装到/usr/local/squid目录下;
    5) 编辑/usr/local/squid/squid.conf文件,加入:
        acl allowed_hosts src 192.168.9.0/255.255.255.0
    注:假设你的内网IP地址是192.168.9.0;
    6) 执行/usr/local/squid/bin/squid –z进行初始化
    7) 执行/usr/local/squid/bin/squid开启服务
    8) 在客户端设置代理服务器IP和端口3128,就可以访问Internet了。

98.如何使用Linux架设透明网关?
    确认Linux内核已经支持ipchain,然后编写一个脚本ipchains.rule,内容为:
注:假设透明网关服务器的外网地址是:1.2.3.4,已经与Internet相连;内网地址是192.168.9.1,连在内网上。
    #!/bin/sh
   /sbin/ipchains -F forward
   /sbin/ipchains -F input
   /sbin/ipchains -F output
   /sbin/ipchains -P forward DENY
   /sbin/ipchains -P input ACCEPT
   /sbin/ipchains -P output ACCEPT
   external_interface=1.2.3.4
   /sbin/ipchains -A input -j ACCEPT -i lo
   /sbin/ipchains -A output -j ACCEPT -i lo
   /sbin/ipchains -A input -j DENY -i eth1 -s 192.168.9.0/24
   /sbin/ipchains -A input -j DENY -i eth1 -d 192.168.9.0/24
   /sbin/ipchains -A output -j DENY -i eth1 -s 192.168.9.0/24
   /sbin/ipchains -A output -j DENY -i eth1 -d 192.168.9.0/24
   /sbin/ipchains -A input -j DENY -i eth1 -s $external_interface/32
   /sbin/ipchains -A input -j DENY -i eth1 -s $external_interface/32
   /sbin/ipchains -A output -j DENY -i eth1 -d $external_interface/32
   /sbin/ipchains -A forward -j ACCEPT -i eth0 -s 192.168.9.0/24 -d 192.168.9.0/24
   /sbin/modprobe ip_masq_ftp
   /sbin/modprobe ip_masq_quake
   /sbin/modprobe ip_masq_irc
   /sbin/modprobe ip_masq_user
   /sbin/modprobe ip_masq_raudio
   /sbin/ipchains -A forward -j MASQ -i eth1 -s 192.168.9.0/24
   运行这个脚本后,192.168.9.0网络中的所有机器只需将网关设置为192.168.9.1,就可以连到Internet上了。

99. Linux还能构建什么服务器?
    Linux还可以成为域名服务器、PPP服务器、CVS服务器、路由器、防火墙,而且还可以通过LVS解决方式还构建服务器集群系统。因为在此篇幅有限,仅是点到为止,若有兴趣可以参考专业的Linux书籍。