¨t²Î³]¸m-HOWTO : ³n¥ó³]¸m
Previous: ¤@¯ë¨t²Î³]©w
Next: µ²§ô

3. ³n¥ó³]¸m

3.1. bash(1)

­n¨Ïbash ²Å¦X­Ó¤Hªº¤f¨ý¡A¦³¤L­Ó¤åÀɻݭn­×§ï¡G

¤U¤å±N¨ÒÁ|¹ï³o¨Ç¤åÀɪº­×§ï¡C­º¥ý¡A³Ì­«­nªº¤åÀɬO¡G/etc/profile¡C¦p¥H¤U¤L¸`¤¤¥i¥H¬Ý¨ì¡A¤@¦V¥H­×§ï³o­Ó¤åÀɪº¤è¦¡¨Ó³]©wLinuxªº¦UºØ¥\¯à¡C


# /etc/profile

# System wide environment and startup programs
# --¾ã­Ó¨t²ÎÀô¹Ò©M±Ò°Êµ{¦¡
#
# Functions and aliases go in /etc/bashrc
# --/etc/bashhrc¤¤ªº¥\¯à©M§O¦W
#
# This file sets the following features:
# --³o­Ó¤åÀɳ]©w¤U¦C¥\¯à¡G
#
#   o path	--¸ô®|            
#   o prompts	--´£¥Ü²Å
#   o a few environment variables	--¤L­ÓÀô¹ÒÅܼÆ
#   o colour ls	--ls ªºÃC¦â
#   o less behaviour	--³]©wlessªº¥\¯à 
#   o keyboard settings	--Áä½L³]¸m
#
# Users can override these settings and/or add others in their
# $HOME/.bash_profile
# ¥Î¤á¥i¦b$HOME/.bash_profile¤¤¨ú®ø³o¨Ç³]©w©M¡]©Î¡^¼W¥[¨ä¥L³]©w

# set a decent path
# ³]©w¥i¦æªº¸ô®|

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.
# ³qª¾¥Î¤á¡Gµn¿ý¡]login¡^©Î¤£µn¿ý¡]non-login¡^ªº¥~³òµ{§Ç¡]shell¡^¡C
# ¦pªGµn¿ý¡A«h´£¥Ü²Å¬°ÂŦâ¡A§_«h¬°µµ¬õ¦â¡CRootªº´£¥Ü²Å¬°¬õ¦â¡C

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 ^[
# ¥Î¯u¥¿ªº´«½X¦r²Å¥N´À^[

PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
PS2="Continue> "

# no core dumps, please
# ½Ð¤ÅÂàÀx¤º¦s«H®§

ulimit -c 0   

# set umask
# ³]©wumask

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
	umask 002
else
	umask 022
fi

# a few variables
# ¤L¶µÅܼÆ

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
# ³]©wlsªºÃC¦â

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

# customize less
# ³]©wless

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
# ³]©wÁä½L

/sbin/kbdrate -s -r 16 -d 500

for i in /etc/profile.d/*.sh ; do
	if [ -x $i ]; then
		. $i
	fi
done

¦¹³B¬° /etc/bashrc¡G


# /etc/bashrc

# System wide functions and aliases
# ¾ã­Ó¨t²Îªº¥\¯à©M§O¦W
#
# Environment stuff goes in /etc/profile
# /etc/profile¤¤ªºÀô¹Ò°Ñ¼Æ
#

alias which="type -path"
alias d="ls"
alias dir="d"

¦¹³B¬° .bashrc¡G


# $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
# »Ý­n¥H¤U³]©w¡A¥H«K³qª¾³B©ó¤£µn¿ý¡]non-login¡^¥~³òµ{§Ç¡]shell¡^¤¤ªº¥Î¤á

COLOUR=45
# put a real escape character instead of ^[
# ¥Î¯u¥¿ªº´«½X¦r²Å¥N´À^[


PS1='^[[$COLOUR;37m$USER:^[[37;40m\w\$ '

# aliases
# §O¦W

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
# ¤L­Ó¦³¥Îªº¥\¯à

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

¦¹³B¬°.bash_profile¡G


# $HOME/.bash_profile

# User specific environment and startup programs
# ¥Î¤á¯S©wªºÀô¹Ò°Ñ¼Æ©M±Ò°Êµ{¦¡
#
# This file contains user-defined settings that override
# those in /etc/profile
# ³o­Ó¤åÀɤ¤¦s¦³¥Î¤á¦Û­qªº³]¸m¡A¥i¨ú¥N/etc/profile ¤¤ªº¼Æ­È
#
# Get aliases and functions
# ³]©w§O¦W©M¥\¯à
#
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# re-get PS1 settings
# ­«·s³]©wPS1¼Æ­È

if [ $USER = 'root' ] ; then
  COLOUR=41
else
  COLOUR=44
fi

# put a real escape character instead of ^[
# ¥Î¯u¥¿ªº´«½X¦r²Å¥N´À^[

PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '

export PS1

¦¹³B¬° .bash_logout¡G


# $HOME/.bash_logout

clear

¦¹³B¬° .inputrc¡G


# $HOME/.inputrc

# key bindings
# ¥D­n¸j©w

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line

# (F1 .. F5) are "\e[[A" ... "\e[[E"
# (F1 .. F5) ¤À§O¬° "\e[[A" ... "\e[[E"

"\e[[A": "info \C-m"

set bell-style visible  # please don't beep
						# --³â¥z¤£µoÁn
set meta-flag On         # allow 8-bit input (i.e, accented letters)
						# --¤¹³\8-¦ì¤¸¿é¤J¡]¨Ò¦p­«­µ¦r²Å¡^͵ù¡G¥Î¤_¼Ú¬w
						# ¤å¦r©ÎGB½X¤ÎBig5½X¡^
set convert-meta Off    # don't strip 8-bit characters
						# ¤£¨ú®ø8-¦ì¤¸¦r²Å
set output-meta On       # display 8-bit characters correctly
						# ¥¿½TÅã¥Ü8-¦ì¤¸¦r²Å

set horizontal-scroll-mode On
set show-all-if-ambiguous On

³]©w¤U¦C°Ñ¼Æ¨Ï backspace ©M delete ¨âÁä¦bxterm ©M¨ä¥LX11À³¥Î¤¤¹B§@¥¿±`¡G

