Verder Terug Inhoud

4. Software Configuratie

Dit zijn de configuratiebestanden die we aan zullen gaan passen: /etc/profile /etc/bashrc .bashrc .bashrc .bash_profile .bash_logout .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xmodmap.num .Xdefaults .jedrc .abbrevs.sl .joerc .emacs . Voeg geen gebruikers toe totdat je klaar bent met je systeemconfiguratie; je zult de bestanden voorafgaand met een punt (dot files) in /etc/skel gaan plaatsen.

4.1 bash(1)

De shell is misschien wel het belangrijkste deel van de software na de kernel. Er zijn drie hoofdbestanden om de werking van bash aan te passen:

Voorbeelden van deze bestanden worden hierna gegeven. Als eerste, de belangrijkste: /etc/profile. Het wordt gebruikt om een heleboel mogelijkheden in je Linux box te configureren, zoals je in de volgende secties zult zien. Let alsjeblieft op de omgekeerde aanhalingstekens!


# /etc/profile

# Systeemomvattende omgeving en opstartprogramma's
# Functies en aliassen staan in /etc/bashrc

# Dit bestand stelt de volgende mogelijkheden en programma's in:
#
#   o path
#   o prompts
#   o een aantal omgevingsvariabelen
#   o colour ls
#   o less
#   o rxvt
#
# Gebruikers kunnen deze instellingen overschrijven en/of 
# andere instellingen toevoegen aan $HOME/.bash_profile

# stel een fatsoenlijk pad in
PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."

# stel de gebruiker op de hoogte: login of niet-login shell. 
# Als login wordt de prompt blauw weergegeven; 
# anders in magenta. Root's prompt is rood.
# Zie de Colour-ls mini HOWTO voor een uitleg over de escape codes.
USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44  # blue
else
  COLOUR=45  # magenta
fi

if [ $USER = 'root' ] ; then
  COLOUR=41  # red
  PATH="$PATH:/usr/local/bin"
fi

ESC="\033"
PROMPT='\h'   # hostname
STYLE=';1m'   # bold
# PROMPT='\u' # gebruikersnaam
# STYLE='m'   # gewoon
PS1="\[$ESC[$COLOUR;37$STYLE\]$PROMPT:\[$ESC[37;40$STYLE\]\w\\$ "
PS2="> "

# geen core dumps, alsjeblieft
ulimit -c 0

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

# een paar variabelen
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER" # sendmail, postfix, smail 
MAIL="$HOME/Mailbox"         # qmail
NNTPSERVER=news.mijnisp.it # zet die van jou hier
VISUAL=jed
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL NNTPSERVER
export VISUAL EDITOR HOSTNAME HISTSIZE HISTFILESIZE

# activeer colour ls
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-s -F -T 0 --color=yes'

# aanpassen van less
LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
LESSCHARDEF=8bcccbcc13b.4b95.33b. # toon kleuren in ls -l | less
# LESSCHARDEF=latin1
PAGER=less
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF

# herstel de backspace-toets in rxvt/xterm
CTRL_H="\010"
NULL_STRING="$CTRL_H" # spatie + backspace
if [NULL_STRING" !=""]; then
  stty erase ^?
else
  stty erase ^H
fi      
# stel xterm-titel in: volledig pad
case $TERM in
  xterm*)
   PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"'
   ;;
esac

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i # het kan zijn dat variabelen en aliassen worden overschreven!
  fi
done

# roep fortune aan als deze beschikbaar is
if [ -x /usr/games/fortune ] ; then
  echo ; /usr/games/fortune ; echo
fi

Dit is een voorbeeld /etc/bashrc:


# /etc/bashrc

# Systeemomvattende functies en aliassen
# Omgevingszaken staan in /etc/profile
# Voeg PS1-definities hier in als je problemen bemerkt

export CDPATH="$CDPATH:~"

# algemene aliassen
alias cp='cp -i'
alias l=less
alias ls="ls $LS_OPTIONS"
alias mv='mv -i'
alias rm-'rm -i'
alias rmbk='/bin/rm -f .*~ *~ *aux *bak *log *tmp 2> /dev/nul' 
alias u='cd ..'
alias which="type -path"
alias x=startx

