BBS水木清华站∶精华区

发信人: reden (鱼 ~ 梦娜丽莎的微笑 流星的故事), 信区: Linux 
标  题: Linux 系统设置-HOWTOChinese ParTwo) 
发信站: BBS 水木清华站 (Fri Jan  1 17:42:39 1999) WWW-POST 
 
3. 软件设置 
 
                       3.1 bash(1)  
 
                       要使bash 符合个人的口味,有几个文档需要修改:  
 
                            /etc/bashrc 存有整个系统的别名和功能;  
                            /etc/profile 存有整个系统的环境叁数和启动程式;  
                            $HOME/.bashrc 存有用户的的别名和功能;  
                            $HOME/.bash_profile 存有用户的环境叁数和启动程式; 
  
                            $HOME/.bash_logout 存有退出系统时的结束方式;  
                            $HOME/.inputrc 存有主要绑定数值和其他位元数值;  
 
                       下文将例举对这些文档的修改。首先,最重要的文档是: 
/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应用中运作正常:  
 
                            在.xinitrc中添加:  
 
                                 usermodmap=$HOME/.Xmodmap 
                                 xmodmap $usermodmap 
 
                            在.Xmodmap中添加:  
 
                                 keycode 22 = BackSpace 
                                 keycode 107 = Delete 
 
                            以上就设定了主控台的叁数。 要修改xterm,则更改如下 
:  
                            在.Xdefaults中增添:  
 
                                 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~") 
 
                       在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格式储存的 
                       档案文档,其设置如下:  
 
                            如要配合使用方向键,则将以下以ASCII编写的一般文字 
档.lesskey 置于home目录内:  
 
                                 ^[[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 
 
                            然後运行指令lesskey。这会生成绑定键位的二进制文档 
.less。  
                            编制下列称为/usr/bin/lesspipe.sh的文档:  
 
 
                            #!/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 
 
 
                            and remember to make it executable with chmod 755  
lesspipe.sh. 切记将其作为chmod 755 
                            lesspipe.sh下的可执行档。  
                            在 /etc/profile中添加:  
 
                                 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 
 
                            此处设定变数LESSCHARSET是因为作者居住在义大利,想 
要使用ISO 8859/1字符集的缘故,因此美国人、 
                            日本人、俄罗斯人等其他各国人士最好不要作此设定。  
-- 
    白马带著她一步步的回到中原。白马已经老了,只能慢慢的走, 
但终是能回到中原的。江南有杨柳、桃花,有燕子、金鱼…… 
汉人中有的是英俊勇武的少年,倜傥潇洒的少年……但这个美 
丽的姑娘就像古高昌国人那样固执: 
 
    「那都是很好很好的,可是我偏不喜欢。」  
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.18.67]  

BBS水木清华站∶精华区