萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 3424|回复: 21

linux的基本知识 (Mephis)

[复制链接]
发表于 2005-7-2 11:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
输入法xsim安装方法

希望此文能解决各位在安装xsim时遇上的问题

  从http://sourceforge.net/projects/xsim 可获得xsim,目前的稳定版本是0.3.9.4,强烈建议大家以root登录系统执行安装,这样可以避免一些莫名其妙的问题。

  首先请检查软件包是否安装完全。c++,db,db-devel是必需的,如果希望将状态窗口放在KDE的任务条上,系统中需要有kdelibs3-devel包。

  接下来检查locale,相信大家都是中文locale,如果你需要输入GBK汉字,让root用户也能使用xsim,或在英文环境中使用xsim,请修改locale配制文件,将对应内容修改如下:

  RC_LANG=”zh_CN.gbk”
  ROOT_USES_LANG=”yes”

  修改后重新登录使修改生效。好,现在正式进入安装进程。

  tar zxf xsim-0.3.9.4.tar.gz
  cd xsim-0.3.0.4
  ./configure --help *多看看选项,对你会有帮助的,比如你想安装xsim到其他目录./configure
  *默认cn-locale为gb2312,如果你的locale以改为gbk,加上选项--with-cn-locale=GBK
  *在KDE任务条上显示状态窗口,加上选项--enable-status-kde3
  *更改安装目录,如/opt,选项--prefix=/opt/xsim,默认目录是/usr/local/xsim

  make
  make install
  make install-data

  到此,xsim已经安装到你的机器中了,你可以打开控制台运行#xsim。


  看看是否出现“简”字,按ctrl space ,“简”字变绿,说明安装成功,否则,请重新启动机器试试。如果控制台提示找不到命令xsim,请在用户搜索路径中建立xsim的命令链接,这点至关重要,切记。

  如果你的机器只有自己用,运行chmod 666 /usr/local/xsim/dat/*,如果是多人使用,在$HOME下建立文件夹.xsim,cp /usr/local/xsim/etc/xsimrc和/usr/local/xsim/dat到.xsim中,修改.xsim/xsimrc,重新指定DICT_LOCAL的路径。

  为了让xsim在用户登录时自动运行,可以参照README.cn的方法,在$HOME/.kde/Autostart下建立文件链接xsim。但是有时这种方法会失败,为什么呢?关键在用户目录下的一个文件.xim,以前有个误解,有些用户认为装xsim必需先装xcin,其实不用。如果看见你的HOME目录中有.xim文件,就不要在./kde/Autostar中建立xsim的链接了,参照以下内容直接修改.xim中的相应内容:

  if type -p xcin > /dev/null 2>&1 ; then
  export XMODIFIERS="@im=xcin-$tmplang"
  LANG=$tmplang LC_ALL=$tmplang xcin &
  fi

  改为


  if type -p xsim > /dev/null 2>&1 ; then
  export XMODIFIERS=@im=XSIM
  xsim &
  fi

  改动后运行sh .xim,是不是一切都正常了?

  选字翻页健默认是< >,不适合我们在windows中的使用习惯,使用- +翻页参考我的xsimrc的设置:

  PREV_KEY "minus"
  NEXT_KEY "equal"
  在这个文件中还可以修改字体,我的字体设置为
  FONT_NAME "-adobe-helvetica-medium-r-*-*-14-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-*-*-14-*-*-*-*-*-gbk-0"

  **************************************************

  安装中的问题:我在configure时同时使用选项—with-cn-locale=GBK和—enable-status-kde3安装后导致启动xsim时KDE停止响应,当locale=GB2312时没有这种情况。如果你也遇上这种情况,只好去掉—enable-status-kde3重新编译安装了。

[ 本帖最后由 musicbug 于 2005-7-2 19:17 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 11:59 | 显示全部楼层

Linux常用指令速查手册

Linux常用指令速查手册

一、系统设置与管理
1.alias
说明:为命令设置别名、显示别名设置。

语法:alias [别名]=[指令名称]:为[指令名称]起一个别名。

alias [别名]:显示出[别名]所对应的命令。

alias:显示所有别名设置。

2.apmsleep
说明:进入挂起或等待状态。

语法:apmsleep hh:mm

参数:hh:mm指定进入挂起或等待状态的时间。

3.authconfig
说明:向用户提供一个配置/etc/sysconfig/network中的NIS的图形界面。

语法:authconfig --back --test --nostart

参数:--back将authconfig中的Cancel按钮改成Back按钮;--test使authconfig只能够被root运行,其他用户无法保存修改;--nostart使authconfig更改的设置在系统重启后生效。

4.aumix
说明:改变音效设置。

语法:aumix [-][+|-][<-amount>]]|[[]|R|P|q][-d][-f][-h][-I][-L][-q] [-S]

参数:-频道参数,对于每个频道,+/-选项用于增加/减少原来的强度:(图)

-d指定音效设备文件,默认是/dev/mixer;-f指定存放/读取设备的文件;-h使用时显示信息;-I以互动方式运行aumix,使用图形界面;-L从S|HOME/.aumixrc或/etc/aumixrc读入设置;-q查询所有设备,并且显示它们的位置;-S将设置存放到S|HOME/.aumixrc。

5.bg
说明:将命令放置后台运行。

语法:bg [job]

参数:job命令作业号。

6.cardmgr
说明:PCMCIA设备管理程序,管理PCMCIA插槽的插入和拔除。

语法:cardmgr [-Vqdofv][-c configpath][-m modpath][-p pidfile][-s stabfile]

参数:-V显示版本信息;-q设置为安静模式;-d在加载设备驱动程序时检查模块间的依赖关系;-o配置当前的PCMCIA卡;-f在前台执行,而不作为一个deamon程序运行;-v显示命令运行的详细信息;-c configpath在configpath目录下搜索PCMCIA卡的配置数据库和配置脚本,默认值为/etc/pcmcia;-m modpath在modpath目录下搜索可加载的内核模块;-p pidfile将cardmgr的PID写入pidfile文件,默认为/var/lib/pcmcia/stab;-s stabfile将当前插槽信息写入stabfile文件,默认为/var/lib/pcmcai/stab。

7.chage
说明:设置用户密码期限。该命令仅能被root用户运行。

语法:chage [-m mindays][-M maxdays][-d lastday][-I inactive][-E expiredate][-W warndays] 用户名

参数:-m mindays两次密码更改之间的最小时间间隔;-M maxdays密码有效期,maxdays+lastday小于当前日期,那么就需要修改密码;-d lastday最后一次更改密码的日期;-I inactive在密码过期inactive天以后才封锁账号;-E expiredate设置用户账号使用时间段;-W warndays在用户需要更改密码的warndays天前开始提示用户修改。

8.chkconfig
说明:检查、设置系统的各种服务。

语法:chkconfig [--add][--del][--list][系统服务]

chkconfig [--level<等级代号>][系统服务][on/off/reset]

参数:--add增加所指定的服务,让chkconfig能够管理它;--del删除所指定的服务,不再由chkconfig管理它;--list列出目前可由chkconfig管理的所有系统服务;--level<等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,等级代号是0~7;on在指定的执行等级,开启该系统服务;off在指定的执行等级,关闭该系统服务;reset在指定的执行等级,重置该项系统服务。

9.chroot
说明:改变根目录。

语法:chroot [目的目录][执行指令…]

10.depmod
命令:分析可载入模块的依赖性。

语法:depmod [-adeisvV][-m<文件>][模块名称]

参数:-a分析所有可用的模块;-d执行排错模式;-e输出无法参照的符号;-i不检查符号表的版本;-s在系统记录中记录错误;-v执行时显示详细的信息;-V显示版本信息;-m<文件>使用指定的符号表文件。

11.exec
说明:执行指定的命令,exec执行命令以后,控制权不会交给原来的shell,所以将退出登录。

语法:exec [-cl][-a name][指令<指令参数>]

参数:-c在空环境下执行命令;-l在最开始的参数前加上破折号,然后再传送到命令;-a name将name作为最开始的参数传送给命令。

12.export
说明:设置或显示环境变量。

语法:export [-fnp][变量名称]=[变量设置值]

参数:-f代表[变量名称]中为函数名称;-n删除指定变量,变量实际未删除,只是不输出到后续指令的执行环境中;-p列出所有shell赋予程序的环境变量。

13.fg
说明:将程序或指令切换到前台执行。

语法:fg [job]

参数:job命令作业号。 14.free
说明:显示内存状态,包括物理内存、虚拟内存、共享内存区段等信息。

语法:free [-bkmotV][-s<间隔秒数>]

参数:-b以Byte为单位显示内存使用情况;-k以KB为单位显示内存使用情况;-m以MB为单位显示内存使用情况;-o不显示缓冲区调节列;-t显示内存总和;-s<间隔秒数>持续观察内存使用情况,设置每几秒检查一次。

15.groupadd
说明:建立新用户组。

语法:groupadd [-g gid [-o]][-r][-f]组名

参数:-g gid指定组ID-GID值;-o重复使用组ID;-r用来建立系统账号;-f强制建立新用户组。

16.groupdel
说明:删除用户组。

语法:groupdel 组名

17.groupmod
说明:修改用户组信息。

语法:groupmod [-g gid [-o]][-n group_name]组名

参数:-g gid重新指定组ID值;-o重复使用组ID;-n group_name更改用户组名。

18.grub
说明:Linux下除LILO外另一个多操作系统引导管理器。

语法:grub [--batch][--boot-device=DRIVE][--config-file=FILE][--device-map=FILE][--hold][--no-config-file][--no-curses][--no-floppy][--probe-second-floppy][--read-only]

参数:--batch允许执行批处理;--boot-device=DRIVE设置启动分区,默认是0x0;--config-file=FILE设置配置文件名,默认是/boot/grub/grub.conf;--device-map=FILE使用指定的设备掩码文件;--hold等待调试器的启动;--no-config-file不使用配置文件; --no-curses不支持鼠标;--no-floppy不支持软驱;--probe-second-floppy探测第二软驱;--read-only设备只读。

19.halt
说明:关闭系统。

语法:halt [-dfinpw]

参数:-d不要在wtmp(Login记录文件)中记录;-f不论目前的runlevel为何,不调用shut down,即强制关闭系统;-i在关闭系统之前,关闭全部的网络接口;-n关闭系统前,不用先执行sync(将缓存中的所有数据写入硬盘);-p关闭系统后,关闭电源;-w仅在wtmp中记录,而不实际结束系统。

20.kill
说明:将正在执行的程序(进程)终止。

语法:kill [-s <消息名或编号>][程序]

kill [-i <消息编号>]

参数:-s <消息名或编号>指定要送出的消息;[程序]程序的进程号,可以用ps命令获得;-i <消息编号>列出消息名称,如果指定了消息编号则只显示该消息名称。

21.last
说明:列出登录过系统的用户信息。

语法:last [-aRx][-n <个数>][用户账号名…][终端号…]

参数:-a把登录系统用户所在主机的主机名或IP地址显示在最后一行;-R不显示登录系统用户所在的主机名或IP地址;-x显示系统关机、重新启动、改变运行等级等信息;-n <个数>指定要查看最近多少个登录用户;[用户账号名…]指定查看某个用户账号的登录记录;[终端号…]指定查看从某个终端登录的记录。

22.lilo
说明:Linux最常用的多操作系统引导管理器。

语法:lilo [-clqtV][-b<外围设备代号>][-C<配置文件>][-d<延迟时间][-D<识别标签][-f<几何参数文件>][-i<开机扇区文件>][-I<识别标签>][-m<映射文件>][-P][-r<根目录>][-R<执行指令>…][-s<备份文件>][-S<备份文件>][-uU<外围设备代号>][-v…]

参数:-c使用紧凑模式,本参数将所有系统启动所需文件放置在连续的扇区中;-l产生线性扇区地址;-q列出映射的系统核心文件;-t仅做测试,不修改启动扇区和映射文件;-b<外围设备代号>指定安装lilo之处的外围代号;-C<配置文件>指定lilo的配置文件,默认为/etc/lilo.conf;-d<延迟时间>设置开机的延迟时间,默认为5秒;-D<识别标签>指定开机后预设启动的操作系统;-f<几何参数文件>指定磁盘的几何参数配置文件,默认为/etc/disktab;-i<开机扇区文件>指定要使用的开机的扇区文件,默认为/boot/boot.b;-I<识别标签>显示系统核心存放的位置;-m<映射文件>指定映射文件,默认为/boot/map;-P决定要修复或忽略分区表的错误;-r<根目录>设置系统启动时欲挂入成为根目录的目录;-R<执行指令>设置下次启动系统时,首先执行的指令;-s<备份文件>lilo在产生新的引导扇区以前先将旧的引导扇区内容写到指定的备份文件;-S<备份文件>如果指定的备份文件存在,强行覆盖,-s参数则不覆盖;-u<外围设备代号>卸载指定外围设备上的lilo,并检查时间戳;-U<外围设备代号>同-u功能相同,但不检查时间戳;-v显示指令执行过程。

23.lsmod
说明:显示已载入系统的内核模块。

语法:lsmod

24.lspci
说明:显示所有系统PCI设备的总线、设备信息。

语法:lspci [-bmMnt][-v[v]][-x[xx]][-s][[:][][.[]]][-d []:[]][-i][-p

]

参数:-b显示IRQ和I/O地址;-m复制PCI设备数据信息;-M搜索所有PCI设备;-n显示PCI厂商的代码;-t以树状图表显示所有的总线、桥、设备以及它们之间的关系;-v显示详细信息;-vv显示更详细信息;-x以十六进制方式显示PCI配置空间的前64字节内容;-xx以十六进制方式显示PCI配置空间的所有内容;-s[[]:][][.[]]显示符合指定总线,插槽和功能的设备;-d[]:[]显示符合厂商ID和设备ID的设备;-i设置file作为PCI ID数据库,默认为/usr/share/pci.ids;-p

设置dir作为包含PCI信息的目录,默认为/proc/bus/pci。

25.mkbootdisk
说明:制作一张与当前系统版本相同的Linux启动软盘。

语法:mkbootdisk [--device <设备名>][Kernel版本]

参数:--device <设备名>指定软盘所在软驱的设备名,通常是/dev/fd0;[Kernel版本]当前系统的内核版本。

26.modinfo
说明:显示内核模块信息。

语法:modinfo [-adphV][-f format_string] 模块文件名

参数:-a显示该内核模块的作者;-d显示该内核模块的描述;-p显示该内核模块所支持的参数;-h显示帮助信息;-V显示版本信息;-f format_string指定任意格式的字符串,用于从module_file的ELF部分提取模块信息。

27.mouseconfig
说明:图形化的鼠标配置工具。

语法:mouseconfig [--expert][--noprobe][--kickstart][--device ][--emulthree][mousetype][--test]

参数:--expert允许用户手动设置相应的参数,忽略系统的自动设置;--noprobe不检测鼠标;--kickstart快速模式;--device 指定在快速模式中所使用的硬件端口;--emulthree用两键鼠标模拟三键鼠标;mousetype指定在快速模式中使用的鼠标类型;--test允许非root用户使用mouseconfig,但不能够用于设置。

28.ps
说明:查看当前运行的进程。

语法:ps [-aeHuwx][--group<用户组名>][--tty<终端号>][--user<用户账号名>]

参数:-a显示所有终端下执行的进程;-e显示所有程序;-H显示树状结构,表示进程间的相互关系;-u以用户为主的格式来显示进行状态;-w用宽阔的显示模式;-x显示所有程序,不区分终端机;--group<用户组名>只显示指定用户组启动的进程;--tty<终端号>只显示在指定终端上启动的进程;--user<用户账号名>只显示在指定用户启动的进程。

29.reboot
说明:重新启动Linux系统。

语法:reboot [-dn]

参数:-d不将重新启动写入日志/var/tmp/wtmp;-n重新启动前不检查是否用未结束的程序,马上重新启动。 30.shutdown
说明:关闭Linux系统及计算机。

语法:shutdown [-fFhr][-t <称数>][时间][警告信息]

参数:-f重新启动时不执行fsck检查磁盘;-F重新启动时执行fsck检查磁盘;-h关闭Linux系统后关机;-r关闭Linux系统后重新启动;-t<秒数>几秒钟后开始执行shutdown命令;[时间]以hh:mm或+mm方式来设定执行shutdown命令的时间,也可以用now表示现在就执行;[警告信息]可以通过它把要关机的信息发给登录在系统上的每一个用户。

31.su
说明:可以通过su让用户暂时换成另一个用户账号登录。

语法:su [-fl][-c <指令>][用户账号]

参数:-f用另一个用户账号登录后,不去读该用户的.profile等启动设置文件;-l用户账号改变后,也改变工作目录,就像该用户账号新登录一样;-c<指令>执行完指定的指令后,就回到原来的用户账号。

32.who
说明:显示出所有现在已经登录到系统里的用户信息。

语法:who [-Hiq]

参数:-H显示出各个信息的标题;-i显示用户的idle时间,一分钟之内没有动作,标记为“.”,一天之内没有动作,标记为“old”;-q只显示出当前登录到系统的用户总数。

二、文件与磁盘操作
1.cat
说明:将一个或多个文件的内容显示在屏幕上。 语法:cat [-bEn][文件…]

参数:-b在每一行(空行除外)的开头加上行号(从1开始);-E在每一行的最后加上符号“S|”;-n在每一行的开头加上行号(从1开始计);[文件…]要显示的文件名列表。

2.chattr
说明:改变Linux系统中Ext2文件的属性。

语法:chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录]

参数:-R递归处理,将指定目录下的所有文件及子目录一并处理;-V显示指令执行过程;-v<版本编号>设置文件或目录版本;+/-/=<属性>开启/关闭/指定文件或目录的该项属性;[文件或目录]包括a:让文件或目录只能以append模式修改,而不能直接编辑写入;A:不更新文件或目录的最后存取时间;c:将文件或目录压缩后存放;d:将文件或目录排除在Dump操作之外;i:一经设置,该文件或目录将无法删除、更名、修改;s:保密性删除文件或目录;S:即时更新文件或目录,不经过Buffer缓冲区;u:预防意外删除。

3.cd
说明:切换当前目录。

语法:cd [目的目录]

参数:[目的目录]想要切换到的目录名,可以是相对路径,也可以是绝对路径。

4.chgrp
说明:修改文件或者目录所属的用户组。

语法:chgrp [-fR][所属用户组][文件/目录名…]

chgrp [-fR][--reference=<参考文件/目录>][文件/目录名…]

参数:-f不显示错误信息;-R指定目录下的所有文件和子目录都将被修改成为指定用户组;--reference=<参考文件/目录>把指定的文件或目录的所属用户组,全部设成和参考文件/目录所属的用户组。

5.chmod
说明:修改文件/目录的权限。

语法:chmod [-fR][<权限范围>+/-/=<权限设置>,…][文件/目录…]

chmod [-fR][数字代号][文件/目录…]

chmod [-fR][--reference=<参考文件/目录>][文件/目录…]

参数:-f不显示错误信息;-R指定目录下的所有文件和子目录的权限都会被修改;<权限范围>+<权限设置>:开启相应权限?lt;权限范围>-<权限设置>:关闭相应权限;<权限范围>=<权限设置>:设置相应权限;--reference=<参考文件/目录>把指定的文件或目录的权限,全部设成和参考文件/目录相同的权限;<权限范围>包括u:文件/目录的所有者;g:文件/目录所属的用户组;o:其他用户;a:全部用户,即ugo;<权限设置>包括r:读取权限,相应的数字代号为“4”;w:写入权限,相应的数字代号为“2”;x:执行权限,相应的数字代号为“1”;-:不具备权限,相应的数字代号为“0”。

6.chown
说明:修改文件/目录的所有者以及所属用户组。

语法:chown [-fR][所有者<所属用户?gt;][文件/目录…]

参数:-f不显示错误信息;-R指定目录下的所有文件和子目录的所有者、所属用户组都将被修改。

7.cmp
说明:比较两个文件是否有差异。

语法:cmp [-clsv][-i <字符数目>][第1个文件][第2个文件]

参数:-c除了标明差异处的十进制字码之外,一并显示该字码所对应字符;-l标出所有不一样的地方;-s不显示错误信息;-v显示版本信息;-i<字符数目>忽略指定“字符数目”字节以前的差异。

8.cp
说明:用来拷贝文件或目录。

语法:cp [-bfipR][-S <备份字尾字符串>][源文件/目录…][目标文件/目录…]

参数:-b当文件拷贝时遇到要删除、覆盖目标文件之前自动备份,备份文件名为原文件名+指定的备份字尾字符串;-f强行复制文件或目录,无论目标文件或目录是否存在;-i当文件拷贝时遇到要覆盖原有文件时,先询问用户;-p保留源文件或目录的属性(所有者、所属用户组、权限、时间);-R指定目录下的所有文件及子目录都会被拷贝。

9.df
说明:用来查看磁盘的文件系统以及使用情况。

语法:df [-ahkmT][文件/设备]

参数:-a显示全部的文件系统;-h以更直观的方式显示使用情况;-k以KB为单位统计;-m以MB为单位统计;-T显示文件系统的类型;[文件/设备]磁盘是以设备文件表示,如果给出文件,那么就是指该文件所在的磁盘。

10.du
说明:用来统计目录或文件所占的磁盘空间大小。

语法:du [-chkmsS][--exclude=<目录/文件>][--max-depth=<目录层数>][文件/目录]

参数:-c不仅显示每个文件/目录的大小,还显示所有目录和文件的总和;-h以KB、MB、GB为单位,提高输出信息的可读性;-k以KB为单位统计;-m以MB为单位统计;-s仅显示统计值;-S显示个别目录的大小时,不包括该目录的子目录的大小;--exclude=<目录/文件>略过指定的目录和文件;--max-depth=<目录层数>超过指定层数的目录后,予以忽略。

11.e2defrag
说明:Ext2文件系统的数据整理程序,但不能对已经mount上来的分区进行整理。

语法:e2defrag [-dnrsv][-b bad-inode][-I inode-list][-p pool-size] /dev/name

参数:-d运行在调试模式下;-n运行在非图形模式下;-r只读模式;-s显示文件系统信息以及e2defrag的执行统计;-v运行时显示详细信息;-b bad-inode指定在整理数据时存放坏道的I节点,这个I节点指向的数据全是坏道;-I inode-list inode-list是一个文件,指定了文件系统I节点的优先级;-p pool-size指定e2defrag程序运行时使用的缓冲池大小。

12.e2fsck
说明:检查Ext2文件系统的正确性。 语法:e2fsck [-acCdfFnprsStvVy][-b][-B<区块大小>][-l<文件>][-L<文件>][设备名称]

参数:-a不询问使用者,自动修复文件系统;-c一并执行badblocks,以标示损坏的区块;-C将检查过程的信息完整记录在file descriptor中,使整个检查过程都能监控;-d显示排错信息;-f即使文件系统没有错误迹像,仍强制地检查正确性;-F执行前先清除设备的缓冲区;-n以只读模式开启文件系统,并采取非互动方式执行,所有问题均回答N;-p不询问使用者意见,便自动修复文件系统;-r此参数只为了兼容性而存在,并无实际作用;-s如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作;-S不管理文件系统的字节顺序,一律交换字节顺序;-v执行时显示详细的信息;-V显示版本信息;-y采取非互动方式执行,所有的问题均回答Y;-b指定superblock,而不使用预设superblock;-B<区块大小>指定区块的大小,单位为字节;-l<文件>将文件中指定的区块加到损坏区列表;-L<文件>先清除损坏区列表,再将文件中指定的区块加到损坏区块列表。

13.fdformat
说明:低级格式化软盘。

语法:fdformat[-n] device

参数:-n关闭在格式化后进行检查的功能。

14.fdisk
说明:Linux下的磁盘分区工具。

语法:fdisk [-b<分区大小>][-uv][外围设备代号]

fdisk [-l] [-b<分区大小>][-uv] [外围设备代号…]

fdisk [-s<分区编号>]

参数:-b<分区大小>指定每个分区的大小;-l列出指定的外围设备之分区表状况;-s<分区编号>将指定的分区大小输出至标准输出上,单位为Block;-u用分区数目取代柱面数目,来标示每个分区的起止地址;-v显示版本信息。

15.find
说明:查找某个文件或者目录。

语法:find [目录…][-amin<分钟>][-atime<24小时数>][-ctime<24小时数>][-cmin<分钟>][-group<用户组名>][-mmin<分钟>][-mtime<24小时数>][-name<样式>][-print][-user<用户名>]

参数:-amin<分钟>查找在指定分钟内被访问过的文件或目录;-atime<24小时数>查找在指定小时内被访问过的文件或目录;-ctime<24小时数>查找在指定小时内创建的文件或目录;-cmin<分钟>查找在指定分钟内创建的文件或目录;-group<用户组名>查找属于该用户组的文件或目录;-mmin<分钟>查找在指定分钟内被修改过的文件或目录;-mtime<24小时数>查找在指定小时内被修改过的文件或目录;-name<样式>查找文件/目录名与样式相吻合的文件或目录;-print将查找结果显示在屏幕上;-user<用户名>查找属于该用户的文件或目录。

16.ls
说明:列出目录内容,包括文件和子目录名称。

语法:ls [-acGhlrRu][--color=<颜色方案>][--show-control-chars][文件/目录]

参数:-a显示所有文件和目录;-c按修改时间排序;-G不显示所属用户组信息;-h用KB、MB、GB为单位显示文件或目录的大小;-l显示详细信息,包括文件大小、修改时间等信息;-r反向排序;-R列出指定目录下所有的文件及子目录;-u按最后访问时间排序;--color=<颜色方案>使用不同颜色来区分不同的内容;--show-control-chars遇到控制字符也显示,若有中文名称时可用此参数。

17.mkdir
说明:新建一子目录。

语法:mkdir [-p][-m<目录属性>][目录名]

参数:-p如果要建立的目录的上一级目录尚未建立,则先建立这一级目录;-m<目录属性>建立目录时,同时设置其目录权限,格式与chmod命令同。

18.mount
说明:将文件系统加载到“/”中来。

语法:mount [-anrw][-t<文件系统>][设备名称][载入点]

参数:-a载入在/etc/fstab中描述的所有设备;-n载入信息不记录到日志文件/etc/mtab文件中;-r以只读的模式载入设备;-w以可读写模式载入设备;-t<文件系统>指定载入文件系统的类型,包括minix:Linux最早用的文件系统;ext2:Linux最常用的文件系统;msdos:MS-DOS的FAT16;vfat:Windows下的FAT32;nfs:网络文件系统;iso9660:CDROM文件系统格式;ntfs:Windows NT的文件系统;hpfs:OS/2的文件系统;auto:自动检测文件系统类型;[载入点]其实就是一个目录,请建立一个空目录,该目录中的内容就是你载入的文件系统内容。

19.mv
说明:将文件、目录移动到另一个目录中,或将其改名。

语法:mv [-bfiu][-S<字符串>][源文件或目录][目标文件或目录]

参数:-b当遇到要覆盖其他文件或目录时,将自动备份,备份文件名为原文件名加上-S参数指定的字符串,若未设置则加上“~”;-f出现重复情况,直接覆盖而不备份;-i当遇到要覆盖文件或目录时,总是询问用户;-u当要覆盖的文件或目录比源文件要新,则不覆盖目标文件;-S<字符串>指定备份文件名后要加上的字符串。

提示:当目标文件或目录与源文件或目录在同一目录下时,其实就成为了改名命令。

20.passwd
说明:设置用户账号密码。

语法:passwd [-dlSu][用户名称]

参数:-d删除密码;-l锁住账号;-S列出与密码相关的信息;-u解开已上锁的账号;[用户名称]要设置密码的用户账号,如果没有指定,则代表设置当前登录用户的密码。

注意:该命令只有root才能够使用。

21.pwd
说明:显示当前目录。

语法:pwd

22.quota
说明:显示磁盘已使用情况和磁盘限制信息。

语法:quota [-guvq]

quota [-uvq] user

quota [-gvq] group

参数:-g显示用户所属组的磁盘限制信息;-u显示用户的磁盘限制信息;-v显示在所有挂入文件系统的磁盘上的磁盘限制信息;-q只显示超过限制的部分。

23.rm
说明:用来删除文件、目录。

语法:rm [-fr]

参数:-f强制删除,不询问;-r递归处理,将会删除指定目录下的所有文件及子目录。

24.split
说明:分割文件。

语法:split [-b SIZE] [-C SIZE] [-l NUMBER] [-NUMBER] 源文件 目标文件

参数:-b SIZE设置输出文件的大小,以字节为单位,SIZE可以是数字+单位;-C SIZE设置每行的最大长度,以字节为单位;-l NUMBER设置输出文件的大小,以行为单位;-NUMBER作用与-l NUMBER一样。

25.umount
说明:用来将mount载入的文件系统卸载出去。

语法:umount [-ar][-t<文件系统类型>][文件系统]

参数:-a卸载/etc/mtab中记录的所有已载入文件系统;-r若卸载失败,则重新尝试将其mount成为只读模式;-t<文件系统类型>仅卸载指定类型的文件系统;[文件系统]文件系统mount时的载入点。

三、网络通讯
1.arp
说明:处理系统的ARP缓存,可以清除缓存中的地址映射,建立新的地址映射;

语法:arp [-v][-n][-H type][-i if] -a [hostname]

arp [-v][-i if] -d hostname [pub]

arp [-v][-H type][-i if] -s hostname hw_addr [temp]

arp [-v][-H type][-i if] -s hostname hw_addr [netmask nm] pub

arp [-v][-H type][-i if] -Ds hostname ifa [netmask nm] pub

arp [-v][-n][-D][-H type][-i if] -f [filename]

参数:-v显示详细信息;-n以数字地址形式显示;-i If选择界面;-H type设置和查询arp缓存时检查type类型的地址;-a [hostname]显示指定hostname的所有入口;-d hostname删除指定hostname的所有入口;-D使用ifa硬件地址界面;-s hostname hw_addr手工加入hostname的地址映射;-f filename从指定文件中读入hostname和硬件地址信息。

2.arping
说明:从源地址通过ping命令检查设备上的硬件地址。

语法:arping [-D][-U][-A][-c count][-w timeout][-q][-s source] -I interface address

参数:-D复制地址监测信息;-U用ARP REQUEST包更新网络邻居上的ARP缓存;-A与-U参数作用一样,区别为-A采用ARP REPLY包;-c count设置ping命令探测的次数;-w timeout经过timeout秒后停止ping命令;-q不显示任何信息;-s source设置ping的源地址;-I interface设置ping使用的网络接口;address设置目标地址。

3.arpsnmp
说明:对以太网卡地址和IP地址的匹配性进行监测,将结果记录在系统日志中。

语法:arpsnmp [-d][-f datefile]

参数:-d启动调试标志;-f设置记录以太网/IP地址数据库的文件,默认为arp.dat。

4.biff
说明:邮件监视程序。当邮件到达后,biff命令提醒用户,并显示邮件来源。

语法:biff [n][y]

参数:n当邮件到达以后,不提醒用户;y当邮件到达以后,提醒用户。

5.ftpcount
说明:显示目前登入FTP服务器的用户数。

语法:ftpcount

6.ftprestart
说明:重新启动FTP服务器。

语法:ftprestart

7.ftpshut
说明:在指定时间内关闭FTP服务器。

语法:ftpshut [-V][-l min][-d min] time [“警告信息”]

参数:-l min设置停止FTP登录的时间,默认是10分钟;-d min设置在几分钟后切断所有FTP连接,默认是5分钟;time让FTP服务器在time时间内关闭,now代表马上,数字代表分钟。

8.ifconfig
说明:显示网络设备的状态、设置网络设备的属性。

语法:ifconfig [网络设备][down up][io_addr ][irq ][netmask <子网掩码>][IP地址]

参数:[网络设备]说明要显示或设置的网络设备名,如eth0,第一张网卡;down将指定的网络设备停止工作;up将指定的网络设备重新启动到工作状态;[io_addr ]设置该设备的I/O地址;[irq ]设置该设备的IRQ地址;netmask <子网掩码>设置该设备的子网掩码;[IP地址]设置该设备的IP地址。

9.inetd
说明:网络服务器,inetd在系统启动时由/etc/rc启动,然后负责监听特定的网络端口,当某个端口出现了连接请求,inetd判断该端口对应于何种网络服务,然后调用相应的服务程序。

语法:inetd [-d][-R rate][configuration-file]

参数:-d允许调试;-R rate指定服务程序最大调用频率(次/每分钟),默认值是1000。

10.netstat
说明:显示网络状态。

语法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

参数:-a显示所有连接中的Socket;-c持续列出网络状态;-C显示路由配置的快取信息;-e显示网络其他相关信息;-F显示FIB,此为默认值;-g显示多重广播功能用户组名单;-h在线帮助;-i显示网络接口信息清单;-l显示监控中之服务器的Socket;-M显示伪装的网络连线;-n直接使用IP地址,而不通过域名服务器;-N显示网络硬件外围设备之符号连接名称;-o显示计时器;-p显示正在使用Socket的程序识别码和程序名称;-r显示路由表;-s显示网络工作信息统计表;-t显示TCP传输协议的连线情况;-u显示UDP传输协议的连线情况;-v显示指令执行过程;-w显示RAW传输协议的连线情况;-x此参数等于-A unix;-A<网络类型>列出该网络类型连线中的相关地址;--ip些参数等于-A inet。

11.ping
说明:可以用来检查是否可以与网络上的一台主机连通。

语法:ping [-fn][-c<连接次数>][-i<间隔时间>][-I<网络设备>]

参数:-f产生ping风暴,会对网络带来严重负担,仅限root用户使用,可用来统计数据包的丢包、误码率;-n只输出数值,不尝试获取主机名;-i<间隔时间>设定2个Ping信息包发出的间隔时间,单位为秒;-I<网络设备>当系统有多个设备时,可以用该参数指定某一网络设备。

12.rup
说明:显示主机状态,包括本地主机、网络主机及本地网络上的所有主机状态。

语法:rup [-dhlt][host…]

参数:-d显示网络主机的本地时间;-h按主机名的字母顺序显示信息;-l按主机的平均负载排序;-t按主机的系统运行时间排序。

13.traceroute
说明:显示数据包从本地主机到远程主机之间的路径。

语法:traceroute [-dFInrvx][-f first_ttl][-g gateway][-i iface][-m max_ttl][-p port][-q nqueries][-s src_addr][-t tos][-w waittime] host [packetlen]

参数:-d允许套接口级调试;-F设置禁止分隔标志位;-I用ICMP ECHO应答代替UDP数据报;-n直接用IP地址显示逐跳地址;-r绕过通常的路由表,直接和远程主机连接;-x开启/关闭对数据包的检查;-f first_ttl设置第一个对外发送数据包的TTL,范围从1~256;-g gateway指定自由的源网关,最多可以指定8个;-i iface用指定的网络接口发送数据包;-m max_ttl设置向外发送的数据包的最大TTL值,默认是30;-p port设置基本的UDP端口,默认值是33434;-s scr_addr设置本地主机发送数据报的IP地址;-t tos设置数据包的服务类型,有效范围是0~255,默认值是0;-w waittime设置等待数据包返回的时间,以秒为单位。

四、其他常用工具
1.bzip2
说明:bzip2是.bz2文件的压缩工具。

语法:bzip2 [-cdfkqstvVL][-1|-2|-3|-4|-5|-6|-7|-8|-9][filename]

参数:-c将文件压缩/解压缩到标准输出设备上;-d解压缩;-f如果现有的文件和解压缩的输出文件重名,强制覆盖已存在的文件;-k在解压缩以后保留输入文件(就是源文件);-q禁止不必要的警告信息;-s降低命令运行所需要的内存;-t检查文件的完整性;-v工作时显示详细信息;-V显示版本信息;-L显示License信息;-1~-9设置压缩的块大小,即100K~900K,不影响压缩过程。

2.cal
说明:显示简单日历。

语法:cal [-mjy][[mouth] year]

参数:-m视星期一为每周的第一天,默认为周日;-j以Julina形式显示,即不分月份,以每年1月1日为第一天;-y显示今年的所有月份的日历。

3.cdplay
说明:Linux下的播放工具。

语法:cdplay [-c device][-lns][play ][stop][table]

参数:-c device指定播放设备;-l等待外围设备初始化;-n禁止自动播放;-s禁音模式;play 从num轨道开始自动播放CD;stop停止播放CD;table从数据库中显示CD内容。

4.compress
说明:compress是.Z文件的压缩/解压缩工具。

语法:compress [-cdfrvV][-b<压缩效率>][文件或目录…]

参数:-c把压缩后的文件输出到标准输出设备,不去更改原始文件。默认情况compress指令会将文件直接压缩后,加上.Z扩展名,不保留原文件;-d对文件进行解压缩;-f强制保存压缩文件;-r递归处理,将指定目录下的所有文件和子目录一并处理;-v显示指令执行过程;-V显示指令版本及程序预设值;-b <压缩效率>9~16之间,默认为16,数字越大压缩出来的文件就越小,时间也越多。

5.grep
说明:在文件中查找符合条件的字符串。

语法:grep [-qrv][样式][文件/目录名…]

参数:-q不显示中间过程的任何信息;-r如果使用该选项,则会查找指定目录下的所有文件和子目录中的内容;-v反义查找,也就是找不包含的“样式”指定的字符串的列。

6.gzip
说明:压缩/解压缩文件,生成的压缩文件后缀名为“.gz”。

语法:gzip [-dfl][-<压缩效率>][文件…]

gzip [-dflr][-<压缩效率>][目录]

参数说明:-d解压缩;-f强行压缩文件,直接覆盖同名文件;-l列出压缩文件相关信息,包括压缩前后的大小、压缩率、压缩前的文件名等;-r将指定目录下所有的文件和子目录都压缩到该文件;-<压缩效率>是一个1~9的数值,数字越小、压缩越快,数字越大、压缩率越高。

7.tar
说明:是在Linux/Unix系统中最常用的一个建立、还原备份文件的工具。

语法:tar [-Acdkvx][-f <备份文件>][文件/目录…]

参数:-A新增文件到已存在的备份文件中;-c新建备份文件;-d比较备份文件中的与当前目录下的文件之间的差异;-k解开备份文件时,不覆盖已有文件;-v显示命令执行的过程;-x还原备份文件中的内容;-f <备份文件>指定备份文件名。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:03 | 显示全部楼层

Chinesisch unter SuSE Linux 9.1 mit skim

Chinesisch unter SuSE Linux 9.1 mit skim

Im folgenden wird beschrieben, wie man mit den Programmen SCIM und skim unter SuSE Linux 9.1 chinesische Schriftzeichen eingeben kann. Eine gute allgemeine Anleitung für die chinesische Sprachunterstützung unter SuSE Linux finden Sie auch unter http://www.suse.de/~mfabian/suse-cjk/suse-cjk.html.


skim

Mit dem Programm skim kann man unter KDE chinesische Schriftzeichen eingeben. Das sieht z.B. so aus:




Installation

skim basiert auf scim-lib. Für ein funktionierendes System müssen also beide installiert werden.

Speichern Sie zun&auml;chst folgende Pakete auf Ihrem Computer:
http://prdownloads.sourceforge.n ... e.i586.rpm?download
http://freedesktop.org/~suzhe/sc ... .4.1-1suse.i586.rpm
http://www.chinaboard.de/download.php?id=83

Dann installieren Sie diese als Benutzer root, indem Sie ein Befehlsfenster &ouml;ffnen, in das Verzeichnis wechseln, in dem Sie die heruntergeladenen Dateien gespeichert haben, und folgendes eingeben:
Code:
su
rpm -Uhv scim-1.0.1-1suse.i586.rpm scim-chinese-0.4.1-1suse.i586.rpm skim-1.0.2-0.1.i586.rpm




Start des Programms

Starten Sie die chinesische Eingabemethode, indem Sie als normaler Benutzer in einem Befehlsfenster folgendes eingeben:


Code:
killall scim-launcher
killall scim-panel-gtk
skim -d


Nun mü&szlig;te unten rechts auf Ihrer Taskleiste ein kleines Icon erscheinen.  (oder so &auml;hnlich)

M&ouml;chten Sie skim für alle Programme verwenden, stellen Sie die Umgebungsvariable XMODIFIERS entsprechend ein, indem Sie


Code:
export XMODIFIERS="@im=SCIM"


eingeben. Diese Zeile sollten Sie auch einem der Skripte, die bei Start des X Window Systems automatisch geladen werden, hinzufügen (bei SuSE Linux am besten ~/.xim). Sofern Sie eine Locale verwenden, die nicht standardm&auml;&szlig;ig von skim unterstützt wird, tragen Sie sie in Unterstützte Unicode-Regionaleinstellungen ein, wie im n&auml;chsten Beitrag unter "SCIM Globale Einstellungen" beschrieben.

Wenn Sie skim nur für bestimmte Programme verwenden m&ouml;chten, geben Sie zur Vereinfachung einmal


Code:
echo "alias CN='LANG=zh_CN.UTF-8 XMODIFIERS="'"@im=SCIM"'"'" >> ~/.alias


ein. Dadurch k&ouml;nnen Sie Programme einfach mit "CN [Programmname]" aufrufen, wenn Sie Chinesisch eingeben m&ouml;chten. Anschlie&szlig;end starten Sie Ihren Computer am besten einmal neu, damit die Datei ~/.alias neu eingelesen wird. skim wird nach jedem Neustart automatisch zusammen mit der Benutzeroberfl&auml;che KDE neu geladen.

Sollte skim nicht automatisch neu geladen werden, geben Sie einfach erneut


Code:
killall scim-launcher
killall scim-panel-gtk
skim -d


ein. (Anmerkung: Die "killall"-Anweisungen sind nur notwendig, wenn das GTK-Frontend von SCIM bereits geladen wurde, da immer nur ein Frontend aktiv sein kann. Sollte die Ausführung von killall ... die Meldung "Kein Prozess abgebrochen" zurückgeben, k&ouml;nnen Sie den Befehl getrost weglassen.)

Die obigen Anweisungen funktionieren z.B. unter der Locale "de_DE.UTF-8" (also der Spracheinstellung: Deutsch mit Zeichensatzcodierung UTF-8/Unicode), welche bei einer deutschen Installation von SuSE 9.1 als Standard gew&auml;hlt wird. Sollten bei Ihnen Probleme auftauchen, kann es daran liegen, da&szlig; Sie eine andere Locale eingestellt haben. Versuchen Sie dann, anstelle von "skim -d" einzugeben "LANG=de_DE.UTF-8 skim -d".


Eingabe chinesischer Zeichen mit skim

Starten Sie ein Programm mit "CN [Programmname]", also z.B.


Code:
CN mozilla


um den Webbrowser Mozilla zu starten. Wenn Sie Strg+[Leertaste] drücken, sollte folgende Symbolleiste erscheinen:



Sofern als Eingabemethode nicht automatisch Smart Pinyin voreingestellt ist, w&auml;hlen Sie es einfach aus der Liste, die erscheint, wenn Sie auf den Namen der Eingabemethode klicken, z.B. so:



Nehmen wir an, Sie wollen "写中文文件" eingeben. Dazu schreiben Sie zun&auml;chst das Pinyin des ersten Zeichens "xie" (ohne Angabe des Tons):



Korrekt ist das zweite Zeichen, also geben Sie eine "2" ein. Wenn das gesuchte Zeichen einmal nicht sofort erscheint, k&ouml;nnen Sie mit den Tasten "." (Punkt) und "," (Komma) nach rechts bzw. links durch die Liste laufen. Die n&auml;chsten beiden Zeichen geh&ouml;ren zusammen, also geben Sie ruhig "zhongwen" ein:



Mit einer "1" w&auml;hlen Sie die korrekte Schreibung. Alternativ k&ouml;nnen Sie mit der Leertaste immer die gerade gew&auml;hlte, blau unterlegte Schreibweise in Ihren Text übernehmen. Mit skim k&ouml;nnen Sie auch l&auml;ngere Wortketten oder ganze S&auml;tze auf einmal eingeben. Versuchen Sie z.B. "xiezhongwenwenjian":



Hier stehen bereits die richtigen Zeichen hintereinander. W&auml;re dies nicht der Fall, h&auml;tten Sie auch mit der "4" zuerst nur das erste Zeichen w&auml;hlen k&ouml;nnen, dann mit einer anderen Zahl die beiden folgenden, usw.

Wie Sie im oberen Beispiel gesehen haben, kann man mit skim auch traditionelle Schriftzeichen eingeben. Um zu erzwingen, da&szlig; Sie nur Kurzzeichen (oder nur Langzeichen) vorgeschlagen bekommen, drücken Sie einfach auf das Zeichen "中", bis Sie den gewünschten Zeichenumfang erreicht haben:




Mit den weiteren Kn&ouml;pfen k&ouml;nnen Sie einstellen, ob Leerzeichen ein halbes oder ein ganzes Schriftzeichen lang sein sollen:



und ob chinesische oder europ&auml;ische Satzzeichen eingefügt werden:




Schlu&szlig;bemerkungen

Ich werde mich bemühen, diese Beschreibung aktuell zu halten. Sollte bei Ihnen etwas nicht so funktionieren, wie hier beschrieben, antworten Sie einfach auf diesen Beitrag und beschreiben, wo der Fehler liegen k&ouml;nnte.

SCIM und skim sind zwei sehr vielversprechende, aktiv entwickelte OpenSource-Projekte, deren Hauptseiten Sie unter http://sourceforge.net/projects/scim/ erreichen. Hauptautoren sind Liu Cougar (skim) und James Su (SCIM).
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:04 | 显示全部楼层

Linux下软件的安装与卸载

Linux下软件的安装与卸载  

在Windows下安装软件时,只需运行软件的安装程序(setup、install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall、unware、“卸载”等)就能将软件清除干净,完全图形化的操作界面,简单到只要用鼠标一直点击“下一步”就可以了。而Linux好象就不一样了,很多的初学者都抱怨在Linux下安装和卸载软件非常地困难,没有像使用Windows时那么直观。其实在Linux下安装和卸载软件也非常简单,同样也有安装向导或解压安装的方式,不相同的只不过是除了二进制形式的软件分发外,还有许许多多以源代码形式分发的软件包,下面就来详细地讲一讲这些软件的安装与卸载:


一、二进制分发软件包的安装与卸载

Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执行。

1、*.rpm形式的二进制软件包

安装:rpm -ivh *.rpm

卸载:rpm -e packgename

说明:RPM(RedHat Packge Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。rpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm是软件包文件名,它们的软件包名称分别是apache和apache-devel。更多的rpm参数请自行参看手册页:man rpm。

如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序,如glint、xrpm这样的图形接口,或者是KDE的kpackge等,这样对软件包的安装、升级、卸载、验证和查询就可以通过点击鼠标来轻松完成。

2、*.tar.gz/*.tgz、*.bz2形式的二进制软件包

安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2

卸载:手动删除

说明:*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后只有单一目录的软件,卸载时用命令“rm -rf 软件目录名”;如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),想知道解压时向系统中安装了哪些文件,可以用命令“tar ztvf *.tar.gz”/“tar ytvf *.bz2”获取清单。tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。更多的参数请参看手册页:man tar。

如果你更喜欢图形界面的操作,可以在X-Window下使用KDE的ArK压缩档案管理工具。

3、提供安装程序的软件包

这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提供反安装的功能,目前这种类型的软件包还比较少,因其安装与卸载的方式与Windows软件一样,所以就无需多讲了。


二、源代码分发软件包的安装与卸载

Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。

1、*.src.rpm形式的源代码软件包

安装:rpm -rebuild *.src.rpm

cd /usr/src/dist/RPMS

rpm -ivh *.rpm

卸载:rpm -e packgename

说明:rpm --rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。

2、*.tar.gz/*.tgz、*.bz2形式的源代码软件包

安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压

然后进入解压后的目录:

./configure 配置

make 编译

make install 安装

卸载:make uninstall 或 手动删除

说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。


关于Linux下软件的安装与卸载lanche已经讲了这么多,但可能还会有人问怎么知道一个tar.gz/bz2包是二进制文件包呢还是源代码包?如果你用过压缩工具就会明白,压缩包未必就是软件,它也可能是备份的许多图片,也可能是打包在一起的普通资料,要分辨它到底是什么最好的办法就是查看包里的文件清单,使用命令tar ztvf *.tar.gz / tar ytvf *.bz2或者在X-Window下使用图形化的ArK压缩档案管理工具都可以,源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文件*.c、C++代码源文件*.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)。原来这么简单呀,还不快点自己试试!
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:06 | 显示全部楼层

在 Linux 上运行 Windows 应用程序 Wine

在 Linux 上运行 Windows 应用程序



Aditya Narayan (mailto:aditya_pda@hotmail.com?cc=youngt01@us.ibm.com&subject=A taste of Wine: Transition from Windows to Linux), 创始人,QCD
Saugata Ghosh (mailto:qcd_saugata@hotmail.com?cc=youngt01@us.ibm.com&subject=A taste of Wine: Transition from Windows to Linux),技术总监,QCD
Irina Singh (mailto:irinas@us.ibm.com?cc=youngt01@us.ibm.com&subject=A taste of Wine: Transition from Windows to Linux),IT 咨询专家,IBM



Wine 是一个令人神往而且目标远大的开放源代码项目,它尝试去解决在 Linux 上运行 Windows 可执行文件的复杂问题。尽管 Wine 不是一个新项目,但是,人们对 Linux 桌面的期望以及对 Linux 应用程序的需求日益增加,使得它现在仍具有重要意义。本文对 Wine 进行了介绍,并提出了几种获得 Wine 内部操作经验的途径。

Wine 项目起始于 1993 年,它的根源可以追溯到 90 年代早期出现的用于 UNIX 的 DOS 和 Windows 模拟器。Wine 项目最初是将 16 位的应用程序移植到 Linux,而几年之后,已可以在 Linux 上运行 Microsoft Word 和 Excel。现在它有一百多万行代码。

人们一直认为,在桌面上采用 Linux 的主要障碍是应用程序不足。商用桌面应用程序供应商还不能确定他们是否应该投入时间和精力将他们的 Windows 应用程序移植到 Linux,他们基本上是在等待 Linux 大规模应用于桌面。另一方面,Linux 需要应用程序才能大规模应用于桌面。这是一个经典的先有鸡还是先有蛋的问题,而 Wine 通过在 Linux 上运行现有的 Windows 应用程序而解决了这一问题。

Wine 能做什么
Wine 项目实际是一个二合一的项目。它们提供了一个名字叫做 Winelib 的开发工具包,用于将应用程序从 Windows 移植到 Linux(和 Unix);它们还提供了一个程序加载器,让 Windows 二进制文件可以在 Unix 和类 Unix 系统中运行。本文讨论的主要是后者;在 参考资料 中有关于 Winelib 的更多资料的链接。

不是仿真器
据 WineHQ 的说法,“WINE 代表 Wine Is Not an Emulator(即,Wine 不是一个仿真器)。更确切地说,Wine 是 X 和 UNIX 之上对 Windows API 的一个开放源代码实现。您可以认为它是一个 Window 兼容层。Wine 不需要 Microsoft Windows,因为它是由 100% 非 Microsoft 代码构成的另一个实现。但是它可以使用本机系统 DLL,只要这些 DLL 可用。而且它可以让您在 Linux 或者其他类 UNIX 操作系统之上运行大部分 Windows 软件。”

Wine 程序加载器让运行于 x86 上的 Linux 和其他类 Unix 操作系统可以加载并运行 Windows x86 可执行文件 —— 不过那只是它要解决的问题的一部分。因为 Windows 可执行文件总是会链接到其他的库,而这些库是 Windows 操作系统的一部分(如本文稍后图 1 中的 Dependency Walker 截图中可以看到),Wine 还最大可能限度地实现了那些 Windows 内部构件,即 Linux 上通常所指的 Win32 API5。

虽然 Windows 和 Linux 有很大的不同,但是就基本的层次而言,与任何现代操作系统一样,还是有很多类似之处的 —— 比较明显的包括,对文件和目录的支持,对同时运行多个程序的支持,类似的用户界面以及对多媒体的支持。

图 1. 可执行文件 callDLL.exe 的依赖

图中显示了 callDLL.exe 的依赖,这个可执行文件可以由本文提供的源代码编译得到。对一般的用户而言,依赖的复杂度可能是惊人的,但对任何一个系统程序员来说都不是这样,他们充分了解,哪怕是运行一个最简单的程序,操作系统也必须要做很多事情。

考虑图 1 所示的可执行文件的第一个依赖 —— 对 USER32.DLL 的依赖。在 Windows 中,一个 DLL 就是一个动态链接库(dynamically linked library),类似于 Linux 中的一个共享对象(一个 .so 文件)。USER32.DLL 文件通常会由操作系统提供,位于 C:\WINDOWS\system32 或者 C:\WINNT\system32 目录下。这个文件中包含了 Windows API 中用于用户界面的函数实现。

我们的可执行文件调用 USER32.DLL 中的一些函数,USER32.DLL 然后去调用 NTDLL.DLL 中的其他函数,如此继续。这些函数大部分已经由 Microsoft 文档化 —— 但是还有很多没有被文档化。文档的缺乏对 Wine 来说是一个极大的障碍,本文稍后将更详细地讨论这一问题。

现在让我们来看我们的可执行文件的第二个依赖 —— 对 SIMPLEDLL.DLL 的依赖。这个 DLL 是在编译本文所附的源代码时创建的。这个 DLL 中实现了一些特别简单的函数;它作为常见于安装 CD 上的各种二进制文件的例子被包括进来。

如我们的例子所示,一般的 Windows 可执行文件有两种类型的依赖:一种是对操作系统提供的二进制文件的依赖,另一种是对作为应用程序一部分的二进制文件的依赖。

还需要特别注意的是,DLL 以难于管理而闻名,即使是在产生它们的 Windows 操作系统中也是如此(参见 参考资料)。值得一提的是,Wine 团队成功地创建了一个可以在 Linux 上运行很多商用 Windows 应用程序的框架。

当前,开放源代码的 Wine 项目有一个健壮的平台来运行 Windows 二进制文件以及对 Win32 API 的部分实现。这个项目仍然处于最初的测试阶段(alpha),有很多部分还没有完成。尽管 Wine 提供了一些工具来帮助进行配置、安装以及运行应用程序,但是它们大部分都是面向程序员的,要让非技术用户也可以使用这些工具,还有很多事情需要去做。过去的 Corel 以及现在的 CodeWeavers 为此提供了很多帮助。

Wine 如何工作
既然我们已经理解了 Wine 的基本原理,让我们更详细地来研究 Wine 能够做什么。本文中,我们讨论的是 Wine 在纯 Linux 上的安装,没有任何 Windows 分区。

Windows 可执行文件:
Wine 完全支持 Windows 可执行文件( .exe 和 DLL)的二进制加载。
DLL:
Wine 有几百个 Windows DLL 的内部实现 —— 不过,其中没有多少是完全的实现。例如,包含有用户界面相关函数的 userd32.dll 在开放源代码的 Wine 中实现了 92%。
COM:
这是一种几乎被所有的大型 Windows 应用程序所使用的 Windows 技术,它支持诸如将一个 Excel 电子数据表嵌入到 Word 文档中等功能。这一技术得到了 Wine 的很好的支持。
注册表:
这是另一个几乎任何一个 Windows 应用程序都会使用的关键技术,Wine 实现了大约 90% 的 Windows 注册表管理 API。
核心功能:
核心系统功能也得到了特别好的支持。如前面提到的,尽管 Linux 和 Windows 之间存在区别,但是基本的层次上还有很多类似之处,因此与进程、线程、文件和消息队列相关的核心系统 API 得到了近乎完美的支持。
音频和视频:
Wine 支持 Windows 音频和视频文件的运行(还可以使用 Windows 媒体播放器)。
打印:
也得到了支持,可以从一个在 Wine 中运行的 Windows 应用程序进行打印。
ODBC:
Wine 支持那些需要通过 ODBC 访问数据库的 Windows 应用程序。
调试:
Wine 有一个非常健壮和强大的内置调试器,除了支持标准的调试功能外,它还为调试运行于 Linux 上的 Windows 二进制程序进行了定制。它是 Wine 为其开发者提供的最重要工具之一。Wine 还有一个设计完备的追踪和记录日志的模块,可以帮助调试。我们之所以强调这一点,原因在于,尽管框架是健壮的,但是,当在 Wine 中安装和运行 Windows 应用程序时有很多不确定因素,在使用开放源代码的 Wine 时迟早会停下来进行调试。
Wine 不能做什么
不幸的是,很多用户发现 Wine 难于使用。诚然,在 Linux 上使用类似于 MS Office 这样的应用程序可能是困难的;在这里我们来看一些原因,为什么确实是这样。在开始之前,我们应该指出,CodeWeavers 提供的商用 Wine 已经解决了大部分此类问题(参阅 参考资料 以获得链接)。假以时日,这些问题将可能在开放源代码的 Wine 中同样得到解决。

使用命令行
与大部分 Linux 中的应用程序一样,Wine 必须在命令行中安装。用户必须回到命令行中来在 Wine 下运行应用程序。例如,要运行Internet Explorer,用户通常需要在 shell 中输入 wine IEXPLORE.EXE。尽管经验丰富的用户喜欢这样做,但初学者会发现这比较困难,而且不太可能懂得起别名等快捷方式。
配置
CDROM 和驱动器映射等工作必须手工完成。这对初学者来说也是个问题。
取消对隐藏文件的隐藏
如果挂载 CDROM 时没有使用专门的 unhide 选项,那么安装 CD 上的一些文件可能会无法找到,从而导致安装失败。
调整配置
Wine 安装很少能直接使用(对它来说也就是从 tarfile 解开)。通常需要进行全面的调整;例如,一个程序的安装可能与您在配置文件中设置的 Windows 版本不相容;而修改那个版本又可能会影响一些已安装的应用程序。对很多 DLL 来说也是如此。为此,Wine 提供了一个巧妙的修复,让您可以设置特定于应用程序的属性。不过,一般的用户可能不会像我们一样满意。
额外的安装步骤
大部分应用程序的安装过程都不是标准的。例如,当我们安装 Internet Explorer 6 时,必须跳过一些步骤,比如 DCOM98 的定位与安装。对用户来说,这类事情可能是最大的障碍。
注意,这些并不是病症,而是举例说明了是哪些种类的事情导致对一般用户来说 Wine 看起来复杂而且困难。

更多 Wine 所不能做的
看完 Wine 的可用性问题后,现在让我们来总结在尝试使用 Wine 时一些常见的技术问题。

缺少 DLL
这可能是最常见的问题:很多安装由于缺少 DLL 而失败。人们应该熟练使用调试器来决定下一步如何去做。(稍后将深入讨论调试器)。
DLL 版本问题
一些安装程序在开始之前会检查现有的系统 DLL。Wine 解决这一问题的方法是,创建假 DLL 以满足安装程序的需要。不过,有一些安装程序会更进一步并深入检查 DLL 以获得它们的版本。这对假的 DLL 来说要求太高了,会导致安装失败。
DLL 加载次序
Wine 有对很多 Windows DLL 的实现,而且如果可用,它还可以使用原始的 Windows DLL。如果两种 DLL 都可用,好像显然应该选择总是使用 Windows 自己的 DLL,但实际上 Windows DLL 有时会包含不能被满足的依赖。要确定是更应该使用 Wine 的 DLL 还是应该使用本机 DLL,惟一的方法是,基于各个应用程序反复进行试验。
DLL 中的函数
当一个 Wine DLL 没有实现 Windows 中相应的 DLL 的全部功能时,应用程序可能会遭遇函数调用失败。由于 DLL 是动态加载的,可能没有办法事先知道会发生这样的事情。这是一个复杂的问题,有一些可做的工作,但最终实际来说它只是取决于应用程序的代码如何编写。
有一些因素会减轻这些问题。一方面,您将会一个一个地遇到这些问题,而不是一次遇到全部问题,这样处理起来要容易些。另外,您遇到的那些问题可能其他人曾遇到过并已经解决(而且解决方案已经公布出来)。Wine 用户组非常活跃,会提供许多帮助,每周一次的 Wine 时事通讯(参阅 参考资料)是极好的信息资源。

Wine 中还没有实现的 Win32 API
在 Wine 中,很多 Win32 API5 的函数是残缺不全的。最常见的原因是,相当多的 Win32 API 并没有被文档化。这就意味着一个特别的应用程序可能会调用某个函数,而完全没有关于此函数的可用资料。例如,我们在运行一个简单的 RPC 程序时发现了 RtlAnsiCharToUnicodeChar 这个函数。在 MSDN 上的搜索结果显示没有关于这个函数的资料,而且没有关于所有 RtlXXXX 类别函数的资料。因此,如果它们在 Wine 中的实现对一些应用程序来说至关重要,那么人们可能只有去猜测它们的行为了。

商用的 Wine
CodeWeavers 为 Wine 做了很多工作。多年来他们为 Wine 项目贡献了很多代码,他们出售商用版本的 Wine,其改进的用户界面解决了我们在本文中提出的很多问题。

例如,CodeWeavers 的二进制安装文件会在用户的开始菜单中添加一个 Crossover 条目;安装后,绝大多数 Crossover 相关的任务可以通过开始菜单条目来完成。在开放源代码的 Wine 中,所有这些任务 —— 安装、程序执行以及其他任务 —— 都必须在命令行中执行。此外,CodeWeavers Crossover 将会尝试去为新安装的软件包配置一个合理的默认值,如果需要的话会在安装完成后自动重新引导,并以其他形式减轻用户的负担。

CodeWeavers 使用开放源代码的 Wine 作为他们的 Crossover 产品的基础,所以,除非遇到上面我们讨论过的可用性问题,否则,在其中一个产品中能运行的应用程序,在另一个产品中同样也能运行。要深入了解 CodeWeavers 和 Crossover,以及要获得可以在 Wine 上运行的应用程序列表,请参阅在 参考资料 中列出的链接。

应用程序安装分析
由于 Wine 支持 Windows 可执行文件的运行,您会想当然地认为可以使用程序的安装程序从头安装,这是正常的。不幸的是,几乎不会那样。对 Windows 安装过程的理解将有助于解释原因。下面非常简单地描述了 Windows 安装程序通常要做的事情的(不必是这个次序):

将文件拷贝到一些目录。
注册 DLL,并将其他应用程序相关的信息添加到注册表中。
在安装过程中,有时会检查 DLL 的版本(如前面所提到的)。
修改 INI 和一些其他配置文件。
因而,Wine 会遇到两种类型的问题,必须按顺序解决:

安装过程中的问题。
执行过程中的问题。
在调试 Wine 安装的过程中,如果您同时有一个可用的 Windows 系统的话会非常有帮助。那样,您可以对 Windows 安装使用追踪器以确切断定哪些文件被拷贝,哪些注册表条目被添加或更新,哪个 INI 文件被修改,等等。记录安装步骤的顺序并与失败的 Wine 安装相比较,是故障诊断的好向导。

在 Linux 上安装 Wine
如果您正在使用 Red Hat 或者 SUSE,最简单的方法是从 CD 安装 Wine。不过,如果那些 CD 比较老,您可能需要通过源文件安装,因为 Wine 项目经常更新。如果通过源文件安装,您会发现 Wine 用户指南(参阅 参考资料 以获得链接)是一份价值无法估量的资料。简化的安装过程如下:

解开源文件后,切换到 tools 目录下以用户身份运行 ./tools/wineinstall。
在 tools 目录下运行 winecheck 脚本来检查安装。您可能不会获得 100% 的成功,但只要没有关键问题就行。
Wine 的所有配置都保存在 ~/.wine/config 文件中。这个文件很容易理解:它描述了您希望将 Linux 文件系统的哪部分看作是 Windows C 驱动器,以及 DLL 的加载次序等其他的细节。
您应该可以快速进行了。例如,要安装 WinZip 8.1,您可以下载安装程序并在命令行中运行 wine winzip81.exe。

快速浏览一下图 2 可以了解很多内容:您可以看到 WinZip 在运行,它的文件浏览器组件显示出熟悉的 Windows 驱动器 C、软盘驱动器 A、一个 CD-ROM M 以及另外的 Z 驱动器。您可以猜到,所有这些都映射在我们上面提到的 ~/.wine/config 文件中。下面是文件中与图 2 所示驱动器有关的片断:

清单 1. Wine 的配置文件


[Drive A]
"Path" = "/mnt/floppy"
"Type" = "floppy"
"Label" = "FLOPPY1"
"Device" = "auto"

[Drive C]
"Path" = "/home/aditya/aug14/3/c"
"Type" = "hd"
"Label" = "fake_windows"
"Filesystem" = "win2k"
"Codepage" = "0"

[Drive Z]
"Path"="/home/aditya/downloads/wine/"
"Type" = "hd"
"Label" = "wine src"
"Filesystem" = "win95"

[Drive M]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Label" = "CD-ROM1"
"Filesystem" = "win95"
"Device" = "auto"


从这里您可以看到,图 2 中的 M 驱动器实际上是 /mnt/cdrom;C 驱动器是 /home/aditya/aug14/3/c;等等。

图 2. WinZip 和 Windows 驱动器

Windows 应用程序移植到 Linux 的一个例子
技术上讲,使 Windows 可执行文件在 Wine 中运行并不是移植,但是经常被认为是移植。这也是测试一个应用程序是否适合使用 Winelib 进行移植的好办法。要获得关于使用 Wine Winelib 库编译来移植源代码的资料,请参阅 参考资料 中关于 Winelib 用户指南的链接。

我们已经整理了一个非常简单的应用程序,来说明 Windows 程序如何在 Wine 中运行。程序创建了一个窗口;从一个 DLL 中加载了两个函数,有一些对话框。我们将继续使用非常简单的例子;作为实际应用中的例子,我们非常鼓励您用 MS Office 等大型应用程序进行同样的尝试。

同时,这个例子可以通过让您体验代码的运行来入门。

运行代码
示例 DLL 的源代码在 DLLCode 目录中,使用 DLL 的源代码在 callDll 目录中。要运行只需要将两者(DLL 文件和可执行文件)存放于同一目录下,并运行 callDll.exe。winetests 文件夹中的 README.TXT 文件描述了如何在 Linux 上 Wine 中执行那个二进制程序。

如果您愿意,可以随意打开项目文件并进行修改。

DLLCode 项目正确编译后,您可以在 Debug 文件夹中看到 DLLSample.dll 文件。这个文件是 callDll 项目所需要的。为了您的方便,DLLSample.dll 已经存放于 callDll 中正确的位置。您可以回顾图 1 中举例说明的 callDll 中产生的可执行文件的依赖;您可以使用 Dependency Walker 来查看其他程序的依赖(参阅 参考资料)。

比较
下面是对运行于 Windows XP 上的和运行于 Red Hat 的 GNOME 中的消息框(Message Box)视觉上的对比:

图 3. Windows XP 中的消息框

图 4. GNOME 中的消息框

对应于此的 C 代码(callDll.cpp 中第 60 行):

MessageBox(NULL, "Wine test ending...", "", MB_OK);

这提出了一些有趣的观察:

最明显的观察之一是,双方都支持消息框的使用;这是将 Windows 调用有可能映射为 Linux 中相应部分的因素之一。如果您在 Wine 源代码中搜索 MessageBox,您可以找到说明文件,文件中详细说明了哪些函数已经被实现,哪些被去除掉。
大小、字体、颜色和标题栏以及其他可视元素继承自底层操作系统设置的默认值。
从本文中所包括的追踪文件中,您可以看到这个函数是在 user32.dll 中实现的。如果您在文件中搜索字符串“Wine test ending”,您将更深入地理解到,当您在做一些与在消息框中显示字符串同样简单的事情时,幕后发生了多少事情。
既然我们已经看过了一个 Win32 函数,让我们来看一下,当 simpleDLL.dll 中实现的我们自己的函数之一被调用时,幕后发生了什么。我们将展示追踪记录中的片断来说明何时 simpleDll.dll 被加载,哪些函数被导出,在哪一点 getTitle() 函数被调用(按 README 文件中的步骤生成完全的追踪记录):

清单 2. 解析出我们的 DLL 的路径并检查 DLL 是否存在


0009:trace:module:MODULE_GetLoadOrder looking for
C:\documents\article-sample\simpleDLL.dll


清单 3. 这一行展示我们的 DLL 所导出的函数


Module name is simpleDLL.dll, 3 functions, 3 names

Ord    RVA     Addr   Name
   1 0000100a 0x1000100a  add
   2 0000100f 0x1000100f  getSize
   3 00001014 0x10001014  getTitle


清单 4. 这里展示了 getTitle 被调用的位置


0009:CALL simpleDLL.getTitle(<unknown, check return>(0x40580000,00000002,00000040):
returning 405b7210
) ret=004010d4
0009:RET  simpleDLL.getTitle() retval=1002901c ret=004010d4


分析一个更大的应用程序或多或少与此相似,不过您当然会得到多得多的细节,会遇到没有被实现的函数,等等。故障诊断通常大概是提供缺少的 DLL 和调整配置;偶尔,您将需要去实现或修复一个函数。

结束语
如果您正在寻找将现有的 Windows 应用程序转移到 Linux 的方法,开放源代码的 Wine 和来自 CodeWeavers 的商用产品都是极好的选择。应用程序可以运行于 Wine 之上,或者使用 Winelib 工具包进行移植。

Wine 还为那些希望介入开放源代码软件的人们提供了一个独一无二的机会。从特别困难的到适合初学者的,有大量的各种复杂程度的项目——而且 Wine 社区非常活跃并提供非常多的支持。

参考资料

下载本文中演示的 示例应用程序。
自 Wine 下载页 获得 Wine 的二进制文件和源代码,通过 Wine 的官方 Web 站点 WineHQ 深入了解 Wine 及其 历史。
Wine 用户指南 将帮您起步。Chapter 7. Troubleshooting / Reporting bugs 中包括很多指向有用信息资料的链接,比如 Frank's Corner for tips and tricks;可以到 Wine Google Group 寻求帮助,到 dll-files.com 寻找缺少的 DLL —— 还有更多。
依赖浏览器和追踪工具将有力地帮助您让 Windows 二进制程序平滑到运行于 Wine 之上。Microsoft Platform SDK 中包括depends.exe Dependency Walker;在 Sysinternals 可以找到类似的工具;同时 Epsilon Squared 提供了一个非常好的 Windows 安装追踪工具。
DLL 不只会在 Wine 中引发问题;对 Windows 用户来说它们也是著名的问题源头。MSDN 文章 The End of DLL Hell 解释了原因。
Windows API 文档的缺乏是美国政府对 Microsoft 的反拖拉斯诉讼的内容。自由软件基金会(Free Software Foundation)首席法律顾问 Eben Moglen 在 Free Software Matters: Shaking Up The Microsoft Settlement 中讨论了 API 和解决条款。
除了 Wine 用户指南以外,WineHQ 文档页 上还列出了其他很多有用的文章。
在 WineHQ 查找现在的和以前的 Wine Weekly News 的话题。
Winelib 用户指南 涵盖了使用 Winelib 将您的应用程序移植到 Linux 和 Unix 所需要知道的所有内容。
Wine 应用程序数据库 列出了那些可以通过 Wine 运行于 Linux 上的 Windows 应用程序,并有很多它们的截图。
Francois Gouget 有很多 关于 Wine 的资料,包括如何做出贡献;为什么 Wine 重要;有趣的 Wine API 统计 以及更多资料!
CodeWeavers 的 Crossover 产品 基于 Wine。
WineX 也是构建于 Wine 源代码之上。WineX 的目标是为 DirectX 实现一个 Linux 兼容层,因此其名字中包含字母 X。
Wine 不是一个仿真器 —— 但是有很多可用的仿真器可以让您在 Linux 或 Unix 上运行 Windows 二进制程序。其中包括 VMWare 和 Win4Lin,这两个都是私有的;还有开放源代码的 Bochs 项目。使用这些程序,Windows 的一个拷贝可以运行于仿真器之上,这个仿真器会确保 Windows OS 所需要的硬件条件都得到满足。
用于交叉生成应用程序的 Xmingwin(developerWorks, 2003 年)让您只需要重新编译就可以将 Linux 应用程序移植到 Windows。
WebSphere Homepage Builder for Linux 需要 Keio 大学定制的 Wine 版本。
在 developerWorks Linux 专区 可以找到更多为 Linux 开发者准备的参考资料。
在 Developer Bookstore 的 Linux 区可以找到大量 关于 Linux 的书籍。
关于作者
Aditya Narayan 拥有坎普尔(Kanpur)印度科技大学(IIT)物理学理学学士学位和硕士学位,并创建了 QCD。他精通开放源代码软件开发,专于 Windows 和 Linux 内部构件、WebSphere 和 J2EE、.NET 等企业平台。Aditya 大部分时间在纽约度过。可以通过 aditya_pda@hotmail.com 与他联系。


Saugata Ghosh 是印度 QCD 的技术总监,为 QCD 管理一些项目。他是一位 Linux 专家,高度信仰开放源代码理论。除了其他事情外,他帮助将 Gnome 国际化为他的母语(孟加拉语)。Saugata 居住在加尔各答(Calcutta),他专于 Wine、Samba 和 J2EE。可以通过 qcd_saugata@hotmail.com 与 Saugata 联系。


Irina Singh 是 IBM 的一名软件架构师,她专注于各种平台上的 WebSphere 体系结构和实现,同时也是一位 Linux 狂热者。她有八年的软件应用程序架构和设计方面的经验,拥有坎普尔印度科技大学电子工程学(EE)理学学士学位。可以通过 irinas@us.ibm.com 与 Irina 联系。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:09 | 显示全部楼层

Linux基础系列讲座

Linux基础系列讲座  

前言

Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并可以免费使用的操作系统。

我们并不能使同学们通过这次系列讲座成为一个UNIX类操作系统的高手,这次系列讲座的目的就是在同学们中间普及Linux基础知识,为今后我们更加接近的了解Linux做一个好的开端。

第一讲 Linux基础

在这一讲中,我们主要是了解一下Linux的概况,以及对Linux有一个初步的感性认识。

一.什么是Linux?

Linux是一个以Intel系列CPU(CYRIX,AMD的CPU也可以)为硬件平台,完全免费的UNIX兼容系统,完全适用于个人的PC。它本身就是一个完整的32位的多用户多任务操作系统,因此不需要先安装DOS或其他的操作系统(MS Windows, OS2, MINIX..)就可以进行直接的安装。

Linux的最早起源是在1991年10月5日由一位芬兰的大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了Linux核心程序的0.02版开始的,但其后的发展却几乎都是由互联网上的Linux社团(Linux Community)互通交流而完成的。Linux不属于任何一家公司或个人,任何人都可以免费取得甚至修改它的源代码(source code)。Linux上的大部分软件都是由GNU倡导发展起来的,所以软件通常都会在附着GNU Public License(GPL)的情况下被自由传播。GPL是一种可以使你免费获得自由软件的许可证,因此Linux使用者的使用活动基本不受限制(只要你不将它用于商业目的),而不必像使用微软产品是那样,需要为购满许可证付出高价还要受到系统安装数量的限制。我在讲义的最后面附有GPL的非官方中文译稿。

目前Linux中国的发行版本(Linux Distribution)主要有Red Hat(红帽子), Slackware, Caldera, Debian, Red Flag(红旗), Blue Point(蓝点), Xteam Linux(冲浪), Happy Linux(幸福Linux), Xlinux等若干种,我推荐同学们使用的发行版本是Red Hat(事实标准)和Xlinux(安装最容易)。

二.安装Linux的好处?

Linux的核心具有Windows无法比拟的稳定性和高效率,在不使用X Windows的情况下,它占用系统资源较少,可以使一台Intel486摇身一变成为高效工作站。对于想要学习UNIX的用户来说,使他们熟悉UNIX操作环境,通往“骨灰级”高手境界的一大捷径。最重要的是,Linux上有公认的C语言世界最好的编译器gcc,如果你想得到一个效率更高的开发环境(并不一定是最友好的,但一定是最强大的),我建议你一定要好好的熟悉一下Linux。

三.如何得到Linux?

据我所知,大多数的Linux发行版本(Linux distribution)和核心(Kernel)都是可以从网上下载的,但是我不推荐易用这种方法得到Linux,因为仅仅核心就有几十个Mbit的数据量,而一个完整的发行版本大概都是1Gbit左右的数据量,你自己可以估计一下得用多少时间来下载它们?

我建议你最好去软件商店买光盘来,因为Linux的产品光盘是非常便宜的,连带许可证GPL在内你大概支付50元人民币就可以,而具有同样功能的Windows NT 4.0你至少得付出17000元人民币(有一点需要声明:在你购买光盘时GPL许可证你是不会肉眼看到的)。直接到商店去买,可以省去你很多麻烦,因为从网上下载的Linux有很多它还是要求你有光盘刻录工具将安装文件刻到光盘上。

四.如何得到Linux的最新消息?

关于Linux的站点现在到处都是,我这里向大家推荐的是一个关于Linux核心最新消息的一个网站,你可以得到核心(Kernel)发展情况的最新信息。网址如下:

http://www.kernel.org

另外还有一个非常著名的讨论组,你也可以去看看:

http://www.linuxforum.net

另外还有一个我常去的讨论组,这个讨论组是有高手专门维护的,而且回应贴子的速度很快:

http://www.coventive.com.cn/club/default.htm

在我这份讲义快写完的时候,又有一个非常好的自由软件团体出现了,那就是AKA,大家可以到他们的网页上去看看,里面有许多很实用的信息:

http://www.aka.org.cn

五.Linux操作系统上有什么应用?

Linux上有丰富的的应用软件,在这里我给大家做一个简单的介绍,具体它们是什么样子我会在讲座上为大家一一演示。

文本处理方面(控制台界面,X Window界面在后面介绍)

l         vi

最令UNIX类操作系统初学者裹足不前的editor,然而只要你习惯于操作,你会觉得它比任何的editor都好用,且功能强大。

l         pico

一种风格很像Microsoft DOS的EDIT的一种文本编辑器。

中文化方面

XCIN+Crxvt

缺省的Linux系统是不支持显示中文的,虽然现在国内涌现出许多著名的Linux汉化厂商,但是一些著名的Linux distribution如Red Hat、Debian、Caldera仍然不支持中文的输入和输出。这套汉化工具组合在控制台(console)方式和X Window方式下都可以显示和输入汉字信息。

l         Cxterm

可以很容易的自行设置输入法,或者修改现有的输入法表格。

视窗界面(window manager)方面

l         KDE

这是X Window System使用率最高的Window Manager。

l         Fvwm

公认的最为好用的Window Manager之一。

l         Fvwm95

拥有和Microsoft Win95 同样界面的Window Manager。

l         Afterstep

公认的最好看的Window Manager,但号内存也很大。

l         Enlightenment

界面最华丽的Window Manager, Win95和它相比简直就是nothing,但是号内存太大,有点华而不实。

l         Icewin

又一个极富个性的Window Manager。

视窗应用软件方面

l         WWW Browser

Netscape公司的navigator3.x和communicator4.x版可用,使用方法和MS Windows上一样。

l         图像处理

GIMP是类似于Photoshop的绘图软件,号称是Linux上最强的绘图软件。

l         看图工具

l         MTV

这是一个可以播放VCD的软件,但是它是共享软件(Shareware),不是免费软件,我们也得不到它的源代码。

l         Star Office

这是一套著名的办公软件,我个人认为它无论在界面上还是在功能上都强于Microsoft Office产品。唯一的缺憾是他不支持汉字,无论GB还是BIG5。

l         Word Perfect

这是一个非常精彩的字处理软件,功能类似于Microsoft Word。

l         文杰字处理系统

这是一套由韩国人开发的字处理系统,功能强大,有专门的中文版推出,类似于Microsoft Word。

编译环境

l         gcc

公认的C语言世界中功能最为强大的编译器,但是界面不是很友好。

l         除此之外还有FORTRAN、Pascal、GNU make、GNU debugger、GNU LISP、GNU PERL、TCL。

这里因为本人对这些编译工具都不熟悉,因此不多介绍。

MS Windows的模拟环境

l         WINE

可以使绝大多数的16位MS Window程序运行在这个模拟环境中。但是不支持32位的程序。

六.在那里可以找到讨论区?

大家最熟悉的是北邮的BBS: 202.204.7.235 port:23

另外还有如下著名讨论区:

七.安装过程

这是非常重要的一部分,希望大家仔细了解本部分内容。

就我个人认为,对于初学者来说,Linux的安装过程是相当难的,新手往往会遇到系统屡装不成的情况。遇到这种事情,是非常痛苦的,但是几乎每个新手又都会遇到,因此我觉得安装过程应当仔细的说明一下。但是由于篇幅有限,我不见这个这个问题在讲义的正文中陈述,而是把它放在附文2中仔细说明。希望没有安装过Linux的同学们将这篇文章看一看。我想在上课的时候我会给大家演示一遍安装的过程。

第二讲 Linux基础进阶

经过上一节课的探讨,我想同学们应该对Linux有了一个初步的感性认识,但我们的认识还只是处在一个尚需进步的表层上。通过这一节的学习,同学们会对Linux的体系结构,它的基本操作,基本功能有一个更进一步的认识。

一.Linux的文件系统结构

    Linux的文件系统和MS-Windows的文件系统有很大的不同,对于微软视窗系统的文件结构我在这里不再多说,我们主要了结一下linux的文件系统结构.

    linux只有一个文件树,整个文件系统是以一个树根"/"为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上,包括硬盘,软盘,光驱,调制解调器等,这和以"驱动器盘符为基础的MS-Windows系统是大不相同的.

    Linux的文件结构体现了这个操作系统简洁清析的设,常我们能够接触到的linux发行版本的根目录大都是以下结构:

    /bin   /etc   /lost+found   /sbin   /var   /boot  /root

    /home    /mnt   /tmp   /dev   /lib   /proc   /usr

    现在我将这些目录给大家做一个简要的介绍:

l         /bin和/sbin

    使用和维护UNIX和Linux系统的大部分基本程序都包含在/bin和/sbin里,这两个目录的名气之所以包含bin,是因为可执行的程序都是二进制文件(binary files).

    /bin目录通常用来存放用户最常用的基本程序,如:

    login

    Shells

    文件操作实用程序

    系统实用程序

    压缩工具

    /sbin目录通常存放基本的系统和系统维护程序,如:

    fsck    fdisk    mkfs    shutdown    lilo    init

    存放在这两个目录中的程序的主要区别是:/sbin中的程序只能由root(管理员)来执行.

l         /etc

    这个目录一般用来存放程序所需的整个文件系统的配置文件,其中的一些重要文件如下:

    passwd    shadow    fstab    hosts    motd    profile    shells    services

lilo.conf

l         /lost+found

这个目录专门是用来放那些在系统非正常菪机后重新启动系统时,不知道改网哪里恢复的“流浪”文件的。

l         /boot

这个目录下面存放着和系统启动有关系的各种文件,包括系统的引导程序和系统核心部分。

l         /root

这是系统管理员(root)的主目录。

l         /home

    系统中所有用户的主目录都存放在/home中,它包含实际用户(人)的主目录和其他用户的主目录.Linux同UNIX的不同之处是,Linux的root用户的主目录通常是在/root或/home/root,而UNIX通常是在/。

l         /mnt

    按照约定,像CD-ROM,软盘,Zip盘,或者Jaz这样的可以动介质都应该安装在/mnt目录下,/mnt目录通常包含一些子目录,每个子目录是某种特定设备类型的一个安装点。例如:

    /cdrom     /floppy     /zip     /win  ....

    如果我们要使用这些特定设备,我们需要用mount命令从/dev目录中将外部设备挂接过来。在这里大家可能看到了有一个win的目录,这是我的机子上面做的一个通向windows文件系统的挂接点,这样我通过访问这个目录就可以访问到我在windows下面的文件了。但如果你的windows文件系统是NTFS格式,那么这个办法就不行了。

l         /tmp和/var

    这两个目录用来存放临时文件和经常变动的文件。

l         /dev

    这是一个非常重要的目录,它存放着各种外部设备的镜像文件,其中有一些内容我们是要牢牢记住的。例如第一个软盘驱动器的名字是fd0;第一个硬盘的名字是hda,硬盘中的第一个分区是hda1,第二个分区是hda2;第一个光盘驱动器的名字是hdc;此外,还用modem和其他外设的名字,在这么多的名字中,我们只需要记住最最常用的那几个外设就可以了。

l         /usr

按照约定,这个目录用来存放与系统的用户直接相关的程序或文件,这里面有每一个系统用户的主目录,就是相对于他们的小型“/”。

l         /proc

这个目录下面的内容是当前在系统中运行的进程的虚拟镜像,我们在这里可以看到由当前运行的进程号组成的一些目录,还有一个记录当前内存内容的kernel文件。

    就个人经验,我认为这些目录以及在它们下面应该存储什么内容,我们都应当很熟练的记下来,这对于我们进一步的使用系统是很有帮助的。

二.Linux的文件类型

    本来我是想把基本操作命令放在这里介绍一下,但是这些命令中又不少是涉及到文件类型的,所以我就只好先介绍一下文件类型了。

    Linux的文件类型大致可分为五类,而且它支持长文件名,不论是文件还是目录名,最长可以达到256个字节。如果你能够用128个汉字写一片小作文,那你也可以用它来做某个文件的文件名(当然这里面不能有不合规定的命名字符存在)。

1.  一般性文件

    一般性文件,例如纯文本文件mtv-0.0b4.README,设置文件lilo.conf,记录文件ftp.log等等都是。一般类型的文件在控制台的显示下都没有颜色,系统默认的是白色。

2.  目录

    至于目录是什么意思我就不解释了,我的任务是要告诉大家,你可以用cd+目录名进入到这个目录中去,而这个目录在控制台下显示的颜色是蓝色的,非常容易辨认。如果你用ls -l来观看它们,会发现它们的文件属性(共10个字符)的一个字符是d,这表明它是一个目录,而不是其它的东西。

三.Linux基本操作命令

    首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。

有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

l         ls

    这个命令就相当于dos下的dir命令一样,肯定是我第一个就要介绍的,这也是Linux控制台命令中最为重要几个命令之一。ls最常用的参数有三个: -a -l -F。

    ls -a

    Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。

    ls -l(这个参数是字母L的小写,不是数字1)

    这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的):

    位置1        2         3        4            5        6                7

    文件属性     文件数    拥有者   所属的group  文件大小 建档日期         文件名

    drwx------   2         Guest    users        1024     Nov 21 21:05     Mail

    -rwx--x--x   1         root     root         89080    Nov  7 22:41     tar*

    -rwxr-xr-x   1         root     bin          5013     Aug 15  9:32     uname*

    lrwxrwxrwx   1         root     root         4        Nov 24  19:30    zcat->gzip

    -rwxr-xr-x   1         root     bin          308364   Nov 29   7:43    zsh*

-rwsr-x---   1         root     bin          9853     Aug 15   5:46    su*

    下面,我为大家解释一下这些显示内容的意义。

    第一个栏位,表示文件的属性。

    Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):

    rwx(Owner)r-x(Group)r-x(Other)

这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。

第二个栏位,表示文件个数。

如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。

第三个栏位,表示该文件或目录的拥有者。

若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。

第四个栏位,表示所属的组(group)。

每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。

第五栏位,表示文件大小。

文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。

第六个栏位,表示创建日期。

以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。

第七个栏位,表示文件名。

我们可以用ls –a显示隐藏的文件名。

Ls –F(注意,是大写的F)

使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。

l         cd命令

这个命令是用来进出目录的,它的使用方法和在dos下没什么两样,所以我觉得没什么可说的,但有两点我补充一下。

首先,和dos不同的是Linux的目录对大小写是敏感的,如果大小写没拼对,你的cd操作是成功不了的。

其次,cd如果直接输入,cd后面不加任何东西,会回到使用者自己的Home Directory。假设如果是root,那就是回到/root.这个功能同cd ~是一样的。

l         mkdir,rmdir命令

mkdir命令用来建立新的目录,rmdir用来删除以建立的目录,这两个指令的功能不再多加介绍,他们同dos下的md,rd功能和用法都是基本一样的。

l         cp命令

这个命令相当于dos下面的copy命令,具体用法是:

cp –r 源文件(source)  目的文件(target)

参数r是指连同元文件中的子目录一同拷贝。熟悉dos的读者用起这个命令来会觉得更方便,毕竟比在dos下面要少敲两下键盘。

l         rm命令

这个命令是用来删除文件的,和dos下面的rm(删除一个空目录)是有区别的,大家千万要注意。Rm命令常用的参数有三个: -i,-r,-f。

比如我现在要删除一个名字为text的一个文件:

rm –i test

系统会询问我们:“rm:remove ‘test’?y”,敲了回车以后,这个文件才会真的被删除。之所以要这样做,是因为linux不象dos那样有undelete的命令,或者是可以用pctool等工具将删除过的文件救回来,linux中删除过的文件是救不回来的,所以使用这个参数在删除前让你再确定一遍,是很有必要的。

rm –r 目录名

这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。

rm –f 文件名(目录名)

这个操作可以进行强制删除。

l         mv命令

这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名。它的用法同dos下面的move基本相同,这里不再多讲。当使用该命令来移动目录时,他会连同该目录下面的子目录也一同移走。另外因为linux下面没有rename的命令,所以如果你想给一个文件或目录重命名时可以用以下方法:

mv 原文件(目录)名  新的文件(目录)名

l         du,df命令

du命令可以显示目前的目录所占的磁盘空间,df命令可以显示目前磁盘剩余的磁盘空间。

如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况(这个功能可是dos没有的呦)。不过我一般不喜欢用du,因为它给出的信息是在是太多了,我看不过来,而df这个命令我是最常用的,因为磁盘上还剩多少空间对我来说是很重要的。

l         cat命令

这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写,类似于dos下面的type命令。它的用法如下:

cat text                   显示text这个文件

cat file1 file2            依顺序显示file1,file2的内容

cat file1 file2>file3      把file1,file2的内容结合起来,再“重定向(>)”到file3文件中。

“〉”是一个非常有趣的符号,是往右重定向的意思,就是把左边的结果当成是输入,然后输入到file3这个文件中。这里要注意一点是file3是在重定向以前还未存在的文件,如果file3是已经存在的文件,那么它本身的内容被覆盖,而变成file1+file2的内容。

如果〉左边没有文件的名称,而右边有文件名,例如:

                   cat >file1

结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容。这个过程和dos里面的copy con file1的结果是一样的。

另外,如果你使用如下的指令:

                   cat file1>>file2

这将变成将file1的文件内容“附加”到file2的文件后面,而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。

l         more,less命令

这是两个显示一般文本文件的指令。

如果一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就可以试试more和less两个指令。More指令可以使超过一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示。而less除了有more的功能以外,还可以用方向键往上或网下的滚动文件,所以你随意浏览,阅读文章时,less是个非常好的选择。

l         clear命令

这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的clr具有相同的功能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。

l         pwd命令

这个命令的作用是显示用户当前的工作路径,这个命令不用多说,大家一试即知。

l         ln命令

这是linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:

                             ln –s 源文件  目标文件

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:

                             ln –s /bin/less  /usr/local/bin/less

                             -s 是代号(symbolic)的意思。

这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。

l         man命令

如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man。Man实际上就是察看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令。man是manual(手册)的缩写字,它的说明非常的详细,但是因为它都是英文,看起来非常的头痛。建议大家需要的时候再去看man,平常吗,记得一些基本用法就可以了。

l         logout命令

一看就知道了,这是退出系统的命令,我就不多说了。要强调的一点是,linux是多用户多进程的操作系统,因此如果你不用了,退出系统就可以了,关闭系统你就不用操心了,那是系统管理员的事情。但有一点切记,即便你是单机使用linux,logout以后也不能直接关机,因为这不是关机的命令。

四.基本的系统管理命令

系统管理基本上可以分为两种,一种是root(系统管理员)对linux的系统管理部分,root本身的职责就是负责整个linux系统的运行稳定,增加系统安全性,校验使用者的身份,新增使用者或删除恶意的使用者,并明确每一个在机器上的使用者权限等等。另一种就是每一个使用者(包括root)对自己文件的权限管理。因为linux是多用户多任务系统,每一个使用者都有可能将其工作的内容或是一些机密性的文件放在Linux工作站上,所以对每个文件或是目录的归属和使用权,都要有非常明确的规定。下面我就按管理员和一般用户分类来介绍基本的系统管理命令。

1.     管理员使用的系统管理指令

l         adduser命令

新增使用者账号的命令,如果你想新增一个叫做jack的用户,那么需在控制台下输入:

adduser jack

这样就增加了一个名字为jazk的用户,要注意这里对大小写是敏感的。另外,新增的用户是没有口令的,你还应当为用户设置口令或者是吩咐用户在第一次登录系统的时候为自己设置口令。

l         passwd命令

这个命令可以修改特定用户的口令,使用格式是:

passwd 用户名

这是,系统会提示你输入新密码,你输入第一遍后,还要输入第二遍进行确认。输入两遍相同的密码之后,系统就接受了新的密码。如果这个命令是一般用户来使用的话,那就只能改变它自己的密码。

l         find,whereis,locate命令

这三个命令都是用来查找文件的,使用格式是:

find  路径名称   -name  文件名  参数(我们这里就不讨论参数了)

whereis 文件名

locate  文件名

一般来说,find命令功能最为强大,但是对硬件的损耗也是最大的,当你使用find去查找你个文件时,你会发现硬盘等在不停的闪动,这就意味着你的硬盘可能会比别人的少用个三四年。当你使用whereis或locate去查找文件时,你会发现硬盘却是安安静静的,这是因为这两个命令是从系统的数据库中查找文件,而不是去拼命的读硬盘。所以,如果平常你只是想找一些笑文件的话,使用whereis或locate就可以了,如果你是要进行系统管理的工作,那么使用find再加上一些参数就可以满足你的要求了。

l         su命令

这个命令可以让普通用户变成具有管理员权限的超级用户(superuser),只要它知道知道管理员的密码就可以。多用户多任务系统的强调的重点之一就是系统的安全性,所以应避免直接使用root身份登录系统去做一些日常性的操作,因为时间一久root密码就有可能被知道而危害到系统安全。所以平常应避免用root身份登录,即使要管理系统,也请尽量使用su指令来临时管理系统,然后记住定期的更换root密码。

加入你现在是以一个普通用户的身份登录系统,现在你输入:

su

系统会要求你输入管理员的口令,当你输入正确的密码后,就可以获得全部的管理员权限,这是你就是超级用户(superuser)。但你执行完各种管理操作以后,只要输入logout就可以退回到原先的那个普通用户的状态。

l         shutdown,halt命令

这两个命令是用来关闭linux操作系统的。

在前面我说过,作为一个普通用户是不能够随便关闭系统的,因为虽然你用完了机器,可是这时候可能还有其它的用户正在使用系统。因此,关闭系统或者是重新启动系统的操作只有管理员才有权执行。另外linux系统在执行的时候会用部分的内存作缓存区,如果内存上的数据还没有写入硬盘,就把电源拔掉,内存就会丢失数据,如果这些数据是和系统本身有关的,那么会对系统造成极大的伤害。一般,我们建议在关机之前执行三次同步指令sync,可以用分号“;”来把指令合并在一起执行,如:

# sync;sync;sync

使用shutdown关闭系统的时候有以下几种格式:

shutdown           (系统内置2分钟关机,并传送一些消息给正在使用的user)

shutdown –h now    (下完这个指令,系统立刻关机)

shutdown –r now    (下完这个指令,系统立刻重新启动,相当于reboot)

shutdown –h 20:25  (系统会在今天的20:25关机)

shutdown –h +10    (系统会在十分钟后关机)

如果在关机之前,要传送信息给正在机器上的使用者,可以加“-q”的参数,则会输出系统内置的shutdown信息给使用者,通知他们离线。

halt命令就不用多说了,只要你输入halt,系统就会开始进入关闭过程,其效果和shutdown –h now是完全一样的,我每次关机的时候都是用halt。

l         reboot命令

一看这个词,就知道这个命令是用来重新启动系统的。

当你输入reboot后,你就会看到系统正在将一个一个的服务都关闭掉,然后再关闭文件系统和硬件,接着机器开始重新自检,重新引导,再次进入linux系统。

2.普通用户使用的系统管理指令

l         chown命令

这个命令的作用是改变文件的所有者。

如果你有一个文件名为classment.list的文件,所有权要给于另一个账号为golden的同学,则可用chown来实现这个操作,但是当你改变了文件的所有者以后,该文件虽然在你的Home目录下,可是你已经无任何修改或删除该文件的权限了,这一点同学们千万要注意。通常会用到这个指令的时机,应该是你想让linux机器上的某位使用者到你的Home下去用谋个文件是会用到。不过,泼出去的水就收不回来了,你用这个命令的时候可一定要想清楚呦。

l         chmod命令

这个命令用来改变目录或文件的属性,是linux中一个应当熟悉的命令。

对这个命令,使用的方法很多,鉴于篇幅的原因,我只例出其中我最常用的一种。前面讲过,一个文件用10个小格来记录文件的权限。前三个小格是拥有者(user)本身的权限,中间三个小格是和使用者同一组的成员(group)的权限,最后三个小格是表示其它使用者(other)的权限。现在我们用三位的2进制数来表示相应的三小格的权限,例如:

111  rwx       101  r-x     011 –wx    001 –x    100  r—

这样一来,我们就可以用三个十进制的数来表示一个文件属性位上的十个格,其中每一个十进制数大小等于代表每三格的那个三位的二进制数。例如,如果一个文件的属性是: rwxr—r--,那么我们就可以用744来代表它的权限属性;如果一个文件的属性是:rwxrwxr--,那它对应的三个十进制数就是774。这样一来我们就可以用这种简便的方法指定文件的属性了。例如,我想把一个文件test.list的属性设置为rwxr-x---,那么我只要执行:

chmod 750 test.list

就可以了,对于改变后的权限,你用ls –l就可以看到。

到这里,我们第二讲的内容就基本结束了,可以说,这一讲是比较无聊的,但它又是必不可少的。这里列出的仅仅是最最常用的控制台命令,要进一步的熟悉Linux操作系统,了解类UNIX操作系统的管理思想,我们还有很多要学习,有兴趣的同学可以参看其它的相关参考书籍。

第三讲 Linux下的网络服务,配置问题和常用工具

这一讲我们会接触到Linux下能够提供的一些典型的网络服务,大家会对这些服务有一个感性的认识,除此之外我们还会看到Linux下面一些非常重要的配置文件以及他们的用法。最后我们会看到Linux下面最常用的几个工具软件。

一.Linux下的网络服务

一般来说,各种操作系统在网络方面的性能比较是这样的顺序BSD>Linux>Win NT>Win 9X, 由此说来,Linux的网络功能仅次于UNIX,而强于Win NT和其它的视窗系列产品,对于Win2000我还不能评价太多,因为不是很熟。

Linux的网络功能除了基本的连线功能如telnet, ftp, rsh, login, finger等等以外,架设各种服务器的功能更把Linux网络功能发挥的淋漓尽致,下面我大概的为大家介绍一下Linux下的各种网络服务。

l         Mail Server

Email现在是网络上最重要的服务了,你可能没有用过FTP, BBS, INN,但是如果你连电子邮件都没有用过,那作为BUPT的一员,你得自己好好反省一下了。

现在又很多功能强大的mailserver供你选择,例如freemail.263.net, hotmail.com, freemail.sohu.com,等等,这些都是免费的。但这是从使用者角度来看,如果你是想为一个局域网内部提供一个交换电子邮件的服务,那它们对你来说可就是一笔巨款了,再说人家卖不卖给你还不好说呢。Linux下面最著名的mail server是Sendmail,它是一个负责监控和传送电子邮件的邮件代理程序,你使用它就可以在在一个小的局域网(例如宿舍网)里提供一个电子邮件服务,这是多么神奇的事情啊!使用Linux下面的MailServer最大的好处是性价比高,这些软件的功能强大,却又是完全免费的,我们完全不用去花几万元买一个功能有限还要按照人头收费的Exchange Server,或者是使用D版软件被别人扎脊梁骨。

l         Router和Gateway

如果你的计算机可以连接到外面的Internet上去,然而一些可以连接到你这台机器上的计算机却只能访问里面的局域网,那么你可以安装Router或Gateway的服务,这样别人就可以通过你的机器和外面的世界联系了。当然了,这么做的前提是你有一颗大公无私的信,要我就不行,我可舍不得把我的PIII的机器贡献给宿舍的网虫们。

l         Samba

在Windows横行的今天,Samba的出现对于Linux的茁壮成长是非常重要的,它大大拓宽了Linux的应用领域。Samba可以提供一种转换SMB(windows使用的一种信息格式)和NFS(Linux使用的一种信息格式)的服务,通过Samba, 运行Windows的工作站就可以同运行Linux的服务器之间进行通信,还可以 让网络上的使用者(包括Windows用户)共享一台打印机,这样Linux的服务器就可以运行在Windows的环境中了。

l         NFS Server

Linux还可以作为文件服务器,为网络上具有存取权限的Windows/Linux机器分享相同的文件系统,这样一来,不论是在Windows还是在Linux的网络中,Linux的文件服务器都能够发挥作用了。

l         Terminal Server

这种服务能够提供PPP/SLIP Dialup(包括multi-port,就是一台计算机连多个调制解调器上网),让一般的民用网络Moden使用者可通过Terminal Server与Internet连接起来。

l         BBS

在北邮如果你没有上过BBS(Bulletin Board System电子布告版)我会很吃惊的,202.112.101.44或者是202.204.7.235你至少应该去过一个吧?如果没有去过,那么赶快把这一课补上。关于BBS到底能做什么我就不多说了,我假定你已经知道了,现在网络上流行的免费BBS版本很多,著名的有Phoenix,Maple,Firebird,Pivot等等,这些都可以在Linux上使用。另外还有许多基于WWW的BBS,例如著名的跨平台的Motiff Community,可以非常稳定的在Linux下运行,这是“瘟都死”所不能比拟的。

l         WWW

在Linux下面也有功能强大的WWW服务器,你完全可以不必去使用又贵又不稳定的IIS。但是不可否认IIS
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:10 | 显示全部楼层

linux 输入法xsim安装方法

输入法xsim安装方法

希望此文能解决各位在安装xsim时遇上的问题

  从http://sourceforge.net/projects/xsim 可获得xsim,目前的稳定版本是0.3.9.4,强烈建议大家以root登录系统执行安装,这样可以避免一些莫名其妙的问题。

  首先请检查软件包是否安装完全。c++,db,db-devel是必需的,如果希望将状态窗口放在KDE的任务条上,系统中需要有kdelibs3-devel包。

  接下来检查locale,相信大家都是中文locale,如果你需要输入GBK汉字,让root用户也能使用xsim,或在英文环境中使用xsim,请修改locale配制文件,将对应内容修改如下:

  RC_LANG=”zh_CN.gbk”
  ROOT_USES_LANG=”yes”

  修改后重新登录使修改生效。好,现在正式进入安装进程。

  tar zxf xsim-0.3.9.4.tar.gz
  cd xsim-0.3.0.4
  ./configure --help *多看看选项,对你会有帮助的,比如你想安装xsim到其他目录./configure
  *默认cn-locale为gb2312,如果你的locale以改为gbk,加上选项--with-cn-locale=GBK
  *在KDE任务条上显示状态窗口,加上选项--enable-status-kde3
  *更改安装目录,如/opt,选项--prefix=/opt/xsim,默认目录是/usr/local/xsim

  make
  make install
  make install-data

  到此,xsim已经安装到你的机器中了,你可以打开控制台运行#xsim。


  看看是否出现“简”字,按ctrl space ,“简”字变绿,说明安装成功,否则,请重新启动机器试试。如果控制台提示找不到命令xsim,请在用户搜索路径中建立xsim的命令链接,这点至关重要,切记。

  如果你的机器只有自己用,运行chmod 666 /usr/local/xsim/dat/*,如果是多人使用,在$HOME下建立文件夹.xsim,cp /usr/local/xsim/etc/xsimrc和/usr/local/xsim/dat到.xsim中,修改.xsim/xsimrc,重新指定DICT_LOCAL的路径。

  为了让xsim在用户登录时自动运行,可以参照README.cn的方法,在$HOME/.kde/Autostart下建立文件链接xsim。但是有时这种方法会失败,为什么呢?关键在用户目录下的一个文件.xim,以前有个误解,有些用户认为装xsim必需先装xcin,其实不用。如果看见你的HOME目录中有.xim文件,就不要在./kde/Autostar中建立xsim的链接了,参照以下内容直接修改.xim中的相应内容:

  if type -p xcin > /dev/null 2>&1 ; then
  export XMODIFIERS="@im=xcin-$tmplang"
  LANG=$tmplang LC_ALL=$tmplang xcin &
  fi

  改为


  if type -p xsim > /dev/null 2>&1 ; then
  export XMODIFIERS=@im=XSIM
  xsim &
  fi

  改动后运行sh .xim,是不是一切都正常了?

  选字翻页健默认是< >,不适合我们在windows中的使用习惯,使用- +翻页参考我的xsimrc的设置:

  PREV_KEY "minus"
  NEXT_KEY "equal"
  在这个文件中还可以修改字体,我的字体设置为
  FONT_NAME "-adobe-helvetica-medium-r-*-*-14-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-*-*-14-*-*-*-*-*-gbk-0"

  **************************************************

  安装中的问题:我在configure时同时使用选项—with-cn-locale=GBK和—enable-status-kde3安装后导致启动xsim时KDE停止响应,当locale=GB2312时没有这种情况。如果你也遇上这种情况,只好去掉—enable-status-kde3重新编译安装了。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:10 | 显示全部楼层

Linux下硬盘分区的最佳方案

Linux下硬盘分区的最佳方案

在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有多大,还要考虑到以下几个问题:


  第一点也是最重要的一点,要知道当前安装LILO的版本,因为LILO2.21及早期版本对硬盘大小有限制,如果安装LILO到1023磁道以外即8G的空间以外,LILO就无法启动。 但一些BIOS较老的机器,LINUX仍然无法突破1024磁道的限制,因此这些BIOS无法认出大于1024的硬盘空间。


  还需要考虑的问题有:
  · 是否限制用户可使用的磁盘空间大小?
  · 在系统中需要安装哪些软件?
  · 交换分区需要多大?
  · 系统是否有多个硬盘?
  下面,我们按系统工作性质的不同对分区的划分提出了一些建议。当然,根据实际情况,在满足系统工作需求的前提下,下面的分区大小也可以灵活的变动。

  基本工作站的分区方案

  假设系统的硬盘大小是10G。
  /boot 20M
  Swap 128M
  /root 9.85G
  建立一个20M的/boot分区是为了避免将系统内核文件放到1024磁道以外,如果将/boot做为root分区的一个子目录,内核文件就会安装在root分区的任何地方,因为硬盘的大小超过了8G,所以在启动时就有可能出现问题。建议将交换分区的大小设置为内存的两倍,在这里我们假设系统的内存为64M。最后我们将硬盘的剩余空间全部分给了root分区。

  Red Hat Linux 6.2 及其早期版本上的基本服务器硬盘分区方案

  这里的服务器我们假设只提供几种通用的服务,如WWW服务及FTP服务等几种服务,通过telnet登录的用户数很少。假设其硬盘大小为25G。
  /boot 20M
  Swap 128M
  / 10G
  /home 13G
  /var 2G
 
  在硬盘的最前面创建20M大小的/boot分区,原因同上。 交换分区的大小也是128M,因为内存的大小为64M。
  / ,即root分区设为10G这么大是因为其中有一个/usr目录,这个目录可能会占用很多硬盘空间,特别是在安装了X Server,运行图形界面的应用程序的时候。
  /home分区是硬盘中最大的分区,这似乎与我们假设系统用户数不多有些矛盾。实际上在/home目录下确实没有几个用户目录,但在Red Hat6.2及更早的版本中,Apache服务器和wu-ftpd FTP服务器被放在了/home/httpd及/home/ftp目录中。所以这个分区这么大也是有原因的。
  最后,/var目录独自占用了一个分区,因为系统的所有日志都写到了/var/log目录下,这将会占用很大的硬盘空间。如果系统日志记录得非常详细,整个目录很快会被写满,导致系统工作呆滞。当然,可以通过系统日志后台守护程序syslogd来修改日志配置,避免发生这种情况。

  Red Hat 7及以上版本的基本服务器分区方案

  这种情况同前一个方案的情况相同,不同的是LINUX版本为Red Hat 7.0及其以上版本。
  /boot 20M
  Swap 128M
  / 10G
  /var 15G

  与RedHat6不同,在RedHat7中HTTP服务和FTP服务的目录现在位于 /var/www/和/var/ftp/,因此/var分区有15G之大也就不难理解了。

  多用户服务器分区方案

  在这种服务器系统中,同时有多个用户通过telnet, ssh, rlogin或其方式在远程访问系统。系统中有三个35G的硬盘驱动器,总共有105G的磁盘空间 。系统中用到了RAID 5技术做数据冗余。这种情况下,管理员必须为每个用户分配磁盘空间。 对RedHat 6.2及更早的版本,分区如下:
  Disk 1:

  /boot 20M
  / 4G
  /var 3GB
  /home 27.98G

  Disk 2:

  swap 20MB
  / 4GB
  /var 3GB
  /home 27.98GB

  Disk 3:

  swap 20MB
  / 4GB
  /var 3GB
  /home 27.98GB

  这样分区的原因:首先,Disk1上的20M /boot分区不属于任何RAID阵列,否则如果你将/boot放至RAID阵列中,以后就不能系统内核升级了。
  为了方便管理,在其它两个硬盘中建立了20M的交换分区。这种服务器一般配有1G以上的内存,因此交换分区的大小不成问题。如果增大交换分区,就会减少RAID分区空间,所以20M是足够的。RAID分区的分组如下:

  · 1-A, 2-A, and 3-A 一起组成一个8G的 RAID 5 驱动器,做为/根目录打开。
  · 1-B, 2-B, and 3-B 组成 6GB的 RAID 5 驱动器,做为 /var目录。
  · 1-C, 2-C, and 3-C 组成 55.96GB RAID 5 驱动器, 做为 /home.目录。
  这种分配方案总共有55.96G的空间分配给所有用户及Apache和FTP服务,在/var下用6G空间用做记录日志、邮件,这么大的空间是足够的。
  如果安装Red Hat7或以上版本,应给/var分区更大的空间,因为它同时还存放着WEB和FTP服务的两个目录。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:11 | 显示全部楼层

如何在Linux环境中使用USB存储器

如何在Linux环境中使用USB存储器

如何在Linux环境中使用USB接口的存储设备?这是各大电脑论坛上出现得比较多的一个问题,同此可见这也是摆在许多电脑玩家面前的一道难题。本文就为您提供一套完美的解决方案,通过下面的方法,您仅可以在Linux环境中方便地使用U盘、USB硬盘盒,而且还能将数码相机作为USB大容量存储器。这里就以Red Hat Linux 7.2为例,来一步一步地介绍如何在Linux环境中使用USB存储器。


  1.在X-Windows环境中打开“控制中心”,展开“信息→USB设备”控制台树,查看Linux是否已经正确识别您的USB存储器,如果没有看到USB设备信息,那么您就应该要检查USB端口是否已经在BIOS中打开,或USB存储器与电脑的物理连接有没有连接好了。


  2.在控制台状态下输入如下命令:

  fdisk -l /dev/sda

  注意:不要在sda后面加通配符“*”或“?”,否则运行命令后返回的信息将不正常。如果您有多个USB设备话,则设备名在Linux下分别表示为sda、sdb、sdc等。


    3.在/mnt目录下建立一个挂装USB存储器的目录:

  mkdir /mnt/usb

  4.然后再运行装载设备命令,将USB设备挂装到/mnt/usb目录下:

  mount -t msdos /dev/sda1 /mnt/usb

  注意:如果在第二步中显示您的USB设备的文件系统为FAT32,请使用mount -t vfat /dev/sda1 /mnt/usb命令装载USB设备。

  5.运行如下命令即可查看USB存储器中的文件信息:

  ls /mnt/usb

  然后您就可以像对待硬盘一样对USB存储器中的数据进行拷贝、删除等操作了。

  如果您不习惯于在控制台下敲敲打打,还可以在KDE桌面上建立一个指向USB存储器的快捷方式,用鼠标完成所有的文件操作,就像在Windows中一样简单,建立快捷方式的操作非常简单:用鼠标在桌面空白处单击鼠标,从弹出的快捷菜单中选择“新建/硬盘”,右键单击新创建的快捷方式,选择“属性”菜单命令,切换到“设备”选项卡,分别输入USB存储器的设备名称、安装点和文件系统类型,如图3所示。以后只需要单击该快捷方式即可方便地访问USB存储器了。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2005-7-2 12:17 | 显示全部楼层

KDE3完全安装

KDE3完全安装

KDE是K Desktop Environment的简称,是linux下两个极优秀的
图形桌面环境之一(另一个是Gnome),它支持作为一个现代
图形操作环境的全部特征,如拖放操作等等。

经过了1.x和2.x系列的发展,已进入测试阶段的KDE3,无论是在
界面的亲和性上,还是在操作的易用性上,其华丽程度,足以和
发展了10年的Window Xp相比,例如:高亮显示的小图标比XP要好看得多。

虽然KDE3.0的stable(稳定)版还没出来,但其测试版却在网上,
爱好尝鲜的DIYer们却可以自由下载、编译、安装。和Window安装
不同的是,KDE的安装充分体现了的自己动手、解决问题的DIYer精神。

下面我们就来Step by Step的安装KDE3。




一:获取源代码

linux下的源代码都是用cvs服务器进行管理的。除了有一点难用,
cvs是一个几近完美的源代码管理程序,它让多人对一个源程序共同
进行开发,网上几乎所有的open source软件都是由cvs管理的。要
获得KDE3的最新源码,同样要用cvs,不过,我们只要用到cvs的一点
基本用法,很简单的。

1:要checkout(检出)KDE的源代码,先设置变量CVSROOT。

$export CVSROOT=:pserver:anonymous@anoncvs.kde.org:/home/kde

CVSROOT指出kde源码目录在网络上的地址。也可以编辑~/.bashrc
这个文件,加入
export CVSROOT=:pserver:anonymous@anoncvs.kde.org:/home/kde。

设置了CVSROOT后,就可以登陆cvs服务器了

$cvs login

提示输入密码时,直接按回车键。如果没有错误提示,就成功登陆了。

2:在自己的主目录下如下添加文件 .cvsrc,以简化马上要输入的命令。

$less .cvsrc

cvs -z4 -q

diff -u3 -p

checkout -P

update -dP

要安装最基本的kde系统,至少要如下3个包,qt-copy、kdelibs、
kdebase。如下输入命令: $cvs co qt-copy kdelibs kdebase

U qt-copy/COPYING

U qt-copy /Manifest

U qt-copy /README

(这只是完整的 cvs co 输出的一小段摘录)

co 代表着 .cvsrc中的checkout行,即与
$cvs -z4 co -P qt-copy kdelibs kdebase
相同,其中-z4表示gzip压缩的级别4在慢速连接上加快传输速度
。要升级时,在相应当目录下,键入命令:

$pwd

/your/path/to/qt-copy

$cvs update

这个命令将自动更新你的源代码。

.cvsrc中的update -dP 表示升级时,自动删除或添加目录。

在我56K猫的情况下,三个包用了大约两个小时。 二:编译安装

1:安装qt-copy包

首先,设置QTDIR变量,

#export QTDIR=/your/path/to/qt-copy

再编译,

#cd $QTDIR

#./configure --enable-debug --enable-thread --system-libjpeg --system-libpng
--qt-gif --system-zlib

这时,它会问你是否同意其许可证,回答yes并回车。

#gmake

如果没有错误的话,他会congratulation you。

对于—enable-debug,需要说明的是,该选项会使最终可执行文件变大十几倍,并使编译时间变长,在我毒龙750,DDR RAM 384M的电脑上,花了3—4个小时,最后生成了约400M的文件。如果你不想调试程序的话,最好取消该选项。

2:安装kdelibs

安装之前,最好先到http://rpmfine.net去下载libxml与libxml-devle、libxslt与libxslt-devel、pcre与pcre-devel的rpm 包装上。

然后,把如下行添加到你的.bashrc文件中:

export QTDIR=/your/path/to/qt-copy

export KDEDIR=/opt/kde

export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH

LD_LIBRARY_PATH表示系统要加载的库的路径。

以root权限运行命令

#mkdir /opt/kde

在进入到kdelibs目录:

#cd /your/path/to/kdelibs

由于是从cvs下载的源代码,需要运行

#make -f Makefile.cvs

#./configure --enable-debug --prefix=/opt/kde –disable-cups

--prefix=/opt/kde表示把生成的可执行文件安装到/opt/kde目录下;--disable-cups声明不需要打印机支持。

#make && make install

编译并安装。

3:安装kdebase

同安装kdelibs差不多,

#make -f Makefile.cvs

#./configure --enable-debug --prefix=/opt/kde

#make && make install

一切顺利的话,退出,再登陆,就可以看到KDE3那酷酷的界面了,可真漂亮啊!!!

如果要加入中文,需要co出kde-i18n包,但kde-i18n中包含了40多种语言包,我们只需要其中的zh_CN.GB2312这一个,这就要像下面这样做:

$cvs co kde-i18n

当出现U af/....时,按Ctrl+c中断cvs下载,再

$cvs co kde-i18n/zh_CN.GB2312

$cvs co debian

$cvs co script

再把kdelibs目录下的admin目录及其文件copy到kde-i18n下,

$cp -rf kdelibs/admin kde-i18n/

还要编辑kde-i18n目录下的subs文件,使他只剩下zh_CN.GB2312这一行,再

#make -f Makefile.cvs

#./configure --prefix=/opt/kde

#make && make install

安装好后,到control-centor中选择中文,万事就ok了!

假如你想将KDE完全装上,你还需要检出如下的包:

kdeadmin

kdegraphics

kdeartwork

kdemultimedia

kdenetwork

kdesdk

kdetoys

kdeutils

kdevelop

kdoc

kfte

klyx

kmusic

koffice

ksite

kdepim

kdebindings

kdeaddons




这些包的安装都很简单,一般用用

#make -f Makefile.cvs

#./configure --prefix=/opt/kde

#make && make install

就行了,但要注意一下安装的顺序。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-2-7 10:08 , Processed in 0.075589 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表