¦bbash(1) ©M readline(3) ªºman»¡©ú¤¤¦³§ó¦h³o¤è­±ªº¸ê®Æ¡C

¤£­n¥H¬°³o¨Ç³]©w¦b¨CºØÀ³¥Î¤¤³£¥i¥¿±`¹B§@¡C¨Ò¦p¡A¦bxterm¤¤¹B¦æjoe¡A¦³¨ÇÁä¦ì´N¤£°_§@¥Î¡F¹B¦ærxvt¤]¦³¬Û¦Pªº°ÝÃD¡C¦³¤H»¡¡A³o¬Otermcapªº°ÝÃD¡C

3.2. ls(1)

ls¥iÅã¥Ü¥Ø¿ý¡A¦}¥ÎÃC¦â´£¥Ü¤£¦PºØÃþªº¤åÀÉ¡C­n¨Ï¥Î³o¶µ¥\¯à¡A«h¦b/etc/profile¤¤¼W²K¥H¤U¤º®e¡G

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

³o¼Ë´N³]©w¤FLS_COLORSªºÀô¹Ò°Ñ¼Æ¡A¨ä¤¤¦s¦³/etc/DIR_COLORS¤¤ªºÃC¦âÅܼƪí¡Cª`·N¡G³o¶µ³]¸m¹ïrxvtªº¦³¨Çª©¥»µL®Ä¡A­ì¦]¤£©ú¡C¤£§«§ï¥Îxterm¤¤ªº¤@¨Ç¨ä¥L¯S©Ê¡C¥i¯àrxvt¤¤¤´¦³µ{§Ç¿ù»~¡A¥H­P¦³®É¤£¯à¹B¥Î³]©wªºÀô¹Ò°Ñ¼Æ¡C

3.3. less(1)

§Q¥Î³o­ÓÀu¶Vªº­¶­±½Õ«×µ{§Ç¤£¶È¯àÂsÄý¤@¯ë¤å¦r¤åÀÉ¡A¤]¯àÆ[¬ÝÀ£ÁYªºgzip¤åÀÉ©M¥Htar©Mzip®æ¦¡Àx¦sªºÀɮפåÀÉ¡A¨ä³]¸m¦p¤U¡G

