linux系统管理

回复|共 63 个

suncon 楼主Lv.12 发表于 2003-11-30 01:06:00|山东 | 查看全部

linux系统管理

假如你为乐某些目地,而写乐自己的 protocol,那你就必须把它列在这个档案中,这
样 inetd 才会管理一些 daemons 去用它这个档案每列的格式如下,# 之後的是注解:
  Protolcol Name   Portocol Number    Aliases

  协议名       代码         别名

ip   0    IP   # internet protocol,pseudo protocol number
icmp  1    ICMP  # internet control message protocol
igmp  2    IGMP  # internet group multicast protocol
ggp   3    GGP   # gateway-gateway protocol
tcp   6    TCP   # transmission control protocol
pup   12   PUP   # PARC universal packet protocol
udp   17   UDP   # user datagram protocol
idp   22   IDP   # WhatsThis?
raw   255   RAW   # RAW IP interface


/etc/psdatabase
  这个档案是被 psupdate 所用到,psupdate 主要的功能就是更新
/etc/psdatabase 这个档,以符合目前的 kernel image system map file.一般的预设
档是 /usr/src/linux/tools/zsystem.


/etc/resolv.conf
  这里面记载着你机器的 domain name 及 name server 的 IP address,name server
可以自己加入.name server 可不要随便就去掉,否则,就会地址没有办法被解译,故会
有 Host name lookup failure 的信息.


/etc/rpc
  !!!!!!!!!


/etc/securetty
  假如你要以 root login 的话,实际上是有限制的,这个档案就列出乐 root 可以
login 的 ttys,假如你把每一列都 mark 起来那就没有任何一个 terminal 可供root
login 乐,就会出现以下的情况 :
        login: root
        root login refused on this terminal.
仔细的在这个档案列出可用的 terminal,可使从 modem 连的使用者或经由网络来的
其它的使用者比较不容易取得 superuser 的权力.


/etc/services
  设定系统的端口与协议类型和提供的服务.


/etc/shadow
  这个文件对一般用户是不可读的,加密后的密码就放在这个文件中.


/etc/shells
  这个档案里面就记录着可以用的 login shell.还有一点,那就是这个档的记录会在
使用 chsh 时做为参考,唯有被列在这里的 shell,使用 chsh 时才会出现这些 shell
可选.实际上如果强行直接修改passwd文件,也可以使用不在列表中的shell程序,但会
造成在ftp的时候,无法登陆.


/etc/slip.hosts&#59;/etc/slip.login
  这两个文件是设定SLIP的配置文件.


/etc/snooptab
  如果系统管理员用ttysnoops替换乐login这个程序,就可以用snooptty这个程序来
监控用户的屏幕,这个文件就是能监听的终端列表.


/etc/sudoers

  在一个不是很复杂的系统中,也许一个 system Administrator 就可以管理所有的
事情.但一但系统提供的服务变多,系统管理的工作也随之变得沉重,这时候,sudo 就
派上用场乐,sudo 可以让一个普通的 user 变成 superuser,这样一来,一个系统的某
些工作,就可以分配给这些 superusers 来做.以减轻负担.
  当然,并不是每个 user 都可以变成 superuser.所以/etc/sudoers 就是记录着那
些人可以用 superuser 的身份来执行一些工作.
  这个档案有一个专属的 editor 叫 visudo 可来编辑 /etc/sudoer.而关於使用
sudo.bin有一个记录档,在 /var/adm/sudo.log,里面记录着谁在什么时候利用sudo
下乐那些指令.顺便一提的是:利用下面这个命令可抓出那些人转换成 superuser 但
却没有成功:grep FAILED SU /var/adm/messages

/etc/syslog.conf
  系统记录程序syslogd的配置文件,格式如下:
  *.=info&#59;*.=notice  /usr/adm/messages
  *.=debug       /usr/adm/debug
  *.=warn       /usr/adm/syslog
即所有的info和notice信息都存在/usr/adm/messages下,debug信息在/usr/adm/debug
下,警告信息在/usr/adm/syslog下.


/etc/ttys
  设定系统的终端类型.


/etc/utmp
  从 utmp 中可以知道现在有谁正在用系统.当使用者logout之後,init就去把logout
的使用者从 /etc/utmp 中去掉.实际上,utmp 每个 record 是像这样的一个结构:

      struct utmp {
        short ut_type&#59;       /* 登陆类型 */
        pid_t ut_pid&#59;        /* 进程id */
        char ut_line[12]&#59;      /* 使用终端 */
        char ut_id[2]&#59;       /* 初始化id */
        time_t ut_time&#59;       /* 登陆时间 */
        char ut_user[8]&#59;      /* 用户名 */
        char ut_host[16]&#59;      /* 远程登陆机器名 */
        long ut_addr&#59;        /* 远程登陆机器的ip */
       }&#59;
  了解这个档案,进而去修改,可以做出许多有趣的事......

/etc/wtmp
  简而言之,wtmp 是一个 login data base,有许多的指令会用到这个档,像 last,
sessreg,who 等......这个档案格式与 utmp 大致相同,只是多乐shutdown及reboot
这个记录,指出系统的 shutdown 或 reboot,及一个空的 user name指出在相关
terminal 的 logout.还有,不像 /etc/utmp,/etc/wtmp 的记录是慢慢的附加上去的,
也就是说,这个档案会越变越大,虽然变大的速度并不会太快,但一但到乐某种程度大小
的话,system Administrator 可以隔一段时间就删除这个文件,再用touch来产生.下面
是用 last 这个指令所得到的部份内容:

  bbs    tty1             Tue Nov 29 19:09 - 19:09 (00:00)
  root   tty1             Tue Nov 29 19:08 - 19:09 (00:00)
  root   tty1             Tue Nov 29 19:07 - 19:07 (00:00)
  runlevel ~               Tue Nov 29 19:07
  reboot  ~               Tue Nov 29 19:07

/etc/XF86Config
  X Window的配置文件.

/etc/yp.conf
  NIS的配置文件.

/etc/zprofile
  link 到 /etc/profile

/home
存放用户主目录的地方,一般说/home/username就是用户的主目录.

/lib(library)
存放系统最基本的动态连接库.这个目录如果被删除的话就不能动乐.几乎所有的程序
都要用到这个目录下的共享库.

