⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config-howto-3.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
 <TITLE>系统设置-HOWTO: 软件设置</TITLE>
 <LINK HREF="Config-HOWTO-4.html" REL=next>
 <LINK HREF="Config-HOWTO-2.html" REL=previous>
 <LINK HREF="Config-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Config-HOWTO-4.html">Next</A>
<A HREF="Config-HOWTO-2.html">Previous</A>
<A HREF="Config-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. 软件设置</A></H2>

<P>
<P>
<P>
<H2><A NAME="ss3.1">3.1 <CODE>bash</CODE>(1)</A>
</H2>

<P>
<P>要使<CODE>bash</CODE> 符合个人的口味,有几个文档需要修改:
<P>
<UL>
<LI><CODE>/etc/bashrc</CODE> 存有整个系统的别名和功能;
</LI>
<LI><CODE>/etc/profile</CODE> 存有整个系统的环境参数和启动程式;
</LI>
<LI><CODE>$HOME/.bashrc</CODE> 存有用户的的别名和功能;
</LI>
<LI><CODE>$HOME/.bash_profile</CODE> 存有用户的环境参数和启动程式;
</LI>
<LI><CODE>$HOME/.bash_logout</CODE> 存有退出系统时的结束方式;
</LI>
<LI><CODE>$HOME/.inputrc</CODE> 存有主要绑定数值和其他位元数值;
</LI>
</UL>
<P>下文将例举对这些文档的修改。首先,最重要的文档是:<CODE>/etc/profile</CODE>。如以下几节中可以看到,一向以修改这个文档的方式来设定Linux的各种功能。
<P>
<HR>
<PRE>
# /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
</PRE>
<HR>
<P>此处为 <CODE>/etc/bashrc</CODE>:
<P>
<HR>
<PRE>
# /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"
</PRE>
<HR>
<P>此处为 <CODE>.bashrc</CODE>:
<P>
<HR>
<PRE>
# $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}
}
</PRE>
<HR>
<P>此处为<CODE>.bash_profile</CODE>:
<P>
<HR>
<PRE>
# $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
</PRE>
<HR>
<P>此处为 <CODE>.bash_logout</CODE>:
<P>
<HR>
<PRE>
# $HOME/.bash_logout

clear
</PRE>
<HR>
<P>此处为 <CODE>.inputrc</CODE>:
<P>
<HR>
<PRE>
# $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
</PRE>
<HR>
<P>设定下列参数使 backspace 和 delete 两键在<CODE>xterm</CODE> 和其他X11应用中运作正常:
<P>
<UL>
<LI> 在<CODE>.xinitrc</CODE>中添加:

<BLOCKQUOTE><CODE>
<PRE>
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI> 在<CODE>.Xmodmap</CODE>中添加:

<BLOCKQUOTE><CODE>
<PRE>
keycode 22 = BackSpace
keycode 107 = Delete
</PRE>
</CODE></BLOCKQUOTE>


以上就设定了主控台的参数。

要修改<CODE>xterm</CODE>,则更改如下:
</LI>
<LI> 在<CODE>.Xdefaults</CODE>中增添:

<BLOCKQUOTE><CODE>
<PRE>
xterm*VT100.Translations: #override &lt;Key>BackSpace: string(0x7F)\n\
        &lt;Key>Delete:        string(0x1b) string("[3~")\n\
        &lt;Key>Home:          string(0x1b) string("[1~")\n\
        &lt;Key>End:           string(0x1b) string("[4~")\n\
        Ctrl&lt;Key>Prior:     string(0x1b) string("[40~")\n\
        Ctrl&lt;Key>Next:      string(0x1b) string("[41~")

nxterm*VT100.Translations: #override &lt;Key>BackSpace: string(0x7F)\n\
        &lt;Key>Delete:        string(0x1b) string("[3~")\n\
        &lt;Key>Home:          string(0x1b) string("[1~")\n\
        &lt;Key>End:           string(0x1b) string("[4~")\n\
        Ctrl&lt;Key>Prior:     string(0x1b) string("[40~")\n\
        Ctrl&lt;Key>Next:      string(0x1b) string("[41~")
</PRE>
</CODE></BLOCKQUOTE>

</LI>
</UL>
<P>在<CODE>bash</CODE>(1) 和 <CODE>readline</CODE>(3) 的man说明中有更多这方面的资料。
<P>不要以为这些设定在每种应用中都可正常运作。例如,在<CODE>xterm</CODE>中运行<CODE>joe</CODE>,有些键位就不起作用;运行<CODE>rxvt</CODE>也有相同的问题。有人说,这是termcap的问题。
<P>
<H2><A NAME="ss3.2">3.2 <CODE>ls</CODE>(1)</A>
</H2>

<P>
<P><CODE>ls</CODE>可显示目录,并用颜色提示不同种类的文档。要使用这项功能,则在<CODE>/etc/profile</CODE>中增添以下内容:
<P>
<BLOCKQUOTE><CODE>
<PRE>
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
</PRE>
</CODE></BLOCKQUOTE>
<P>这样就设定了<CODE>LS_COLORS</CODE>的环境参数,其中存有<CODE>/etc/DIR_COLORS</CODE>中的颜色变数表。注意:这项设置对<CODE>rxvt</CODE>的有些版本无效,原因不明。不妨改用<CODE>xterm</CODE>中的一些其他特性。可能<CODE>rxvt</CODE>中仍有程序错误,以致有时不能运用设定的环境参数。
<P>
<H2><A NAME="ss3.3">3.3 <CODE>less</CODE>(1)</A>
</H2>

<P>
<P>利用这个优越的页面调度程序不仅能浏览一般文字文档,也能观看压缩的gzip文档和以tar和zip格式储存的档案文档,其设置如下:
<P>
<UL>
<LI> 如要配合使用方向键,则将以下以ASCII编写的一般文字档<CODE>.lesskey</CODE> 置于home目录内:

<BLOCKQUOTE><CODE>
<PRE>
^[[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
</PRE>
</CODE></BLOCKQUOTE>


然後运行指令<CODE>lesskey</CODE>。这会生成绑定键位的二进制文档<CODE>.less</CODE>。
</LI>
<LI> 编制下列称为<CODE>/usr/bin/lesspipe.sh</CODE>的文档:

<HR>
<PRE>
#!/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档的内容

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -