Next Previous Contents

3. 软件设置

3.1 bash(1)

要使bash 符合个人的口味,有几个文档需要修改:

下文将例举对这些文档的修改。首先,最重要的文档是:/etc/profile。如以下几节中可以看到,一向以修改这个文档的方式来设定Linux的各种功能。


# /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

此处为 /etc/bashrc


# /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"

此处为 .bashrc


# $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}
}

此处为.bash_profile


# $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

此处为 .bash_logout


# $HOME/.bash_logout

clear

此处为 .inputrc


# $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

设定下列参数使 backspace 和 delete 两键在xterm 和其他X11应用中运作正常:

bash(1) 和 readline(3) 的man说明中有更多这方面的资料。

不要以为这些设定在每种应用中都可正常运作。例如,在xterm中运行joe,有些键位就不起作用;运行rxvt也有相同的问题。有人说,这是termcap的问题。

3.2 ls(1)

ls可显示目录,并用颜色提示不同种类的文档。要使用这项功能,则在/etc/profile中增添以下内容:

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'

这样就设定了LS_COLORS的环境参数,其中存有/etc/DIR_COLORS中的颜色变数表。注意:这项设置对rxvt的有些版本无效,原因不明。不妨改用xterm中的一些其他特性。可能rxvt中仍有程序错误,以致有时不能运用设定的环境参数。

3.3 less(1)

利用这个优越的页面调度程序不仅能浏览一般文字文档,也能观看压缩的gzip文档和以tar和zip格式储存的档案文档,其设置如下:

3.4 emacs(1)

有些emacs 版本没有预先设置颜色和语法标示。可在.emacs中增添:

(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

这只对X11有用。各位不妨从emacs文献中探索符合各种需要的设定 -- 有时可能要耗费几个月的时间测试....

3.5 joe(1)

检查/usr/bin/中的jmacsjstar、和jpico 是否symlink到joe,或是独立的二进制程式;如果仍为後者,则不妨将其作出symlink,以节省硬盘空间。

~# cd /usr/bin
/usr/bin# ln -sf joe jmacs ; ln -sf joe jstar ; ln -sf joe jpico

然後只要把/usr/lib/joe/joerc作为.joerc抄到home目录,再作出符合需要的修改。

3.6 jed

这是个颇为好用的编辑器:比emacs短小精悍,宜於设置,并且IMHO模拟其他编辑器也相当不错。在作者工作的大学中有许多使用者都用jed模拟VMS系统的编辑器EDT

设置文档为.jedrc/usr/lib/jed/lib/*;前者可从後者目录中的jed.rc修改而得。

3.7 TeX and Friends

如果电脑中装有TeTeX,可作下列几项设定:

3.8 PPP

目前Linux的内核几乎都已编入了PPP + TCP/IP功能,设定了回送地址(loopback)和正确安装了pppd软件。那麽有两种方式可使PPP正常运作:(a)手动设定;和(b)利用一个程式自动设定。首先,试试手动设定。

假定ISP的资料如下:

手动设置PPP联网的方式为:

花了这麽大的力气,如果运气好,有这样的设定就够了。否则,那就准备开始翻看PPP-HOWTO吧。

以上就是手动设置。不过,现在有一套不错的软件,可免除这项苦差事:这套软件称为ezppp,可在下列网址找到: http://www.serv.net/~cameron/ezppp/index.html

3.9 POP用户端程序

要从POP伺服器收取邮件,可使用POP用户端程序,如fetchpopfetchmail等。如果ISP的PPP伺服器不支持LAST指令,则後者可能是唯一可用的方法。

设置这些用户端程序的方法如下:

3.10 X 视窗系统

一旦X 视窗可以运行後(正确地设定了显示卡等细致工作),就可作出其他各色各样的设置,完全取决于使用何种视窗管理程序。不过,归根结底,只是编辑home目录内的一个或几个ASCII文档。至於视窗管理程序:

此外,一定要有适当的.xinitrc,例如:

#!/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

3.11 Fortran

依据经验,代用g77的最好Fortran-to-C翻译器是f2c和前端软件yaf77

yaf77可从 ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz及其镜象网址取得。

3.12 用户设置

新用户在首次登录时,最好已有几个设置文档可用。可将下列设置档放在/etc/skel中:bashrc、bash_profile、bash_logout、inputrc、less、 xinitrc、fvwmrc、fvwm2rc95、Xmodmap、Xdefaults、jedrc、joerc、emacs

(注意:由于排版的缘故,上面每个文档前均未放置‘.’符号)

.pinerc 无法进行充分设定;但至少要设定user-domainsmtp-servernntp-server 的参数。


Next Previous Contents