?? config-howto-3.html
字號:
<!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 <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~")
</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 + -