/lost+found
这个目录一般都是空的.但当文件系统发生故障(如系统掉电)后,在机器启动的时候有
些文件找不到应该存放的地方,就放到这个目录底下乐.这个目录是mkfs是自动产生的.

/mnt
空目录,是让用户临时挂载文件系统的地方.

/proc
是linux提供的一个虚拟系统,是由系统在系统启动的时候在内存中产生的,用户可以
直接通过访问这些文件来获得系统信息,例如/proc/kcore就是系统运行的时候内存的
映象文件.

/root
超级用户主目录.

/sbin
这个目录存放着super user使用的系统管理程序,如fsck,mount等.

/tmp(temporary)
存放不同的程序执行时产生的临时文件.这是除了/usr/local目录以外一般用户可以
使用的一个目录.这个目录在启动时系统并不自动删除,所以最好能经常删除这里的无用
文件.

/usr(user)
linux系统占地最大的一个目录,用户的很多应用程序和文件都几乎存放在这里.下面
时一些比较重要的目录:

/usr/X11R6
  存放XFree86的目录,所有于X Window有关的程序都放在这里.

/usr/bin
  用户用到的大部分程序都放在这里.


/usr/sbin
  超级用户的管理程序和系统守护程序.

/usr/doc
  放着linux的文档.

/usr/include
  在linux下开发编译应用程序需要的头文件.

/usr/lib
  存放常用的动态链接共享库和静态档案库.

/usr/local
  让用户安装新软件使用的,目录结构和/usr类似.

/usr/man
  存放着linux online help.

/usr/src
  存放着系统的源代码,缺省的有一个/usr/src/linux目录,是用来存放系统内核的源
代码.重新编译内核的时候就是在这个目录下进行的,有些应用程序也会用到这个目录
下的一些头文件.

/var
这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被
修改的目录可以放在这个目录下.

/var/log
  系统的日志文件.


说明:在不同的linux版本,目录结构也有不少的区别...大家看乐之后尽可以补充或更改.

suncon 楼主Lv.12 发表于 2003-11-30 03:16:00|山东 | 查看全部

linux系统管理

设置系统

设置系统名
系统名包含在/etc/HOSTNAME文件中。在网络环境中,系统名用来表示自己的计算机。你可以/etc/HOSTNAME文件来改变系统名(只有在系统重新启动后,改名才会生效),也可以使?*** ostname 命令:
   hostname hellfire
此命令把机器名设置为hellfire。


使用维护磁盘

每个系统都应有一个维护磁盘,以便用来检查根系统文件,恢复磁盘故障和解决一些简单的问题。应急(emergency )磁盘,也叫做boot/root 磁盘,是在系统的设置改变时创建的,可以用来完成以上的任务。
在使用应急磁盘启动系统后,你可以使用mount 命令挂接磁盘分区。


重新设置root 帐号口令

如果忘记了root 帐号口令,你可以使用boot/root 磁盘重新启动系统。然后挂接root 分区,编辑/etc/passwd文件,删除root 帐号下的口令,最后在从硬盘启动系统。系统启动后,你就可以设置新的口令了。
或者在本地以single模式登陆,这样就直接以root登陆系统了,用passwd修改密码以后重启就可以了


设置登录信息

如果系统上的用户多于一个,你可以使用/etc/motd 文件显示系统信息。此文件的内容在每个用户登录时都将显示
suncon 楼主Lv.12 发表于 2003-11-30 03:16:00|山东 | 查看全部

linux系统管理

多系统安装

首先确定
如果你的计算机上没有安装任何操作系统,请首先安装 Windows,然后再安装 Red Hat Linux。可以为 Windows 创建一个指定大小的分区。在硬盘驱动器上保留足够的空闲空间(没有被分区或格式化的分区)来安装 Linux。

如果你想要安装 Red Hat Linux 的计算机上目前运行的是 Windows (或某种其它操作系统),你需要做出一项重要决定。 你的选择是:

·已安装了 Windows,但是让Red Hat Linux代替它成为唯一操作系统吗?如果答案是肯定的,你没必要配置双引导系统。把想保留的信息全部备份,然后开始安装。在安装中,如果你在「磁盘分区设置」 屏幕中选定要安装程序自动为你的系统分区,请选择「删除系统上所有分区」。如果你选择要用 Disk Druid 或 fdisk 来手工分区,删除所有现存的 DOS (Windows) 分区,然后创建你的 Linux 分区。

·你想安装 Red Hat Linux ,然后既可以引导 Red Hat Linux 又可以引导你的另一个操作系统吗?执行此类 Red Hat Linux 安装可以在你的系统上安装 Red Hat Linux 却又不影响另一个操作系统。既然你已经装有 Windows,你需要:先为Linux分配磁盘空间,然后再在双引导环境中安装 Red Hat Linux。这就是后面两节的内容。

suncon 楼主Lv.12 发表于 2003-11-30 03:19:00|山东 | 查看全部

linux系统管理

安装Linux

当 Windows 已被安装,而且你已为 Linux 准备了空闲磁盘空间之后,你就可以启动 Red Hat Linux 安装程序了。这时候,普通的 Red Hat Linux 安装与配置双引导系统的 Red Hat Linux 安装间的区别仅存在于硬盘驱动器分区和引导装载程序配置中。
当你运行到了 「磁盘分区设置」 屏幕中时,磁盘分区安装程序中的 「磁盘分区设置」 屏幕中有几个选项。根据你的选择而定,配置双引导系统的方法也有所不同。

(如果不知道要创建多少个 Linux 分区,推荐:
·等于内存容量两倍的 /swap 分区, — /swap 分区用来支持虚拟内存。换句话说,当没有足够的内存来容纳你的系统正在处理的数据时,这些数据就被写入 /swap。你的交换分区的最小值应该相当于你的计算机内存的两倍和32MB中较大的一个值。
·75MB的 /boot 分区 — 这个挂载在 /boot 上的分区包含操作系统的内核(允许你的系统引导Red Hat Linux),以及其它几个在引导过程中使用的文件。对大多数用户来说,75MB引导分区应该是足够了。警告:不要把 /boot 分区创建为LVM类型。
·1.5到4.5 GB的 / 分区 — 这是“/”,即根目录,除了贮存在 /boot 分区上的以外所有文件都位于根分区上。个人桌面或工作站需要硬盘空间为1.5 GB,安装全部软件需要4.5 GB。)

如果你选择:

·自动分区 — 选择「保留所有分区,使用现有空闲空间」。这一选项将会在你的硬盘驱动器上保留你的 Windows 分区,而使用空闲空间或附加硬盘驱动器为 Red Hat Linux分区。

·使用 Disk Druid 来手工分区 — 不要删除现存 Windows 分区(它们是类型为 vfat 的分区)。在附加硬盘驱动器上,或你为 Red Hat Linux保留的空闲空间上创建 Linux 分区。

·使用 fdisk 来手工分区 — 与使用 Disk Druid 相似,只是你将看不到图形化界面。基本步骤是相同的。不要删除类型为 FAT16、 FAT32、或 NTFS 的现存分区。在附加硬盘驱动器上,或你为 Red Hat Linux 保留的空闲空间上创建 Linux 分区。

配置引导装载程序当你在 Red Hat Linux 安装中运行到了 「安装引导装载程序」 这一屏幕时,选择要安装的引导装载程序。你可以使用不同的引导装载程序来引导 Red Hat Linux 和 Windows。 Red Hat 不支持其它引导装载程序,因此,本章节将只讨论如何配置 GRUB 或 LILO 来引导这两个操作系统。

Red Hat Linux 安装程序通常会检测到 Windows 并自动配置引导装载程序(GRUB 或 LILO)来引导 Red Hat Linux 或 Windows。这可以在安装程序中的引导装载程序屏幕中看到。 一个名为「DOS」的项目会出现在要引导的操作系统列表中。

安装后安装之后,无论你在什么时候启动计算机,你都能够在引导装载程序屏幕中指明你想启动的是Red Hat Linux还是另外的操作系统。 选择「Red Hat Linux」来引导 Red Hat Linux,选择「DOS」来引导 Windows。

如果你没有把硬盘驱动器中全部空闲空间拨给Red Hat Linux,你可以在安装Red Hat Linux之后把它拨给Windows。最好使用fdisk来创建这些分区。其它分区软件会改变硬盘驱动器上的分区表,并移动Linux分区。

suncon 楼主Lv.12 发表于 2003-11-30 03:20:00|山东 | 查看全部

linux系统管理

进一步:NTloader引导双系统

??前面的文章就是NT和Linux共存的最简单的方法。也即在安装linux的lilo时,选择将lilo安装在LInux主分区的引导区中。然后使用win98的启动盘重新启动以后,运行fdisk将linux主分区设置为active,这样就可以实现在系统启动时首先进入lilo选择,若不选择linux,则进入NT loader。
??但是有时候为了方便而需要使用NT loader 来引导linux,下面就是实现的方法。

??你应该牢牢记住的最重要的一点是,许多软件产品会利用硬盘上面仅有的那个宝贵的主引导记录MBR。NT是这样,没有选择余地;Linux也可以这样,如果你喜欢。机器的BIOS会执行储存在当前激活分区的信息,来初始化你希望的操作系统。

??NT安装后,MBR会被修改成去引导一个在激活分区的根目录下,叫NTLDR的程序。原来的MBR会被存到一个叫BOOTSECT.DOS的小文件中。NT安装完成后要记住绝不能覆盖这个MBR, 否则NT将无法启动。以防万一, NT的用户需要NT的应急修复磁盘(Emergency Repair Disk,ERD)。

??记住了这些后,就要注意设定LILO时***不能***装到MBR中去,而是装到Linux的root分区中去。这样,对NT而言,不会带来问题;而Linux没有MBR也可以活下去。

??NT的引导过程

??当NTLDR启动, NT用户看到OS Loader V4.xx 后,它会切换处理器到386状态,并启动一个非常小的文件系统。接着,它会去读BOOT.INI文件,看是否有其它操作系统存在,并显示一个选择菜单。下面是一个典型的BOOT.INI:

??[boot loader]
??timeout=30
??default=multi(0)disk(0)rdisk(0)partition(2)WINNT

??[operating systems]
??multi(0)disk(0)rdisk(0)partition(2)WINNT=NT V4 is here
??multi(0)disk(0)rdisk(0)partition(2)WINNT=NT V4 VGAMODE /basevideo /sos
??C:=DOS is here
??BOOT.INI有两部分构成。 boot loader section部分指定菜单在屏幕上的停留时间,和缺省菜单选项。opearating systems section 部分指定可选的操作系统种类。可以看到机器可以启动NT(以标准模式或VGA安全模式)和DOS。从这个例子我们可以推断,DOS从硬盘C第一个硬盘的第一个分区)启动,而NT从第二个分区启动。典型安装时,会以DOS的FAT文件系统格式化一个C:的分区,然后将NT装在另外一个NTFS(NT文件系统)的分区。

??如果用户选择了启动NT, 另外一个程序NTDETECT.COM,就会开始进行硬件检查。如果一切正常,NT内核就会被装入,正如我们都知道的那样。

??再来看如果启动的不是NT的情形。此时,NTLDR 需要知道非NT OS引导所必需的引导扇区是哪个。此时,相应的引导扇区映象必须要在一个小小的512字节的文件中。比如,要引导DOS,NTLDR 将会寻找一个叫BOOTSECT.DOS的引导扇区映象文件。 这个映象文件是NT的安装程序产生的。

??那么, 引导Linux又是怎样呢?这很简单,需要的只是一个引导扇区映象文件,姑且称之为BOOTSECT.LIN (在本文稍后会看到如何得到这个文件)。 必须将BOOTSECT.LIN 放到C:, 并要修改 BOOT.INI。此时operating systems ection部分看起来应该是这样的:

??[operating systems]
??multi(0)disk(0)rdisk(0)partition(2)WINNT=NT V4 is here
??multi(0)disk(0)rdisk(0)partition(2)WINNT=NT V4 VGAMODE /basevideo /sos
??C:=DOS is here
??C:BOOTSECT.LIN=Now Linux is here
??修改BOOT.INI, 可以用任何普通ASCII文本编辑器(比如记事本)。这个文件的正常属性为系统-隐藏-只读,所以你必须用 'attrib' DOS 命令或在NT中,用文件属性对话框中来变更属性。

??现在我们将注意力转到Linux。我们需要安装Linux,定制LILO,产生BOOTSECT.LIN文件。

