Nästa Föregående Innehållsförteckning

3. Programkonfigurering

Vi ska ta en titt på följande konfigureringsfiler: /etc/profile /etc/bashrc .bashrc .bash_profile .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl .joerc .emacs . Lägg inte till några användare förrän du har konfigurerat färdigt ditt system; du ska stoppa in punktfilerna i /etc/skel.

3.1 bash(1)

Följande huvudfiler skall modifieras, för att skräddarsy bash beteende:

Exempel på dessa filer visas nedan. Först och främst: /etc/profile. Den används för att ställa in en hel del egenskaper hos din Linux-burk, som du kommer se i de följande avsnitten.


# /etc/profile

# Systemvida miljöer och startprogram
# Funktioner och alias ska finnas i /etc/bashrc

# Den här filen ställer in det följande:
#
#   o sökväg
#   o prompter
#   o några miljövariabler
#   o färg-ls
#   o less
#
# Användare kan köra över dessa inställningar och/eller lägga till 
# andra i sina $HOME/.bash_profile

# ställ in en lämplig sökväg

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # lägg till saker till sökvägen
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# låt användaren få reda på: login- och icke-login-skal. Om det är
# login-skalet, ska prompten vara blå; annars magenta. Roots prompt
# är röd.

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

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

# lägg in en riktig "escape"-sekvens, istället för ~[. Gör följande:
# emacs: ^Q ESC   vi: ^V ESC   joe: ` 0 2 7   jed: ` ESC
# Ta bort `;1' om du inte gillar fetstils-attributet
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ '
PS2="Continue> "

# inga core-dumpar, tack

ulimit -c 0

# ange umask

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

# några variabler

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

# slå på färg-ls

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

# skräddarsy less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

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

Här är ett exempel på en /etc/bashrc:


# /etc/bashrc

# Systemvida funktioner och alias
# Miljöprylar ska vara i /etc/profile

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

Här kommer ett exempel på en .bashrc:


# $HOME/.bashrc
# Globala källdefinitioner

if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# det här behövs för att användaren ska få reda på att de är i ett
# icke-login-skal

if [ "$GET_PS1" = "" ] ; then
  COLOUR=45