3.4. emacs(1)

¦³¨Çemacs ª©¥»¨S¦³¹w¥ý³]¸mÃC¦â©M»yªk¼Ð¥Ü¡C¥i¦b.emacs¤¤¼W²K¡G

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

³o¥u¹ïX11¦³¥Î¡C¦U¦ì¤£§«±qemacs¤åÄm¤¤±´¯Á²Å¦X¦UºØ»Ý­nªº³]©w -- ¦³®É¥i¯à­n¯Ó¶O¤L­Ó¤ëªº®É¶¡´ú¸Õ....

3.5. joe(1)

Àˬd/usr/bin/¤¤ªºjmacs¡B jstar¡B©Mjpico ¬O§_symlink¨ìjoe¡A©Î¬O¿W¥ßªº¤G¶i¨îµ{¦¡¡F¦pªG¤´¬°«áªÌ¡A«h¤£§«±N¨ä§@¥Xsymlink,¥H¸`¬Ùµw½LªÅ¶¡¡C

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

µM«á¥u­n§â/usr/lib/joe/joerc§@¬°.joerc§Û¨ìhome¥Ø¿ý¡A¦A§@¥X²Å¦X»Ý­nªº­×§ï¡C

3.6. jed

³o¬O­Ó»á¬°¦n¥Îªº½s¿è¾¹¡G¤ñemacsµu¤pºë®«¡A©y©ó³]¸m¡A¨Ã¥BIMHO¼ÒÀÀ¨ä¥L½s¿è¾¹¤]¬Û·í¤£¿ù¡C¦b§@ªÌ¤u§@ªº¤j¾Ç¤¤¦³³\¦h¨Ï¥ÎªÌ³£¥Îjed¼ÒÀÀVMS¨t²Îªº½s¿è¾¹EDT¡C

³]¸m¤åÀɬ°.jedrc ©M /usr/lib/jed/lib/*¡F«eªÌ¥i±q«áªÌ¥Ø¿ý¤¤ªºjed.rc­×§ï¦Ó±o¡C

3.7. TeX and Friends

¦pªG¹q¸£¤¤¸Ë¦³TeTeX¡A¥i§@¤U¦C¤L¶µ³]©w¡G

3.8. PPP

¥Ø«eLinuxªº¤º®Ö´X¥G³£¤w½s¤J¤FPPP + TCP/IP¥\¯à¡A³]©w¤F¦^°e¦a§}¡]loopback¡^©M¥¿½T¦w¸Ë¤Fpppd³n¥ó¡C¨º»ò¦³¨âºØ¤è¦¡¥i¨ÏPPP¥¿±`¹B§@¡G¡]a¡^¤â°Ê³]©w¡F©M¡]b¡^§Q¥Î¤@­Óµ{¦¡¦Û°Ê³]©w¡C­º¥ý¡A¸Õ¸Õ¤â°Ê³]©w¡C

°²©wISPªº¸ê®Æ¦p¤U¡G

¤â°Ê³]¸mPPPÁpºôªº¤è¦¡¬°¡G

ªá¤F³o»ò¤jªº¤O®ð¡A¦pªG¹B®ð¦n¡A¦³³o¼Ëªº³]©w´N°÷¤F¡C§_«h¡A¨º´N·Ç³Æ¶}©l½¬ÝPPP-HOWTO§a¡C

¥H¤W´N¬O¤â°Ê³]¸m¡C¤£¹L¡A²{¦b¦³¤@®M¤£¿ùªº³n¥ó¡A¥i§K°£³o¶µ­W®t¨Æ¡G³o®M³n¥óºÙ¬°ezppp¡A¥i¦b¤U¦Cºô§}§ä¨ì¡G http://www.serv.net/~cameron/ezppp/index.html ¡C