??第一步是装好Linux。我们都知道怎么做:为Linux选适当的系统,SWAP,和用户分区,运行安装程序,等等。一切顺利时,这一步在45分钟之内就可以完成。

??接下去就要定制LILO。我们知道怎么做,但要注意*不能* 将LILO装到MBR中去(除非你想将NT吞了:-))。设定LILO时,要选择将它装到你Linux 的root分区。如果你还不知道如何设定LILO, 就花几分钟读读HOW-TO文献,或者就用一些好的安装程序,我是用S.u.S.E.的, 因此我的安装程序就是 'yast' (Yet Another Setup Tool)。

??LILO定制好之后,(为行文方便, 此处假设Linux的root分区是/dev/hda3)我们必须用'dd'来产生引导记录映象文件。以root Login后,按以下做:

??# dd if=/dev/hda3 bs=512 count=1 of=/dosc/bootsect.lin

??如果没有能将FAT C: partition mount成为 /dosc,譬如说由于这个分区被以NTFS方式格式化,不能访问这个分区。此时可以将 BOOTSECT.LIN写到一个以DOS方式格式化的磁盘中,或者NT能读的其它什么分区也可以。如果BOOTSECT.LIN不是被放到C:,要记住此时应相应修改BOOT.INI文件。

??现在可以从NT Loader菜单中选择Linux了。NTLDR将会装载BOOTSECT.INI,就可以看到LILO的提示。
最后,你可以设定LILO在选择提示时能去引导Linux和C: 上的DOS。就可以再次回到C: 分区上的NT Loader。前文描述的方法可以反复进行,如果你希望能选择引导多个Linux,就必须为每一个Linux都产生一个相应的引导扇区映象文件。

suncon 楼主Lv.12 发表于 2003-11-30 03:20:00|山东 | 查看全部

linux系统管理

IDE RAID卡

          IDE RAID卡在linux上的应用
raid卡几乎已经成为服务器的标准配置了,raid卡不但可以大大提高数据的安全,还可以大幅提高硬盘读写性能,从而提供服务器的整体性能和可靠性.linux很早就提供对raid的支持,不但支持raid卡,也支持软raid,不过软raid实在是比不上硬raid.早期的raid卡都是用于scsi系统的,性能好,可惜价格 甙?而且scsi硬盘也大大贵过ide硬盘.近年来,市场上出现了ide raid卡,配合新一代的高速ide硬盘的降价,一些入门级的服务器和工作站开始考虑采用ide raid系统.

ide raid系统相对scsi raid而言,性能稍差,但价格相当低廉,实在是DIY友的利器.

