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水木清华站∶精华区