3.9. POP¥Î¤áºÝµ{§Ç

­n±qPOP¦øªA¾¹¦¬¨ú¶l¥ó¡A¥i¨Ï¥ÎPOP¥Î¤áºÝµ{§Ç¡A¦pfetchpop©Î fetchmailµ¥¡C¦pªGISPªºPPP¦øªA¾¹¤£¤ä«ùLAST«ü¥O¡A«h«áªÌ¥i¯à¬O°ß¤@¥i¥Îªº¤èªk¡C

³]¸m³o¨Ç¥Î¤áºÝµ{§Çªº¤èªk¦p¤U¡G

3.10. X µøµ¡¨t²Î

¤@¥¹X µøµ¡¥i¥H¹B¦æ«á¡]¥¿½T¦a³]©w¤FÅã¥Ü¥dµ¥²Ó½o¤u§@¡^¡A´N¥i§@¥X¨ä¥L¦U¦â¦U¼Ëªº³]¸m¡A§¹¥þ¨ú¨M¤_¨Ï¥Î¦óºØµøµ¡ºÞ²zµ{§Ç¡C¤£¹L¡AÂk®Úµ²©³¡A¥u¬O½s¿èhome¥Ø¿ý¤ºªº¤@­Ó©Î¤L­ÓASCII¤åÀÉ¡C¦Ü©óµøµ¡ºÞ²zµ{§Ç¡G

¦¹¥~¡A¤@©w­n¦³¾A·íªº.xinitrc¡A¨Ò¦p¡G

#!/bin/sh

# $HOME/.xinitrc --¤åÀɦWºÙ

# set a few keys correctly --±N¤L­ÓÁä¦ì³]©w¥¿½T

usermodmap=$HOME/.Xmodmap 
xmodmap $usermodmap

xset s noblank	# turn off the screen saver --°±¤î«Ì¹õ«OÅ@µ{§Ç
xset s 300 2	# screen saver start after 5 min --5¤ÀÄÁ«á¶}©l«Ì¹õ«OÅ@µ{§Ç
xsetroot -solid "medium blue" &

# rxvt ¸`¬Ù¤º¦s¡A¦ý¦³¤L­Ó¿ù»~µ{§Ç¡G
#   - ¤£»{home©Mend¨âÁä¡F
#   - backspace©Mdelete¨âÁä©M¦b¥D±±¥x®Éªº§@¥Î¤£¦P¡F
#   - ÃC¦â¤£¨Ì·ÓÀô¹Ò°Ñ¼Æ³]©w¡F
#   - »PÀô¹Ò°Ñ¼Æ®É¦³½Ä¬ð¡F
# ¦]¦¹¡A¦h¼Æ±¡ªp¤U¡Axterm¤ñ¸û¦n¥Î¡C¦ýrxvt¦b³Áª÷¶ð¾÷ªº¤@¨ÇÃC¦âÀ³¥Î¤WÅã¥Ü¸û¦n¡C

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

¨Ì¾Ú¸gÅç¡A¥N¥Îg77ªº³Ì¦nFortran-to-C½Ķ¾¹¬Of2c©M«eºÝ³n¥óyaf77¡C

yaf77¥i±qftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz¤Î¨äÃè¶Hºô§}¨ú±o¡C

3.12. ¥Î¤á³]¸m

·s¥Î¤á¦b­º¦¸µn¿ý®É¡A³Ì¦n¤w¦³¤L­Ó³]¸m¤åÀÉ¥i¥Î¡C¥i±N¤U¦C³]¸mÀÉ©ñ¦b/etc/skel¤¤¡Gbashrc¡Bbash_profile¡Bbash_logout¡Binputrc¡Bless¡B xinitrc¡Bfvwmrc¡Bfvwm2rc95¡BXmodmap¡BXdefaults¡Bjedrc¡Bjoerc¡Bemacs¡C

¡]ª`·N¡G¥Ñ¤_±Æª©ªº½t¬G¡A¤W­±¨C­Ó¤åÀÉ«e§¡¥¼©ñ¸m¡¥.¡¦²Å¸¹¡

¹ï.pinerc µLªk¶i¦æ¥R¤À³]©w¡F¦ý¦Ü¤Ö­n³]©wuser-domain¡Bsmtp-server©Mnntp-server ªº°Ñ¼Æ¡C


¨t²Î³]¸m-HOWTO : ³n¥ó³]¸m
Previous: ¤@¯ë¨t²Î³]©w
Next: µ²§ô