ide raid卡的代表是promise fasttrak100.我就以此为例,介绍IDE RAID卡在linux上的应用.
linux的2.4.x核心开始支持ide raid卡promise fasttrak系列产品.但有少少问题,可能会导致有些型号工作不稳定,推荐使用promise公司提供的驱动.
promise提供单cpu的驱动ftrh71_120b5.zip(ftp://ftp.promise.com/Controllers/IDE/Linux/ftrh71_120b5.zip)
它提供对fasttrak100TX2/LP/100的支持,可用在redhat 6.2和redhat 7.x上.

promise提供多cpu的驱动FTv120b3RHsmp.TAR(ftp://ftp.promise.com/Controllers/IDE/Linux/FTv120b3RHsmp.TAR)它提供对fasttrak100TX2/66/100的支持,可用在redhat 6.2和redhat 7.0上.如果你的promise ide raid卡上的芯片是PDC20262和PDC20265,厂家建议你用redhat 7.0,因为可启动的scsi模块只支持单cpu,不支持smp.

我用单cpu的驱动来介绍安装.
你需要两张空白的,用dos格式化的软盘.解压文件ftrh71_120b5.zip后,可以看到几个文件.看到disk1.img和disk2.zip了吧.
可在dos下用rawrite.exe工具来把disk1.img写进disk1软盘中.

linux用户就更好办:
   dd if=disk.img of=/dev/fd0
要注意先不要把软盘mount上.

接下来,解压disk2.zip,把生成的文件拷贝到disk2软盘中.如果你有一个安装好的linux系统,想把fasttrak的驱动加进系统,从disk2软盘上找到scsi_mod.o和ft.o两个模块.
   insmod scsi_mod.o
   insmod ft.o
用lsmod检查一下是不是加载成功.
如果你想在新的ide raid系统上安装新的linux系统的话,就要麻烦一点.首先在ide raid卡的cmos中选择raid方式和其它设置,如块的大小等.把disk1软盘插进软驱,开始安装.disk1软盘包含了redhat的启动部分,可以当作redhat 7.x的安装启动软盘.

正常安装系统
当系统安装接近完毕,显示Congratulations的时候按Ctrl+Alt+F2进入命令行模式更换disk2软盘

chroot /mnt/sysimage
mount -t vfat /dev/fd0 /mnt/floppy
cd /mnt/floppy
./setup-ft

完成后按Ctrl+Alt+F1,会到正常安装模式,继续进行完成安装.大功告成!
suncon 楼主Lv.12 发表于 2003-11-30 03:21:00|山东 | 查看全部

linux系统管理

Gtk+/Win32中文显示方案

Gtk+在UNIX平台下中文显示很正常,但同样的程序在GTK+/WIN32下汉字无法显示,原因为传入GTK+的字符串不能为GB2312码,必须全部为UTF-8码,否则无法正常显示。而UTF-8码在WINDOWS上无法正常输入,必须通过转换程序。
libiconv就可以实现这样的功能,从网上下载编译后,可以生成iconv.exe,执行 iconv -f EUC-CN -t UTF-8 srcfile desfile
就可以将文件中的GB码转化为UTF-8码。
如果需要在程序中自动转换,则必须调用libiconv系列函数。同时GTK+中必须使用中文字体,才能正确显示中文。例程如下:
#include locale.h
#include gtk/gtk.h
static char *gtkrc_string = \
   style \default\\
   {\
       fontset = \-unknown-榛戜綋-normal-r-normal-*-*-140-*-*-p-*-
gb2312.1980-0\\
   }\
   class \GtkWidget\ style \default\&#59;
/* This is a callback function. The data arguments are ignored
* in this example. More on callbacks below. */
void hello( GtkWidget *widget,
     gpointer  data )
{
g_print (Hello World\n)&#59;
}
gint delete_event( GtkWidget *widget,
         GdkEvent *event,
  gpointer  data )
{
/* If you return FALSE in the delete_event signal handler,
  * GTK will emit the destroy signal. Returning TRUE means
  * you don't want the window to be destroyed.
  * This is useful for popping up 'are you sure you want to quit?'
  * type dialogs. */
g_print (delete event occurred\n)&#59;
/* Change TRUE to FALSE and the main window will be destroyed with
  * a delete_event. */
return(TRUE)&#59;
}
/* Another callback */
void destroy( GtkWidget *widget,
      gpointer  data )
{
gtk_main_quit()&#59;
}
int main( int  argc,
    char *argv[] )
{
/* GtkWidget is the storage type for widgets */
GtkWidget *window&#59;
GtkWidget *button&#59;
/* This is called in all GTK applications. Arguments are parsed
  * from the command line and are returned to the application. */
gtk_set_locale()&#59;
gtk_init(argc, &argv);
gtk_rc_parse_string(gtkrc_string)&#59;
/* create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL)&#59;
/* When the window is given the delete_event signal (this is given
  * by the window manager, usually by the close option, or on the
  * titlebar), we ask it to call the delete_event () function
  * as defined above. The data passed to the callback
  * function is NULL and is ignored in the callback function. */
gtk_signal_connect (GTK_OBJECT (window), delete_event,
GTK_SIGNAL_FUNC (delete_event), NULL)&#59;
/* Here we connect the destroy event to a signal handler.
  * This event occurs when we call gtk_widget_destroy() on the window,
  * or if we return FALSE in the delete_event callback. */
gtk_signal_connect (GTK_OBJECT (window), destroy,
GTK_SIGNAL_FUNC (destroy), NULL)&#59;
/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 10)&#59;
/* Creates a new button with the label Hello World. */
button = gtk_button_new_with_label (浣犲ソ锛屼笘鐣岋紒 Hello World!)&#59;
/* When the button receives the clicked signal, it will call the
  * function hello() passing it NULL as its argument. The hello()
  * function is defined above. */
gtk_signal_connect (GTK_OBJECT (button), clicked,
GTK_SIGNAL_FUNC (hello), NULL)&#59;
/* This will cause the window to be destroyed by calling
  * gtk_widget_destroy(window) when clicked. Again, the destroy
  * signal could come from here, or the window manager. */
gtk_signal_connect_object (GTK_OBJECT (button), clicked,
    GTK_SIGNAL_FUNC (gtk_widget_destroy),

    GTK_OBJECT (window))&#59;
/* This packs the button into the window (a gtk container). */
gtk_container_add (GTK_CONTAINER (window), button)&#59;
/* The final step is to display this newly created widget. */
gtk_widget_show (button)&#59;
/* and the window */
gtk_widget_show (window)&#59;
/* All GTK applications must have a gtk_main(). Control ends here
  * and waits for an event to occur (like a key press or
  * mouse event). */
gtk_main ()&#59;
return(0)&#59;
}
/* example-end */


[
suncon 楼主Lv.12 发表于 2003-11-30 03:25:00|山东 | 查看全部

linux系统管理

用蓝点rpm包进行汉化

  如果你的显卡在XFree86 3.3.6上运行良好,而你有不打算在汉化上自找麻烦的话,直接用bluepoint linux的rpm包来进行汉化,用不了几分钟.
三、bluepoint汉化

  如果你的显卡在XFree86 3.3.6上运行良好,而你有不打算在汉化上自找麻烦的话,直接用bluepoint linux的rpm包来进行汉化,用不了几分钟.

  本方法只可用于redhat 6.2,redhat 7.0以及mandrake 7.0等版本得汉化,但遗憾得是,目前只支持xfree86 3.3.6,xfree86 3.3.6不支持得显卡只能寻求它法了.

  1、选择显卡驱动(如XF86_SVGA,视你的显卡而定)

  下载下列rpm软件包(可从http://www.linuxaid.com.cn/engineer/hubertzou或http://www.bluepoint.com.cn下载).

  1)XFree86-SVGA-3.3.6-6BP.i386.rpm

  2)XFree86-zhfont-3.3.5-1.i386.rpm

  3)bluepoint-release-1.0-1BP.noarch.rpm

  4)cxwin-tools-1.0-4BP.i386.rpm

rpm -Uhv XFree86-SVGA-3.3.6-6BP.i386.rpm
rpm -Uhv XFree86-zhfont-3.3.5-1.i386.rpm
rpm -Uhv bluepoint-release-1.0-1BP.noarch.rpm
rpm -Uhv cxwin-tools-1.0-4BP.i386.rpm

  2、修改/etc/X11/XF86Config如下:

#FontPath /usr/X11R6/lib/X11/fonts/TrueType
#FontPath  unix/:-1
FontPath/usr/X11R6/lib/X11/fonts/misc:unscaled
FontPath/usr/X11R6/lib/X11/fonts/75dpi:unscaled
FontPath/usr/X11R6/lib/X11/fonts/encodings:unscaled
FontPath/usr/share/zhfont/X11/
FontPath/usr/X11R6/lib/X11/fonts/misc
FontPath/usr/X11R6/lib/X11/fonts/75dpi
FontPath/usr/X11R6/lib/X11/fonts/100dpi
EndSection

  3、修改/etc/X11/ChineseConfig

Codingsystem GB2312

  4、重启动Xwindow,就可用中文输入和用netscape浏览中文网站,big5也可以正确显示.如需进一步汉化kde,最好安装bluepoint linux 2.0带得kde软件,至少要它的qt-1.44bp修改kde的字体设置,把默认code改为简体中文即可, 重启动kde后,所有的东西全是中文的,菜单,书签...,中文输入也很好用, 注意:用kde的人最好再安装bluepoint的三个blinp包:

blinp-0.1-4BP.i386.rpm
blinp-ccetab-0.1-6BP.i386.rpm
blinp-kde-0.1-1BP.i386.rpm
suncon 楼主Lv.12 发表于 2003-11-30 03:26:00|山东 | 查看全部

linux系统管理

炎黄中文输入和Chinput的安装方法

