我用了Linux也有一些时间了,Linux里使用许多风格迥异的配置文件,而且与相关的应用程序紧密配合,有的如fstab的文件,这是文件分区挂载的配置文件,我的如下:
-
#device mountpoint filesystem options dump checkpassno
-
/dev/hda6 / ext3 defaults 1 1
-
none /dev/pts devpts gid=5,mode=620 0 0
-
none /dev/shm tmpfs defaults 0 0
-
none /proc proc defaults 0 0
-
none /sys sysfs defaults 0 0
-
/dev/hda5 swap swap defaults 0 0
-
/dev/hda1 /mnt/ubuntu ext3 defaults 0 0
-
/dev/hda2 /mnt/winC ntfs locale=zh_CN.GB18030,umask=0 0 0
-
/dev/hda7 /mnt/winD vfat iocharset=cp936,umask=0,exec,rw 0 0
-
/dev/hda8 /mnt/winH ntfs locale=zh_CN.GB18030,umask=0 0 0
-
/dev/hdc /mnt/cdrom-hdc udf,iso9660 iocharset=cp936,user,noauto 0 0
主要是通过一些制表符和空格分开的组成,每个字段按一定的顺序排列,每列都有相应的意义,特别适合用awk来分析。有的如Grub的配置文件:
-
# grub.conf generated by MagicInstaller.
-
-
# Note that you do not have to rerun grub after making changes to this file.
-
default=1
-
timeout=11
-
gfxmenu=(hd0,5)/boot/grub/message
-
title Ubuntu
-
root (hd0,0)
-
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=61e2d63b-07fa-4a31-9309-4323d19a8641 ro quiet splash locale=zh_CN
-
initrd /boot/initrd.img-2.6.22-14-generic
-
title Microsoft Windows XP
-
rootnoverify (hd0,1)
-
chainloader +1
-
title MagicLinux
-
root (hd0,5)
-
kernel /boot/vmlinuz-2.6.22.12-smp ro root=/dev/hda6 vga=791 splash quiet
-
initrd /boot/initrd-2.6.22.12-smp.img
-
title MagicLinux (Single Mode)
-
root (hd0,5)
-
kernel /boot/vmlinuz-2.6.22.12-smp single ro root=/dev/hda6 vga=791 splash quiet
-
initrd /boot/initrd-2.6.22.12-smp.img
各个启动操作系统的都有相应的启动参数,这些参数按行分开,而不是像fstab那样放在一列,各操作系统以title XXX分开,其它的如默认选择则以等式在最前面。还有的如X Window的xorg.conf,因此太长,我只帖了部分:
-
Section "Monitor"
-
-
# 1440x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 106.47 MHz
-
Identifier "Monitor0"
-
VendorName "Monitor Vendor"
-
ModelName "LAW982"
-
HorizSync 30.0 - 82.0
-
VertRefresh 56.0 - 76.0
-
ModeLine "1440x900_60.00" 106.5 1440 1520 1672 1904 900 901 904 932 -hsync +vsync
-
EndSection
-
-
Section "Device"
-
Identifier "Videocard0"
-
Driver "sis"
-
VendorName "Videocard vendor"
-
BoardName "Silicon Integrated Systems [SiS] 661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter"
-
VideoRam 32768
-
EndSection
这个则将各类的设备配置有相关的Section XXX与EndSection相分开,里面则由相关的配置项与配置参数成对写在一行。这三个文件都是Linux相当重要的文件,它们之间的不同,我觉得完全是历史的原因,而事实上都完全可以使用统一的形式,POSIX标准可能主要为了兼容的原因,没有将它们统一。这些风格迥异的配置文件,也表现了Unix的自由和风格多样性吧,当然从坏的方面来讲,也说明了Unix的混乱。