Configuration HOWTO <author> By Guido Gonzato, <tt><htmlurl url="mailto:guido@ibogfs.cineca.it" name="guido@ibogfs.cineca.it"></tt>. Svensk översättning: Linus Åkerlund, uxm165t@tninet.se <date>v1.2.2, 10 April 1998. Svensk översättning: 1 juni 1998. <abstract> Denna HOWTO siktar in sig på att göra fininställningen av din nyligen installerade Linux-burk snabbare och enklare. Här hittar du en upp- sättning inställningar för de vanligaste applikationerna, så att du kan börja arbeta med ett användbart system. </abstract> <toc> <sect> Inledning <label id="Introduction"> <p> <sect1> Varför denna HOWTO <p> Jag har installerat Linux på många PCr och lagt märke till att de aktuella distributionerna är jättebra, men, irriterande nog, saknar vissa grund-läggande inställningar. De flesta applikationer kan startas direkt efter installeringen, men vissa ej. Vidare har jag lagt märke till att vissa frågor dyker upp på c.o.l.setup om och om igen. För att försöka göra något åt denna situation, och för att ha en påminnelse, när jag ska utföra nya installeringar, så skrev jag denna gör-si-och-gör-så-lista, som jag sedan utvidgade till denna HOWTO. Här hittar du en handfull konfigurations-exempel för de vanligaste applikationerna, programmen och tjänsterna, vilka bör spara dig en hel del tid och arbete. Några av exemplen som beskrivs i den här HOWTOn är till viss del distributions-beroende. Jag har bara tillgång till Red Hat- och Caldera OpenLinux-maskiner, så se inte mina tips som guds ord om du använder Slackware, Debian eller andra distributioner. Hur som helst, att läsa dokumentation och HOWTOn lönar sig alltid, så jag råder dig att göra det i alla fall. <sect1> Vad vi kommer att konfigurera <p> Det finns ändlösa exempel på hårdvarukombinationer till PC, men enligt min erfarenhet är en ganska vanlig: en PC, utrustad med en stor hårddisk, vilken är uppdelad i tre partitioner (en för DOS/Windows, en för Linux och en för "swap"), ljudkort, modem, CD-ROM-spelare, skrivare och mus. En Zip-drive i parallellporten börjar också bli väldigt vanligt. Det är denna hårdvara jag kommer förutsätta att du vill konfigurera, men det är enkelt att tillämpa de följande tipsen på andra kombinationer. Det förutsätts, implicit, att du är root när du editerar/fixar/"hackar". Och nu är det dags att rulla upp ärmarna, pojkar. <sect1> Översättarens anmärkningar <p> Uppdaterade dokumentet 13/11-98, genom att byta ut översättningen av "permissions" till "rättigheter", istället för det sämre "tillåtelser" <p> <sect> Generell systemkonfigurering <p> <sect1> Tangentbord <p> Först av allt så går vi igenom hur du ska konfigurera tangentbordet. Om du har missat det här steget under installeringen, eller om du har bytt ut tangentbordet, så måste du: <itemize> <item>välja en passande "key table" från <tt>/usr/lib/kbc/keytables</tt>; t.ex. <tt>it.map</tt>, om du har ett italienskt tangentbord; <item>editera filen <tt>/etc/sysconfig/keyboard</tt>, så att det står: <tt>KEYTABLE="/usr/lib/kbd/keytables/it.map"</tt>; <item>för att ställa in tangent-repetition och -fördröjning får du lägga till den här raden till <tt>/etc/rc.d/rc.sysinit</tt> eller, om du har Caldera, <tt>/etc/rc.d/rc.boot</tt>: <tscreen><verb> /sbin/kbdrate -s -r 16 -d 500 # eller vad du nu vill ha </verb></tscreen> </itemize> Nästa gång du startar upp datorn kommer tangentbordet fungera bra. För att ladda din nya "key table", utan att behöva starta om datorn kan du cd-a till <tt>/etc/rc.d/init.d</tt> och köra kommandot <tt>./keytable start</tt>. <sect1> Saker som har att göra med kärnan <p> Enligt min åsikt är nästa steg att bygga en kärna som passar ditt system. Det är väldigt enkelt, men i alla fall, läs <tt/README/-filen i <tt>/usr/src/linux/</tt> eller Kernel-HOWTOn. Tips: <itemize> <item>tänk noga över dina behov. Att välja en kärn-konfiguration, "patcha" den och kompilera den en gång för alla, är mycket mer produktivtän att omkonfigurera och kompilera om den varje månad; det här stämmer extra bra om din Linux-burk är en server. Glöm inte att ta med stöd för all hårdvara det är troligt att du kommer att lägga till i framtiden (t.ex. SCSI, Zip, nätverkskort osv.); <item>om din PC är uppbyggd kring en Cyrix-processor, lägg till de rätta "patcharna" för att öka prestandan. Information finns på <tt> <url url="http://www.linuxhq.com/patch/20-p0591.html"> </tt> ; <item>de som har bärbara datorer kommer att vilja förbättra LCD-skärmens läsbarhet, genom att lägga till "Noblink-patchen". Senaste versionen heter <tt/noblink-X.X.tar.gz/ och finns tillgänglig på <tt> <url url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/console"> </tt> . Installera paketet och lägg sedan till följande rad till din <tt>/etc/profile</tt>: <tscreen><verb> /usr/local/bin/cursor bgreen # eller någon annan färg </verb></tscreen> <item>mer för de som använder bärbara datorer: om du planerar att använda ett PCMCIA-fax/modem, kompilera <em/inte/ in seriellt stöd (serial support) som en modul; kompilera in det i själv kärnan, annars kommer inte ditt PCMCIA-modem att fungera; <item>kom ihåg att Linux inte kommer se ditt ljudkort, om du inte ställer in det ordentligt. I de flesta fall är det lätt, men kom ihåg att kompilera in alla alternativen (glöm inte <tt>/dev/dsp</tt> och <tt>/dev/sound</tt>); <item>om du får sådana där otrevliga meddelanden från <tt>modprobe</tt>, vilka indikerar att vissa moduler inte kan hittas, så innebär det att din <tt>/etc/conf.modules</tt> behöver ställas om. Om du inte använder ipx- och appletalk-modulerna så kan du lägga till följande rader: <tscreen><verb> alias net-pf-4 off alias net-pf-5 off </verb></tscreen> <item>För att spara tid, nästa gång du ska konfigurera om och kompilera om din kärna, så är det en bra idé att spara konfigurationen i en fil och spara den på ett säkert ställe. </itemize> <sect1> <tt/sendmail/-låsning <p> På vissa system låser <tt/sendmail/ maskinen då den startas upp. Ett snabbt sätt att fixa det: se till så att <tt>/etc/hosts</tt> innehåller en rad som ser ut så här: <tscreen><verb> 127.0.0.1 localhost </verb></tscreen> Se också avsnittet <ref id="Hostname" name="Värdmaskinens namn (hostname)">. <sect1> Hårddiskprestanda <p> Din hårddisks prestanda kan förbättras en hel del genom att på ett försiktigt sätt använda <tt>hdparm</tt>(8). Om din Linux-distribution inte innehåller det, så kan du hitta det på <tt> <url url="ftp://sunsite.unc.edu/pub/Linux/system/hardware"> </tt>, leta efter en fil som heter <tt>hdparm-X.Y.tar.gz</tt>. Jag kan inte ge dig ett allmänt recept eftersom många detaljer beror på din hårddisk och dess "controller". Eftersom det finns en risk att du "grillar" ditt filsystem så råder jag dig att <em>läsa man-sidan noggrant</em>, innan du testar vissa möjligheter. Det allra enklaste du kan göra är att lägga till följande rad till <tt>/etc/rc.d/rc.sysinit</tt>: <tscreen><verb> /sbin/hdparm -c1 /dev/hda # första IDE-disken </verb></tscreen> vilket slår på (E)IDE 32-bitars in/ut-stöd. Angående "-m"-parametern, det här är vad programmeraren bakom <tt>hdparm</tt>, Mark Lord, skrev i ett e-brev till mig: <quote> (...) om ditt system använder komponenter från de senaste åren, så kommer det fungera bra. Är de äldre än så, så *kan* problem uppstå (ej troligt). De riktigt buggiga kretsarna var CMD0646 och RZ1000, vilka användes i *stor* utsträckning på 486- och (tidiga) 586- moderkort, för 2-3 år sedan. </quote> <sect1> Zip-drive i parallellporten <p> För att använda parallellports-versionen av Zip-drive så kan du använda den standardiserade drivrutinen som kommer med aktuella (2.x.x) kärnor. Under kärn-konfigureringen, se till att SCSI-stöd och SCSI-disk- stöd finns påslagna (antingen i kärnan, eller som moduler). Kom ihåg att det kan bli konflikter mellan skrivaren och Zip-driven på samma parallell-port. Zip-diskar säljs förformatterade, med partitionen <tt>/dev/sda4</tt>. För att få Zippen att fungera, är allt du behöver skriva <tscreen><verb> #~ chmod 666 /dev/sda4 # alla kan komma åt Zip-driven #~ insmod ppa </verb></tscreen> och Zippen kan bli monterad som vanligt (det är bäst att du lägger till den sista raden i <tt>/etc/rc.d/rc.sysinit</tt>). Du kan också komma åt Zip- driven via mtools, genom att lägga till följande rad i din <tt>/etc/mtools.conf</tt>: <tscreen><verb> drive z: file="/dev/sda4" exclusive </verb></tscreen> Det finns dock en bättre <tt/ppa/-drivrutin än den vanliga: ta en titt på <tt> <url url="http://www.torque.net/~campbell"> </tt>. <sect1> Enhets-drivrutiner (Device drivers) <p> Enheterna i <tt>/dev</tt> (eller rättare sagt, länkarna till de faktiska enhets- drivrutinerna) kanske inte finns. Se efter vilka enheter din mus, ditt modem och din CD-ROM-spelare motsvarar, och gör sedan följande: <tscreen><verb> ~# cd /dev /dev# ln -s /dev/cua0 mouse /dev# ln -s /dev/cua1 modem /dev# ln -s /dev/hdb cdrom </verb></tscreen> och, om du vill, gör en <tt/chmod 666/ på dessa enheter (inte länkarna, utan de faktiska enheterna!) för att göra dem fullt åtkomliga för alla användare. Tips: på vissa bärbara datorer är mus-enheten <tt>/dev/psaux</tt>: tänk på det när du konfigurerar X11. Vidare kommer du vilja göra floppy-driven tillgänglig för andra användare än root, med <tt>chmod 666 /dev/fd*</tt>. Det här orsakar vissa säkerhetsproblem, om vilka jag inte känner till detaljerna. Kommentarer är välkomna. <sect1> Uppstartsmeddelanden <p> Om du vill skräddary dina uppstartsmeddelanden, så titta efter om din <tt>/etc/rc.d/rc.local</tt> skriver över <tt>/etc/issue</tt> och <tt>/etc/motd</tt>. Om de gör det, starta din editor och kör igång. <sect1> Värdmaskinens namn (Hostname) <label id="Hostname"> <p> Att ge kommandot <tt/hostname new_host_name/ räcker inte riktigt till. För att undvika den fruktade <tt/sendmail/-låsningen, utför dessa steg: <itemize> <item>editera <tt>/etc/sysconfig/network</tt> och byt ut "hostname" där (t.ex. <tt>new_host_name.localdomain</tt>); <item>editera <tt>/etc/HOSTNAME</tt> på motsvarande sätt; <item>lägg till det nya namnet på värd-maskinen i <tt>/etc/hosts</tt>: <tscreen><verb> 127.0.0.1 localhost new_host_name.localdomain </verb></tscreen> </itemize> <sect1> Musen <p> <tt/gpm/s mus-stöd är användbart för att klippa och klistra i tty-läge, och för att använda musen i vissa applikationer. Se efter så att du har en fil som heter <tt>/etc/sysconfig/mouse</tt>, vilken innehåller: <tscreen><verb> MOUSETYPE="Microsoft" XEMU3=yes </verb></tscreen> Vidare måste du ha en fil som heter <tt>/etc/rc.d/init.d/gpm</tt>. Du måste naturligtvis se till så att inställningarna är de rätta för din mustyp. Tips: på vissa bärbara datorer är mustypen, <tt/MOUSETYPE/, "<tt>PS/2</tt>". Under Caldera är allt du behöver göra att lägga till den här raden till <tt>/etc/rc.d/rc.boot</tt>: <tscreen><verb> /usr/bin/gpm </verb></tscreen> <sect1>Monteringsplatser <p> Det är praktiskt att ha monteringsplatser för floppyn och andra enheter. T.ex. så kan du göra följande: <tscreen><verb> ~# cd /mnt /# mkdir a: ; mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip </verb></tscreen> Detta skapar monteringsplatser för en MS-DOS-floppy, en ext2-floppy, CD-ROMen, en DOS-partition och Zip-driven i parallell-porten. Modifiera nu <tt>/etc/fstab</tt>, genom att lägga till följande rader: <tscreen><verb> /dev/fd0 /mnt/a: msdos user,noauto 0 1 /dev/fd0 /mnt/floppy ext2 user,noauto 0 1 /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 1 /dev/sda4 /mnt/zip vfat user,noauto 0 1 /dev/hda1 /mnt/win vfat user,noauto 0 1 </verb></tscreen> Du måste givetvis ange de korrekta enheterna i varje rad. För att kunna komma åt fat32-partitioner, så måste du "patcha" din kärna, patch och information hittar du på <tt> <url url="http://bmrc.berkeley.edu/people/chaffee/fat32.html"> </tt>. <sect1> <tt/lilo/ (8) och <tt/LOADLIN/ <p> Många kör både Linux och DOS/Windows på sina PCr, och vill då datorn startas upp kunna välja vilket operativ-system som skall startas. Låt oss förutsätta att <tt>/dev/hda1</tt> innehåller DOS/Windows och att <tt>/dev/hda2</tt> innehåller Linux. Gör följande: <tscreen><verb> ~# fdisk Using /dev/hda as default device! Command (m for help):a Partition number (1-4): 2 Command (m for help):w ~# </verb></tscreen> Det här gör Linux-partitionen möjlig att starta upp ifrån (bootable); detta steg ska utföras av <tt/activate/, då Lilos <tt/QuickInst/ körs, men det fungerar inte med min Red Hat. Skriv in följande grundläggande <tt>/etc/lilo.conf</tt>-fil: <tscreen><verb> boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg.txt # skriv ditt eget root = current image = /boot/vmlinuz # startar Linux som standard, eftersom det är först label = linux other = /dev/hda1 table = /dev/hda label = dos </verb></tscreen> Kör nu <tt>/sbin/lilo</tt> och du är klar. Eftersom <tt/lilo/ är en så viktig del av installeringen, så rekommenderar jag dig starkt att först läsa dokumentationen i alla fall. För att starta upp Linux från DOS/Windows, utan att "resetta", så kan du stoppa <tt/LOADLIN.EXE/ i en katalog (i DOS-partitionen!), som finns i DOS- sökvägen. Kopiera sedan kärnan till, säg <tt>C:\DOS\VMLINUZ</tt>. Följande <tt/.BAT/- fil kommer starta upp Linux: <tscreen><verb> rem linux.bat smartdrv /C loadlin c:\dos\vmlinuz root=/dev/hda2 r </verb></tscreen> Om du använder Windows 95, så sätt egenskaperna för den här <tt/.BAT/-filen så att den startas i MS-DOS-läge. <sect2> Säkerhetstips <p> Att ta en säkerhetskopia av din MBR, innan du installerar Linux, kan rädda dig från en massa besvär. Använd <tt/restorrb/ (vilket kommer med <tt/FIPS/- paketet) innan installeringen, eller så kan du använda Linux räddnings- diskett (rescue-floppy) och ge kommandot: <tscreen><verb> rescue:~# dd if=/dev/hda of=MBR bs=512 count=1 </verb></tscreen> och gör sedan åtminstone två kopior av <tt>MBR</tt>-filen, vilka du sparar på floppy-diskar. Om olyckan skulle vara framme, kommer du kunna åter- ställa din gamla MBR, genom att skriva: <tscreen><verb> rescue:~# dd if=/mnt/MBR of=/dev/hda bs=446 count=1 </verb></tscreen> förutsatt att en floppy-disk, vilken innehåller <tt>MBR</tt>, är monterad på <tt>/mnt</tt>. Alternativet är att använda en DOS-räddnings-diskett och köra <tt>FDISK /MBR</tt> <sect1> Skrivarkonfigurering <p> Red Hat och Caldera har ett trevligt konfigureringsverktyg, <tt/printtool/. För dig som inte använder någon av dessa distributioner följer den manuella konfigureringen. Låt oss förutsätta att du har en icke-PostScript-skrivare, som du vill använda till att skriva ut ren text (t.ex. filer med C-kod) och PostScript-filer via Ghostscript, vilket jag förutsätter att du redan har installerat. Att konfigurera skrivaren innehåller följande steg: <itemize> <item>ta reda på vilken parallell-enhet skrivaren är på: pröva med <tscreen><verb> ~# echo "hello, world" > /dev/lp0 ~# echo "hello, world" > /dev/lp1 </verb></tscreen> och anteckna vilken som fungerar. <item>skapa två "spool"-kataloger: <tscreen><verb> ~# cd /var/spool/lpd /var/spool/lpd/# mkdir raw ; mkdir postscript </verb></tscreen> <item>om din skrivare visar prov på "trappstegs-effekten" (de flesta bläck- stråleskrivare gör det) så behöver du ett filter. Pröva att skriva ut två rader med <tscreen><verb> ~# echo "första raden" > /dev/lp1 ; echo "andra raden" > /dev/lp1 </verb></tscreen> Om utdatan ser ut så här: <tscreen><verb> första raden andra raden </verb></tscreen> så spara detta skalprogram som <tt>/var/spool/lpd/raw/filter</tt>: <tscreen><verb> #!/bin/sh # Det här filtret gör processen kort med "trappstegs-effekten" awk '{print $0, "\r"}' </verb></tscreen> och gör den körbar med <tt>chmod 755 /var/spool/lpd/raw/filter</tt>. <item>skapa ett filter för PostScript-emulering. Spara följande filter som <tt>var/spool/lpd/postscript/filter</tt>: <tscreen><verb> #!/bin/sh DEVICE=djet500 RESOLUTION=300x300 PAPERSIZE=a4 SENDEOF= nenscript -TUS -ZB -p- | if [ "$DEVICE" = "PostScript" ]; then cat - else gs -q -sDEVICE=$DEVICE \ -r$RESOLUTION \ -sPAPERSIZE=$PAPERSIZE \ -dNOPAUSE \ -dSAFER \ -sOutputFile=- - fi if [ "$SENDEOF" != "" ]; then printf "\004" fi </verb></tscreen> (i det här exemplet förutsätts att du har en HP DeskJet. Modifiera det så att det passar din skrivare.) <item>slutligen, lägg till följande saker till <tt>/etc/printcap</tt>: <tscreen><verb> # /etc/printcap lp|ps|PS|PostScript|djps:\ :sd=/var/spool/lpd/postscript:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/postscript/filter:\ :sh: raw:\ :sd=/var/spool/lpd/raw:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/raw/filter:\ :sh: </verb></tscreen> </itemize> För mera komplicerade och ovanliga skrivarinställningar, ta en titt på Printing-HOWTO. Om du använder <tt/printtool/ så ska du vara medveten om att GSDEVICE, som väljs av printtool, kommer fungera, men att det inte nödvändigtvis är det bästa för din skrivare. Du bör tänka över om du inte borde fippla lite med filen <tt/postscript.cfg/. Jag ändrade t.ex. GSDEVICE från <tt/cdj500/ till <tt/djet500/, och nu skriver den ut mycket snabbare. <sect> Programkonfigurering <p> Vi ska ta en titt på följande konfigureringsfiler: <tt>/etc/profile</tt> <tt>/etc/bashrc</tt> <!-- knep för att undvika problemet med punkten i början --> <tt>.bashrc .bash_profile .inputrc .less .lessrc</tt> <tt>.xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl</tt> <tt>.joerc .emacs</tt> . Lägg inte till några användare förrän du har konfigurerat färdigt ditt system; du ska stoppa in punktfilerna i <tt>/etc/skel</tt>. <sect1> <tt/bash/(1) <p> Följande huvudfiler skall modifieras, för att skräddarsy <tt/bash/ beteende: <itemize> <item> <tt>/etc/bashrc</tt> innehåller alla systemvida alias och funktioner; <item> <tt>/etc/profile</tt> innehåller systemvida miljöprylar och startprogram; <item> <tt>$HOME/.bashrc</tt> innehåller användarens alias och funktioner; <item> <tt>$HOME/.bash_profile</tt> innehåller användarens miljö-prylar och start-program; <item> <tt>$HOME/.inputrc</tt> innehåller tangentbindningar och andra småsaker. </itemize> Exempel på dessa filer visas nedan. Först och främst: <tt>/etc/profile</tt>. 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. <code> # /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 </code> Här är ett exempel på en <tt>/etc/bashrc</tt>: <code> # /etc/bashrc # Systemvida funktioner och alias # Miljöprylar ska vara i /etc/profile alias which="type -path" alias d="ls" alias dir="d" </code> Här kommer ett exempel på en <tt/.bashrc/: <code> # $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} } </code> Här kommer ett exempel på en <tt/.bash_profile/: <code> # $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 </code> Här är ett exempel på en <tt/.inputrc/: <code> # $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 </code> För att få backspace- och delete-tangenterna att fungera korrekt i en <tt/xterm/, och andra X11-applikationer, så behövs också följande: <itemize> <item>lägg in följande i din <tt/.xinitrc/: <tscreen><verb> usermodmap=$HOME/.Xmodmap xmodmap $usermodmap </verb></tscreen> <item>lägg in detta i <tt/.Xmodmap/: <tscreen><verb> keycode 22 = BackSpace keycode 107 = Delete </verb></tscreen> vilket fixar konsollen. För att fixa <tt/xterm/: <item>lägg in följande i din <tt/.Xdefaults/: <tscreen><verb> 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~") </verb></tscreen> </itemize> <tt/rxvt/ är en aning mer komplicerad, eftersom vissa inkompilerade alternativ påverkas dess beteende. Se exempel-<tt/.bash_profile/ ovan. Mer information finns i man-sidorna för <tt/bash/(1) och <tt/readline/(3). Räkna inte med att alla applikationer fungerar korrekt! Om du t.ex. kör <tt/joe/ i en <tt/xterm/, så är det vissa tangenter som inte fungerar. Samma sak gäller för <tt/rxvt/-versioner som är äldre än 2.21. <sect1> <tt/ls/(1) <p> <tt/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 <tt>/etc/profile</tt>: <tscreen><verb> eval `dircolors /etc/DIR_COLORS -b` export LS_OPTIONS='-F -T 0 --color=tty' </verb></tscreen> (Om du inte har filen <tt>/etc/DIR_COLORS</tt>, ta bort referensen till den i första raden.) Detta anger miljövariabeln <tt/LS_COLORS/, vilken innehåller färglistan, vilken anges i <tt>/etc/DIR_COLORS</tt>. Observera: fråga mig inte varför, men det här fungerar inte i <tt/rxvt/-versionen som är äldre än 2.21; använd något annat slags <tt/xterm/ istället. Det verkar som om <tt/rxvt/ har en bugg som hindrar det från att ta in miljön på ett korrekt sätt under vissa omständigheter. Calderas <tt/ls/ har inte färger, men det finns en motsvarighet till färg-<tt/ls/. Lägg till följande i <tt>/etc/bashrc</tt>: <tscreen><verb> alias ls="color-ls $LS_OPTIONS" </verb></tscreen> <sect1> <tt/less/(1) <p> 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: <itemize> <item>för att använda <tt/less/ med förflyttnings-tangenterna, lägg in följande textfil, som <tt/.lesskey/, i din hem-katalog: <tscreen><verb> ^[[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 </verb></tscreen> Kör sedan kommandot <tt/lesskey/. Detta skapar en binär-fil, <tt/.less/, vilken innehåller tangent-bindningarna. <item> skapa en fil <tt>/usr/bin/lesspipe.sh</tt>, som innehåller: <code> #!/bin/sh # Detta är en förprocessor för less. Den används när denna miljö- # variabel är angiven: LESSOPEN="|lesspipe.sh %s" lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # Se innehållet i .tar- och .tgz-filer *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # Se packade filer korrekt *.zip) unzip -l $1 2>/dev/null ;; # Titta i arkiv *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -q -p -i -l $1 2>/dev/null ;; *.cpio) cpio --list -F $1 2>/dev/null ;; *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` FILE=`echo $FILE | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tascii -mandoc $1 fi ;; *) file $1 | grep text > /dev/null ; if [ $? = 1 ] ; then # det är inte något slags text strings $1 fi ;; esac } lesspipe $1 </code> och kom ihåg att göra den körbar med <tt/chmod 755 lesspipe.sh/. lägg in följande rader i <tt>/etc/profile</tt>: <tscreen><verb> LESS="-M-Q" # lång prompt, tyst LESSEDIT="%E ?lt+%lt. %f" # editera översta raden LESSOPEN="| lesspipe.sh %s" # filter VISUAL=jed # standard-editor; ange din favorit LESSCHARSET=latin1 # visa accent-tecken, om det behövs export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET </verb></tscreen> Variabeln <tt/LESSCHARSET/ är beroende av det faktum att jag bor i Italien och vill använda tecken-uppsättningen ISO 8859/1 (Gäller även Sverige. övers.anm.) Ni amerikaner, japaner och ryssar bör inte ange den. </itemize> <sect1> <tt/emacs/(1) <p> Jag använder inte <tt/emacs/, så jag har bara några små råd att ge dig. Vissa <tt/emacs/-distributioner kommer utan att vara förinställda för färg- och syntax-markering. Skriv detta i din <tt/.emacs/: <tscreen><verb> (global-font-lock-mode t) (setq font-lock-maximum-decoration t) </verb></tscreen> Det här fungerar bara i X11. Jag lämnar arbetet med att gå igenom all <tt/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"... <sect1> <tt/joe/(1) <p> Vissa rapporterar att <tt/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 <tt>/etc/termcap</tt>. Om du stöter på det problemet så är en snabb och skitig (och oelegant) lösning: <tscreen><verb> ~$ export TERM=vt100 ~$ joe min_fil (editera din fil) ~$ export TERM=linux </verb></tscreen> <sect1> <tt/jed/(1) <p> Det här är min favoriteditor: den gör vad jag behöver, den väger lättare och är enklare att konfigurera än <tt/emacs/ och enligt min åsikt emulerar den andra editorer bättre. Många användare på mitt universitet vill ha <tt/jed/ för att emulera <tt/EDT/, VMS system-editor. <tt/jed/s konfigurerings-filer är <tt/.jedrc/ och <tt>/usr/lib/jed/lib/*</tt>; den förra kan kopieras från <tt/jed.rc/ i den senare katalogen. <itemize> <item>för att få <tt/jed/ att använda vissa specialtangenter korrekt, skapa filen <tt>/usr/lib/jed/lib/defaults.sl</tt>, vars enda rad ser ut så här: <tscreen><verb> () = evalfile("linux"); </verb></tscreen> <item>editera <tt>/usr/lib/jed/lib/linux.sl</tt>: ta bort kommentaren från raden som säger <tt>Info_Directory = "/usr/info"</tt>, och lägg till <tt>/bin/mail</tt> efter <tt/UCB_Mailer =/; <item>att få <tt/jed/ att emulera <tt/EDT/ (eller andra editorer) är rättframt: du behöver bara modifiera några rader i <tt/.jedrc/. Om du vill använda det numeriska tangentbordets "+" för att ta bort ord istället för enskilda tecken, lägg till följande till <tt/.jedrc/: <tscreen><verb> unsetkey("\eOl"); unsetkey("\eOP\eOl"); setkey("edt_wdel", "\eOl"); setkey("edt_uwdel", "\eOP\eOl"); </verb></tscreen> efter raden som säger <tt/() = evalfile("edt");/. <item>för att få <tt/xjed/ att använda det numeriska tangentbordet till <tt/EDT/-emuleringen, infoga följande i <tt/.Xmodmap/: <tscreen><verb> keycode 77 = KP_F1 keycode 112 = KP_F2 keycode 63 = KP_F3 keycode 82 = KP_F4 keycode 86 = KP_Separator </verb></tscreen> Vidare, se till att din <tt>/etc/X11/XF86Config</tt> innehåller de följande raderna: <tscreen><verb> # ServerNumLock # must be commented out XkbDisable </verb></tscreen> Detta gäller för XFree 3.2. Om du dock inte använder ett vanligt amerikanskt tangentbord, obeservera att "XkbDisable" kan ge dig en del problem. Dessa lämnar jag åt dig att upptäcka. <item>färginställningar för <tt/xjed/ görs genom att lägga till rader som dessa, i <tt/.Xdefaults/: <tscreen><verb> xjed*Geometry: 80x32+150+50 xjed*font: 10x20 xjed*background: midnight blue </verb></tscreen> <item> "abbreviation"-funktionerna (förkortning. övers.anm.) är en ovärderlig tidssparare. Skapa en fil, <tt>$HOME/.abbrevs.sl</tt>, med följande innehåll: <tscreen><verb> create_abbrev_table ("Global", ""); define_abbrev ("Global", "GG", "Guido Gonzato"); create_abbrev_table ("TeX", "\\A-Za-z0-9"); define_abbrev ("TeX", "\\beq", "\\begin{equation}"); define_abbrev ("TeX", "\\eeq", "\\end{equation}"); % och så vidare... </verb></tscreen> och knappa in <tt>ESC x abbrev_mode</tt> för att få det att starta. För att ha "abbreviation" på som standard, lägg till följande i din <tt/.jedrc/: <tscreen><verb> define text_mode_hook () { set_abbrev_mode (1); } % define fortran_hook () { set_abbrev_mode (1); use_abbrev_table ("Fortran"); } % och så vidare... </verb></tscreen> </itemize> <sect1> <tt/efax/(1) <p> 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 <tt>/usr/bin/fax</tt>. Det är ett lätt jobb, men några små saker gav mig en del huvudvärk: <itemize> <item>DIALPREFIX: det finns en möjlighet att det inte räcker att använda "T" eller "P" i vissa länder. Lägg in "ATDT" eller "ATDP" istället; <item>INIT och RESET: dessa strängar innehåller initierarna "-i" och "-k", vilka <tt/efax/ behöver. Om du vill lägga till ett AT-kommando, så lägg till det till den lämpliga strängen, men utelämna "AT" och inled resten med antingen "-i" eller "-k". T.ex.: för att lägga till "ATX3"-kommandot till INIT, så lägger du till "-iX3". </itemize> <sect1> TeX med vänner <p> Jag kommer förutsätta att du har teTeX-distributionen. Jag har bara några saker att påpeka här: <itemize> <item>för att konfigurera avstavnings-mönstret för ditt språk, editera filen <tt>/usr/lib/texmf/texmf/tex/generic/config/language.dat</tt>, och skriv sedan: <tscreen><verb> ~# texconfig init ; texconfig hyphen </verb></tscreen> <item>om du lägger till LaTeX-paketet, så kör kommandot <tt/texhash/, så att teTeX får vetskap om det nya paketet, efter att du har lagt till filerna i <tt>/usr/lib/texmf/texmf/tex/latex/</tt<. <item>om du vill ställa in <tt/dvips/, så är filen att editera <tt>/usr/lib/texmf/texmf/dvips/config/config.ps</tt>. Du ska vara medveten om att fälten som rör standard-upplösningen också påverkar <tt/xdvi/s beteende; om du är med om irriterande försök att skapa typsnitt, varje gång du kör det, så lägg raden <tscreen><verb> XDvi*mfmode: </verb></tscreen> i <tt/.Xdefaults/. Det bör hjälpa. </itemize> <sect1> PPP <p> 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 <tt/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: <itemize> <item> din ISPs telefon-nummer; <item> din ISPs "name server"; <item> din ISPs e-post- och nyhets-servrar; <item> din ISPs domän; <item> ditt användarnamn och lösenord; </itemize> 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: <itemize> <item>ett X11-baserat verktyg är EzPPP, vars hemsida finns på <tt> <url url="http://www.serv.net/~cameron/ezppp/index.html"> </tt>. Det är väldigt enkelt att använda det är nästan självförklarande. <item>för tty-baserad uppkoppling, pröva verktygen som finns på <tt> <url url="ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ppp"> </tt>. Ett av de bästa är <tt/pppsetup-X.XX.tar.gz/. <item>det enklaste konfigureringsverktyget för tillfället är <tt/wvdial/. Du matar det med din ISPs telefonnummer, ditt användarnamn, ditt lösen- ord, och du är igång. Från README-filen: `Det finns en (för till- fället ganska dålig) webb-sida om wvdial på: <tt> <url url="http://www.worldvisions.ca/wvdial"></tt>'. Ett väldigt fint verktyg. </itemize> <sect1> POP-klient <p> För att hämta din e-post från en POP-server, använder du en POP-klient som <tt/fetchpop/ eller <tt/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å <tt> <url url="ftp://sunsite.unc.edu/pub/Linux/system/mail/pop"> </tt>. För att konfigurera dessa klienter: <itemize> <item><tt/fetchpop/: första gången du kör det så kommer du bli tillfrågad om en del information. Svara på frågorna och du är klar. <item><tt/fetchmail/: använd följande enkla <tt/.fetchmailrc/: <tscreen><verb> # $HOME/.fetchmailrc poll mbox.myisp.com with protocol pop3; user john there with password _Loo%ny is john here </verb></tscreen> Du måste ange rättigheterna för filen med kommandot chmod 600 <tt/.fetchmailrc/, annars kommer <tt/fetchmail/ vägra att starta. Det här exemplet är väldigt grundläggande, och förutsätter att du har en fungerande <tt/sendmail/. Det finns oändliga inställningsmöjligheter. Ta en titt på dem på <htmlurl url="http://www.ccil.org/~esr/fetchmail">. </itemize> <sect1> X-Window-systemet <p> 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: <itemize> <item><bf/fvwm/: kopiera <tt>/etc/X11/fvwm/system.fvwmrc</tt> till din hem-katalog som <tt/.fvwmrc/, kolla igenom den och börja experimentera. Detta exempel på en <tt/.fvwmrc/-fil är enligt min åsikt en aning för enkel och gör inte <tt/fvwm/ rättvisa. <item><bf/fvwm95-2/: kopiera <tt>/etc/X11/fvwm95-2/fvwm2rc95</tt> till din hem-katalog, som <tt/.fvwm2rc95/, editera den sedan. Detta exempel är ganska bra. <item><bf/TheNextLevel/: den här är aningen svårare att konfigurera. Kopiera <tt>/etc/X11/TheNextLevel/.*</tt> till din hem-katalog och gå noggrant igenom dem, och försök ställa in dem. Den första du ska titta på är <tt/.fvwm2rc.defines/. </itemize> Förutom dessa måste du även ha en passande <tt/.xinitrc/. Ett exempel: <tscreen><verb> #!/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 </verb></tscreen> <sect1> Fortran <p> Enligt min erfarenhet så är Fortran-till-C-översättaren <tt/f2c/, och dess fasad (front end) <tt/yaf77/, ett bra alternativ till <tt/g77/ om du behöver använda Fortran. Skaffa yaf77-X.Y.tgz från <tt> <url url="ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran"> </tt>. <sect1> Användarens inställningar <p> 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 <tt>/etc/skel</tt>: <tt>.bashrc .bash_profile .bash_logout</tt> <tt>.inputrc .less .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc</tt> <tt>.abbrevs.sl .joerc .emacs </tt> . Observera att <tt/.pinerc/ inte kan färdigställas helt i förväg; se i alla fall till att fälten <tt/user-domain/, <tt/smtp-server/ och <tt/nntp-server/ är ordentligt inställda. <sect1> Uppgradera <p> Om du uppgraderar din maskin, kom ihåg att spara ett par extra filer innan. Några av dessa är: <tt>/etc/X11/XF86Config</tt>, <tt>/usr/bin/fax</tt>, ... <sect> Slutet <label id="The End"> <p> <sect1> Upphovsrätt <p> Om inget annat anges så tillhör upphovsrätten för Linux HOWTO-dokument sina respektive författare. Linux HOWTO-dokument får reproduceras och distribueras hela eller i delar, på vilket som helst medium, fysiskt eller elektroniskt, så länge upphovsrätts-avsnittet finns kvar i alla kopior. Kommersiell distribution är tillåten och uppmuntras; författaren vill dock få veta om eventuella sådana distributioner. Alla översättningar, härledda arbeten eller sammanplockade arbeten, vilka innehåller Linux HOWTO-dokument, måste täckas av denna upphovs- rätt. Alltså, du får producera ett härlett arbete från en HOWTO och lägga till ytterligare begränsningar på dess distribution. Undantag från dessa regler kan tillåtas under vissa förhållanden; var vänlig kontakta Linux HOWTO-samordnaren, på adressen nedan. Kort sagt, vi vill bidra till spridningen av denna information genom så många kanaler som möjligt. Vi önskar dock behålla upphovsrätten till HOWTO-dokumenten och vill bli underrättade om alla planer på vidare- distribuering av HOWTOna. Om du har några frågor, var vänlig kontakta Tim Bynum, Linux HOWTO- samordnare, på linux-howto@sunsite.unc.edu, via e-post. <sect1> Läsarrespons <p> Den här HOWTOn behöver, kanske ännu mer än andra, dina förslag, din kritik, dina bidrag, och de är mycket välkomna. Respons är inte bara välkommen: den är nödvändig. Om du tycker att något fattas eller är fel, skicka mig ett e-brev. Om du har en annan distribution än Red Hat eller Caldera och dina konfigurerings-filer är annorlunda eller placerade i andra kataloger, var vänlig tala om detta för mig och jag ska ta med dina tips. Mitt mål är att göra livet med Linux så lätt som möjligt. Det finns ett enormt antal paket till Linux, så det är omöjligt att ta med instruktioner för dem alla. Var vänlig håll dina krav/förslag på en nivå av "de mest rimliga" programmen; jag överlåter det åt ditt sunda förnuft. <sect1> Tillkännagivanden <p> "Config-HOWTOn" är skriven av Guido Gonzata, <tt><htmlurl url="mailto:guido@ibogfs.cineca.it" name="guido@ibogfs.cineca.it"></tt>. Många tack till alla andra HOWTO-författare och man-sides-författare och -underhållare, vars arbete jag skamlöst har plundrat. Det här dokumentet levereras "som det är". Jag har lagt ned stor möda på att skriva det så korrekt som möjligt, men du får använda informationen i det på egen risk. Under inga omständigheter ska jag hållas ansvarig för några skador som resulterar av användandet av det här verket. Jag hoppas att du finner det här verket användbart. Varenda gång jag installerar en ny Linux-burk, så gör jag det... Håll till godo, Guido <tt/=8-)/ </article>