四、炎黄中文输入
  * 适用环境:RedHat7.x,必须安装qt2和kdelibs2
  * RPM包的编译环境:
  * kernel 2.4.2
  * glibc-2.2.2-3
  * gcc(-c++)-2.96-77(RH)
  * XFree86-4.0.2-11
  * QT-2.3.0
  * KDE-2.1
  * 安装

  1)使用以下命令行:


rpm -Uvh --force rf-xim-input-2.1-2.i386.rpm


  2)然后重新登录当前用户。

  本包中自带中文点阵字体(14),并自动设置环境变量,在RH7.1(beta)下无需其它任何设置。

  * 用法:

  Ctrl+空格:进入/取消中文输入状态

  Ctrl+Shift:切换中文输入法

  在中文输入状态下,按

  Alt+1:智能拼音输入法

  Alt+2:GBK拼音输入法

  Alt+3:国标区位输入

  Alt+4:五笔字型输入法

  KDE用户可以点击桌面右下角的图标选择输入法。

  * 关于五笔输入法:

  rf-xim-input中的五笔输入法码表文件是一个文本文件,您可以任意添加自己的词组,每个词组占一行,格式请查看文件/usr/local/rfinput/lib/wbx.mb

  * 已知的问题:

  如果出现意外而使得rf-xim-input中止运行,可能使得它无法再次启动。此时请用以下方法解决:

  在控制台输入命令:

ps -A|grep rfinput

  如果有输出的话,用命令:

  kill -s SIGKILL 输出中的数字

  此时KDE2可能会报应用程序崩溃信息,确定即可。

  然后再次启动rf-xim-input,如果还无法运行,等一会再试即可重新运行。

  * 关于src.rpm:

该包可以在qt-2.2.3/qt-2.2.4/qt-2.3.0(for RedHat,qt安装在/usr/lib/qt-2.x.x下)下编译通过。如果编译程序无法找到库的头文件,请修改Makefile。

  五、Chinput的安装方法:

  下载到Chinput-3.0.1.tar.gz

pth-1.3.7-1.i386.rpm
unicon2-im.tar.gz
zh_CN

  1、首先安装pth

rpm -Uhv pth-1.3.7-1.i386.rpm

  2、接着,tar zxvf unicon2-im.tar.gz

mv unicon2 /usr/lib/

  3、编译新 locale,以 root 身份执行:localedef -f GB2312 -i zh_CN zh_CN.gb2312,若无错误提示,则编译成功,在 /usr/lib/locale 下会增加 zh_CN.gb2312 目录。

  4、确定在 /usr/lib/gconv/gconv-modules 文件中包含了 alias GB2312-1980// EUC-CN// 一行,若没有,加入它。在redhat7.1b2中已有

alias GB2312// EUC-CN//
alias csGB2312// EUC-CN//
alias CN-GB// EUC-CN//

  但我还是加上alias GB2312-1980// EUC-CN//

  5、好,我们开始安装Chinput

tar zxvf Chinput-3.0.1.tar.gz
cd Chinput-3.0.1
make
make install

  6、进入usr/lib

ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3

  7、再修改 /usr/lib/ZWinPro/Chinput.ad 文件:

  由于 XFree86 没有自带的 BIG5 码字体,若你不需要输入 BIG5 码字符,则对 Chinput.ad 做以下调整:


...
chinput.gblocale= zh_CN.gb2312
chinput.big5locale= zh_CN.gb2312
...
chinput.gbfont = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0
chinput.big5font = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0


  注意:在 Chinput.ad 的字体定义中,不能出现空格,这是由于 Chinput 的限制。

suncon 楼主Lv.12 发表于 2003-11-30 03:28:00|山东 | 查看全部

linux系统管理

GNOME和KDE的汉化

六、REDHAT 7.0中GNOME的汉化
  GNOME的中文显示RedHat 7.0采用glibc2.2和XFree86 4.0.1,对国际化的支持有了很大的进步。GNOME是优秀的桌面平台,也是目前Linux使用的对国际化支持最好的桌面平台之一。这里我主要讲如何实现在RedHat 7.0下面显示和输入简体中文。

  为了简单起见,仅仅讲述GB2312编码的字符集。

  因为XFree86 4.0.1对显卡的支持不如XFree86 3.3.6广泛,所以RedHat 7.0里面同时保留了XFree86 3.3.6,可以用xdpyinfo查看XFree86的版本号.方法

xdpyinfo | grep release | sed s/^.*[^[:digit:]]//

  看看结果是不是4001或者4002,如果不是,表明版本不是4.0.x

  1:升级glibc

  RedHat 7.0自带的glibc版本为2.1.92,是2.2的测试版,bug比较多。后来RedHat公司提供了glibc的升级文件。为了系统的稳定和更好的支持中文,应该将glibc升级到2.2-9版本或更高。下载地址:ftp://ftp.gnuchina.org/pub/ISO/RedHat/updates/7.0/i386

  最好将glibc,glibc-devel,glibc-profile都升级到2.2.9

  升级方法:

rpm -Uvh glibc-2.2-9.i386.rpm


  2:设置中文locale

  Linux采用locale技术以实现对多语言的支持。因此首先要设置中文locale。

  如果你使用的是bash,那么请编辑~/.bash_profile文件,加上

export LC_ALL=zh_CN
export LANG=zh_CN

  然后运行. .bash_profile或者重新登录账号以使设置生效。

  编辑~/.i18n文件,内容为:

LANG=zh_CN

  3:测试中文locale

  在控制台上运行date命令,如果你能看到乱码证明中文locale已经生效。

  此时运行startx进入GNOME桌面,你将看到任务栏上的时间已经变成中文显示了。如果你默认的不是GNOME桌面则可以运行switchdesk gnome切换到GNOME桌面。

  4:显示Windows下的中文文件名

  如果你还装了中文Windows 95/98/Me,那么现在就可以显示中文文件名了。RedHat 7.0采用2.2.16的内核,可以支持简体中文代码页。使用方法:在mount后加选项-o codepage=936,iocharset=cp936。为了永久生效,可以修改/etc/fstab文件。例如我的/etc/fstab文件内容为:

LABEL=/ / ext2 defaults 1 1
/dev/hda1 /mnt/c vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda7 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/hda10 swap swap defaults 0 0

  5:安装中文TrueType字体(参看前文)

  6:设置GNOME的TrueType中文字体

  为了使我们设置的TrueType字体能够在GNOME下面使用,必须修改GNOME的资源配置文件。

  编辑/etc/gtk/gtkrc.zh_CN文件,设置字体如下:

