Sljedeći dio Prethodni dio Sadržaj

3. Konfiguracija programa

Ovo su datoteke koje ćemo sređivati: /etc/profile, /etc/bashrc, .bashrc, .bash_profile, .bash_logout, .inputrc, .less, .lessrc, .xinitrc, .fvwmrc, .fvwm2rc95, .Xmodmap, .Xmodmap.num, .Xdefaults, .jedrc, .abbrevs.sl, .joerc, .emacs. Nemojte dodavati korisnike dok ne završite s konfiguracijom sustava; te ćete datoteke staviti u /etc/skel.

3.1 bash(1)

Možda najvažniji program nakon kernela. Ovo su glavne datoteke za prilagođavanje ponašanja basha:

Ispod su prikazani primjeri ovih datoteka. Najprije, najvažnija: /etc/profile. Koristi se za konfiguriranje mnogih mogućnosti vaše Linux kante, kao što ćete vidjeti u sljedećim poglavljima. Pazite na obratne navodnike!

 
# /etc/profile

# Okružje i programi koje treba pokrenuti za cijeli sustav
# Funkcije i aliasi idu u /etc/bashrc

# Ova datoteka se brine se o sljedećim opcijama i programima:
#
#   o PATH
#   o promptovi
#   o nekoliko varijabli okružja
#   o ls u boji
#   o less
#   o rxvt
#
# Korisnici mogu poništiti ove opcije i/ili dodati druge u svojem
# $HOME/.bash_profile

# postavljamo pristojan PATH (uključujući KDE)
PATH="$PATH:/usr/X11R6/bin:/opt/kde/bin:$HOME/bin:."

# Obavještavamo korisnika: login ili ne-login ljuska. Ako je login, prompt
# je obojan u plavo; inače je grimizno-ljubičast. Prompt root-a je crven.
# Za objašnjenje escape kodova pogledajte Colour-ls mini-HOWTO.
KORISNIK=`whoami`
if [ $LOGNAME = $KORISNIK ] ; then
  BOJA=44  # plava
else
  BOJA=45  # grimizno-ljubičasta
fi

if [ $KORISNIK = 'root' ] ; then
  BOJA=41  # crvena
  PATH="$PATH:/usr/local/bin"
fi

ESC="\033"
STIL=';1m' # podebljano; izaberite koji stil ćete koristiti
# STIL='m' # obično
PS1="\[$ESC[$BOJA;37$STIL\]$KORISNIK:\[$ESC[37;40$STIL\]\w\\$ "
PS2="> "

# molim, bez izbacivanja corea
ulimit -c 0

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

# nekoliko varijabli
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
NNTPSERVER=news.carnet.hr # ovdje stavite svoj
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

# uključujemo ls u boji
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-s -F -T 0 --color=yes'

# podešavamo less
LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
LESSCHARDEF=8bcccbcc13b.4b95.33b. # pokazuj boje u ls -l | less
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF

# sredi tipku backspace u rxvtu
if [ "$COLORTERM" != "" ] ; then
  stty erase ^H  # alternativa: ^H
fi
      
for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i
  fi
done

# zovemo fortune, ako je dostupan
if [ -x /usr/games/fortune ] ; then
  echo ; /usr/games/fortune ; echo
fi

Evo primjera /etc/bashrc:

 
# /etc/bashrc

# Funkcije i aliasi za cijeli sustav
# Okružje ide u /etc/profile

# Iz nekog nepoznatog razloga, bash odbija naslijediti PS1
# u nekim okolnostima koje ne mogu shvatiti. Stavljanjem
# PS1 ovdje osiguravamo njegovo učitavanje svaki put.

KORISNIK=`whoami`
if [ $LOGNAME = $KORISNIK ] ; then
  BOJA=44  # plava
else
  BOJA=45  # grimizno-ljubičasta
fi

if [ $KORISNIK = 'root' ] ; then
  BOJA=41  # crvena
fi

ESC="\033"
STIL=';1m'  # podebljano
# STIL='m'    # obično
export PS1="\[$ESC[$BOJA;37$STIL\]$KORISNIK:\[$ESC[37;40$STIL\]\w\\$ "
export PS2="> "
export CDPATH="$CDPATH:~"

alias which="type -path"
alias ls="ls $LS_OPTIONS"

Ovo je primjer .bashrc:

 
# $HOME/.bashrc
# izvodimo globalne definicije

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