# een aantal handige functies
c () # cd naar de nieuwe directory en toon de inhoud
{
  cd $1 ; ls
} 

inst()  # installeer een .tar.gz archief in de huidige directory
{
 if [ $# != 0 ]; then tar zxvf $1; fi
}

cz()    # Toon de inhoud van een .zip-archief
{
 if [ $# != 0 ]; then unzip -l $*; fi
}

ctgz()  # Toon de inhoud van een .tar.gz-archief
{
  for file in $* ; do
    tar ztf ${file}
  done
}

tgz()   # Maak een .tgz-archief a la zip
{
if [ $# != 0 ]; then
  name=$1.tar; shift; tar -rvf ${name} $* ; gzip -9 ${name} > fi
}

crpm()  # toon informatie over een .rpm-bestand
{
 if [ $# != 0 ]; then rpm -qil $1 | less; fi
}

Dit is een voorbeeld .bashrc:


# $HOME/.bashrc
# Source globale definities

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

# dit is nodig om de gebruiker op de hoogte te stellen dat ze zich 
# bevinden in een niet-login shell
if [ "$GET_PS1" = "" ] ; then
  COLOUR=45; ESC="\033"; STYLE=';1m';  # STYLE='m'
  USER=`whoami`
  export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
fi

# persoonlijke aliassen
alias backup='tar -Mcvf /dev/fd0'
alias dial='eznet up myisp'
alias f='cd ~/fortran'
alias hangup='eznet down'
alias lyx='lyx -width 580 -height 450'
alias restore='tar -M -xpvf /dev/fd0'

# persoonlijke functies
xj() # Start xjed en een bestand in de achtergrond op
{
  xjed $1 &
}

Dit is een voorbeeld .bash_profile:


# $HOME/.bash_profile

# Gebruiksersspecifieke omgeving en opstartprogramma's
# Dit bestand bevat gebruikers gedefinieerde instellingen die de
# instellingen in /etc/profile overschrijven

# Haal gebruikers aliassen en functies op
if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # wijzig de kleur van de prompt niet
  . ~/.bashrc
fi
    
# stel een aantal `standaard' directory's in
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"

Dit is een voorbeeld .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"
"\e[[A": "info \C-m"

set bell-style visible       # geef alsjeblieft geen beep
set meta-flag On          # sta 8-bit invoer toe (d.w.z.,geaccentueerde tekens)
set convert-meta Off          # strip 8-bit tekens niet
set output-meta On            # toon 8-bit tekens op de juiste wijze
set horizontal-scroll-mode On # scroll lange commando-regels
set show-all-if-ambiguous On  # nadat TAB is ingedrukt

Om ervoor te zorgen dat de backspace- en deletetoetsen ook correct werken in xterm en andere X11-applicaties, is het volgende ook nodig:

rxvt is iets gecompliceerder, aangezien een aantal compile--time opties de werking ervan beïnvloeden. Zie het bestand /etc/profile hierboven.

Meer info in bash(1) en readline(3) man pages.

Verwacht niet dat iedere applicatie correct werkt! Als je bijvoorbeeld joe in een xterm opstart, zullen sommige toetsen niet werken; hetzelfde geldt voor een aantal versies van rxvt.

4.2 ls(1)

ls kan een directorylijst in kleur weergeven om verschillende bestandstypen te benadrukken. Je hebt voor het activeren van deze mogelijkheid een paar regels in /etc/profile nodig zoals hiervoor werd aangegeven. Dit werkt echter niet met rxvt van voor v.2.21; gebruik in plaats daarvan een soort van xterm. Het lijkt erop dat rxvt een bug bevat, die verhindert dat in sommige situaties de omgeving op de juiste wijze wordt `geërfd'. rxvt 2.4.5 en hoger zijn OK.

Caldera ls heeft geen kleuren, maar er is een equivalent color-ls. Voeg dit toe aan /etc/bashrc:

alias ls="color-ls $LS_OPTIONS"

4.3 less(1)

Met deze uitstekende pager kun je niet alleen gewone tekstbestanden doorbladeren, maar ook met gzip gecomprimeerde, tar en zip archieven, man pages, en wat je verder ook maar hebt. De configuratie ervan bestaat uit een aantal stappen:

4.4 emacs(1)

Ik maak zelden gebruik van emacs, dus ik heb slechts een paar tips voor je. Sommige emacs distributies zijn niet voor kleuren en syntax highlighting voorgeconfigureerd. Zet dit in .emacs:

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

Dit werkt alleen in X11. Als je bovendien geaccentueerde tekens wilt activeren, zal je de volgende regel toe moeten voegen:

(standard-display-european 1)

Ik zal het aan jou overlaten om alle documentatie van emacs zorgvuldig door te lezen om uit te zoeken hoe je het naar behoefte aan kunt passen ---mogelijkerwijs, kan het hacken een aantal maanden in beslag nemen. De Dotfile generator (Sectie Configuration Software) is hierbij een goede hulp.

4.5 joe(1)

Sommige versies van joe werken niet met kleuren in de console, en ook een aantal toetsen werken niet. Een snelle en niet zo'n mooie (en onelegante) oplossing voor het genoemde probleem is dit:

~$ export TERM=vt100
~$ joe myfile
   (edit your file)
~$ export TERM=linux

Om de speciale toetsen werkend te krijgen, hoef je alleen .joerc, .jstarrc of je favoriete emulatie te wijzigen; je kunt beginnen vanuit de systeemomvattende configuratiebestanden in /usr/lib/joe. Zoek naar de vierde sectie (key bindings). Hiermee worden Home en End geactiveerd:

bol ^[ [ 1 ~   Ga naar het begin van de regel
eol ^[ [ 4 ~   Ga naar het einde van de regel

Typ cat gevolgd door de speciale toetsen, om achter de gewenste ESC-sequences te komen.

4.6 jed(1)

Dit is mijn favoriete editor: het doet wat ik nodig heb, het is handiger en gemakkelijker te configureren dan emacs, en emuleert andere editors zeer goed. Veel gebruikers op mijn universiteit gebruiken jed om EDT, de systeemeditor van VMS, te emuleren.

jed's configuratie bestanden zijn .jedrc en /usr/lib/jed/lib/*; de eerstgenoemde bewerken vanaf jed.rc in de eerder genoemde directory.

4.7 pine(1)

Wijzig de globale configuratie in /usr/lib/pine.conf, waarbij je in ieder geval zorgt voor de volgende velden: user-domain, smtp-server en nntp-server. Merk op dat inbox-path afhankelijk is van je MTA: als je sendmail gebruikt of postfix zal dat var/spool/mail/$USER zijn; met Qmail is het /home/$USER/Mailbox (maar root zal gebruik maken van /var/qmail/alias/Mailbox.

4.8 minicom(1)

Gebruikers kunnen geen gebruik maken van minicom tenzij er door root een globale configuratie is aangemaakt. Denk eraan dat je het maakt.

4.9 efax(1)

Dit package is waarschijnlijk het meest geschikt voor het eenvoudig verzenden/ontvangen van faxen. Je zult het script /usr/bin/fax aan moeten passen; makkelijke taak, maar een paar grillen bezorgde me hoofdpijn:

Als je dat hebt gedaan, zijn er een paar permissies te herstellen die niet-root gebruikers toestaan faxen te sturen en te ontvangen. De directory's /var/lock en /var/spool/fax moeten schrijfbaar zijn. Om dit te doen, maak je een groep faxusers aan, voegt er gebruikers aan toe en typt dan:

~# chown root.faxusers /var/lock
~# mkdir /var/spool/fax
~# chown root.faxusers /var/spool/fax; chmod g+w /var/spool/fax

4.10 Ghostscript

Deze essentiële tool leidt aan een kleine onhebbelijkheid. In het bezit van de wel-bekende export reglementen in de USA, werkt het utility pdf2psniet op versleutelde .pdf-bestanden. Doet er niet toe: richt je browser op http://www.ozemail.com.au/~geoffk/pdfencrypt, download het bestand pdf_sec.ps en zet het in plaats van het bestand met dezelfde naam dat met de distributie van Ghostscript wordt meegeleverd.

4.11 TeX en Gelijken

Ik ga er vanuit dat je de teTeX distributie hebt.

4.12 Voorkom PPProblemen!

Ik neem aan dat er in je kernel PPP + TCP/IP ondersteuning is gecompileerd, dat loopback is geactiveerd, en dat je reeds het pppd package correct hebt geïnstalleerd en, naar wens als, suid root. Uiteraard moet je ISP PPP ondersteunen.

Er zijn nu twee manieren om PPP aan de gang te krijgen: a) handmatige configuratie, en b) een configuratie programma dat het automatisch herkent. Welke optie je ook kiest, zorg dat je de volgende informatie bij de hand hebt:

Handmatige configuratie is geestdodend werk. Het betreft het wijzigen van bestanden en het schrijven van scripts; niet te veel werk, maar je maakt gemakkelijk fouten en nieuwkomers schrikken ervan terug. Hiervoor is de PPP HOWTO. Als alternatief bestaan er hulpmiddelen die om de hierboven genoemde informatie vragen en al het werk voor je doen.

Gnome en KDE bevatten respectievelijk gnome-ppp en kppp welke eenvoudig genoeg zijn om in te stellen. Ik raad je aan dat je ook eens kijkt naar een aantal tools die zijn gebaseerd op tty, wvdial en eznet. Je voert het telefoonnummer van je ISP, je gebruikersnaam en je wachtwoord in, en je hebt je taak volbracht. Hun homepages zijn te vinden op http://www.worldvisions.ca/wvdial en http://www.hwaci.com/sw/eznet. Beide zijn zeer goed, maar mijn voorkeur gaat uit naar de laatste.

Een Snelle Start met eznet

Maak ten eerste een /etc/resolv.conf zoals dit:

nameserver w.x.y.z

waarin je het adres van de nameserver van je ISP plaatst. Voer het volgende commando uit om met eznet een account aan te maken:

#~ eznet add service=YOUR_ISP user=NAME password=PASSWORD phone=PHONE

waarmee het bestand /var/eznet/eznet.conf wordt aangemaakt, met als eigenaar root.root en permissies 600; chmod in 666 als je wilt dat het voor iedereen leesbaar is. Probeer nu bij je ISP in te bellen met eznet up YOUR_ISP. Probeer het volgende commando, als je modem blijft wachten op de kiestoon en geen verbinding maakt:

#~ eznet change YOUR_ISP init0=atx3

Het commando voor ophangen is, eznet down. Dat is alles!

4.13 Een Snelle Start met wvdial

De setup van wvdial is zelfs nog korter. Type wvdialconf > /etc/wvdial.conf, wijzig dan het resulterende bestand om je gebruikersnaam, wachtwoord en telefoonnummer in te voegen. Probeer het uit met wvdial en duimen maar. Stop het met Ctrl-C als je op wilt hangen.

4.14 POP Client

Je gebruikt een POP client, zoals fetchpop of fetchmail, om je mail vanaf een POP server te ontvangen. De laatste is uitgebreider, maar vereist dat je sendmail draait. Dit is wat overmatig op low-spec machines. Ze zijn beschikbaar op ftp://metalab.unc.edu/pub/Linux/system/mail/pop.

Om deze clients te configureren:

4.15 X Window Systeem (XFree86)

Installeren van de X Server

Kom op, het is niet zo moeilijk als het voorheen was... Alle grotere distributies hebben een tool voor het instellen van X11 (b.v. XConfigurator, sax, XF86Setup, of in ieder geval xf86config). Het configureren van X gaat tegenwoordig vrijwel automatisch, maar het zou kunnen dat een paar videokaarten weigeren te werken. Iedere keer dat ik problemen ervaarde bij het instellen van X op een systeem, nam ik mijn toevlucht tot een eenvoudige methode die altijd bleek te werken:

Dit heeft voor mij altijd gewerkt, maar het kan voor jou anders zijn. Denk er om dat X11 in de meeste gevallen niet kan worden geconfigureerd vanwege de te hoog gekozen specs voor je monitor! Start met conservatieve instellingen, b.v. 800x600 en 256 kleuren, en probeer het dan uit. Waarschuwing: deze bewerkingen zijn gevaarlijk en je monitor zou erdoor kunnen beschadigen!

Keypad

We hebben hiervoor gezien hoe je een aantal speciale toetsen werkend krijgt. Het voorbeeldbestand .Xmodmap werkt goed als je Xjed wilt gebruiken, maar het zorgt ervoor dat het toetsenblok niet meer bruikbaar is. Je zult dan een ander config bestand nodig hebben, dat we .Xmodmap.num zullen noemen:

! Definities zijn te vinden in <X11/keysymdef.h>

keycode 77  = Num_Lock
keycode 112 = KP_Divide
keycode 63  = KP_Multiply
keycode 82  = KP_Subtract
keycode 86  = KP_Add
keycode 79  = KP_7
keycode 80  = KP_8
keycode 81  = KP_9
keycode 83  = KP_4
keycode 84  = KP_5
keycode 85  = KP_6
keycode 87  = KP_1
keycode 88  = KP_2
keycode 89  = KP_3
keycode 90  = KP_0
keycode 91  = KP_Decimal

Zorg ervoor dat de volgende drie regels niet in het bestand /etc/X11/XF86Config voorkomen:

  ServerNumLock
  Xleds
  XkbDisable

en als dit wel zo is, plaats hier dan een commentaarteken voor. Om het toetsenblok opnieuw te activeren, roep je het commando xmodmap .Xmodmap.num aan.

Grafische Login met xdm

Om te kunnen worden begroet met een grafische login, wijzig je het bestand /etc/inittab, waarin een volgende regel voor zou moeten komen:

x:5:respawn:/usr/bin/X11/xdm -nodaemon

hier is 5 het runlevel dat correspondeert met X11 (S.u.S.E. gebruikt 4). Wijzig de regel die het standaard runlevel (meestal 2 of 3) definieert, wijziging als hierboven:

id:5:initdefault:

Het aantal kleuren staat aangegeven in /etc/X11/xdm/Xserver:

:0 local /usr/X11R6/bin/X :0 -bpp 16 vt07 # eerste X-server, 65k kleuren
:1 local /usr/X11R6/bin/X :1 -bpp 32 vt08 # tweede X-server, ware kleuren

Als je reeds een .xinitrc hebt, kopieer het dan naar .xsession en maak de laatste uitvoerbaar met chmod +x .xsession. Roep nu het commando telinit 5 aan en je bent klaar.

Window Manager

Zodra X werkt, zijn er eindeloos veel mogelijke configuraties; het is afhankelijk van de window manager die je gebruikt - er zijn er tientallen om uit te kiezen. Meestal, gaat het slechts om het wijzigen van één of meer ASCII-bestanden in je homedirectory; in andere gevallen hoef je in het geheel niets te wijzigen, en gebruik je een applet of zelfs een menu.

Een aantal voorbeelden:

In het kort: als je er niet om geeft om een config bestand te wijzigen, kies dan uit iets als icewm, fvwm*, blackbox enz; als het je wel wat uitmaakt, is de keuze momenteel beperkt tot KDE, Gnome, WindowMaker en XFCE.

Het is belangrijk dat je een goede .xinitrc hebt. Een voorbeeld:

#!/bin/sh
# $HOME/.xinitrc

usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # zet de screen saver uit
xset s 300 2    # screen saver start na 5 min
xset m 10 5     # stel acceleratie voor de muis in

rxvt -cr green -ls -bg black -fg white -fn 7x14 \
  -geometry 80x30+57+0 &

if [ "$1" = "" ] ; then  # default
  WINMGR=wmaker
else
  WINMGR=$1
fi

$WINMGR

Maak het uitvoerbaar met chmod +x .xinitirc, alhoewel dit niet echt vereist schijnt te zijn.

De .xinitrc laat je een window manager kiezen: probeer

$ startx startkde # of andere w.m.

(met een aantal S.u.S.E. versies werkt het echter niet).


Verder Terug Inhoud