style gtk-default-zh-cn {
fontset =  -misc-simsun-medium-r-normal--14-0-0-0-p-0-*-*
}
class GtkWidget style gtk-default-zh-cn

  再编辑/etc/gnome/gtkrc.zh_CN文件,将所有的FontSet设置为:

fontset = -misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0

  此时运行startx进入GNOME桌面,就可以看到漂亮的TrueType中文字体啦!

  七、kde2.1.1的汉化

  KDE 2.1.1 于今年3月26日发行的最新版本. 该版本包括了linuxforum成员Rigel为 KDE 2.1 写的中文补丁. 同时 KDE 中文翻译队伍的负责人Wan Jian 修正了有问题的 po 文件, 这样 KDE 2.1.1 就成了第一个无需补丁支持简体中文的 KDE 版本.

  我得到消息后,第一时间下载到kde2.1.1的软件包,我用的是redhat 7.1B2版本,在网站上没有提供redhat 7的rpm包,我只有用bz2软件包了。

  我已经安装了qt-2.2.4的rpm包,所以就可以直接开始安装,其他同志最好用qt-2.3。注意:我用的是qt-2.2.4的rpm包,如果用qt-2.3的tgz版本,请注意修改相应部份.(PATH,QTDIR)

  首先,安装kde2.1.1

  首先把下载的bz2包拷贝到/usr/local/kde下,用bunzip2和tar解包,如:

bunzip2 kdelibs-2.1.1.tar.bz2
tar xvfkdelibs-2.1.1.tar

  注意:安装kde必须安装kdelibs和kdebase,强烈要求安装kdesupport,其它都为选装,我当然全装了,我的机器为celeron 600,128M,足足用了两个晚上才编译完,怕麻烦的人还是等rpm包吧!!

  修改~/.bash_profile

PATH=/usr/local/sbin:/usr/sbin:/sbinPATH:
$HOME/bin:/usr/local/bin:/usr/lib/qt-2.2.4/bin:/usr/local/kde/bin
BASH_ENV=$HOME/.bashrc
USERNAME=root
QTDIR=/usr/lib/qt-2.2.4
KDEDIR=/usr/local/kde/
export USERNAME BASH_ENV PATH QTDIR KDEDIR
export LANG=zh_CN.GB2312
export LC_ALL=zh_CN.GB2312
export XMODIFIERS=@im=Chinput

  进入/usr/local/kde/kdelibs目录

./configure
make
make install

  编译极耗时间,去喝喝茶吧!

  接着编译其它软件包,完成后修改~/.xinitrc

rm ~/.xinitrc
cat .xinitrc
startkde
Ctrl-D

  接着,参照前文,安装中文字库和chinput。最后,调整kde,重启动后,用startx进入kde.修改字符集,改选字符,退出再进入kde,一切正常,所有的菜单都显现汉字,不过小问题总是有的, 都算不错了。用gedit编辑中文,用mozilla上网,一切都棒极了,mozilla的书签中文显示也很正常。

suncon 楼主Lv.12 发表于 2003-11-30 03:30:00|山东 | 查看全部

linux系统管理

打印

1、 如何打印中文 postscript 文件?
2、我能打印中文 postscript 文件, 可是还是不能从 xxx 程序中打印中文!?

3、我是如何打印中文的

八、中文打印

  在 linux 下打印是件麻烦事, 中文打印由甚. 为什么哪? 将屏幕上看到的文字印到纸上, 要经过两步:

  1)应用程序生成postscript 文件&#59;

  2)将该文件送到打印机 (直接或通过 ghostscript). 让我们先从第二步看起.

1、 如何打印中文 postscript 文件?

  最大的问题是一般打印机不支持或不带中文字体. 一般我们使用 ghostscript, 但ghostscript 对中文字体的支持也不是很完美. 大多数情况下需要打补丁. 目前有以下几种解决方案:

  1)直接 patch ghostscript 使其支持 truetype 字体. 可参看该网站. 这是目前最为简单的方法. 缺点是需要  6.0 版的 ghostscript, 该版目前还没有以GPL施放, 任何 linux 都不会预装, 需要自己下载安装.

  2)使用 CID 字体. CID 是 adobe 为亚洲文字设计的字体, 打破了 type1 字体只能容纳 256 个字符的限制. ghostscript ( V5.5?) 直接支持 CID 字体, 无需补丁. 可参看同一网站如何设置. 本来这应该是最好的方案, 因为不要打补丁.可惜 CID 字体太少了.

  3)Patch ghostscript 使其支持 VFlib, 通过 VFlib 支持 truetype 字体. 优点是支持老的 ghostscript 版本 (中文有 for 5.5 的 patch, 日文甚至有 for 4.x的), 支持字体变形等. 缺点是需要额外安装 VFlib. Turbolinux 6.0 以上及CLE v0.9p1以上均使用了该方法. 可以到它们相应的软件包中找补丁.

  4)陈向阳的 gbpfb 包, 将中文 truetype 字体转换成 type1 pfb 字体, 由于type1字体只能容纳 256 个字符的限制, 一个 truetype 字体将会生成 30-40个 pfb 字体, 再由一个前端文件控制. 当年这是我们中国人唯一知到的打印中文 postscript文件的方法. 我还记得用此法第一次从 netscape 打印出中文的惊喜. Turbolinux4.x 以下及蓝点等中文发布均使用了该方法. 但现在与前述的 1-3 法相比, 显得有些简陋, 存在一些难以克服的毛病, 已经越来越少的被使用了. 如果您想要可以在上面提到的几个中文 linux 中找到.

  5)在 postscript 文件中内嵌中文点阵字体. 优点是连 ghostscript 都不需要了,直接送到任何支持 postscript 的打印机上就可打印. 缺点是生成的文件庞大,打印出的质量欠佳.

  最后, 使用 1-4 法都需要通过 ghostscript 将文件发往打印机. 有两种用法:

  直接使用, 如:

gs -q -dBATCH -sDEVICE=printer-type -sOutputFile=lpr -
或设置 filter 使 lpr 自动调用 ghostscript.

