系统设置-HOWTO <author>作者:Guido Gonzato, <tt><htmlurl url="mailto:guido@ibogfs.cineca.it" name="guido@ibogfs.cineca.it"></tt><newline> (译者:赵平望 tchao@worldnet.att.net) <date>v0.99.3,1997年11月4日 <abstract> 编写本文的目的在于使您更加快速简便地调试刚安装好的Linux系统。文内附有系统设置文档,适合最常用的应用软件,使您能尽快利用这套极为好用的系统。 </abstract> <toc> <sect> 导言<label id="Introduction"> <p> 我在许多PC上安装过Linux系统,发现目前的各种Linux版本都相当不错,只是其中常常缺少基本的设置文档,令人感到烦恼。多数软件都在安装後即可使用,但有些不行。我不认为新手需要忍耐“backspace“键的问题,或认为<tt/emacs/没有颜色,以及在显示目录时,只有黑白两色的现象。这些都是令人遗憾的事。 为使我便于记得哪个设置需要首先设定,我作了摘要笔记,後来加以修改润色,就成了这份HOWTO。文内载列了一些设置文档的实例,供最常用的应用软件之用。这些实例均以我安装Red Hat版本的Linux系统为依据,如您使用其他版本,就要小心注意。请不要把文内的任何细微末节都当作颠扑不灭的真理:这些设置只是正好对我有用。如果您想更加了解Linux系统,就必须阅读随同软件的说明,和这方面的HOWTO。这份HOWTO只是一份摘要--希望对您方便、有用。 PC硬件设置的种类繁多,但依我的经验,一种十分常见的设置是:大容量的硬盘分为三个分割区(DOS/Windows区、Linux区和交换(swap)区)、数据机、光盘机、打印机和滑鼠。我假定这些设备都是您要设置的硬件,不过要把文内的技巧转用于不同的设置也非难事。此外我还假定您在编辑调试时,具有root的权限。 好吧!现在就让我们卷起袖子来干吧! <sect> 一般系统设定 <p> <sect1> 键盘 <p> 首先,如何设置键盘。如在安装时遗漏了这一步骤,或改用了其他键盘,则需要: <itemize> <item> 从<tt>/usr/lib/kbd/keytables/</tt>中选取适当的键盘表;例如,<tt/it.map/ 就代表义大利键盘 <item> 编辑<tt>/etc/sysconfig/keyboard</tt>,使其使用:<tt>KEYTABLE="/usr/lib/kbd/keytables/it.map"</tt> <item> 设定键盘的重复率和延迟时间,将以下内容加附到<tt>/etc/profile</tt>或rc的文档之一: <tscreen><verb> /sbin/kbdrate -s -r 16 -d 500 # or whatever --或其他数值 </verb></tscreen> <item> 最後运行下列指令,以便允许设定键盘: <tscreen><verb> ~# chmod 666 /dev/port </verb></tscreen> </itemize> 在下次开机时,键盘将如常工作。 <sect1> 内核 <p> IMHO,其次首要之务是编制适合系统的内核。编制工作并不困难,但无论如何都得看一看<tt>/usr/src/linux/</tt>内的<tt/README/档。注意事项: <itemize> <item> 仔细想清楚需要电脑完成何种工作。一次选定内核,同时作出必要的修补(patch),远比每月作一次设置或编译一次内核来得省事;如果把Linux作为伺服器使用,尤应注意。不要忘记把未来可能需要增加的硬件都先编制在内; <item> 如果你的电脑用Cyrix芯片,则应作出必要的修补,以便提高电脑性能。有关资料见: <tt><htmlurl url="http://www.linuxhq.com/patch/20-p0591.html" name="http://www.linuxhq.com/patch/20-p0591.html"></tt>; <item> 笔记型电脑的用户应参看下列资料,以便改进屏幕的视觉效果:<tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/console/noblink-1.7.tar.gz" name="noblink"></tt> ; <item> 笔记型电脑的用户如欲使用PCMCIA modem/fax卡,<em/千万不要/ 将串行口作为模组编译;如果编入内核,则PCMCIA就无法运行。 </itemize> <sect1> 开机信息(Bootup Messages) <p> 如要自订开机信息,先看看 <tt>/etc/rc.d/rc.local</tt> 的信息是否会取代 <tt>/etc/issue</tt> 和<tt>/etc/motd</tt> 的信息。如果确实如此,那就开始用编译器动手编写吧。 <sect1> 用户名称(Hostname) <p> 用指令 <tt/hostname new_host_name/ 尚嫌不足。还应编辑<tt>/etc/sysconfig/network</tt> 和更改其中的用户名称。 <sect1> Sendmail 停机 <p> 有些系统在开机时受 sendmail 的影响停机。检查 <tt>/etc/hosts</tt> 中有否下列一行: <tscreen><verb> 127.0.0.1 localhost </verb></tscreen> <sect1> 设备驱动器(Device Drivers) <p> 在 <tt>/dev</tt> (或实际设备驱动器的路径)中的设备可能不存在。检查滑鼠、数据机和光盘机相应的驱动器为何,然後查看: <tscreen><verb> ~# cd /dev /dev# ln -s /dev/cua0 mouse /dev# ln -s /dev/cua1 modem /dev# ln -s /dev/hdb cdrom </verb></tscreen> 并且不妨对这些设备下<tt/chmod 666/ 指令,使所有用户均可使用。注意:有些□上型的滑鼠驱动器设在 <tt>/dev/psaux</tt>,在设置X11时应注意此点。 此外,运行<tt>chmod 666 /dev/fd*</tt>後,所有非root用户均可使用软盘。这必然会产生安全问题,不过这方面所知不多,欢迎提供资料。 <sect1> 滑鼠(Mouse) <p> <tt/gpm/ 的滑鼠功能对在主控台进行剪贴至为有用,也可在一些应用中使用滑鼠。检查有否一个称为<tt>/etc/sysconfig/mouse</tt> 的文档,内容如下: <tscreen><verb> MOUSETYPE="Microsoft" XEMU3=yes </verb></tscreen> 此外,还得有一个<tt>/etc/rc.d/init.d/gpm</tt>档。当然其中设置得与滑鼠的类型相符。注意:有些□上型电脑中, <tt/MOUSETYPE/ 为 <tt>``PS/2''</tt>. <sect1> 加载位置(Mount Points) <p> 为方便使用,对软盘、光盘机和DOS分割区及其他设备均可设定加载位置或加载点。办法如下: 首先建立MS-DOS软盘、ext2软盘、光盘机和DOS分割区及并行口ZIP机的加载位置。 <tscreen><verb> ~# cd /mnt /# mkdir a: ; mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip </verb></tscreen> 然後修改 <tt>/etc/fstab</tt> 档,并增加下列内容: <tscreen><verb> /dev/fd0 /mnt/a: msdos user,noauto 0 1 /dev/fd0 /mnt/floppy ext2 user,noauto 0 1 /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 1 /dev/hda1 /mnt/dos msdos user,noauto 0 1 /dev/sda4 /mnt/zip vfat user,noauto 0 1 </verb></tscreen> 显而易见,第一栏必须使用正确的设备名称。如要使用Win95的长文档名,则在最後一行中用<tt/vfat/ 代替 <tt/msdos/ <sect1> LILO 和 Loadlin <p> 许多用户希望电脑能同时运行Linux和DOS/Windows两套操作系统,并在开机时选用操作系统。首先假定 <tt>/dev/hda1</tt>中装有 DOS/Windows, <tt>/dev/hda2</tt>中装有Linux. 方法如下: <tscreen><verb> ~# fdisk 将 /dev/hda 作为默认设备! Command (m for help):a Partition number (1-4): 2 Command (m for help):w ~# </verb></tscreen> 这使Linux分割区可以开机启动;这项步骤应在运行LILO的<tt/QuickInst/时,由<tt/activate/执行,但Red Hat版本显然无此功能。 在最基本的<tt>/etc/lilo.conf</tt>档中填上: <tscreen><verb> boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg.txt # 自订开机信息 root = current image = /boot/vmlinuz label = linux other = /dev/hda1 table = /dev/hda label = dos </verb></tscreen> 启动 <tt>/sbin/lilo</tt>,就可开始使用两种操作系统。<tt/LILO/ 是安装系统过程中的关键部份,无论如何应该阅读这方面的文献。 如要从DOS不重新启动电脑而直接启动Linux,可以把 <tt/LOADLIN.EXE/ 置于DOS路径下的一个子目录(DOS分割区)内; 然後把内核拷贝到,例如,名称为<tt/C:\DOS\VMLINUZ/ 的子目录。下面的 <tt/.BAT/ 档就可用来启动linux: <tscreen><verb> rem linux.bat smartdrv /C loadlin c:\dos\vmlinuz root=/dev/hda2 r </verb></tscreen> 如使用Windows 95,则设定这个<tt/.BAT/档的特性,使其从MS-DOS状态启动。 <sect1> 打印机的设置 <p> Red Hat的设置工具可轻而易举地用来设定HP DeskJet 400型打印机;如果不用Red Hat版本的Linux,则可自己手动设定。 假定要用非PostScript打印机来打印原始文件(例如 C 程序的原始码文本)和利用GhostScript来打印PostScript文档(此处假定已安装了GhostScript)。 设定打印机的步骤如下: <itemize> <item> 检查并行口的打印机: <tscreen><verb> ~# echo "hello, world" > /dev/lp0 ~# echo "hello, world" > /dev/lp1 </verb></tscreen> 记下联机的打印机和端口。 <item> 设定两个 spool 子目录: <tscreen><verb> ~# cd /var/spool/lpd /var/spool/lpd/# mkdir raw ; mkdir postscript </verb></tscreen> <item> 如果打印机印出的结果有“台阶”现象(多数InkJet打印机都有),则需要一个过滤器。试印下面两列: <tscreen><verb> ~# echo "first line" > /dev/lp1 ; echo "second line" > /dev/lp1 </verb></tscreen> 如果印出的结果如下: <tscreen><verb> first line second line </verb></tscreen> 将此文档作为<tt>/var/spool/lpd/raw/filter</tt>保存: <tscreen><verb> #!/bin/sh # 这个过滤器可取消“台阶”现象 awk '{print $0, "\r"}' </verb></tscreen> 运行<tt>chmod 755 /var/spool/lpd/raw/filter</tt>使其成为可执行文档。 <item> 要制作用于PostScript仿真的过滤器,则将过滤器定名为 <tt>/var/spool/lpd/postscript/filter</tt>: <tscreen><verb> #!/bin/sh DEVICE=djet500 RESOLUTION=300x300 PAPERSIZE=a4 SENDEOF= nenscript -TUS -ZB -p- | if [ "$DEVICE" = "PostScript" ]; then cat - else gs -q -sDEVICE=$DEVICE \ -r$RESOLUTION \ -sPAPERSIZE=$PAPERSIZE \ -dNOPAUSE \ -dSAFER \ -sOutputFile=- - fi if [ "$SENDEOF" != "" ]; then printf "\004" fi </verb></tscreen> (上例以使用HP DeskJet打印机为依据。如为其他打印机,则应作出相应的修改。) <item> 最後在<tt>/etc/printcap</tt>内增加下列内容: <tscreen><verb> # /etc/printcap lp|ps|PS|PostScript|djps:\ :sd=/var/spool/lpd/postscript:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/postscript/filter:\ :sh: raw:\ :sd=/var/spool/lpd/raw:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/raw/filter:\ :sh: </verb></tscreen> </itemize> 对于其他更加复杂或奇特的打印设置,请参考Printing-HOWTO. 使用Red Hat的用户注意:Printtool选取的GSDEVICE可以用于打印,但不一定是最好的选择。不妨对<tt/postscript.cfg/档作些小修改;例如,把GSDEVICE内<tt/cdj500/ 改为 <tt/djet500/,就可加快打印的速度。 <sect> 软件设置 <p> <sect1> <tt/bash/(1) <p> 要使<tt/bash/ 符合个人的口味,有几个文档需要修改: <itemize> <item><tt>/etc/bashrc</tt> 存有整个系统的别名和功能; <item><tt>/etc/profile</tt> 存有整个系统的环境参数和启动程式; <item><tt>$HOME/.bashrc</tt> 存有用户的的别名和功能; <item><tt>$HOME/.bash_profile</tt> 存有用户的环境参数和启动程式; <item><tt>$HOME/.bash_logout</tt> 存有退出系统时的结束方式; <item><tt>$HOME/.inputrc</tt> 存有主要绑定数值和其他位元数值; </itemize> 下文将例举对这些文档的修改。首先,最重要的文档是:<tt>/etc/profile</tt>。如以下几节中可以看到,一向以修改这个文档的方式来设定Linux的各种功能。 <code> # /etc/profile # System wide environment and startup programs # --整个系统环境和启动程式 # # Functions and aliases go in /etc/bashrc # --/etc/bashhrc中的功能和别名 # # This file sets the following features: # --这个文档设定下列功能: # # o path --路径 # o prompts --提示符 # o a few environment variables --几个环境变数 # o colour ls --ls 的颜色 # o less behaviour --设定less的功能 # o keyboard settings --键盘设置 # # Users can override these settings and/or add others in their # $HOME/.bash_profile # 用户可在$HOME/.bash_profile中取消这些设定和(或)增加其他设定 # set a decent path # 设定可行的路径 echo $PATH | grep X11R6 > /dev/null if [ $? = 1 ] ; then # add entries to the path PATH="$PATH:/usr/X11R6/bin:$HOME/bin:." fi # notify the user: login or non-login shell. If login, the prompt is # coloured in blue; otherwise in magenta. Root's prompt is red. # 通知用户:登录(login)或不登录(non-login)的外围程序(shell)。 # 如果登录,则提示符为蓝色,否则为紫红色。Root的提示符为红色。 USER=`whoami` if [ $LOGNAME = $USER ] ; then COLOUR=44 else COLOUR=45 fi if [ $USER = 'root' ] ; then COLOUR=41 fi # put a real escape character instead of ^[ # 用真正的换码字符代替^[ PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ ' PS2="Continue> " # no core dumps, please # 请勿转储内存信息 ulimit -c 0 # set umask # 设定umask if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then umask 002 else umask 022 fi # a few variables # 几项变数 USER=`id -un` LOGNAME=$USER MAIL="/var/spool/mail/$USER" EDITOR=jed HOSTNAME=`/bin/hostname` HISTSIZE=1000 HISTFILESIZE=1000 export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE # enable colour ls # 设定ls的颜色 eval `dircolors /etc/DIR_COLORS -b` export LS_OPTIONS='-F -s -T 0 --color=tty' # customize less # 设定less LESS='-M-Q' LESSEDIT="%E ?lt+%lt. %f" LESSOPEN="| lesspipe.sh %s" VISUAL=jed LESSCHARSET=latin1 export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET # customise the keyboard # 设定键盘 /sbin/kbdrate -s -r 16 -d 500 for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done </code> 此处为 <tt>/etc/bashrc</tt>: <code> # /etc/bashrc # System wide functions and aliases # 整个系统的功能和别名 # # Environment stuff goes in /etc/profile # /etc/profile中的环境参数 # alias which="type -path" alias d="ls" alias dir="d" </code> 此处为 <tt/.bashrc/: <code> # $HOME/.bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # this is needed to notify the user that they are in non-login shell # 需要以下设定,以便通知处於不登录(non-login)外围程序(shell)中的用户 COLOUR=45 # put a real escape character instead of ^[ # 用真正的换码字符代替^[ PS1='^[[$COLOUR;37m$USER:^[[37;40m\w\$ ' # aliases # 别名 alias cp='cp -i' alias l=less alias lyx='lyx -width 900 -height 700' alias mv='mv -i' alias rm='rm -i' alias x=startx # A few useful functions # 几个有用的功能 inst() # Install a .tar.gz archive in the current directory. { gzip -dc $1 | tar xvf - } cz() # List the contents of a .zip archive. { unzip -l $* } ctgz() # List the contents of a .tar.gz archive. { for file in $* ; do gzip -dc ${file} | tar tf - done } tgz() # Create a .tgz archive a la zip. { name=$1 ; tar -cvf $1 ; shift tar -rf ${name} $* gzip -S .tgz ${name} } </code> 此处为<tt/.bash_profile/: <code> # $HOME/.bash_profile # User specific environment and startup programs # 用户特定的环境参数和启动程式 # # This file contains user-defined settings that override # those in /etc/profile # 这个文档中存有用户自订的设置,可取代/etc/profile 中的数值 # # Get aliases and functions # 设定别名和功能 # if [ -f ~/.bashrc ]; then . ~/.bashrc fi # re-get PS1 settings # 重新设定PS1数值 if [ $USER = 'root' ] ; then COLOUR=41 else COLOUR=44 fi # put a real escape character instead of ^[ # 用真正的换码字符代替^[ PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ ' export PS1 </code> 此处为 <tt/.bash_logout/: <code> # $HOME/.bash_logout clear </code> 此处为 <tt/.inputrc/: <code> # $HOME/.inputrc # key bindings # 主要绑定 "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line # (F1 .. F5) are "\e[[A" ... "\e[[E" # (F1 .. F5) 分别为 "\e[[A" ... "\e[[E" "\e[[A": "info \C-m" set bell-style visible # please don't beep # --喇叭不发声 set meta-flag On # allow 8-bit input (i.e, accented letters) # --允许8-位元输入(例如重音字符)译注:用于欧洲 # 文字或GB码及Big5码) set convert-meta Off # don't strip 8-bit characters # 不取消8-位元字符 set output-meta On # display 8-bit characters correctly # 正确显示8-位元字符 set horizontal-scroll-mode On set show-all-if-ambiguous On </code> 设定下列参数使 backspace 和 delete 两键在<tt/xterm/ 和其他X11应用中运作正常: <itemize> <item> 在<tt/.xinitrc/中添加: <tscreen><verb> usermodmap=$HOME/.Xmodmap xmodmap $usermodmap </verb></tscreen> <item> 在<tt/.Xmodmap/中添加: <tscreen><verb> keycode 22 = BackSpace keycode 107 = Delete </verb></tscreen> 以上就设定了主控台的参数。 要修改<tt/xterm/,则更改如下: <item> 在<tt/.Xdefaults/中增添: <tscreen><verb> xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\ <Key>Delete: string(0x1b) string("[3~")\n\ <Key>Home: string(0x1b) string("[1~")\n\ <Key>End: string(0x1b) string("[4~")\n\ Ctrl<Key>Prior: string(0x1b) string("[40~")\n\ Ctrl<Key>Next: string(0x1b) string("[41~") nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\ <Key>Delete: string(0x1b) string("[3~")\n\ <Key>Home: string(0x1b) string("[1~")\n\ <Key>End: string(0x1b) string("[4~")\n\ Ctrl<Key>Prior: string(0x1b) string("[40~")\n\ Ctrl<Key>Next: string(0x1b) string("[41~") </verb></tscreen> </itemize> 在<tt/bash/(1) 和 <tt/readline/(3) 的man说明中有更多这方面的资料。 不要以为这些设定在每种应用中都可正常运作。例如,在<tt/xterm/中运行<tt/joe/,有些键位就不起作用;运行<tt/rxvt/也有相同的问题。有人说,这是termcap的问题。 <sect1> <tt/ls/(1) <p> <tt/ls/可显示目录,并用颜色提示不同种类的文档。要使用这项功能,则在<tt>/etc/profile</tt>中增添以下内容: <tscreen><verb> eval `dircolors /etc/DIR_COLORS -b` export LS_OPTIONS='-F -T 0 --color=tty' </verb></tscreen> 这样就设定了<tt/LS_COLORS/的环境参数,其中存有<tt>/etc/DIR_COLORS</tt>中的颜色变数表。注意:这项设置对<tt/rxvt/的有些版本无效,原因不明。不妨改用<tt/xterm/中的一些其他特性。可能<tt/rxvt/中仍有程序错误,以致有时不能运用设定的环境参数。 <sect1> <tt/less/(1) <p> 利用这个优越的页面调度程序不仅能浏览一般文字文档,也能观看压缩的gzip文档和以tar和zip格式储存的档案文档,其设置如下: <itemize> <item> 如要配合使用方向键,则将以下以ASCII编写的一般文字档<tt/.lesskey/ 置于home目录内: <tscreen><verb> ^[[A back-line ^[[B forw-line ^[[C right-scroll ^[[D left-scroll ^[OA back-line ^[OB forw-line ^[OC right-scroll ^[OD left-scroll ^[[6~ forw-scroll ^[[5~ back-scroll ^[[1~ goto-line ^[[4~ goto-end ^[[7~ goto-line ^[[8~ goto-end </verb></tscreen> 然後运行指令<tt/lesskey/。这会生成绑定键位的二进制文档<tt/.less/。 <item> 编制下列称为<tt>/usr/bin/lesspipe.sh</tt>的文档: <code> #!/bin/sh # This is a preprocessor for 'less'. It is used when this environment # variable is set: LESSOPEN="|lesspipe.sh %s" # 此为‘less’的预处理器。当环境参数定为LESSOPEN="|lesspipe.sh %s" # 时,便起用这个预处理器。 # # lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # View contents of .tar and .tgz files # 阅读.tar和.tgz档的内容 *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # View compressed files correctly # 正确阅读压缩文档 *.zip) unzip -l $1 2>/dev/null ;; # View archives # 阅读档案文档 *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -q -p -i -l $1 2>/dev/null ;; *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` FILE=`echo $FILE | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tascii -mandoc $1 fi ;; *) FILE=`file -L $1` ; # Check to see if binary # 检查是否为二进制文档 FILE1=`echo $FILE | cut -d ' ' -f 2` FILE2=`echo $FILE | cut -d ' ' -f 3` if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \ -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then strings $1 fi ;; esac } lesspipe $1 </code> and remember to make it executable with <tt/chmod 755 lesspipe.sh/. 切记将其作为<tt/chmod 755 lesspipe.sh/下的可执行档。 <item> 在 <tt>/etc/profile</tt>中添加: <tscreen><verb> LESS="-M-Q" # long prompt, silent --长提示符、无声 LESSEDIT="%E ?lt+%lt. %f" # edit top line --编辑首行 LESSOPEN="| lesspipe.sh %s" # filter --过滤器 VISUAL=jed # default editor---insert your favourite # 默认编辑器---放入最喜欢的编辑器 LESSCHARSET=latin1 # display accented letters if needed # 在需要时,显示重音字符 export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET </verb></tscreen> 此处设定变数<tt/LESSCHARSET/是因为作者居住在义大利,想要使用ISO 8859/1字符集的缘故,因此美国人、日本人、俄罗斯人等其他各国人士最好不要作此设定。 </itemize> <sect1> <tt/emacs/(1) <p> 有些<tt/emacs/ 版本没有预先设置颜色和语法标示。可在<tt/.emacs/中增添: <tscreen><verb> (global-font-lock-mode t) (setq font-lock-maximum-decoration t) </verb></tscreen> 这只对X11有用。各位不妨从<tt/emacs/文献中探索符合各种需要的设定 -- 有时可能要耗费几个月的时间测试.... <sect1> <tt/joe/(1) <p> 检查<tt>/usr/bin/</tt>中的<tt/jmacs/、 <tt/jstar/、和<tt/jpico/ 是否symlink到<tt/joe/,或是独立的二进制程式;如果仍为後者,则不妨将其作出symlink,以节省硬盘空间。 <tscreen><verb> ~# cd /usr/bin /usr/bin# ln -sf joe jmacs ; ln -sf joe jstar ; ln -sf joe jpico </verb></tscreen> 然後只要把<tt>/usr/lib/joe/joerc</tt>作为<tt/.joerc/抄到home目录,再作出符合需要的修改。 <sect1> <tt/jed/ <p> 这是个颇为好用的编辑器:比<tt/emacs/短小精悍,宜於设置,并且IMHO模拟其他编辑器也相当不错。在作者工作的大学中有许多使用者都用<tt/jed/模拟VMS系统的编辑器<tt/EDT/。 设置文档为<tt/.jedrc/ 和 <tt>/usr/lib/jed/lib/*</tt>;前者可从後者目录中的<tt/jed.rc/修改而得。 <itemize> <item> 要使 <tt/jed/ 正确使用一些键位,则编写一个<tt>/usr/lib/jed/lib/defaults.sl</tt> 档,内容只有一行: <tscreen><verb> () = evalfile("linux"); </verb></tscreen> <item> 编辑 <tt>/usr/lib/jed/lib/linux.sl</tt>; 去除<tt>Info_Directory = "/usr/info";</tt>行前的注释符号并在<tt/UCB_Mailer =/; 後添加<tt>/bin/mail</tt> <item> 设置<tt/jed/ 的参数使其模拟<tt/EDT/ (或其他编辑器)的工作不难:只须编辑<tt/.jedrc/中的几行内容。 如果要用小键盘中的‘+’键删字,而不只删一个字母,则在<tt/.jedrc/中<tt/() = evalfile("edt");/行之後增添下列内容: <tscreen><verb> unsetkey("\eOl"); unsetkey("\eOP\eOl"); setkey("edt_wdel", "\eOl"); setkey("edt_uwdel", "\eOP\eOl"); </verb></tscreen> <item> 在<tt/EDT/模拟中,要使<tt/xjed/使用数字小键盘,则须在<tt/.Xmodmap/中添加下列内容: <tscreen><verb> keycode 77 = KP_F1 keycode 112 = KP_F2 keycode 63 = KP_F3 keycode 82 = KP_F4 keycode 86 = KP_Separator </verb></tscreen> 同时确定<tt>/etc/X11/XF86Config</tt>中有下列内容: <tscreen><verb> # ServerNumLock # must be commented out --必须取消前面的注释符号 XkbDisable </verb></tscreen> 这项设置适用于XFree3.2。除非使用标准的美国键位键盘,“XkbDisable“可能会有一些小问题。不妨自己找找有什麽问题。 <item> 在<tt/.Xdefaults/中增加以下内容可以更改<tt/xjed/的颜色: <tscreen><verb> xjed*Geometry: 80x32+150+50 xjed*font: 10x20 xjed*background: midnight blue </verb></tscreen> 在xjed.doc文档中有更多这方面的资料。 </itemize> <sect1> TeX and Friends <p> 如果电脑中装有TeTeX,可作下列几项设定: <itemize> <item> 如须使用连字符(hyphenation),则可修改<tt>/usr/lib/texmf/texmf/tex/generic/config/language.dat</tt>,然後运行: <tscreen><verb> ~# texconfig init ; texconfig hyphen </verb></tscreen> <item> 如果在<tt>/usr/lib/texmf/texmf/tex/latex/</tt>下输入文档後才安装LaTeX软件,则应运行 <tt/texhash/使TeTeX 认识新软件。 <item> 如要设定<tt/dvips/, 则须编辑<tt>/usr/lib/texmf/texmf/dvips/config/config.ps</tt>。注意:有关默认分辨率的参数也影响 <tt/xdvi/的运行;如果每次运行时发现都要创造字体,则可改动 <tt/.Xdefault/的内容如下: <tscreen><verb> XDvi*mfmode: </verb></tscreen> 这应有所帮助。 </itemize> <sect1> PPP <p> 目前Linux的内核几乎都已编入了PPP + TCP/IP功能,设定了回送地址(loopback)和正确安装了<tt/pppd/软件。那麽有两种方式可使PPP正常运作:(a)手动设定;和(b)利用一个程式自动设定。首先,试试手动设定。 假定ISP的资料如下: <itemize> <item> Phone number: 1234567 --电话号码 <item> Name server: 123.231.112.111 --域名伺服器地址 <item> Mail server: mbox.supernet.edu --邮件伺服器地址 <item> Domain: supernet.edu --域名 <item> Remote hostname: www.supernet.edu --远程主机名称 <item> Your username: John --用户姓名 <item> Your password: _Loo%ny --用户密码 </itemize> 手动设置PPP联网的方式为: <itemize> <item> 编制 <tt>/usr/local/bin/ppp-on</tt>档,将用于与ISP连接: <tscreen><verb> #!/bin/sh # ppp-on: script to connect to an ISP --连接ISP的程式 INIT=ATX3 # or whatever your modem wants --或符合特定数据机启动的设置 PHONE=1234567 /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDP$PHONE \ CONNECT '' " user John </verb></tscreen> 然後运行<tt>chmod 755 /usr/local/bin/ppp-on</tt>使其成为可执行档。如果ISP不使用PAP协议,则可用下列程式: <tscreen><verb> #!/bin/sh # ppp-on: script to connect to an ISP ----连接ISP的程式 INIT=atx3 # or whatever your modem wants ----或符合特定数据机启动的设置 PHONE=1234567 /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDT$PHONE \ CONNECT '' 'ogin' John 'word' _Loo%ny ''" /dev/modem 38400 \ modem defaultroute </verb></tscreen> <item> 编制<tt>/usr/local/bin/ppp-off</tt>用于结束PPP连接: <tscreen><verb> #!/bin/sh # ppp-off --文档名称 DEVICE=ppp0 if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` if [ ! "$?" = "0" ]; then echo "removing stale $DEVICE pid file." rm -f /var/run/$DEVICE.pid ; exit 1 fi echo "$DEVICE link terminated" ; exit 0 fi # link not active echo "$DEVICE link is not active" ; exit 1 </verb></tscreen> 运行<tt>chmod 755 /usr/local/bin/ppp-off</tt>,使其成为可执行档。 <item> 编写<tt>/etc/ppp/options</tt>: <tscreen><verb> # /etc/ppp/options --文档名称 /dev/modem 38400 lock crtscts modem asyncmap 0 remotename www.supernet.edu defaultroute </verb></tscreen> <item> 如果ISP使用PAP协议(多数ISP都使用),则编制<tt>/etc/ppp/pap-secrets</tt>: <tscreen><verb> # /etc/ppp/pap-secrets --文档名称 # username remotehost secret # 用户姓名 远程主机名称 用户密码 John www.supernet.edu _Loo%ny </verb></tscreen> <item> 编辑 <tt>/etc/resolv.conf</tt>: <tscreen><verb> # /etc/resolv.conf --文档名称 search supernet.edu nameserver 123.231.112.111 </verb></tscreen> <item> 编辑 <tt>/etc/sendmail.cf</tt>。寻找以<tt/DS/开始的一行,并更改如下: <tscreen><verb> DSmbox.supernet.edu </verb></tscreen> </itemize> 花了这麽大的力气,如果运气好,有这样的设定就够了。否则,那就准备开始翻看PPP-HOWTO吧。 以上就是手动设置。不过,现在有一套不错的软件,可免除这项苦差事:这套软件称为<tt/ezppp/,可在下列网址找到: <tt> <htmlurl url="http://www.serv.net/˜cameron/ezppp/index.html" name="http://www.serv.net/˜cameron/ezppp/index.html"> </tt>。 <sect1> POP用户端程序 <p> 要从POP伺服器收取邮件,可使用POP用户端程序,如<tt/fetchpop/或 <tt/fetchmail/等。如果ISP的PPP伺服器不支持LAST指令,则後者可能是唯一可用的方法。 设置这些用户端程序的方法如下: <itemize> <item><tt/fetchpop/:首次运行这个软件时会要求提供一些资料。回答所有问题後,就设定了这个软件。 <item><tt/fetchmail/:参照以下□例 <tt/.fetchmailrc/: <tscreen><verb> # $HOME/.fetchmailrc --文档名称 poll mbox.supernet.edu with protocol pop3; user john there with password _Loo%ny is john here mda "/usr/bin/procmail -f fetchmail" </verb></tscreen> 最後一行并非必需。必须运行<tt/chmod 600 .fetchmailrc/ 设定此档的使用权限,否则<tt/fetchmail/会完全拒绝运行。 </itemize> <sect1> X 视窗系统 <p> 一旦X 视窗可以运行後(正确地设定了显示卡等细致工作),就可作出其他各色各样的设置,完全取决于使用何种视窗管理程序。不过,归根结底,只是编辑home目录内的一个或几个ASCII文档。至於视窗管理程序: <itemize> <item><bf/fvwm/:将<tt>/etc/X11/fvwm/system.fvwmrc</tt>作为<tt/.fvwmrc/拷贝到home目录,看看内容并开始试验。这个<tt/system.fvwmrc/ 实在简单,对<tt/fvwm/至不公平。 <item><bf/fvwm95-2/:将<tt>/etc/X11/fvwm95-2/fvwm2rc95</tt>作为<tt/.fvwm2rc95/拷贝到home目录,然後进行编辑。这个实例相当好用。 <item><bf/TheNextLevel/:很难设置。将<tt>/etc/X11/TheNextLevel/.*</tt>拷贝到home目录,仔细阅读并试改内容。首先试试 <tt/.fvwm2rc.defines/。 </itemize> 此外,一定要有适当的<tt/.xinitrc/,例如: <tscreen><verb> #!/bin/sh # $HOME/.xinitrc --文档名称 # set a few keys correctly --将几个键位设定正确 usermodmap=$HOME/.Xmodmap xmodmap $usermodmap xset s noblank # turn off the screen saver --停止屏幕保护程序 xset s 300 2 # screen saver start after 5 min --5分钟後开始屏幕保护程序 xsetroot -solid "medium blue" & # rxvt 节省内存,但有几个错误程序: # - 不认home和end两键; # - backspace和delete两键和在主控台时的作用不同; # - 颜色不依照环境参数设定; # - 与环境参数时有冲突; # 因此,多数情况下,xterm比较好用。但rxvt在麦金塔机的一些颜色应用上显示较好。 xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \ -title "Color xterm" -geometry 80x25+150+0 & fvwm95-2 </verb></tscreen> <sect1> Fortran <p> 依据经验,代用<tt/g77/的最好Fortran-to-C翻译器是<tt/f2c/和前端软件<tt/yaf77/。 <tt/yaf77/可从<htmlurl url="ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz" name="ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz">及其镜象网址取得。 <sect1> 用户设置 <p> 新用户在首次登录时,最好已有几个设置文档可用。可将下列设置档放在<tt>/etc/skel</tt>中:<tt/bashrc、bash_profile、bash_logout、inputrc、less、 xinitrc、fvwmrc、fvwm2rc95、Xmodmap、Xdefaults、jedrc、joerc、emacs/。 (注意:由于排版的缘故,上面每个文档前均未放置‘.’符号) 对<tt/.pinerc/ 无法进行充分设定;但至少要设定<tt/user-domain/、<tt/smtp-server/和<tt/nntp-server/ 的参数。 <sect> 结束 <label id="TheEnd"> <p> <sect1> 版权声明 (译者注:版权声明不译) <p> Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributedin whole or in part, in any medium physical or electronic, as long as thiscopyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at gregh@sunsite.unc.edu via email. <sect1> 读者回应 <p> 与其他HOWTO相比,这份HOWTO更需要您的建议、批评和支持。不仅是欢迎您提出意见,而且还请您一定要提出意见。如果您发现有任何遗漏之处,请务必通知我。如果您用Red Hat之外的其他Linux版本,而各个设置档不同,或置于其他目录内,也请通知我,以便将其补入。我只希望使Linux愈容易用愈好。 Linux内的软件包罗万象,不可能全部加以说明。请把您的要求或建议限定在“最合理“的软件□围内。至於什麽是“最合理“的软件,那就只有请您自作判断了。 <sect1> 责任声明 <p> ”系统设置-HOWTO“的作者为Guido Gonzato,<tt><htmlurl url="mailto:guido@ibogfs.cineca.it" name="guido@ibogfs.cineca.it"></tt>. 对所有其他HOWTO的作者和编写及保存man使用说明的热心人士我都深致谢意,因为我时常引用他们的作品,获益良多。 本文“照现在的内容“印发。我已尽力使内容正确无误,但当您使用文内的资料时,风险自负。我不对使用本文内的资料造成的任何损害承担责任。 (译者声明:译文内容概由译者负责,与原作者无关。译者亦不对使用本文资料产生的後果负责,特此声明。) 我希望本文对您有用。事实上,每次我在安装Linux时,都发现它很有用。 Guido <tt/=8-)/ </article>