# ovo je potrebno za obavijest korisniku da nisu u login ljusci
if [ "$DOBIJ_PS1" = "" ] ; then
  BOJA=45; ESC="\033"; STIL=';1m';  # STIL='m'
  KORISNIK=`whoami`
  export PS1="\[$ESC[$BOJA;37$STIL\]$KORISNIK:\[$ESC[37;40$STIL\]\w\\$ "
fi

# aliasi
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

# Par korisnih funkcija

inst() # Instalira .tar.gz arhivu u trenutni direktorij.
{ tar -zxvf $1 }

cz() # Prikazuje sadržaj .zip arhive.
{ unzip -l $* }

ctgz() # Prikazuje sadržaj .tar.gz arhive.
{
  for datoteka in $* ; do
    tar -ztf ${datoteka}
  done
}

tgz() # Stvara .tgz arhivu kao zip.
{
  ime=$1 ; tar -cvf $1 ; shift
  tar -rf ${ime} $*
  gzip -S .tgz ${ime}
}

Evo primjera .bash_profile:

 
# $HOME/.bash_profile

# Korisničko okružje i programi koje koje treba pokrenuti
# Ova datoteka sadrži opcije korisnika koje imaju prednost nad onima iz
# /etc/profile

# Uzmi korisnikove aliase i fukncije
if [ -f ~/.bashrc ]; then
  DOBIJ_PS1="NO"  # ne mijenjamo boju prompta
  . ~/.bashrc
fi
    
# postavljamo par "normalnih" direktorija
export CDPATH="$CDPATH:$HOME:$HOME/tekst:$HOME/tekst/geologija"

Ovo je primjer .inputrc:

 
# $HOME/.inputrc

# značenja tipki
"\e[1~": beginning-of-line      # početak reda
"\e[3~": delete-char            # brisanje znaka lijevo od kursora
"\e[4~": end-of-line            # kraj reda
# (F1 .. F5) su "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # molim, bez zvuka
set meta-flag On                # omogućava 8-bitni ulaz (naglašeni znakovi/hrvatska slova)
set convert-meta Off            # ne skida 8-bitne znakove
set output-meta On              # točno prikazuje 8-bitne znakove
set horizontal-scroll-mode On   # pomiče duge komandne linije
set show-all-if-ambiguous On    # nakon što je pritisnut <TAB>

Također je potrebno učiniti sljedeće da tipke Backspace i Delete rade u redu u xtermu i drugim X11 aplikacijama:

rxvt je malo složeniji jer na njegovo ponašanje utječu neke opcije za vrijeme kompajliranja. Pogledajte gornji /etc/profile.

Više informacija u man stranicama za bash(1) i readline(3).

Ne očekujte da svaka aplikacija radi kako treba! Na primjer, ako pokrenete joe u xtermu, neke tipke neće raditi; isto vrijedi i za verzije rxvta starije od 2.4.5.

3.2 ls(1)

ls može u ispisu sadržaja direktorija različite tipove datoteka osvijetljavati različitim bojama. Da biste uključili tu mogućnost, samo dodajte nekoliko redova datoteci /etc/profile kako je pokazano gore. Međutim, to neće raditi u rxvtu starijem od verzije 2.21; umjesto njega koristite neku verziju xterma. Izgleda da rxvt ima grešku koja ga spriječava u točnom nasljeđivanju okružja pod određenim okolnostima. rxvt 2.4.5 i noviji su u redu.

Calderin ls nema boja, ali ima ekvivalent color-ls. Dodajte ovo u /etc/bashrc:

 
alias ls="color-ls $LS_OPCIJE"

3.3 less(1)

S ovim izvrsnim alatom možete pregledavati ne samo obične tekstualne datoteke, nego i one sažete gzip-om, tar i zip arhive, man stranice i što god imate. Njegova konfiguracija se sastoji od nekoliko koraka:

3.4 emacs(1)

Rijetko koristim emacs, pa vam mogu dati samo nekoliko savjeta. Neke distribucije emacsa ne dolaze podešene za boje i sintaktičko osvjetljavanje. Stavite ovo u svoj .emacs:

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

To radi samo u X11. Štoviše, kako biste omogućili naglašene znakove, dodat ćete ovaj red:

(standard-display-european 1)

Ostavljam vama da pregledate cijelu dokumentaciju emacsa kako biste ga prilagodili svojim potrebama -- možda će vam trebati mjeseci... Dotfile Generator (poglavlje Konfiguracijski programi) je dobra pripomoć u tome.

3.5 joe(1)

Neke verzije joea ne rade s bojom u konzoli, kao ni s nekim posebnim tipkama. Koliko znam, nitko nije našao rješenje tim malim neprilikama. Brzo i prljavo (i ružno) rješenje za problem boja:

 
$ export TERM=vt100
$ joe mojadatoteka 
   (editirajte svoju datoteku)