# sätt in ett riktigt "escape"-tecken, istället för ^[
  ESC=^[
  PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
  export PS1
fi

# alias

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

# Några användbara funktioner

inst() # Installera ett .tar.gz-arkiv i den aktuella katalogen.
{ gzip -dc $1 | tar xvf - }

cz() # Lista innehållet i ett .zip-arkiv.
{ unzip -l $* }

ctgz() # Lista innehållet i ett .tar.gz-arkiv.
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz() # Skapa ett .tgz-arkiv á la zip.
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Här kommer ett exempel på en .bash_profile:


# $HOME/.bash_profile

# Användarspecifika miljö- och start-program
# Den här filen innehåller användardefinierade inställningar, som kör
# över de i /etc/profile

# Ange alias och funktioner
if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # ändra inte promptfärgen
  . ~/.bashrc
fi

# Ange några "standard"-kataloger
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"

# fixa backspace i rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
  stty erase ^?
  ESC=^[  # sätt in en riktig "escape"-sekvens, istället för ^[
  echo -n "$ESC[36l"
fi

Här är ett exempel på en .inputrc:


# $HOME/.inputrc

# tangentbindningar

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# (F1 .. F5) are "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # pip inte
set meta-flag On                # tillåt 8-bitars indata (accent-tecken)
set convert-meta Off            # "strippa" inte 8-bitars tecken
set output-meta On              # visa 8-bitars tecken korrekt
set horizontal-scroll-mode On   # "scrolla" långa kommando-rader
set show-all-if-ambiguous On    # efter att TAB tryckts ned

För att få backspace- och delete-tangenterna att fungera korrekt i en xterm, och andra X11-applikationer, så behövs också följande:

rxvt är en aning mer komplicerad, eftersom vissa inkompilerade alternativ påverkas dess beteende. Se exempel-.bash_profile ovan.

Mer information finns i man-sidorna för bash(1) och readline(3).

Räkna inte med att alla applikationer fungerar korrekt! Om du t.ex. kör joe i en xterm, så är det vissa tangenter som inte fungerar. Samma sak gäller för rxvt-versioner som är äldre än 2.21.

3.2 ls(1)

ls kan visa kataloglistningar, med färger för att markera olika fil- typer. För att slå på detta ska du lägga till följande rader i /etc/profile:

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

(Om du inte har filen /etc/DIR_COLORS, ta bort referensen till den i första raden.) Detta anger miljövariabeln LS_COLORS, vilken innehåller färglistan, vilken anges i /etc/DIR_COLORS. Observera: fråga mig inte varför, men det här fungerar inte i rxvt-versionen som är äldre än 2.21; använd något annat slags xterm istället. Det verkar som om rxvt har en bugg som hindrar det från att ta in miljön på ett korrekt sätt under vissa omständigheter.

Calderas ls har inte färger, men det finns en motsvarighet till färg-ls. Lägg till följande i /etc/bashrc:

alias ls="color-ls $LS_OPTIONS"

3.3 less(1)

Med denna suveräna textvisare kan du inte bara bläddra igenom text- filer, utan även gzip-komprimerade filer, tar- och zip-arkiv, man-sidor och allt vad det är. Dess konfigurering innehåller följande steg:

3.4 emacs(1)

Jag använder inte emacs, så jag har bara några små råd att ge dig. Vissa emacs-distributioner kommer utan att vara förinställda för färg- och syntax-markering. Skriv detta i din .emacs:

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

Det här fungerar bara i X11. Jag lämnar arbetet med att gå igenom all emacs-dokumentation, till dig, för att komma på hur du ska ställa in det så att det passar dina behov. Det kan krävas flera månaders "hackande"...

3.5 joe(1)

Vissa rapporterar att joe fungerar med färger under X11, men inte i tty. Vidare fungerar inte vissa special-tangenter. Vad jag vet så har ingen funnit en lösning på det första problemet; någon föreslog "hackande" i /etc/termcap.

Om du stöter på det problemet så är en snabb och skitig (och oelegant) lösning:

~$ export TERM=vt100
~$ joe min_fil
   (editera din fil)
~$ export TERM=linux

3.6 jed(1)

Det här är min favoriteditor: den gör vad jag behöver, den väger lättare och är enklare att konfigurera än emacs och enligt min åsikt emulerar den andra editorer bättre. Många användare på mitt universitet vill ha jed för att emulera EDT, VMS system-editor.

jeds konfigurerings-filer är .jedrc och /usr/lib/jed/lib/*; den förra kan kopieras från jed.rc i den senare katalogen.

3.7 efax(1)

Det här paketet är antagligen det mest praktiska för att på ett enkelt sätt skicka och ta emot fax. Du måste fininställa skal- programmet /usr/bin/fax. Det är ett lätt jobb, men några små saker gav mig en del huvudvärk:

3.8 TeX med vänner

Jag kommer förutsätta att du har teTeX-distributionen. Jag har bara några saker att påpeka här:

3.9 PPP

Jag tar för givet att din kärna har PPP- + TCP/IP-stöd inkompilerat, att "loopback" finns tillgängligt och att du redan har pppd-paketet installerat och suid root. Det är även uppenbart att din ISP (internet- leverantör) måste stödja PPP.

Det finns nu två sätt att få PPP att fungera: a) manuell konfigurering, och b) ett konfigureringsprogram som fixar det automagiskt. Vilket alternativ du än väljer, så se till att du har följande information till hands:

Manuell konfigurering är ett hundgöra. Det handlar om att editera filer och skriva skalprogram, inte så mycket jobb, men det är lätt att göra misstag och nybörjare avskräcks ofta av detta. PPP-HOWTOn är som gjord för dig. Alternativet är verktyg som ställer dig frågor om det ovanstående och gör allt arbetet.

Det blir säkert mycket lättare om du går till en kompis som redan är uppkopplad och laddar ned något av de följande, trevliga verktygen:

3.10 POP-klient

För att hämta din e-post från en POP-server, använder du en POP-klient som fetchpop eller fetchmail. Den senare är mer avancerad, och är antagligen det enda alternativet om din ISPs PPP-server inte kan handskas med LAST-kommandot. De finns på ftp://sunsite.unc.edu/pub/Linux/system/mail/pop .

För att konfigurera dessa klienter:

3.11 X-Window-systemet

Så fort du har fått X att fungera (rätt grafik-kort osv.), så har du oändliga inställningsmöjligheter, vilka även beror på vilken fönster- hanterare du använder. I vilket fall som helst, så handlar det om att editera en eller flera ASCII-filer i din hemkatalog. Beroende på fönsterhanteraren:

Förutom dessa måste du även ha en passande .xinitrc. Ett exempel:

#!/bin/sh

# $HOME/.xinitrc

# ställ in ett par tangenter ordentligt

usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # slå av skärmsläckaren
xset s 300 2    # skärmsläckaren startar efter fem minuter
xsetroot -solid "medium blue" &

# rxvt spar en massa minne, men versioner äldre än 2.21 har buggar, 
# påverkar tangenterna och sättet på vilket miljön tas över. Upp-
# gradera eller använd xterm istället.

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.12 Fortran

Enligt min erfarenhet så är Fortran-till-C-översättaren f2c, och dess fasad (front end) yaf77, ett bra alternativ till g77 om du behöver använda Fortran.

Skaffa yaf77-X.Y.tgz från ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran .

3.13 Användarens inställningar

Det är en bra idé att låta en ny användare få vissa färdigställda konfigureringsfiler, när han/hon först loggar in. Lägg in följande filer i /etc/skel: .bashrc .bash_profile .bash_logout .inputrc .less .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl .joerc .emacs .

Observera att .pinerc inte kan färdigställas helt i förväg; se i alla fall till att fälten user-domain, smtp-server och nntp-server är ordentligt inställda.

3.14 Uppgradera

Om du uppgraderar din maskin, kom ihåg att spara ett par extra filer innan. Några av dessa är: /etc/X11/XF86Config, /usr/bin/fax, ...


Nästa Föregående Innehållsförteckning