2、我能打印中文 postscript 文件, 可是还是不能从 xxx 程序中打印中文!?

  这就需要我们看看打印过程的第一步, 即应用程序生成postscript 文件. 目前有多少 linux 下的程序能生成支持中文的 postscript 文件? 少只又少, 真正不需要任何补丁就能 work 的我知道的有三个: netscape/mozilla/abiword(=0.12).

  主要问题是很少有程序能正确处理中文 font. 在 UNIX/LINUX 世界没有统一的打印API, 任何程序想打印, 必须自己写 code 生成 postscript 文件, 很难想像所有程序员都原意并有能力考虑中文 postscript 字体问题. 现在 gnome-print 和 QT printer class 都是试图产生一个公用 API 以便应用程序不必自己处理生成 postscript的问题. 可惜二者都处于起步阶段, 仅仅聚焦于 type1 字体, 还没顾的上考虑中文的问题. 也就是说目前所有 GNOME/KDE 应用程序, 只要使用这两个 API, 都不能生成正确的中文 postscript 文件, 不能印出中文字. 台湾有人(见CLE的QT包)写了 QT printer 的patch, 但还不是很完善&#59; 没听说有 gnome-print 的中文 patch.

3、我是如何打印中文的

  我用的是ghostscript-6.0-1.i386.rpm和gbpfb-1.1-2.i386.rpm来进行中文打印。想要该软件的人可再http://www.linuxaid.com.cn/engineer/hubertzou/获得。

  需要提醒的是,要先安装ghostscript-6.0-1.i386.rpm,用qs -help测试一下后再安装gbpfb-1.1-2.i386.rpm.

  再netscape或mozilla中的print command中把lpr改为ns2cps - | lpr

  这样,就可以用netscape来打印中文html和中文txt文件了。

  至于其它的方法,我没有试过,但为了提供尽量多的方法,所以也提供给大家。
suncon 楼主Lv.12 发表于 2003-11-30 03:31:00|山东 | 查看全部

linux系统管理

Mozilla和glibc

上网冲浪最重要的软件莫过于浏览器了。Linux下常用的浏览器有Netscape、Lynx等。这里我要向各位推荐的是Netscape的新一代浏览器核心——Mozilla。
glibc 2.2的一个重要方面就是彻底国际化,比如wchar_t内码为4字节Unicode(UCS-4)。

  九、Mozilla的汉化

  上网冲浪最重要的软件莫过于浏览器了。Linux下常用的浏览器有Netscape、Lynx等。这里我要向各位推荐的是Netscape的新一代浏览器核心——Mozilla。Mozilla完全符合最新W3C标准,目前最新版0.8.1无论是从功能还是稳定性上来说都已经做的相当不错了。

  1、下载Mozilla 0.8.1

  下载地址http://www.mozilla.org

  2、安装

tar zxvf mozilla-i686-pc-linux-gnu-0.8.1.tar.gz
cd mozilla
./mozilla

  这时mozilla就启动了。现在我们来做一些配置工作。首先选择Edit--Preferences,弹出对话框,选择Appearance--Fonts,在Language Encoding中选择Simplified Chinese,然后将Serif、Sans Serif、Monospace都选择misc-simsun-gb2312.1980-0字体。Size设为14。

  有些站点可以自动识别语言。这可以通过以下方法实现:

Navigator--Languages--Add...

  选择Chinese/China [zh-cn]

  点击Move Up,将中文语言放在最上面。

  最后点OK完成配置,然后退出Mozilla。(注意:这一点很重要,因为mozilla退出时会改写配置文件。如果没有退出mozilla做以下操作将无效!)

cd mozilla/defaults/pref,编辑unix.js

  找到这样两行

pref(font.min-size.variable.zh-CN, 16)&#59;
pref(font.min-size.fixed.zh-CN, 16)&#59;

  改为

pref(font.min-size.variable.zh-CN, 12)&#59;
pref(font.min-size.fixed.zh-CN, 12)&#59;

  这样可以使网页看上去美观多了。

  3、最后是对输入法的配置

cd ~/.mozilla

  在里面找到pref.js文件,在文件最后加上这样一行

pref(xim.input_style,over-the-spot)&#59;


  然后运行mozilla,就可以显示效果很好的中文网页了!显示效果一点不比IE 5.0差。

  为了方便,可以在panel中增加mozilla的启动图标。mozilla有一个bug,当xmms正在播放的时候不能启动,因此启动mozilla时需要停止xmms。

  为了方便中文识别,可以选择View--Character Coding--Auto-Detect--Simplified Chinese以后mozilla会自动识别中文代码页面。

  十、glibc 2.2的汉化实验

  glibc 2.2的一个重要方面就是彻底国际化,比如wchar_t内码为4字节Unicode(UCS-4)。对于最新国家标准18030-2000的支持更是自然而然的事。

  我的兴趣所在却是UTF-8。试验UTF-8的条件终于成熟了。

  第一件事,去http://dickey.his.com/xterm/xterm.html取来最新的 xterm 源码包,

tar zxf xterm.tar.gz
./configure --enable-wide-chars
make

  得到 xterm 执行码。调出一个新的 xterm 窗口,


./xterm -u8 -fn 9x18U  

  在这个 xterm 窗口中,理论上说,所有的Unicode文件都能显示,中文自不例外。假如手头一时找不到UTF-8编码的文件,转一个很容易。比如 A.GBK是一个国标文件,用 iconv -f GBK -t UTF-8 A.GBK A.UTF-8马上得到一个UTF-8文件。看一下对不对, cat A.UTF-8

  第二件事,造一个使用UTF-8的中文环境。

  先拿两个文件来,

cp /usr/share/i18n/charmaps/UTF-8.gz .&#59;
gunzip UTF-8.gz cp /usr/share/i18n/locales/zh_CN


  由这两个文件便可以生成UTF-8中文环境,

localedef -v -c -f ./UTF-8 -i ./zh_CN /usr/lib/locale/zh_CN.UTF-8

  有了这一中文环境,就可以选用了,

LC_ALL=zh_CN.UTF-8&#59; export LC_ALL

  如何证明呢,看时间, date +%c结果是 2000年11月09日星期五EST下午10点39分15秒甚至ls -l也显示出中文月份。至于中文输入,chinput,cce就可搞定!

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

投诉/建议联系

admin@discuz.vip

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2026 光电工程师社区 版权所有 All Rights Reserved. Powered by Discuz! X5.0 Licensed 鄂ICP备17021725号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表