$ export TERM=linux

Konfigurirajte joe editiranjem .joerc, .jstarrc ili vaše omiljene emulacije; možete početi od sistemskih konfiguracijskih datoteka iz /usr/lib/joe.

3.6 jed(1)

Ovo je moj omiljeni editor: radi ono što mi treba, manji je i lakše ga je konfigurirati od emacsa, a prilično dobro emulira druge editore. Mnogi korisnici s mog sveučilišta koriste jed kao emulaciju EDT-a, editora VMS sustava.

jedove konfiguracijske datoteke su .jedrc i /usr/lib/jed/lib/*; prvu možete kopirati iz jed.rc u tom direktoriju.

3.7 efax(1)

Ovo je vjerojatno najprikladniji paket za jednostavno slanje/primanje fakseva. Morat ćete prilagoditi skriptu /usr/bin/fax; lak posao, ali nekoliko stvari uzrokuje glavobolje:

3.8 TeX i prijatelji

Pretpostavit ću da imate teTeX distribuciju. Samo par stvari:

3.9 Izbjegnite PPProbleme!

Uzet ću zdravo za gotovo da vaš kernel ima PPP i TCP/IP podršku, da je uključen loopback i da je vaš pppd paket ispravno instaliran i, ako želite, suid-an na roota. Očito, vaš ISP mora podržavati PPP.

Sada PPP možete natjerati da radi na dva načina: a) ručna konfiguracija i b) konfiguracijski program koji se automatski za to brine. Što god odabrali, neka vam ove informacije budu pri ruci:

Ručna konfiguracija je mučan posao. Morate editirati datoteke i pisati skripte; nema previše posla, ali lako je pogriješiti i početnici se često boje. Tu je PPP HOWTO. Možete koristiti i alate koji pitaju za gornje informacije i obave sav posao umjesto vas.

Svakako ćete bolje proći ako zgrabite neki od ovih zgodnih alata:

3.9.1 Brzi uvod u eznet

Najprije stvorite ovakvu /etc/resolv.conf datoteku:

nameserver w.x.y.z
gdje ćete ubaciti adresu DNS-a svog ISP-a. Kako biste napravili račun pomoću ezneta, pokrenite sljedeću naredbu:
~# eznet add service=VAŠ_ISP user=IME password=ZAPORKA phone=TELEFON

Zatim pokušajte dobiti svoj ISP pomoću eznet up VAŠ_ISP. Ako modem čeka na znak slobodnog biranja i neće se spojiti, probajte naredbu:

~# eznet change VAŠ_ISP init0=atx3

Naredba za spuštanje slušalice je eznet down. To je to!

3.10 POP klijent

Za skidanje pošte s POP poslužitelja koristite POP klijent poput fetchpopa ili fetchmaila. Drugi je napredniji i vjerojatno jedina mogućnost ako se POP poslužitelj vašeg ISP-a ne zna nositi s naredbom LAST. Dostupni su na ftp://sunsite.unc.edu/pub/Linux/system/mail/pop.

Za konfiguriranje tih klijenata:

fetchpop

Kada ga prvi put pokrenete, pitat će vas o nekim informacijama. Odgovorite na pitanja i spremni ste za rad.

fetchmail

Prilagodite ovaj primjer .fetchmailrc-a:

 
# $HOME/.fetchmailrc
poll mojstroj.mojisp.com with protocol pop3;
  user jura there with password _Luu%do is jura here 

Jedan korisnik je javio da je dodavanje ``smtphost localhost'' drugom redu znatno poboljšalo performanse.

Dozvole ovoj datoteci morate postaviti naredbom chmod 600 .fetchmailrc jer će inače fetchmail s pravom odbiti pokrenuti se. Primjer je vrlo jednostavan i pretpostavlja da vaš sendmail radi; postoji beskonačno mnogo mogućnosti konfiguracije. Pogledajte http://www.ccil.org/~esr/fetchmail.

3.11 X Window System (XFree86)

3.11.1 Namještanje X servera

Hajde, nije tako teško kao prije... Sve veće distribucije sadrže alat za namještanje X11 (npr. XConfigurator, sax, XF86Setup, ili barem xf86config). Konfiguracija X-a je praktički automatska u današnje vrijeme, ali neke grafičke kartice mogu odbiti raditi. Svaki put kada iskusim probleme u namještanju X-a na sustavu, vratim se jednostavnoj metodi koja je uvijek radila:

To je kod mene uvijek radilo, ali kod vas ne mora. Molim vas zapamtite da se X11 u većini slučajeva neće konfigurirati jer su specifikacije koje ste odabrali za svoj monitor preniske! Počnite s konzervativnim postavkama, dakle 800x600 s 256 boja, a zatim ih dižite. Upozorenje: takvi postupci su opasni i mogli biste oštetiti svoj monitor!

3.11.2 Numerička tipkovnica

Već smo vidjeli kako namjestiti nekoliko posebnih tipki. Primjer datoteke .Xmodmap radi dobro ako želite koristiti xjed, ali onemogućava korištenje numeričke tipkovnice. U tom slučaju će vam trebati još jedna konfiguracijska datoteka, koju ćemo nazvati .Xmodmap.num:

! Definicije se mogu naći u <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

Pobrinite se da vaš /etc/X11/XF86Config ne sadrži ova tri reda:

  ServerNumLock
  Xleds
  XkbDisable
Ako ih sadrži, zakomentirajte ih. Kako biste ponovo uključili numeričku tipkovnicu, pokretat ćete naredbu xmodmap .Xmodmap.num.

3.11.3 Grafički login koristeći xdm

Da bi vas pozdravljao grafički login, editirajte datoteku /etc/inittab, koja bi trebala sadržavati ovakav red:

x:5:respawn:/usr/bin/X11/xdm -nodaemon
gdje je 5 runlevel za X11 (S.u.S.E. koristi 4). Promijenite red koji određuje podrazumijevani runlevel (obično 2 ili 3), tako da izgleda ovako:
id:5:initdefault:

Broj boja je određen u /etc/X11/xdm/Xserver (AT2YD):

:0 local /usr/X11R6/bin/X -bpp 16  # 65 tisuća boja

Ako već imate .xinitrc, kopirajte ga u .xsession i učinite dotični izvršnim pomoću chmod +x .xsession. Sada zadajte naredbu telinit 5 i stvar radi.

3.11.4 Window manager

Nakon što ste uspjeli natjerati X da proradi, beskonačno je mogućnosti konfiguracije; ovise o window manageru kojeg koristite -- možete izabrati između desetaka. Većinom, sve se svodi na editiranje jedne ili više ASCII datoteka u vašem home direktoriju; u drugim slučajevima ne morate editirati ništa, nego koristite aplet ili čak izbornik.

Neki primjeri:

fvwm obitelj

Kopirajte /etc/X11/fvwm/system.fvwmrc (ili slično) u svoj home direktorij koristeći odgovarajuće ime; pregledajte ga i počnite eksperimentirati. Možda ćete izgubiti puno vremena dok ne dobijete točno onaj izgled i osjećaj koji želite.

WindowMaker

Ima nekoliko konfiguracijskih datoteka koje žive pod $HOME/GNUstep i sjajan konfiguracijski aplet.

KDE

Ovdje ništa ne treba ručno editirati: sve se može obaviti preko izbornika.

Ukratko: ako vam ne smeta editiranje konfiguracijske datoteke, odaberite nešto kao icewm, fvwm*, blackbox itd.; ako vam smeta, izbor je trenutno ograničen na KDE i WindowMaker.

Važno je da imate dobar .xinitrc. Primjer:

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

usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # ugasi screen saver
xset s 300 2    # screen saver počinje nakon 5 minuta
xset m 10 5     # postavi ubrzanje miša

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

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

$WINMGR

Iako to izgleda nije nužno, učinite ga izvršnim pomoću chmod +x .xinitrc.

Ovaj .xinitrc vam dopušta biranje window managera: pokušajte

$ start startkde # ili neki drugi WM

(Nažalost, ne radi s nekim verzijama S.u.S.E.-a.)

3.12 Korisničke konfiguracije

Kada završite s editiranjem točka-datoteka, kopirajte ih u /etc/skel kako je pokazano u poglavlju Konfiguracija programa. Primjetite da se .pinerc ne može potpuno prilagoditi; provjerite barem da su polja user-domain, smtp-server i nntp-server pravilno postavljena.

3.13 Nadograđivanje

Ako nadograđujete računalo, napravite svoj uobičajeni backup i ne zaboravite snimiti nekoliko dodatnih datoteka. Neke od njih bi mogle biti /etc/X11/XF86Config, /usr/bin/fax, sve stvari u /usr/local, konfiguracija kernela, cijeli /etc, i sva pošta u /var/spool/mail.


Sljedeći dio Prethodni dio Sadržaj