xxxxx xxxxxxx @ xxOxOxx xxxxxx @@x xVVVVVx xx x xx VVV xx xx @@@ xxx xxxx xxx xxx xxxxx xxxxxx x xx xx @ @x xxx xx xx xx xxx xx x xx xx @ @x xx xx xx xx xxx x xxx xx @@x xx xx xx xx xxx QQx xxQ xx x @@x xx xx xx xx xx xx QQQQQQx xQQQQQQ xx xx @@x x xx xx xxx xxx xx xx QQQQQQQx xQQQQQQQ xxxxxxxxxxxx xxx xxxx xxxx xxxx xxx xxxxx xxxxxx QQQQQxxxxxxxQQQQQ "Alweer zo'n Unix/Linux cheatsheet" 1999-2004 door Peter van Egdom Homepage : "http://members.chello.nl/p.van.egdom/" Versie : 0.5.6 Datum : 4 januari 2004 o Deze text is geschreven met behulp van de volgende Linux distributies: - Red Hat Linux 6.x, 7.x, 8.0 en 9 - Linux Mandrake 6.1 - SuSE Linux 6.4 - KNOPPIX 3.2 - Fedora Core release 1 o Alles wat hier in staat is gebaseerd op de bij mij vers geinstalleerde bovenstaande versies. Ik weet niet of alle tips en trucs ook van toepassing zijn op versies groter of kleiner dan bovenstaande versies, op andere distributies van Linux, andere kernel versies dan 2.2.x, 2.4.x of andere POSIX-compatible besturingssystemen (HP-UX, Solaris, *BSD, Mac OS X, etc.) o De programma's die gebruikt zijn om deze text te schrijven zijn: "vi", "gedit", "kedit" en "pico". o Alle CLI opdrachten gaan uit van BASH (GNU Bourne-Again SHell). Ik weet niet hoe deze zich gedragen in combinatie met de C shell, de Korn shell of andere shells. o Sommige commando's en opdrachten kunnen alleen worden uitgevoerd als er als root is ingelogd. ------------------------------------------------------------------------------ Inhoudsopgave: Hoofdstuk 1 .... Linux/Unix commando's voor gebruik in console en terminal sessies. Hoofdstuk 2 .... Belangrijke bestanden en directories. Hoofdstuk 3 .... Algemene ditjes en datjes. Hoofdstuk 4 .... Belangrijke utilities / tools / libraries. Hoofdstuk 5 .... Handige sites voor Linux gebruikers. Hoofdstuk 6 .... Versie geschiedenis van deze textfile. ------------------------------------------------------------------------------ Hoofdstuk 1 +-------------------------------------------------------------------+ | Linux/Unix commando's voor gebruik in console en terminal sessies | +-------------------------------------------------------------------+ --------------+--------------------------------------------------------------- Commando | Commentaar --------------+--------------------------------------------------------------- # alias | Maak zelf een virtueel commando, bijv. "alias dir='ls -al'". | Door alleen "alias" in te typen krijg je een overzicht van | welke aliassen er allemaal gedefinieerd zijn. | # alternatives| Met het commando "alternatives" kan worden geschakeld tussen | verschillende soorten server systemen voor hetzelfde doel. | | Denk hierbij aan Postfix en Sendmail. Of CUPS en LPR. | | Om een overzicht te krijgen van de huidige MTA (Mail Transfer | Agent) kan het volgende commando worden gebruikt : | | "alternatives --display mta" | | Om te schakelen naar een andere MTA kan het volgende commando | worden gebruikt : | | "alternatives --config mta" | # apropos | Met het commando "apropos" kan in de 'whatis' database naar | strings worden gezocht. | # arp | Het commando "arp" kan worden gebruikt om de ARP cache van het | systeem te manipuleren. Het ARP (Address Resolution Protocol) | protocol is verantwoordelijk voor de koppeling van het IP- | adres aan het MAC-adres van de netwerkkaart. | # arpwatch | "arpwatch" is een tool die combinaties van IP-adressen en | MAC adressen in de gaten houdt en bijzonderheden rapporteert | aan de root user. | # at | "at" kan worden gebruikt om (userlevel) jobs uit te voeren. | Bijvoorbeeld: | | "at 20:10" - Maakt een queue aan voor 20:10 uur. Gebruik | Ctrl-d om de queue af te sluiten. | | Het grote verschil tussen "at" en "cron" is dat "at" bedoeld is | om jobs slechts een keer uit te voeren en "cron" bedoeld is om | jobs periodiek uit te voeren. | # atq | "atq" geeft een overzicht van de jobs gedefinieerd met "at". | # atrm | "atrm" kan worden gebruikt om "at" jobs te verwijderen. | # atrun | "atrun" start jobs die door "at" gedefinieerd zijn. | # awk | "awk" is een erg krachtige programmeertaal bedoeld voor het | manipuleren van data. Het wordt vaak gebruikt in Unix shell | scripts, evenals "grep" en "sed". Ook op de commandline kan | "awk" handig zijn. Hieronder staan een paar voorbeelden voor | het gebruik van "awk" op de commandline : | | a) Dit commando geeft de 5e kolom uit de 'messages' logfile : | "cat /var/log/messages |awk {'print $5'}" | | b) Dit commando geeft de 3e kolom uit de 'messages' logfile, | en alleen die regels waar het woord 'cups' in voorkomt : | "awk '/cups/ {print $3}' /var/log/messages" | | c) Dit commando geeft de 1e en de 5e kolom, van regels uit de | 'messages' logfile waarvan de waardes van de 2e kolom | kleiner zijn dan de waarde 5 : | "awk '{if ($2 < 5) print $1, " ",$5}' /var/log/messages" | # badblocks | Scan een disk partitie op bad blocks. Lees de manpage. | !!! ALLEEN GEBRUIKEN INDIEN NODIG !!! | # batch | Maak een batch-proces aan. Beeindig invoer met en | start de batch met "atrun". | # bggen | Genereer gekleurde achtergronden. | Ooit meegeleverd bij SuSE Linux. | # bunzip2 | Met het commando "bunzip2" kunnen .bz2 bestanden worden | gedecomprimeerd. | # bzip2 | Met het commando "bzip2" kunnen bestanden worden gecomprimeerd. | Dit programma gebruikt het 'Burrows-Wheeler' compressie- | algoritme dat in sommige gevallen effectiever kan zijn dan het | LZ77/LZ78 (Lempel-Ziv) compressie algoritme gebruikt door het | programma "gzip". | # bzip2recover| Programma om beschadigde bzip2 bestanden te repareren. | # cal | Toont een simpel kalendertje op het scherm. | | Om bijvoorbeeld de kalender van het jaar 2003 op het scherm te | laten zien, kan het commando "cal 2003" worden gegeven. | # cat | Laat de inhoud van een (text) bestand zien. Gebruik: | "cat [file]". | | Bijvoorbeeld : | "cat -vet [file]" - laat bestand zien met speciale tekens. | # cd | Wissel van directory. Gebruik: "cd [directory]". | | Als er geen directory-naam wordt meegegeven dan springt "cd" | naar de home-directory van de user. | | Als het commando "cd -" wordt gegeven dan springt "cd" naar de | vorige directory. | # cdda2wav | "cdda2wav" kan worden gebruikt om een audio CD om te zetten in | .wav bestanden, die dan vervolgens weer met een MP3 encoder | kunnen worden behandeld. Zie ook het commando "cdparanoia". | # cdparanoia | cdparanoia - Een audio CD extract programma. | | Kan gebruikt worden om WAV bestanden van een audio CD te maken | die dan bijvoorbeeld met een tool als LAME (www.lame.org) | kunnen worden geconverteerd naar MP3 bestanden. | | Bijvoorbeeld : | | Doe een audio CD in je CD speler en gebruik "cdparanoia -B -v" | om de hele audio CD naar WAV bestanden om te zetten. | # cdrdao | "cdrdao" is een programma om CD's mee te branden. | | NOGDOEN : Voorbeeld om een .bin/.cue bestand te branden. | # cdrecord | Programma om CD's mee te branden. Gebruik: | | "cdrecord --scanbus" - Overzicht van welke devices gebruikt | kunnen worden voor het branden van CD's. | | "cdrecord --dev 0,0,0 blank=fast" - Fast erase van een CD-RW. | "cdrecord --dev 0,0,0 " - Brand op CD. | # cfdisk | Programma om partities te beheren. Kan alleen worden opgestart | door root. Niet meer meegeleverd bij Red Hat 7.2 en hoger. | # chage | Het commando "chage" kan gebruikt worden om de expiratie datum | van passwords voor een bepaalde user in te stellen. | | Gebruik: | | "chage -l [user]" om van een gebruiker de expiratie datum van | het password op te vragen. | | "chage [user]" om van een gebruiker de expiratie datum van | het password in te stellen. | # chattr | Het commando "chattr" kan worden gebruikt om de attributen van | een bestand op een ext2 filesystem te wijzigen. | | "chattr +a [file]" zorgt ervoor dat er alleen append acties op | een file mogen worden gedaan. | | "chattr -a [file]" maakt het append attribuut ongedaan. | | "chattr +i [file]" zorgt ervoor dat een bestand niet kan worden | veranderd, gewist of gerenamed. Alleen root | kan dit attribuut aan- of uitzetten. | | "chattr -i [file]" maakt het 'immutable' attribuut ongedaan. | | "chattr +s [file]" zorgt ervoor dat wanneer een bestand wordt | gewist het eerst wordt overschreven door | nullen. | | "chattr -s [file]" maakt het 'secure deletion' attribuut | ongedaan. | | Om de attributen van bestanden te bekijken kan het commando | "lsattr" worden gebruikt. | # chfn | Het commando "chfn" kan worden gebruikt om de informatie die | het commando "finger" gebruikt te wijzigen. Deze informatie is | opgeslagen in het bestand "/etc/passwd". | | Gebruik: "chfn [user]". | # chgrp | Met het commando "chgrp" kan van een of meerdere bestanden de | 'group ownership' veranderd worden. Gebruik: | "chgrp [group] [bestand]". | # chkconfig | Met het commando "chkconfig" kan informatie worden verkregen | over system services en de bijbehorende runlevels. Gebruik: | | "chkconfig --list" om een overzicht te verkrijgen welke system | services er in welk runlevel draaien. | | Het is ook mogelijk om met deze tool de "/etc/rc[0-6].d" | directory structuur te manipuleren: | | /etc/rc.d/init.d/ | | | +-> rc0.d | | ... | +-> rc6.d | | In de directories "/etc/rc[0-6].d" zijn links te vinden die hun | oorsprong hebben in de "/etc/rc.d/init.d" directory. | | Met behulp van dit commando kunnen links uit deze directories | worden verwijderd of aangemaakt. Gebruik: | | "chkconfig --level [runlevel(s)] [service] " | | Bijvoorbeeld: | | "chkconfig --level 12345 rhnsd off" | | Bovenstaand commando schakelt de Red Hat Network Services | Daemon uit voor de runlevels 1, 2, 3, 4 en 5. | # chkdupexe | Het commando "chkdupexe" zoekt naar duplicate executables die | voorkomen in $PATH. Was ooit meegeleverd bij Mandrake Linux. | # chmod | Met het commando "chmod" kunnen de permissies van een bestand | worden veranderd. Gebruik: "chmod [option] [mode] [file]". | | Bijvoorbeeld, de permissies van het commando "ls" zijn: | | -rwxr-xr-x 1 root root 49164 Mar 24 23:09 ls | | d||||||||| (Directory). | 4|||||||| Read by owner. | 2||||||| Write by owner. | 1|||||| eXecute by owner. | 4||||| Read by group. | 2|||| Write by group. | 1||| eXecute by group. | 4|| Read by everyone. | 2| Write by everyone. | 1 eXecute by everyone. | | (r) <-> lezen en openen. | (w) <-> schrijven, wissen en editen. | (x) <-> opstarten en uitvoeren. | | Gebruik: | | "chmod +x [file]" - Zet van een file de eXecute bit aan. | "chmod -x [file]" - Zet van een file de eXecute bit uit. | "chmod +w [file]" - Zet van een file de Write bit aan. | "chmod -w [file]" - Zet van een file de Write bit uit. | "chmod +r [file]" - Zet van een file de Read bit aan. | "chmod -r [file]" - Zet van een file de Read bit uit. | | Met behulp van octale getallen kunnen combinaties van 'rwx' | worden gebruikt. | | Bijvoorbeeld: | | "chmod 777 [file]" -> file krijgt -rwxrwxrwx als attributen. | "chmod 634 [file]" -> file krijgt -rw--wxr-- als attributen. | "chmod 142 [file]" -> file krijgt ---xr---w- als attributen. | | Zie de manual pages voor een uitgebreide uitleg. | | | In plaats van octale getallen te gebruiken om permissies in te | stellen, kan ook het volgende worden gebruikt: | | "u" -> User who owns the file. | "g" -> Other users in the file's group. | "o" -> Other users not in group. | "a" -> All users. | | Ook met deze letter-combinaties kunnen de 'rwx' combinaties | worden gebruikt. Bijvoorbeeld: | | "chmod a+w [file]" - Zet voor alle users de Write bit aan. | "chmod u-x [file]" - Zet voor de eigenaar de eXecute bit uit. | | | Verder zijn er nog de speciale attributen 'sticky', 'setgid' | en 'setuid'. Het relevante getal om deze attributen in te | stellen is het eerste octale getal (zie onderstaande tabel). | | Commando | Resultaat | Attributen | ------------------+----------------------+----------- | chmod 1000 [file] | sticky | ---------T | chmod 2000 [file] | setgid | ------S--- | chmod 3000 [file] | setgid sticky | ------S--T | chmod 4000 [file] | setuid | ---S------ | chmod 5000 [file] | setuid sticky | ---S-----T | chmod 6000 [file] | setuid setgid | ---S--S--- | chmod 7000 [file] | setuid setgid sticky | ---S--S--T | | Een voorbeeld van een programma met het attribuut 'setuid' is | het commando "/usr/bin/chsh" (-rws--x--x). Dit commando kan | door elke user worden opgestart en omdat het 'setuid' rechten | heeft kan het draaien met root-rechten. Dit is nodig om de | file "/etc/passwd" te wijzigen. | | setuid -> Effective uid set to the uid of the file owner. | setgid -> Executable files with this bit set will run with | effective gid set to the gid of the file owner. | sticky -> When set on a directory, unprivileged users can | delete and rename only those files in the directory | that are owned by them, regardless of the permissions | on the directory. Under FreeBSD, the sticky bit is | ignored for executable files and may only be set for | directories. | # chown | Met behulp van het commando "chown" kan van een of meerdere | bestanden de eigenaar worden veranderd. Gebruik: | "chown [gebruiker] [bestand(en)]". | # chpasswd | Het commando "chpasswd" kan worden gebruikt om de password | file te veranderen. In tegenstelling tot het commando "passwd" | kan het commando "chpasswd" in niet-interactieve modus | gebruikt worden, denk bijvoorbeeld aan het gebruik van dit | commando in scripts. | # chroot | Het commando "chroot" kan worden gebruikt om een commando of | een shell te starten in een opgegeven root directory. | Een (stom) voorbeeld: | | Kopieer "/bin/bash" naar "/var/ftp/bin/" | Kopieer "/lib/libdl.so.2" naar "/var/ftp/lib/" | | Start vervolgens een chroot sessie op met "chroot /var/ftp/". | # chsh | Het commando "chsh" kan worden gebruikt om de login shell te | veranderen. Informatie over shells die gebruikt kunnen worden | haalt dit commando uit de file "/etc/shells". Gebruik: | | "chsh -l" - Om een overzicht te krijgen welke login shells | gekozen kunnen worden. | | Dit programma zal de file "/etc/passwd" wijzigen. | # clear | Maakt het scherm schoon. | # clockprobe | Het commando "clockprobe" geeft de horizontale en de verticale | scanrates en de waarde van de pixel clock weer. | Niet meer meegeleverd bij Red Hat Linux 8.0 en hoger. | # cmp | Het commando "cmp [file1] [file2]" laat de verschillen zien | tussen 2 bestanden. Dit commando is niet zo uitgebreid als het | commando "diff". | # col | Het commando "col" vervangt spaties in een textfile door tabs. | # colrm | Het commando "colrm" verwijderd kolommen uit een textfile. | | Gebruik: "colrm [start] [eind]". | | Bijvoorbeeld: | | "ls -l |colrm 1 16" -> Haalt de permissies van de bestanden uit | de output van "ls -l". | # consoletype | Het commando "consoletype" geeft aan of de huidige console een | virtual terminal, een serial console of een pseudo terminal is. | # convert | Met het commando "convert" kunnen grafische bestanden in een | bepaald formaat worden geconverteerd naar een ander grafisch | formaat. | # cp | Het commando "cp" kan gebruikt worden om een bestand te | kopieren. Gebruik: "cp [optie] [bron] [bestemming]". | # cpio | NOGDOEN | zcat lnx_920_disk1.cpio.gz | cpio -idmv | NOGDOEN | # crontab | Met het commando "crontab" kunnen de tabellen die nodig zijn | voor de cron daemon worden bewerkt. Gebruik: | | "crontab -e" om de crontab aan te passen. | "crontab -l" om de crontab te bekijken. | | Layout van de crontab: | | # +------------------------ minuut (0-59) | # | +-------------------- uur (0-23) | # | | +---------------- dag v/d maand (1-31) | # | | | +------------ maand v/h jaar (1-12) | # | | | | +-------- dag v/d week (0-6) (0=zondag) | # | | | | | +---- script of commando | # | | | | | | | * * * * * * | | Het grote verschil tussen "at" en "cron" is dat "at" bedoeld is | om jobs slechts een keer uit te voeren en "cron" bedoeld is om | jobs periodiek uit te voeren. | | Als een crontab is aangemaakt met "crontab -e" dan komt deze | crontab in de directory "/var/spool/cron/" te staan. | # cut | Het commando "cut" is bedoeld om tekst-regels te manipuleren. | Bijvoorbeeld: | | "cat /etc/passwd |cut -d : -f 1,6" | | Bovenstaand voorbeeld laat alleen het eerste en het zesde veld | (optie -f 1,6) - waarbij als delimiter het : teken wordt | gebruikt (optie -d :) - van de "/etc/passwd" file zien. | # cvs | CVS staat voor 'Concurrent Versions System' en is een tool om | versie-beheer voor programmacode mogelijk te maken. | | Om bijvoorbeeld de nieuwste libgphoto2 (library voor digitale | camera's) te downloaden vanaf de cvs server van Sourceforge kan | de volgende opdracht worden gebruikt: | | cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gphoto \ | checkout libgphoto2 | | En dit zijn een paar commando's die gebruikt kunnen worden bij | een opensource vertaal project: | | cvs co translate | cvs update | cvs add xx.po | cvs commit -m "updated translation" xx.po | # date | Geeft de huidige tijd en datum of stel de klok van de PC in. | | "date -d yesterday" - geeft de tijd van gisteren. | "date -d '1 week ago'" - geeft de tijd van 1 week terug. | | Met dit commando kan ook de datum van de PC worden ingesteld. | Bijvoorbeeld: | | "date 100415122001" (zet de tijd op 4 oktober 15:12:00 2001) | | Zie ook het commando "hwclock". | # dd | Het commando "dd" staat ook wel bekend als 'data duplicator'. | Dit commando kan bijvoorbeeld worden gebruikt om een floppydisk | naar een image te kopieren, bijvoorbeeld: | | "dd if=/dev/fd0 of=floppy_image" | | Het kan natuurlijk ook worden gebruikt om de image weer terug | te kopieren naar een floppydisk, bijvoorbeeld: | | "dd if=floppy_image of=/dev/fd0" | | Of om de MD5 sum van een CD te genereren: | | "dd if=/dev/cdrom bs=2k | md5sum" | # depmod | Het commando "depmod" regelt de dependencies tussen kernel- | modules onderling. De dependencies van de kernel-modules worden | in het bestand "/lib/modules/x.x/modules.dep" gezet | (waarbij x.x de versie is van de gebruikte kernel). | | Gebruik: | | "depmod -a -v" - Om het bestand "/lib/modules/x.x/modules.dep" | aan te maken. | # df | "df" betekent DiskFree en laat zien hoeveel ruimte er nog vrij | is op, alle door Linux te lezen, ge-mounte devices. | | "df -h" - Output in human-readable form (K, M en G). | "df -T" - Print het filesystem type. | # diff | Het commando "diff [bestand 1] [bestand 2]" laat de verschillen | zien tussen 2 bestanden. | | Dit commando kan ook worden gebruikt voor het maken van een | patch, bijvoorbeeld: "diff -u". | # dig | Tool om informatie te verkrijgen van DNS servers. | # dirs | Bekijk de inhoud van de directory-stack. | # dmesg | Het commando "dmesg" kan worden gebruikt om de 'kernel ring | buffer' te bekijken. | | De kernel ring buffer is de tekst die tijdens het booten op het | scherm verschijnt. Tijdens het gebruik van Linux zal de ring | buffer uitgebreidt worden met boodschappen van de kernel. | # du | Het commando "du" geeft een opsomming van de Disk Usage van de | bestanden en de directories. | | Gebruik "du -h" om dit commando zijn output in Kilobytes en | Megabytes te laten genereren (de parameter "-h" staat voor | 'human-readable'). | | Om bijvoorbeeld een overzicht te krijgen welke gebruiker in | "/home" de meeste ruimte in neemt: | | "du -s * | sort -nr | tee /tmp/du_home.txt | more" | "du --max-depth=1 |sort -n" | # e2fsck | NOGDOEN zie "fsck" | # echo | Het commando "echo" geeft een teken of een regel tekst of de | inhoud van een variabele weer. | | echo -n "Hallo" | echo $[ 1+2-5*3 ] | echo "`date`" | # edquota | "edquota" is een commando bedoeld om disk quota's voor de | gebruikers van het systeem aan te passen. | # eject | Met behulp van het commando "eject" kun je van devices zoals | een CD-ROM, een SCSI-device, een floppy en een tape-device | 'eject' laten uitvoeren. Nu hebben de meeste PC's geen eject | mechanisme in deze devices - afgezien dan van de CD-ROM drive. | | Om de tray van de CD-ROM drive te openen, typ het commando: | "eject". Om de tray weer te sluiten, typ het commando: | "eject -t". | # elm | Start het mail-programma 'elm' op. | # env | Het commando "env" geeft een overzicht van de (ge-exporteerde) | omgevingsvariabelen. | # expand | Het commando "expand" converteerd tabs naar spaties. Gebruik: | "expand output_file". | | In bovenstaand voorbeeld word de input file, die tabs bevat, | geconverteerd naar de output file, zonder tabs. | | Nog een voorbeeld: "expand -t 2 file2" | | Bovenstaand voorbeeld converteerd alle tabs naar 2 spaties van | "file1" naar "file2". | # export | Het commando "export" is bedoeld om shell variabelen in te | stellen. Het commando "export" geeft, zonder parameters, een | lijst van alle (ge-exporteerde) shell-variabelen. Om een shell- | variabele te wijzigen kan bijvoorbeeld het volgende commando | worden gebruikt: | | "export DISPLAY=callahan:0" | # exportfs | Tool voor gebruik van NFS. Dit commmando wordt gebruikt na het | wijzigen van de file "/etc/exports". | # expr | Met het commando "expr" kunnen op de CLI berekeningen worden | uitgevoerd. Bijvoorbeeld: | | "expr 3 \* 8" | # faillog | NOGDOEN | # fdisk | "fdisk" is, net als in MS-DOS en Windows 9x, een tool om disk- | parities te manipuleren. | | "fdisk -l" - Laat alle partities zien op alle fysieke harde | schijven. (maakt gebruik van "/proc/partitions"). | # fdformat | Het commando "fdformat" kan worden gebruikt om floppy-disks te | formatteren. Gebruik: | | "fdformat [device]". Bijvoorbeeld: | | "fdformat /dev/fd0h1440" - Dit commando formatteert een floppy | disk in device fd0 op 1.44M. | | Na het formatteren van een floppy disk moet er ook een file- | system worden aangemaakt op de betreffende floppy-disk. | | Hiervoor is het commando "mkfs" bedoeld. | # fetchmail | "fetchmail" is een tool om e-mail op te halen van een e-mail | server en dit weer door te sturen. | | Het volgende commando test de werking van een POP3 mail | server : "fetchmail -Ncvp pop3 -u testgebruiker localhost" | # file | Het commando "file" geeft informatie over elk willekeurig | bestand. Het geeft bijvoorbeeld van een plaatje aan wat de | dimensies en de kleurdiepte zijn. Of in het geval van een | executable, hoe en waarmee de executable is gecompileerd. | | Bij Red Hat 6.x wordt de informatie die dit commando gebruikt | gehaald uit het bestand "/usr/share/magic". | | Bij de distributie van SuSE 6.4 is dit "/usr/lib/magic". | | Gebruik: "file [bestand]". | # find | Met het commando "find" kan gezocht worden naar bestanden in de | directory-structuur. Gebruik: | | "find -name [file]". | | Bijvoorbeeld: | | "find ./ -name test*" - Zoekt vanaf de huidige directory in | alle onderliggende paden naar bestanden | en directories die beginnen met de naam | 'test'. | | find . -inum 180837 -exec rm -i {} \; | | Bovenstaand commando zoekt naar het bestand met inode 180837 en | vraagt vervolgens deze te wissen. | # finger | Met het commando "finger" kan informatie worden opgevraagd over | een user. Het commando wordt aangeroepen met: | "finger user@host". | | De informatie die dit commando nodig heeft wordt gehaald uit | het bestand ".plan", dat in de homedirectory van een user | staat. | | Ook het bestand ".project" wordt gebruikt om informatie te | tonen die dit commando nodig heeft. | | Om een overzicht te krijgen van alle users die ingelogd zijn | op de huidige machine, kan het commando "finger @localhost" | worden gebruikt. | # fmt | Met behulp van het commando "fmt [file]" kunnen textbestanden | gemanipuleerd worden. | # for | for f in ./filenaam ; do echo $f ; done | # free | Geeft informatie over het gebruikte en het nog beschikbare | geheugen en de swapfile. | # fsck | "fsck" is een programma bedoeld om Linux filesystems op fouten | te controleren en eventueel te repareren. | | !!! Pas op met het gebruik van dit programma !!! | | In principe zou je dit programma bijna niet nodig hoeven te | hebben omdat Linux tijdens het opstarten de nodige controles | uitvoert. | | De meest makkelijke manier om dit programma zijn werk te laten | doen gaat als volgt: | | "su -" | "touch /forcefsck" | | | Het programma "fsck" word nu opgestart tijdens het booten - | dit is handig omdat er dan geen bestanden gelockt zijn. | | Als je zelf met dit programma wilt werken kun je dit het beste | doen in runlevel 1 (single user mode). | # ftp | Start het FTP-client programma op. | | Voorbeeld van gebruik van FTP in een shell-script: | | #!/bin/sh | ftp -n -v localhost <" - Laat zien welke processen er gebruik | maken van . | | "fuser /dev/dsp" - Laat zien welke processen er gebruik | maken van /dev/dsp (de geluidskaart). | | "fuser -k /dev/dsp" - Stuurt alle processen die gebruik maken | van /dev/dsp een SIGKILL signaal. | | "fuser -km /mnt/windows/" - Om alle processen te killen die | gebruik maken van "/mnt/windows". | | "fuser -n tcp 6000" - Welke daemon gebruikt tcp poort 6000? | | "fuser -v /dev/dsp" - Laat meer informatie zien. | | "fuser -v ftp/tcp" - Welk proces heeft een FTP poort open? | # getconf | NOGDOEN | # glxinfo | Informatie over de geinstalleerde OpenGL implementatie. | # grep | Het commando "grep" geeft een string weer uit een opgegeven | bestand. Gebruik: | | "grep [string] [file]". | | Zonder parameters is "grep" case-sensitive maar met de | parameter "-i" is dit commando case-insensitive. Gebruik: | | "grep -i [string] [file]". | | Het commando "grep" kan ook gebruikt worden om de output van | een ander commando te filteren, bijvoorbeeld: | "ps -aux |grep sh". | | Een ander handig gebruik van grep is om de parameter "-v" te | gebruiken om juist alle regels weer te geven die _niet_ de | opgegeven string bevatten. Bijvoorbeeld: | | "cat [file] |grep -v [string]" | | Nog een paar voorbeelden: | | rpm -qa |grep "kernel\|gcc\|rpm" | | "ls -l |grep ^l" - Grep op alle regels die beginnen met een | 'l' teken, in dit geval alle symbolische | links. | # groff | NOGDOEN | "groff -Tascii -man bestand.txt >bestand.1" | NOGDOEN | # groupadd | Het commando "groupadd" voegt een group toe aan het systeem. | Gebruik: "groupadd [group]". | # groupdel | Het commando "groupdel" verwijderd een group uit het systeem. | Gebruik: "groupdel [group]". | # groupmod | Het commando "groupmod" veranderd de eigenschappen van een | group. Gebruik: | | "groupmod -g [gid]" - Om het ID van de group te veranderen. | "groupmod -n [group]" - Om de naam van de group te veranderen. | # groups | Geeft een lijst van de groups waartoe een user hoort. | # grpck | Controleer de "/etc/group" file op een aantal zaken. | # gunzip | Met "gunzip" kunnen bestanden die eindigen op de extensie | ".gz" worden gedecomprimeerd. Gebruik: "gunzip [file]". | # gzexe | Met behulp van de utility "gzexe" kan de filesize van een | executable bestand worden gereduceerd. Deze utility pakt een | executable bestand in met het "gzip" programma. | | Aan de header van de gecomprimeerde file (in .gz formaat) | wordt een script toegevoegd die het gecomprimeerde programma | automatisch uitpakt, en opstart. | | Gebruik: "gzexe [file]". | # gzip | Het commando "gzip" is bedoeld om bestanden te comprimeren. | Aan de oorspronkelijke bestandsnamen wordt de extensie .gz | toegevoegd. De gecomprimeerde bestanden behouden de | oorspronkelijke tijdaanduiding. | | Gebruik: "gzip [bestand]". Het gebruik van wildcards is | toegestaan. | # halt | Het commando "halt" heeft hetzelfde effect als het commando | "shutdown -h now", namelijk het afsluiten van het systeem en | - als APM aan staat - het uitzetten van de computer. | # hash | Met het commando "hash" kan worden opgevraagd welke commando's | er zijn uitgevoerd in de huidige sessie en het aantal keer dat | deze zijn uitgevoerd. | # head | Het commando "head" geeft de eerste 10 regels van een ASCII | bestand weer. Dit commando kent de volgende parameters: | | "head -n" om het aantal regels dat weergegeven moet worden op | te geven. | | "head -c" om het aantal bytes dat weergegeven moet worden op | te geven. | | Gebruik: "head [optie] [bestand]". | | Voorbeeld: "head -n 7 /var/log/messages" | # help | Geeft een overzicht van de interne Linux commando's. | Het commando "help" is een opdracht van de bash interpreter en | geeft daarom alleen de interne commando's weer van bash. | # hexdump | Tool om van een file een hexadecimale dump te maken. | # history | Laat zien wat je allemaal hebt ingetypt. Een history file gaat | erg ver terug in het verleden en kan dus heel groot worden. | | De lokatie van de history file kan worden verkregen met het | commando "echo $HISTFILE". | | De history file staat standaard op 1000 ingetypte commando's. | (dit getal kan worden verkregen m.b.v. "echo $HISTSIZE") | | Bij de output van dit commando staan nummers, om een bepaalde | regel in de history te herhalen kan het commando: | | !21 | | worden gebruikt. Dit herhaalt de opdracht die op regel 21 van | de history staat. | | Om het laatst ingevoerde commando te herhalen kan het commando | | !! | | worden gebruikt. | # host | "host" is een tool om een DNS server te raadplegen. Voorbeeld: | | "host -t MX chello.nl" | # hostname | Geeft de hostname van de machine. | # hwclock | "hwclock" is een tool om de hardware clock in te stellen. | Gebruik: | | "hwclock --systohc" (systeem clock -> hardware clock) | "hwclock --hctosys" (hardware clock -> systeem clock) | | Linux kent 2 verschillende klokken in de computer, de hardware | (CMOS) clock en de systeem clock. | | "hwclock" - geeft de waarde van de CMOS clock. | "date" - geeft de waarde van de systeem clock. | # id | Het commando "id" laat het UserID, het GroupID en de groups | zien waartoe de user behoort. | # ifconfig | Het "ifconfig" commando is bedoeld om informatie op te vragen | over de status van de network interface. Het kan ook gebruikt | worden om de network interfaces te configureren: | | "ifconfig eth0 down" - Gooi network device eth0 down. | "ifconfig eth0 10.0.0.1" - Zet IP adres van eth0 op 10.0.0.1 | # ifdown | Het commando "ifdown" kan worden gebruikt om een network- | device down te gooien. Bijvoorbeeld: "ifdown eth0" gooit de | network device 'eth0' down. | # ifup | Het commando "ifup" kan worden gebruikt om een network device | weer up te gooien. Bijvoorbeeld: "ifup eth0" gooit de network | device 'eth0' up. | # info | Start de InfoExplorer op. Dit is een soort hypertext-gebaseerd | programma dat draait in text-mode. Dit programma is bedoeld om | informatie op te vragen over o.a. de ingebouwde Unix-CLI | commando's. | # infocmp | NOGDOEN | # init | Met het commando "init" kan van runlevel worden veranderd. | Dit commando kent de volgende parameters: | | "init 0" - Halt. | "init 1" - Single user mode. | "init 2" - Multiuser, zonder NFS. | "init 3" - Volledige multiuser mode. | "init 5" - Volledige multiuser mode + X11. | "init 6" - Reboot. | "init q" - Lees opnieuw de "/etc/inittab" file. | "init s" - Switch naar single user mode. | # insmod | Installeer een loadable module. Gebruik: "insmod [module]". | # iostat | Geef statistieken van de CPU, devices en partities. | # ip | "ip route show" | # ipchains | ipchains - Een Linux kernel 2.2 firewall. | # iptables | iptables - Een Linux kernel 2.4 firewall. | # isoinfo | NOGDOEN | # jobs | NOGDOEN | # kill | Stuur een proces een signaal op basis van het proces id (PID) | nummer. De PID nummers kun je verkrijgen d.m.v. "ps -aux". | | Als een proces niet gekilled wilt worden kun je het dwingen | door middel van parameter "kill -9 [PID]". | | Met "kill -HUP [proces]" kan een signaal worden verstuurd naar | een proces dat ervoor zorgt dat het betreffende proces opnieuw | word gestart. Het PID van dit proces blijft dan hetzelfde, maar | bijvoorbeeld configuratie-bestanden worden opnieuw ingelezen. | | Met het commando "kill -l" kan een overzicht worden verkregen | welke signalen er aan het commando "kill" meegegeven kunnen | worden. | # killall | Met het commando "killall" kunnen processen getermineerd worden | op basis van hun naam. Als er 2 of meerdere processen zijn met | dezelfde naam, dan worden deze allemaal getermineerd. | | Gebruik: "killall [naam]". | # last | Het commando "last" geeft een historisch overzicht van wie | wanneer hoe lang was ingelogd onder welke terminal of console. | | Dit commando kent de volgende handige parameters: | | "last -a" geeft ook de hostname weer. | "last -i" geeft ook het IP nummer weer. | | Het commando "last" maakt gebruik van de file "/var/log/wtmp". | # lastb | Het commando "lastb" geeft een historisch overzicht van de | mislukte login pogingen. | | Dit commando kent de volgende handige parameters: | | "lastb -a" geeft ook de hostname weer. | "lastb -i" geeft ook het IP nummer weer. | | Het commando "lastb" maakt gebruik van de file "/var/log/btmp", | deze file bestaat standaard niet en dient dan ook aangemaakt te | worden met bijvoorbeeld het commando "touch /var/log/btmp". | # lastlog | Geeft een overzicht van wie wanneer was ingelogd onder welke | terminal of console. "lastlog" laat in tegenstelling tot het | commando "last" alle users zien die gedefinieerd zijn in de | file "/etc/passwd". | # ldconfig | Het commando "ldconfig" maakt opnieuw de bindings aan voor | dynamic linked libraries. Dit commando dient alleen te worden | gebruikt bij het upgraden of het installeren van een bepaalde | library. | | Dit commando maakt gebruik van de file "/etc/ld.so.conf". | | "ldconfig -p" - welke shared libraries zitten er in de cache? | # ldd | Het commando "ldd" kan worden gebruikt om te laten zien welke | libraries een bepaald programma gebruikt of nodig heeft. | | Dit kan handig zijn om te achterhalen welke libraries een | programma nodig heeft om bijvoorbeeld met "chroot" te werken. | | Gebruik: "ldd [file]". | # less | Dit is net zoiets als het Unix commando "more [file]", maar | alleen uitgebreider en beter; je kunt bijvoorbeeld naar boven | en naar beneden bladeren met de en de | toetsen. Dit commando kan ook worden gebruikt om de inhoud van | .tar.gz bestanden te bekijken. | # links | 'Links' is een WWW browser in text mode. | # linux_logo | Toont een ASCII versie van Tux (de Linux pinguin) en enige | systeem informatie. Ooit meegeleverd bij Linux Mandrake. | # ln | Met het commando "ln" kunnen 'links' tussen bestanden worden | gemaakt. Er zijn twee soorten links mogelijk tussen bestanden, | de 'hard links' en de 'symbolische links'. | | Een 'hard link' is een directe link naar een inode op het FS. | | Hard links tussen bestanden kunnen alleen op hetzelfde file- | system voorkomen. Bij symbolische links geldt deze restrictie | niet. | | Bijvoorbeeld: | | Ga naar de "/tmp" directory en maak een nieuwe file aan, | genaamd "file1" ("touch /tmp/file1"). Maak nu een hard link | van de file "file1" met als naam "file2" m.b.v. het commando: | | "ln file1 file2" | | Als er een wijziging plaatsvind in het bestand "file1" dan | wordt deze wijziging automatisch doorgevoerd in "file2" (de | hard link). | | Bekijk eens de inodes van de bestanden met : "ls -li". | | Om een symbolische link te maken van het bestand "file1" | kan het volgende commando worden gebruikt: | | "ln -s file1 file3" | | Bekijk weer eens de inodes van de bestanden met : "ls -li". | | De symbolische link zal altijd wijzen naar het originele | bestand. | | Als nu het originele bestand word verwijderd dan is de | symbolische link verbroken, terwijl de harde link nog bestaat. | # lndir | Het commando "lndir" kan worden gebruikt om een shadow- | directory te maken bestaande uit symbolic links van een andere | directory. Gebruik: | | "lndir brondirectory bestemming" | # locate | Doorzoekt een gegevensbank naar een opgegeven bestand. | De gegevensbank moet eerst worden aangemaakt met het commando | "updatedb". Gebruik: | | "locate [string]". | # logger | Het commando "logger" kan gebruikt worden om entries te maken | in de system log. Gebruik: | | "logger [bericht]" -> Maakt een entry in de system log. | "logger -f [file]" -> Maakt een entry in de system log a/d | hand van een opgegeven file. | # logrotate | "logrotate" is een tool om logfiles te rotaten, te comprimeren | en te mailen. | # lpc | Het commando "lpc" start het line printer control program op. | # lpq | Bekijk de spool queue van de printer. Gebruik: | | "lpq -P[printer] [user] [job]". | # lpr | Spool en print een textfile. Gebruik: | | "lpr -P[printer] [file]". | # lprm | Haalt een afdrukopdracht uit de spool-queue. Gebruik: | | "lprm -P[printer] [job] [user]. | # ls | Het commando "ls" laat de directory inhoud zien. Gebruik: | | "ls -al" - Hetzelfde als "ls -l", maar laat ook de verborgen | bestanden zien. | | "ls -F" - Laat d.m.v. de tekens * / = @ | zien om wat voor | bestand het gaat. Deze tekens betekenen: | | * --> executable | / --> directory | = --> socket | @ --> symbolische link | | --> fifo (named pipe) | | "ls -l" - Laat ook de attributen, de eigenaar en de | eigenschappen van de bestanden zien. | | "ls -lh" - Human-readable output. | | "ls -li" - Laat voor elk bestand ook de inode zien. | | "ls -ltr" - Om te sorteren op datum, de nieuwste bestanden | komen onderaan te staan. | | Bijvoorbeeld: | | "ls -l file[a-z]" | "ls -l file[abc]" | # lsattr | Het commando "lsattr" laat de file attributes op een ext2 | filesystem zien die zijn ingesteld door het commando "chattr". | # lsdev | Het commando "lsdev" geeft een overzicht van het gebruik van | DMA, IRQ en I/O Ports door de hardware. | # lsmod | Geeft een overzicht van de modules die zijn ingeladen. Modules | zijn een soort drivers die niet in de kernel zijn ingebakken, | maar tijdens het booten worden opgestart. | # lsof | Het commando "lsof" geeft een lijst met files die open staan. | | "lsof -i" - Alle 'open internet en network files'. | "lsof -i @10.0.0.3:22" - Informatie over gebruik van poort 22. | # lspci | Het commando "lspci" geeft een overzicht van alle PCI devices. | # lynx | 'lynx' is een WWW browser in text mode. | # mail | Het commando "mail" kan gebruikt worden om e-mail te lezen en | te versturen. Bijvoorbeeld: | | "mail -s bla@bla.bla.com < mailtje.txt" | | Bovenstaand commando verstuurd een e-mailtje naar de gebruiker | 'bla' op domein 'bla.bla.com'. Het onderwerp van het mailtje | wordt 'onderwerp' en de inhoud van het mailtje komt in dit | geval uit de textfile 'mailtje.txt'. | | Dit commando kan ook als volgt worden gebruikt: | "cat mailtje.txt | mail bla@bla.bla.com" | | of | | "echo body | mail -s bla@bla.bla.com" | # mailq | Laat de mail queue zien (Sendmail). | # man | Roept de manual pages op van een opgegeven onderwerp. | | Gebruik: | | "man [onderwerp]". | "man [sectie] [onderwerp]". | "man -a [onderwerp]". | "man -k [string]". | | Manual pages zijn onderverdeeld in verschillende secties: | | Sectie 1 - User Commands | Sectie 2 - System Calls | Sectie 3 - libc / Subroutines | Sectie 4 - Devices | Sectie 5 - File Formats (configuratie bestanden in "/etc") | Sectie 6 - Games | Sectie 7 - Miscellaneous | Sectie 8 - System Administration | Sectie n - New | | Om een manual page te printen kan het volgende commando worden | gebruikt: | | "man [onderwerp] | col -b |lpr". | | Het commando "col -b" filtert speciale tekens uit de manpage. | | Om de 'whatis database' te doorzoeken op het trefwoord | 'fractal' kan bijvoorbeeld het volgende commando worden | gebruikt: "man -k fractal". | | Om de manpage over de directory hierarchie te raadplegen: | "man hier". | | Een andere manier om een manual page in ASCII te converteren: | "gzip -dc /usr/share/man/man1/ls.1.gz | nroff -man" | # mc | Start de Midnight Commander op. Dit is een Norton Commander | kloon die meegeleverd is bij de meeste Linux distributies. | | "mc -a -b" - Start Midnight Commander in zwart/wit ASCII mode. | # mcookie | Genereer magic cookies voor "xauth". | # md5sum | Berekent een 128-bit (MD5) checksum van een file. Gebruik: | | "md5sum -c [filenaam.md5]" (controleer checksum van een file) | "md5sum -b [filenaam]" (bereken checksum van een file) | | Bijvoorbeeld: | | "md5sum -c KNOPPIX_V3.2-2003-06-06-EN.iso.md5" | "md5sum -b /bin/ls" | # mesg | Regel de mogelijkheid om voor andere gebruikers berichten naar | het scherm te schrijven d.m.v. het commando "write". Gebruik: | | "mesg n" om deze mogelijkheid uit te schakelen. | "mesg y" om deze mogelijkheid aan te schakelen. | # mii-tool | "mii-tool" is een programma om de status van een netwerk- | interface op te vragen. Gebruik : | | "mii-tool -v" | # mikmod | "mikmod" is een command line music player. Dit programma heeft | ondersteuning voor de volgende formats: | | .IT .XM .MOD .MTM .S3M .STM .ULT .FAR .MED .DSM .AMF .IMF .669 | # mimencode | Encoder en decoder voor MIME bestanden. | Niet meer meegeleverd met Red Hat Linux 8.0 en hoger. | # mkbootdisk | Het commando "mkbootdisk" maakt een boot floppy aan met daarop | de Linux kernel. | | Op grond van het opgegeven root filesystem in het bestand | "/etc/fstab" kan deze diskette dienst doen als emergency disk, | mocht de /boot partitie ooit beschadigd raken. | | Gebruik: | | "mkbootdisk [kernel]". De optie [kernel] is hierbij de versie | van de kernel die op de floppy moet | komen te staan. Deze kan o.a. worden | verkregen met het commando: | | "cat /proc/version" | | Bijvoorbeeld: | | "mkbootdisk 2.2.16-22 --verbose" | # mkdir | Het commando "mkdir" maakt een directory aan. Gebruik: | "mkdir [option] [directory]". | # mkfs | NOGDOEN | # mkinitrd | NOGDOEN | # mkisofs | Dit programma maakt een .iso file aan van een opgegeven | directory. Bijvoorbeeld, om van de directory /tmp een .iso | file aan te maken kan het volgende commando worden gebruikt : | | "mkisofs -o test.iso -J -r -V testdisk /tmp" | | - de optie "-o test.iso" is bedoeld om de naam op te geven die | het iso bestand moet krijgen. | - de optie "-J" zet Joliet ondersteuning aan. | - de optie "-r" zorgt voor de juiste file attributen. | - de optie "-V testdisk" geeft het volume label van de CD aan. | | Het resulterende .iso bestand kan op CD worden gebrand met het | programma "cdrecord". | # mkpasswd | Met het commando "mkpasswd" kan een random, uniek wachtwoord | worden gegenereerd. Dit commando is onderdeel van het "expect" | package. | # modinfo | Het commando "modinfo" is bedoeld om informatie te verkrijgen | over een kernel module. Bijvoorbeeld: | | "modinfo -p sb" - Laat zien welke parameters de module voor de | Soundblaster geluidskaart heeft. | # modprobe | Het programma "modprobe" is een tool voor loadable modules. | Gebruik: | | "modprobe -c" - Laat huidige configuratie van modules zien. | "modprobe -l" - Laat alle beschikbare modules zien. | | Om een module te laden is "modprobe [module]" voldoende. | # more | Laat inhoud van bestand zien, maar dan per pagina. Gebruik: | "more [file]". | # mount | Mount een filesystem. Gebruik: | "mount -t [filesystem type] /dev/[devicenaam] [directory]". | | Zie de manual pages voor een uitgebreide uitleg. | # mpg123 | Het commando "mpg123" is in staat om audio MPEG 1.0/2.0 | bestanden af te spelen. | | In verband met de licentie op de MP3 codec helaas niet meer | meegeleverd met Red Hat Linux 8.0 en hoger. | # msgfmt | "msgfmt" is een tool om een .po 'message catalog' naar een | binair formaat te converteren. ".po" files worden veel | gebruikt voor vertalingen van opensource software. | | Gebruik "msgfmt -v nl.po" | # mt | Tool voor tapestreamers. Met "mt" is het o.a. mogelijk om een | tape terug te spoelen en een eject te laten uitvoeren. | # mv | Met behulp van "mv" kun je bestanden - en directories - naar | andere directories moven en renamen. | # ndc | BIND8 NOGDOEN (in BIND9 is dit "rndc"). | # netstat | Netstat displays information of the Linux networking- | subsystem. | | "netstat -a" -> Overzicht alle open TCP en UDP poorten. | "netstat -l" -> Overzicht 'server sockets'. | "netstat -ltp" -> Laat TCP poorten zien die wachten op een | connection request (LISTEN) met bijbehorende | PID's. | "netstat -nat" -> Laat alle TCP connecties zien. | "netstat -nlt" -> Laat TCP poorten zien die wachten op een | connection request (LISTEN). | "netstat -r" -> Print een route tabel. | "netstat -rn" -> Print route rabel en laat IP-adressen zien | i.p.v. hostnames. | "netstat -s" -> Geeft overzicht van de statistieken van de | protocollen TCP, IP, UDP en ICMP. | "netstat -t" -> Laat alleen de established TCP connecties | zien. | # newaliases | Alleen voor de Sendmail gebruikers. Bouw opnieuw de database | voor de mail aliases file ("/etc/aliases"). | # newgrp | Log in onder een andere Group ID. Gebruik: "newgrp [group]". | # nice | Met het commando "nice" kan een programma of commando worden | opgestart met een andere prioriteit dan de standaard | prioriteit. | | Dit geldt alleen voor programma's of commando's die nog niet | zijn opgestart. Om de prioriteit van lopende programma's of | commando's te wijzigen is het commando "renice" bedoeld. | | Het commando "nice" wordt als volgt gebruikt: | | "nice -n [prioriteit] [opdracht]" | | Waarbij de parameter -n de waarden -20 (hoogste prioriteit) | tot 19 (laagste prioriteit) kan hebben. | # nl | Met deze opdracht kunnen regelnummers in tekstbestanden | worden aangebracht. Gebruik: "nl [option] [bestand]". | | Bijvoorbeeld: | | "cat bestand.txt |nl -ba" | # nohup | NOGDOEN | # nslookup | Het commando "nslookup" kan gebruikt worden om DNS servers te | raadplegen. Als dit commando zonder parameters wordt opgestart | dan start "nslookup" in de interactive mode op. Gebruik: | | "nslookup [server]". | # nsupdate | NOGDOEN | # ntpdate | NOGDOEN | # ntsysv | Tool voor het configureren van runlevels. | # passwd | Met het commando "passwd" kun je je password veranderen. | | Het Linux systeem zal bij het invoeren van dat nieuwe password | gelijk checken of het password een 'dictionary word' is. | | Een dictionary word is een woord dat veel gebruikers als | password gebruiken (bijvoorbeeld het woord 'Computer'). | | Het commando "passwd" kan ook gebruikt worden om het password | van een andere gebruiker te veranderen. Gebruik: | | "passwd [username]" - Verander password van een user. | | "passwd -l [username]" - Lock account van een user. | "passwd -u [username]" - Unlock account van een user. | | Het locken van een account kan d.m.v. het toevoegen van een | uitroepteken (!) vlak voor het password field in de shadow- | password file (/etc/shadow). | # patch | "cd /usr/src/linux" | "patch -p1 output_file". | # rexec | remotely execute a command. NOGDOEN | # rlogin | rlogin is used to remotely login to a host. NOGDOEN | # rm | Het commando "rm [file]" verwijderd een file. | Dit commando kent een paar handige opties, o.a.: | | "rm -r [dir]" - Verwijderd een directory en alle | subdirectories in deze directory. | | "rm -rf [dir]" - Dezelfde opdracht, maar vraagt niet steeds om | bevestiging als er iets verwijderd wordt. | | "rm -- [file]" - Om een file te wissen die begint met een - | (min) teken. | # rmdir | Het commando "rmdir" verwijderd een _lege_ directory. | # rmmod | Het commando "rmmod" verwijderd een opgegeven loadable module | uit het geheugen, mits deze niet in gebruik is. | # rndc | BIND9 NOGDOEN | # route | Het commando "route" kan gebruikt worden om de huidige IP- | route tabel te laten zien, of deze te wijzigen. Bijvoorbeeld: | | "route del default" - Wis de default gateway. | "route add default gw 10.0.0.1" - Maak 10.0.0.1 de default gw. | # rpm | Het commando "rpm" staat voor Red Hat Package Manager. Dit | commando is te vinden op Red Hat Linux gebaseerde systemen en | dient om software packages in het .rpm formaat te beheren. | | Gebruik: | | "rpm -e" om een geinstalleerde package te de-installeren. | | "rpm -i" om een package te installeren. | | "rpm -ivh" om een package te installeren met extra informatie | op het scherm. | | "rpm -q" om van een geinstalleerde package het versienummer | op te vragen. | | "rpm -qa" om een overzicht te verkrijgen van alle | geinstalleerde packages. | | "rpm -qai" om een overzicht te verkrijgen van alle | geinstalleerde packages en de beschrijving daarvan. | | "rpm -qc" om van een geinstalleerde package op te vragen | welke configuratie bestanden deze package gebruikt. | | "rpm -qd" om van een geinstalleerde package op te vragen | welke documentatie bestanden deze package gebruikt. | | "rpm -qf" om van een willekeurig bestand op te vragen bij | welke geinstalleerde package dit bestand hoort. | | "rpm -qi" om van een geinstalleerde package de beschrijving | te verkrijgen. | | "rpm -ql" om van een geinstalleerde package op te vragen | welke bestanden deze gebruikt. | | "rpm -qpl" om van een package (file in plaats van de rpm- | database) de inhoud op te vragen. | | "rpm -qpi" om van een package (file in plaats van de rpm- | database) de beschrijving te verkrijgen. | | "rpm -qpR" om de dependencies van een package op te vragen. | | "rpm --rebuild " | | "rpm --rebuilddb" om de RPM database opnieuw te bouwen. | | "rpm --checksig --nopgp" om de MD5 sum te controleren. | | "rpm -U" om een package te upgraden. | | "rpm -Uvh" om een package te upgraden met extra informatie op | het scherm. | | "rpm -Va" om een overzicht te genereren van alle 'Unsatisfied | dependencies' en bestanden die sinds de initiele | installatie zijn gewijzigd. | | Verder kunnen met de bovenstaande parameters de volgende sub- | parameters worden meegegeven: | | "--changelog" als dit wordt gebruikt in combinatie met "-q" kan | van een bepaald package worden opgevraagd wat er | veranderd is door de maintainer van dat package. | Bijvoorbeeld : "rpm -q --changelog kernel |less" | | "--force" om bestanden uit packages bij installatie te | overschrijven door bijvoorbeeld nieuwere versies, | zelfs als de bestanden al op het systeem voorkomen. | | "--hash" om tijdens het uitpakken van een package hash-marks | weer te geven. | | "--last" om tijdens de weergave van de geinstalleerde | packages deze te sorteren op de datum waarop de | packages zijn geinstalleerd. | | "--nodeps" om eventuele dependencies te negeren. | | "--percent" om percentages weer te geven naarmate de packages | worden uitgepakt. | | "--prefix" om de package te installeren in een opgegeven | directory. | | "--test" om een simulatie uit te voeren i.p.v. het | daadwerkelijk uitvoeren van een installatie of | deinstallatie. | | "-vv" om extra informatie op het scherm weer te geven. | # rsh | remotely run a shell. NOGDOEN | # runlevel | Het commando "runlevel" geeft het huidige runlevel weer. | # rwall | Stuur een bericht naar alle gebruikers op een netwerk. | Gebruik: "rwall hostname [file]" | # sar | NOGDOEN | # scp | scp - secure copy. Onderdeel van de OpenSSH tool suite. | # script | NOGDOEN | # sed | sed (Stream EDitor). Bijvoorbeeld: | | "cat dd.sh |sed 's/ftp/abc/g'" | "cat cd1 |sed 's/.rpm*//'" | | NOGDOEN | # service | NOGDOEN | # set | Het commando "set" geeft een lijst met alle door Linux | gebruikte variabelen (lokale en ge-exporteerde) en de | bijbehorende waarden. | | "set -o xtrace" | # setclock | NOGDOEN | # setleds | setleds -caps NOGDOEN | # setserial | NOGDOEN | # setterm | setterm - set terminal attributes. Dit commando geldt alleen | voor text-terminal sessies. Voor grafische terminal sessies | dient het commando "xset" gebruikt te worden. | | "setterm -blength 0" - zet de beep uit. | "setterm -blank 0" - zet de console schermbeveiliging uit. | # showmount | Tool voor NFS. NOGDOEN | # showrgb | Laat alle kleuren zien die te gebruiken zijn in X. | # shred | Het commando "shred" kan worden gebruikt om een bestand heel | veilig te verwijderen. Recovery van dat bestand is dan | onmogelijk. | # shutdown | PAS OP! Sluit het systeem af. Er wordt met dit commando | overigens wel een SIGTERM signaal gestuurd, zodat programma's | nog wel netjes worden afgesloten, bovendien wordt de inhoud | van de cache op de harde schijf weggeschreven. Gebruik: | | "shutdown [optie] [tijd]" | | Waarbij van de volgende opties gebruik kan worden gemaakt: | | "shutdown -k" - Stuur alleen een waarschuwing naar alle | ingelogde users. | "shutdown -r" - Herstart het systeem. | "shutdown -h" - Sluit het systeem af en zet de machine uit. | "shutdown -f" - Ga geen filesystem check doen bij het opnieuw | opstarten. | "shutdown -F" - Forceer een filesystem check bij de herstart | van het systeem. | | Bijvoorbeeld: "shutdown -r now" | # sleep | "sleep 10" pauzeert de shell voor 10 seconden. | # slocate | Secure versie van "locate". | # smbclient | smbclient -L 127.0.0.1 -n | # smbmount | "smbmount" is een commando om een (Windows) SMB share te | mounten. | | smbmount "\\\\Windows\\c" -c 'mount /mnt/smb1' -I 10.0.0.13 | | NOGDOEN | # socklist | NOGDOEN | # sort | Het commando "sort" sorteert o.a. text-bestanden. | Bijvoorbeeld: | | - "sort output_file" | Sorteert de inhoud van "input_file" naar "output_file". | | - "sort m[1-3] -o test" | Sorteert de inhoud van bestanden "m1", "m2" en "m3" naar | het bestand "test". | | - "du -S -h |sort -n -r |more" | Maakt een overzicht van de directories die de meeste ruimte | in nemen, gesorteerd op volgorde van grootte. | | - "ls -lR | sort +4n" | Maakt een overzicht van alle bestanden, gesorteerd op | grootte. | # sox | Het commando "sox" kan gebruikt worden om geluidsbestanden te | converteren en te manipuleren. | # split | Dit programma hakt een bestand in stukjes (zonder het origineel | aan te tasten). | | Bijvoorbeeld: "split -b 10k test4". | Dit hakt het bestand "test4" in stukjes van 10 kilobyte. | # ssh | ssh - Secure Shell. Dit is een veel veiliger alternatief voor | Telnet en FTP. | # ssh-keygen | NOGDOEN "ssh-keygen -t dsa" | # startx | Het commando "startx" kan gebruikt worden om een X sessie te | starten. Gebruik: "startx [client]" om op te geven welke | window-manager moet worden gebruikt. | | Om meer dan een X sessie tegelijk te starten kan het volgende | commando worden gebruikt: | | "startx -- :1" | | Om te schakelen tussen de 2 verschillende X sessies kunnen de | toetscombinaties en worden | gebruikt. | # stat | Het commando "stat [file]" geeft van de betreffende file de | inhoud van de inode. | # strace | Het commando "strace [file]" traceert 'system calls and | signals'. Dit commando kan van pas komen bij het debuggen van | een programma. | | Bijvoorbeeld: | | "strace -o /tmp/a ls" | "strace -e trace=file cdrecord" | "strace -p " | # strings | Het commando "strings" filtert ASCII text uit binaire files. | Gebruik: "strings [file]". | # strip | strip - haalt debug informatie uit een executable (mits de | executable de debug informatie in zich heeft). | # stty | "stty -a" - Print terminal settings. | "stty erase " | # su | Het commando "su" staat voor 'Substitute User'. Dit commando | kan gebruikt worden om van User ID en Group ID te veranderen. | Gebruik: | | "su [user]" -> Om de User ID en de Group ID in die van | [user] te veranderen. | "su - [user]" -> Maak van de huidige shell een login shell | voor [user]. De huidige directory wordt | $HOME. | "su -" -> Om niet alleen de User ID en de Group ID | te veranderen, maar ook om als root in te | loggen. | "su -c [commando]" -> Om als root een opgegeven commando uit te | voeren. | # sudo | /etc/sudoers | visudo | NOGDOEN | # SVGATextMode| Het programma "SVGATextMode" is bedoeld om van fullscreen text | consoles de VGA modes te herprogrammeren. De configuratie-file | die door het programma "SVGATextMode" wordt gebruikt, is de | file "/etc/TextConfig". Een voorbeeld: | | "SVGATextMode 80x50x9" - Zet het scherm op 80x50 karakters. | "SVGATextMode 80x25x9" - Zet het scherm op 80x25 karakters. | | Dit programma kent de volgende parameters: | | "SVGATextMode -s" geeft een overzicht van de geldige VGA modi. | "SVGATextMode -o" reset VGA registers naar een 'valid state'. | # symlinks | NOGDOEN | # sync | Schrijf de inhoud van de diskcache weg naar de schijf. | (Synchronize memory and disk). | | Dit commando is nodig wanneer gegevens naar bijvoorbeeld een | floppy drive zijn geschreven die gemount is. Voordat de floppy | na een schrijf-actie uit de diskdrive kan worden gehaald is | dit commando nodig. Als de 'mtools' worden gebruikt dan hoeft | het commando "sync" niet te worden gebruikt. | # sysctl | Tool om op runtime niveau kernel parameters aan te passen. | Met deze tool kan het "/proc" filesystem worden gemanipuleerd. | | De parameters die met dit commando aan de kernel kunnen worden | aangepast vereisen geen reboot. | | Bijvoorbeeld: | | "sysctl -a" - Overzicht van alle huidige parameters. | "sysctl -w net.ipv4.ip_forward=1" - Zet IP forwarding aan. | # tac | Het tegenovergestelde van het commando "cat". | # tail | Het commando "tail" geeft de laatste 10 regels weer van een | ASCII file. Dit commando kent de volgende parameters: | | "tail -f" om de laatste regels van een file te bekijken | naarmate deze groeit. Dit is handig om de logfiles in | de directory "/var/log" te bekijken. | | "tail -n" om het aantal regels dat weergegeven moet worden op | te geven. | | Bijvoorbeeld: | | "tail -f /var/log/messages > /dev/console" | "tail -f /var/log/messages > /dev/tty12" | # talk | Praat met een andere gebruiker die op een andere terminal is | ingelogd. Gebruik: | "talk [user] [tty]". | # tar | Het commando "tar" kan van een aantal bestanden een archief- | bestand maken. Het kan ook gebruikt worden om een archief- | bestand uit te pakken. Om de inhoud van een tar.gz bestand te | bekijken kan de parameter "tar tzvf" worden gebruikt. | | "tar" kan ook gebruikt worden om bestanden te archiveren op een | tape in een tapestreamer. Het gebruik van "tar" ziet er dan als | volgt uit: | | "tar cvf /dev/st0 /tmp" | Bovenstaand commando zet de volledige /tmp directory op tape. | | "tar xvf /dev/st0 tmp" | Bovenstaand commando zet de tmp directory terug op de HD. | Door het weglaten van de slash (/) is het mogelijk om de | bestanden van tape in een niet-root directory terug te zetten. | | Parameters: | | c - Kopieer bestanden naar tape (of archive) | x - Kopieer bestanden van tape (of archive) | v - Verbose | f - Om aan te geven dat naar een file moet gearchiveerd | z - Comprimeer met gzip | k - Niet overschrijven | p - Tijdens uitpakken - zelfde permissies | # tcpdump | Met het programma "tcpdump" kunnen in- en uitgaande TCP- | packets worden weergegeven. Een paar voorbeelden: | | "tcpdump tcp" | Bovenstaand commando geeft alle tcp packets weer. | | "tcpdump icmp" | Bovenstaand commando geeft alle icmp packets weer. | | "tcpdump udp" | Bovenstaand commando geeft alle udp packets weer. | | "tcpdump host 192.168.101.1" | Bovenstaand commando geeft alle in- en uitgaande packets van | de host met IP-address '192.168.101.1' weer. | | "tcpdump src 192.168.101.1 and dst 192.168.101.2" | Bovenstaand commando geeft alle packets weer die zich van de | host '192.168.101.1' naar host '192.168.101.2' verplaatsen. | | "tcpdump src 192.168.101.1 and port 21" | Bovenstaand commando geeft alle packets weer die bij de host | '192.168.101.1' op poort 21 (FTP) binnenkomen. | | "tcpdump -a" | Bovenstaand commando captured data in ASCII formaat. | | "tcpdump -i eth0" | Bovenstaand commando luistert op interface eth0. | | Zie de manual pages voor een uitgebreide uitleg van tcpdump. | # tee | "tee" leest van stdin en schrijft naar stout en files. | | Bijvoorbeeld: | | "ps -fwaux | tee processen" | | Bovenstaand voorbeeld geeft de uitvoer van het "ps" commando op | het scherm weer en schrijft tegelijkertijd deze uitvoer in een | bestand genaamd "processen". | # telnet | Start een telnet-sessie op. Gebruik: | "telnet [hostname]". | # test | while test 1; do telnet localhost ;done | # time | Het commando "time" kan gebruikt worden om te meten hoeveel | seconden de verwerking van een bepaald commando of opdracht | heeft geduurd. Bijvoorbeeld: | | "time zip -9 -r test.zip *". | | | | real 2m1.787s | user 1m23.360s | sys 0m3.080s | # tload | Een soort "xload", maar dan voor niet-X-terminals. | # tmpwatch | NOGDOEN | # top | Het commando "top" toont een real time overzicht van processen | die op het systeem draaien. Bovenaan staan de processen die de | meeste CPU-tijd verbruiken. | | Als de load average 1.0 (of meer) is dan is het systeem druk | bezig. | # touch | Dit commando wijzigt de gegevens over de laatste toegangstijd | en modificatiedatum van een bestand. Gebruik: "touch [file]". | | Standaard geeft dit commando de huidige tijd en datum aan een | file. | | Als een niet bestaande file wordt opgegeven met dit commando, | dan wordt deze file aangemaakt. | # tr | Met deze opdracht kunnen een of meerdere tekens in een bestand | worden vervangen door een ander teken. Bijvoorbeeld: | | "cat txtfile_a | tr "root" "rood" >txtfile_b". | | Met bovenstaande opdracht wordt de string 'root' vervangen | door de string 'rood' en de uitvoer komt in file "txtfile_b" | terecht. | | ps -ef | tr -s " " | tr =" "= =","= | | Met bovenstaande opdracht wordt de output van process status | in een komma-seperated output veranderd. | # traceroute | Traceroute - print the route packets take to network host. | Gebruik: "traceroute [hostname]". | # tree | Het commando "tree" laat de directory-tree zien. | # type | Het commando "type" laat de locatie zien van een commando dat | zich in het $PATH bevind. Het laat ook zien of een commando | een Unix opdracht, een shell-opdracht of een shell-functie is. | Bijvoorbeeld: | | "type fdisk". | fdisk is /sbin/fdisk | | "type ls". | ls is aliased to `ls --color=auto -F' | # ulimit | Commando voor het begrenzen van opgegeven systeembronnen. | Bijvoorbeeld: | | "ulimit -t 5". | | Met bovenstaand commando is het aantal seconden dat een | programma gebruik mag maken van de CPU beperkt tot 5. | | Gebruik: | | "ulimit -a" (Overzicht van alle huidige limits). | "ulimit -c" (Maximale grootte van het core bestand). | "ulimit -d" (Maximale grootte van gegevenssegmenten). | "ulimit -f" (Maximale blokgrootte van bestanden). | "ulimit -s" (Maximale grootte stack-segmenten beperken). | "ulimit -t" (Maximum aantal CPU-seconden beperken). | "ulimit -v" (Maximale grootte van virtueel geheugen beperken). | | Dit commando kan handig zijn om andere gebruikers toegang te | ontzeggen van kostbare systeembronnen. | # umask | Het commando "umask" is bedoeld om de standaard bestands- | permissies in te stellen. Bestanden die worden aangemaakt na | het instellen van de "umask" krijgen automatisch de ingestelde | permissies mee. | | Gebruik: "umask [mode]". [mode] is hier een octaal getal. | | Voorbeelden: | | +-------+--------------------+---------------------------+ | | umask | permissions (files)| permissions (directories) | | +-------+--------------------+---------------------------+ | | 044 | (622) -rw--w--w- | (733) drwx-wx-wx | | | 002 | (664) -rw-rw-r-- | (775) drwxrwxr-x | | | Standaard staat de umask op "002". | Dit is terug te vinden in de file "/etc/profile". | | | De permissies van een nieuw bestand worden als volgt berekend: | | Masker : 666 | Opgegeven Umask : 002 | Permissies voor nieuwe file : 664 (-rw-rw-r--) | | Masker : 666 | Opgegeven Umask : 044 | Permissies voor nieuwe file : 622 (-rw--w--w-) | # umount | Unmount een filesystem. Gebruik: "umount [directory]". | # unalias | Maakt de werking van de opdracht "alias" voor een bepaalde | opdracht of commando ongedaan. Gebruik: | "unalias [opdracht]". | (zie het commando "alias"). | # uname | Het commando "uname" geeft wat informatie over het systeem. | Gebruik: | | - "uname -a" (Toont alle informatie). | - "uname -m" (Toont de CPU die in het systeem zit). | - "uname -n" (Toont de hostname die in gebruik is). | - "uname -r" (Toont de versie van de kernel). | - "uname -s" (Toont de naam van het operating system). | # unexpand | Het commando "unexpand" converteerd een bestand met spaties | naar een bestand met tabs (zie het commando "expand"). | # uniq | Het commando "uniq [file]" verwijderd dubbele regels uit een | gesorteerde ASCII file. | # unset | Hiermee kan een variabele worden verwijderd. | # unzip | Utility om bestanden die ingepakt zijn met het commando "zip" | uit te pakken. | # update | NOGDOEN | # updatedb | Update de 'locate' database. | # uptime | Laat zien hoe lang je Linux systeem al draait. | # useradd | Voegt een gebruiker toe aan het systeem. Standaardwaarden die | dit programma gebruikt worden gehaald uit de file: | "/etc/default/useradd". | | Bij het aanmaken van een home-directory voor de user wordt de | directory "/etc/skel" gebruikt. | | Gebruik: "useradd [user]". | # userdel | Verwijder een user account. Gebruik: | | "userdel [user]". | | "userdel -r [user]" - Om ook de home directory van de user en | de inhoud daarvan te verwijderen. | # usermod | Het commando "usermod" kan worden gebruikt om de eigenschappen | van een user account te veranderen. Gebruik: | | "usermod -d [directory]" - Om de home directory van de user te | veranderen. | "usermod -G10 [user]" - Om [user] van group 'wheel' lid te | maken. | # utmpdump | "utmpdump /var/run/utmp" | # uudecode | Het commando "uudecode" kan gebruikt worden om een 'UU encoded' | bestand, dat gemaakt is door "uuencode", te decoderen. | # uuencode | Het commando "uuencode" kan gebruikt worden om een bestand te | coderen in 'UU encoded' formaat. | # vdir | Zie "ls". | # vi | Start de text-editor Vi. | # vidmode | NOGDOEN | # vipw | Wijzig de /etc/password file. | # vlock | Met het commando "vlock" kan een sessie die draait in een | virtual console op slot worden gezet. | # vmstat | Geeft informatie over het virtuele geheugen. Bijvoorbeeld: | | "vmstat 1" laat elke seconde informatie zien. | | "vmstat 3 7" laat 7 keer achter elkaar om de 3 seconden | informatie zien. | # w | Laat zien wie er ingelogd is, wanneer er iemand is ingelogd en | hoeveel CPU tijd een user verbruikt. | # wall | Stuur een bericht naar alle ingelogde gebruikers. | # watch | 'Watch a program with update intervals'. Bijvoorbeeld: | "watch lpq". Op deze manier wordt om de 2 seconden de print | spooler in de gaten gehouden. | # wc | Het commando "wc" staat voor wordcount. Hiermee kun je van een | ASCII file het aantal regels, het aantal woorden en het aantal | characters opvragen. | # wget | Met het commando "wget" is het mogelijk om bestanden van het | World Wide Web te halen. Met de parameter "-r" kan een complete | mirror van een website worden aangemaakt. | | Bijvoorbeeld: | | "wget -r www.dezesite.com". | # whatis | Vraag een korte beschrijving op van een commando of opdracht. | # whereis | Zoek naar de binary, de source en de manual page files van het | opgegeven commando. Bijvoorbeeld: "whereis ls". | # which | Het commando "which" geeft het volledige pad van een opgegeven | commando. | # while | while true; do echo hello; done | # who | Laat zien wie er ingelogd is. | (maakt gebruik van de file "/var/run/utmp"). | # whoami | Geef de huidige UserID weer. | # write | Stuur een bericht naar een andere ingelogde gebruiker. | # X | (direct) X -query foobar | (indirect) X -indirect foobar | (broadcast) X -broadcast | | Nieuwe X server: | | X :1 -query machinenaam | # xargs | find ./ -name g\* |xargs cat |more | find / -name core |xargs rm | | NOGDOEN | # xauth | "xauth" is een programma om de authorization in te stellen en | weer te geven van de X server. | | xauth extract - $DISPLAY | rsh ahost.foo.org xauth merge - | # xclock | Grafische clock. | # xdaliclock | Grafische clock. | # xdpyinfo | Informatie over het X Window System. | # xfontsel | Het commando "xfontsel" geeft een grafische weergave van de | beschikbare fonts op het systeem. | # xhost | Het commando "xhost" kan gebruikt worden om hosts en users | toestemming te geven om connecties te maken met de X server. | | ******************************************************* | * Pas op met dit programma omdat je op deze manier de * | * security van je Linux machine in gevaar brengt. * | ******************************************************* | # xinit | Initialiseer het X Window System. | # xkill | Termineer een niet goed werkend X Window programma met de | muis. | # xload | Eenvoudige weergave van de 'load' van een machine. | # xlock | Met het commando "xlock" kan een Linux systeem dat draait in | grafische mode op slot worden gezet. Om weer verder te gaan | dient het password te worden ingevoerd. | # xlsfonts | Het commando "xlsfonts" geeft een overzicht van alle fonts die | er in X te gebruiken zijn. | | Door middel van de "fonts.dir" bestanden kan ook een overzicht | worden verkregen van de aanwezige fonts. | | Gebruik het commando "locate fonts.dir" om deze bestanden op te | sporen. | | Kortere omschrijvingen van de aanwezige fonts kunnen gevonden | worden in de "fonts.alias" bestanden. | # xmessage | Met het commando "xmessage" kan een berichtje op het scherm | - dat draait in X Window System - worden gezet. | # xon | Met het commando "xon" kan een commando worden uitgevoerd op | een remote machine door middel van een .rhosts file. | # xosview | Uitgebreide weergave van de load van een machine. | # xrefresh | Met het commando "xrefresh" kan een X Window scherm worden | gerefreshed. | # xset | xset - Programma om bepaalde instellingen te wijzigen voor het | X Window System. | | "xset b off" - Zet de systeem beep uit in X. | # xsetbg | NOGDOEN | # xsetroot | Met het commando "xsetroot" kan het uiterlijk van het root | scherm van een X terminal worden aangepast. | | Dit commando kent o.a. de volgende parameters: | | "-def" om de default waarden opnieuw te laden. | "-mod [x] [y]" om een patroon op het scherm te zetten. | "-grey" om een grijze achtergrond in te stellen. | "-solid [kleur]" om een andere achtergond kleur in te stellen. | | Het commando "showrgb" kan worden gebruikt om een overzicht te | krijgen van de te kiezen kleuren. | # xv | xv - een plaatjesviewer voor X. Helaas al een tijdje niet meer | meegeleverd bij Red Hat. | | Kan hier nog gedownload worden: | "http://www.trilon.com/xv/downloads.html#bin-distrib" | | Gebruik: | "xv -max -root -quit image.jpg" | # xvidtune | Video mode tuner voor XFree86. | # xwininfo | Geef informatie over het X Window System. | # Xwrapper | Xwrapper :1 -query arrakis | Xwrapper -query anderemachine | | NOGDOEN | # ytalk | NOGDOEN | # zcat | Bekijk de inhoud van een met gzip ingepakte textfile. | # zip | Compressie & file packaging utility. | | Bijvoorbeeld: | "zip -9 bestand.zip zzz*" - Hiermee worden alle bestanden die | beginnen met zzz ingepakt in een | zip bestand met maximale (-9) | compressie. Hoofdstuk 2 +--------------------------------------+ | Belangrijke bestanden en directories | +--------------------------------------+ +--------------------------+ | Belangrijke directories: | +--------------------------+ # De "/" directory. Dit is de root-directory, en dient als uitgangspunt van alle bestanden in het filesystem. # De "/bin" directory. Deze directory bevat de externe commando's. De bestanden die in deze directory staan zijn de meest gebruikte essentiele systeem commando's en programma's en kunnen door iedereen worden geladen. # De "/boot" directory. In deze directory zit het 'hart' van Linux. Je vind hier o.a. de kernel en andere belangrijke bestanden. # De "/dev" directory. Deze directory bevat allerlei devices. Een device onder Unix (Linux) kan van alles zijn, bijv. een tapestreamer, een CD-ROM, een diskdrive, een HD, een monitor, een printer, etc. Door sommige devices te mounten met het commando "mount" kun je een device actief maken. Het device maakt dan deel uit van het Linux systeem. # De "/etc" directory. De files die in deze directory staan zijn 'system wide configuration files'. Dit houdt in dat als er iets aan deze files wordt veranderd dat er dan veranderingen worden ingevoerd die voor _alle_ users (inclusief de root) gelden. # De directory "/etc/security". # De directory "/etc/sysconfig". # De "/home" directory. Deze directory bevat de home-directories van de users op het systeem. Sommige (oude) distributies zetten in deze directory bestanden die nodig zijn voor o.a. FTP en HTTP. De meeste nieuwe distributies zetten de bestanden voor FTP en HTTP in de directory "/var". # De "/lib" directory. Deze directory bevat allerlei libraries. # De "/lost+found" directory. Deze directory bevat bestanden die recovered zijn door een actie van "fsck". # De "/mnt" directory. Dit is de 'mount point for removable disks'. # De "/proc" directory. Deze directory bevat systeem-informatie. Deze directory bevat tevens een aantal subdirectories waarvan de naam bestaat uit de PID's van de draaiende processen. In deze directories is o.a. het geheugen-gebruik en de shared libraries van de draaiende processen te vinden. Ook is hier de "/proc/sys" directory-structuur te vinden. Aan de hand van de pseudo-files die hier in te vinden zijn is het mogelijk om op run-time niveau instellingen van de kernel te wijzigen. Bijvoorbeeld, met het commando: "echo 1 > /proc/sys/net/ipv4/ip_forward" is het mogelijk om voor een multi-homed machine IP-Forwarding aan te zetten. # De "/root" directory. Dit is de home-directory van de root-user. In deze directory komen o.a. allerlei configuratie-bestanden van programma's en tools die worden gebruikt door de root. # De "/sbin" directory. Deze directory bevat programma's en commando's voor sysadmin doeleinden. Het karakter 's' in deze directory-naam slaat op het feit dat sommige bestanden die in deze directory te vinden zijn, statisch zijn gelinkt. # De "/tmp" directory. Deze directory wordt vooral gebruikt voor tijdelijke bestanden die niet lang bewaard hoeven te worden. Deze directory is erg belangrijk voor een Unix systeem omdat deze gebruikt wordt door systeem programma's. # De "/usr" directory. Deze directory bevat gebruikersprogramma's. # De "/usr/bin" directory. Deze directory bevat (bijna) alle binaire bestanden afkomstig uit geinstalleerde packages die met de werking van het systeem te maken hebben. # De "/usr/doc" directory. Deze directory bevat allerlei documentatie van geinstalleerde packages. # De "/usr/doc/HOWTO" directory. Deze directory bevat allerlei textfiles die uitleg geven over bepaalde aspecten van het Linux systeem. # De "/usr/include" directory. Deze directory bevat header-bestanden voor C programma's. # De "/usr/info" directory. Deze directory bevat gecomprimeerde (.bz2 & .gz) 'info' files. Deze files zijn alleen te lezen met het commando "info". # De "/usr/lib" directory. Deze directory bevat libraries, meestal afkomstig uit packages van applicaties. Het betreft meestal libraries voor de werking van additionele applicaties. # De "/usr/local" directory. Deze directory bevat in het algemeen bestanden die niet meegeleverd zijn bij de geinstalleerde Linux distributie. SuSE 6.4 zet hier overigens de directories neer die nodig zijn voor de werking van de services FTP en HTTP. # De "/usr/sbin" directory. Deze directory bevat uitvoerbare bestanden voor systeembeheer. # De "/usr/share" directory. Deze directory bevat bestanden die door alle gebruikers worden gedeeld. # De "/usr/src" directory. Deze directory bevat source-code. In de directory "/usr/src/linux-2.x.x" staat de source-tree van de Linux kernel. In de directory "/usr/src/RPM" staan de source-tree's van programma sources die uit ".src.rpm" bestanden komen. # De "/usr/X11R6" directory. Deze directory bevat alle bestanden die met het X Window System te maken hebben. # De "/var" directory. Deze directory bevat bestanden die tijdens het werken met het systeem veranderen. # De "/var/log" directory. Deze directory bevat verschillende logfiles. # De "/var/run" directory. Deze directory bevat een aantal .PID bestanden. Deze bestanden bevatten het ProcessID van de bijbehorende daemons. Het kan bijv. erg handig zijn om met deze bestanden te werken in scripts. # De "/var/spool/mail" directory. Deze directory bevat de mailbox files. +------------------------+ | Belangrijke bestanden: | +------------------------+ # De file "/etc/bashrc". Deze file bevat de 'system wide aliases' en de instellingen van de command prompt. # De file "/etc/dir_colors". Dit is de configuratie-file van dircolors. # De file "/etc/exports". Welke directories worden ge-exporteerd voor NFS- filesharing? # De file "/etc/fstab". Deze file bevat het 'file system / mount table'. # De file "/etc/ftpaccess". Dit is de configuratie-file voor de FTP daemon. # De file "/etc/group". Deze file bevat alle 'user groups' die op het systeem zijn gedefinieerd. # De file "/etc/HOSTNAME". In deze file dient de hostname van de machine te staan. # De file "/etc/hosts". Deze file bevat IP-adressen en bijbehorende hostnames. Als er geen nameserver (bijv. in het geval van een klein netwerk) is, dient deze file te worden gebruikt. Deze file dient altijd de regel: "127.0.0.1 localhost.localdomain localhost" te bevatten, als dat niet het geval kunnen diverse netwerk services op de computer kuren gaan vertonen. # De file "/etc/inetd.conf". Deze file bevat de 'internet servers database'. Hier kan worden ingesteld welke services er moeten worden opgestart tijdens het opstarten van het Linux systeem. De moderne Linux distributies gebruiken overigens 'xinetd' ipv. 'inetd'. # De file "/etc/inittab". Deze file bevat informatie over het run-level van het Linux systeem. Er zijn 6 verschillende runlevels in te stellen: Bij Red Hat 6.x zijn deze: 0 - halt (Do NOT set initdefault to this) 1 - Single user mode 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 3 - Full multiuser mode 4 - unused 5 - X11 6 - reboot (Do NOT set initdefault to this) id:5:initdefault: - Run-level 1 is bedoeld voor onderhoud op het systeem, denk aan intensieve reparaties aan het filesystem. Het komt _zeer zelden_ voor dat het systeem op run-level 1 moet draaien. - Run-level 3 is de 'Full multiuser mode'. In dit run-level start het Linux systeem in text-mode op. - Run-level 5 is hetzelfde als run-level 3, maar hier start het Linux systeem in grafische mode op. De verschillende runlevels kunnen ook worden ingesteld _voordat_ Linux wordt opgestart. Dit dient dan worden te worden aangegeven bij de Lilo bootprompt. Bijvoorbeeld: "LILO: linux 1" start Linux op in de Single user mode. Met behulp van "tksysv" (dit is een grafische runlevel manager) kan worden bepaald welke services er draaien in welk runlevel. "tksysv" is alleen bij Red Hat 6.x meegeleverd. Het commando "chkconfig" of het programma "redhat-config-services" kunnen ook worden gebruikt. Bij SuSE 6.4 zijn de runlevels: - Runlevel 0 is halt - Runlevel S is single-user - Runlevel 1 is multi-user without network - Runlevel 2 is multi-user with network - Runlevel 3 is multi-user with network and xdm - Runlevel 6 is reboot Eenmaal opgestart kan ook on-the-fly van runlevel worden veranderd d.m.v. het commando "init". Dit commando kan alleen worden opgestart door de root. Tevens is in de file "/etc/inittab" het aantal 'virtual terminals' te wijzigen. # De file "/etc/issue". Deze text file bevat het bericht dat op het scherm staat bij de login prompt. # De file "/etc/issue.net". Deze textfile bevat de informatie die te zien is tijdens het inloggen naar de machine met bijvoorbeeld telnet. # De file "/etc/ld.so.conf". Deze ASCII file bevat de locaties waar het OS de shared libraries kan vinden. Bij wijziging van deze file dient het commando "ldconfig" te worden gebruikt om de nieuwe libraries aan het OS kenbaar te maken. # De file "/etc/lilo.conf". Deze file is de 'Lilo configuration file'. # De file "/etc/login.defs". # De file "/etc/modules.conf". De melding 'modprobe: Can't locate module ' kun je voorkomen door een regel toe te voegen aan deze file die er als volgt uitziet: "alias off" # De file "/etc/motd". Deze file bevat 'the Message Of The Day'. # De file "/etc/mtab". Deze file bevat mounting information. # De file "/etc/nologin". Als deze file bestaat dan kan alleen root nog inloggen. Overige users die proberen in te loggen krijgen de inhoud te zien van deze file. # De file "/etc/nsswitch.conf". Dit is de configuratie-file van de Name Service Switch. Hierin wordt de volgorde bepaald van name resolving. # De file "/etc/ntp.conf". Dit is de configuratie-file t.b.v. xntpd, de Network Time Protocol Daemon. # De file "/etc/passwd". Deze file bevat de volgende gegevens van de users: - De inlognaam van de user. - Het versleutelde password (als er geen shadow passwords worden gebruikt). - De user ID (UID) (root = 0). - De group ID (GID) (root = 0). - De volledige naam van de user. - De home directory. - De command-shell. Als er met shadow-passwords gewerkt wordt (en dat is aan te raden) dan staat het versleutelde password in de file "/etc/shadow". Deze file is alleen door de root te lezen. # De file "/etc/printcap". In deze file staan de printers voor het systeem gedefinieerd. # De file "/etc/profile". Deze file is system wide en bevat o.a. de $PATH. Deze file wordt uitgevoerd wanneer een user inlogd. Hier staan o.a. de ulimits en enkele aliassen. Als je bijvoorbeeld een directory aan $PATH wilt toevoegen voor elke gebruiker op het systeem kun je de volgende regel opnemen in "/etc/profile": export PATH=$PATH:/opt/MPlayer-0.90rc4/bin # De file "/etc/profile.d". # De file "/etc/rc.d/rc.local". Dit script wordt uitgevoerd nadat alle andere scripts zijn uitgevoerd en toont o.a. het (text) login-scherm. Dit geld alleen voor Red Hat 6.x. De inlogscripts bij SuSE 6.4 staan op een andere locatie. # De file "/etc/rc.d/rc.sysinit". Dit script wordt uitgevoerd tijdens het booten van het systeem. # De file "/etc/resolv.conf". Dit is de configuratie-file waarin de IP- adressen van de nameservers zijn vermeld. # De file "/etc/securetty". In de ttys die in deze file staan mag root inloggen. # De file "/etc/security/limits.conf". # De file "/etc/services". Deze file bevat een lijst met alle network services en de bijbehorende poortnummers. # De file "/etc/syslog.conf". Dit is de configuratie-file voor de daemon syslogd. Hier kan worden ingesteld wat word ge-logged en in welke file de output terecht moet komen. Om alle syslog messages op tty10 te laten verschijnen dient de volgende regel te worden toegevoegd aan "/etc/syslog.conf". *.* /dev/tty10 (vergeet niet de syslog daemon te restarten als dit is gebeurd) ("/etc/rc.d/init.d/syslog restart") # De file "/proc/kcore": Dit is eigenlijk geen bestand, maar een soort pointer naar het geheugen van het systeem. Je zult het bestand dan ook af en toe groter en kleiner zien worden. Het bestand neemt overigens _geen_ harde schijf ruimte in. Je zou het kunnen zien als een soort symbolische link. # De bestanden in de "/var/log" directory. Deze directory bevat o.a. de volgende bestanden: Bij Red Hat 6.x: "boot.log" -> Alle (fout)meldingen en berichten die tijdens het boot- proces op het beeldscherm zijn verschenen. "dmesg" -> De inhoud van de meest recente kernel ring buffer (alles wat je tijdens het booten op het scherm voorbij ziet komen). "messages" -> Historie van de ring buffer, meldingen van daemons, system events, etc. "netconf.log" -> Een log file die o.a. het aanmaken en verwijderen van users bijhoudt. "secure" -> Log file van wie wanneer was ingelogd en op welke terminal dat was. "xferlog" -> Log file van wie wat en wanneer via ftp heeft gedownload of geupload. Bij SuSE 6.4: "boot.msg" -> De inhoud van de kernel ring buffer. "messages" -> Berichten van de daemon syslog (zie /etc/syslog.conf). "warn" -> Alle waarschuwingen en foutmeldingen. "xdm.errors" -> Informatie die xdm geeft op het moment dat X actief wordt. Hou er rekening mee dat deze logfiles na een behoorlijke tijd het Linux- systeem te hebben gebruikt behoorlijk groot kunnen worden. # Je komt soms wel "core" bestanden tegen. Deze worden door Linux/Unix gegenereerd als er een programma is gecrashed. Deze bestanden bevatten een dump van een (bepaald gedeelte) van het geheugen en zijn vooral bedoeld voor ontwikkelaars. Deze bestanden zijn binair. Je kunt ze het beste gelijk verwijderen, aangezien ze vrij groot zijn. Nog beter is om met behulp van het commando "ulimit" de maximale grootte van de core bestand op 0 bytes te zetten. # Bestanden die voor elke gebruiker verschillend zijn: De file ".bash_logout" -> Uitlogopdracht voor de bash shell. De file ".bash_profile" -> Inlog-initialisatie opdracht voor de bash shell. De file ".bashrc" -> Inlog-initialisatie opdracht voor de bash shell. De file ".login" -> Wordt uitgevoerd bij het inloggen. De file ".logout" -> Wordt uitgevoerd bij het uitloggen. De file ".profile" -> Bourne shell initialisatie opdracht. De file ".signature" -> Ondertekeningsbestand voor e-mail. De file ".xinitrc" -> X Window System initialisatie opdracht. De file ".xsession" -> X Window System startopdracht. Hoofdstuk 3 +---------------------------+ | Algemene ditjes en datjes | +---------------------------+ # Bijna elk commando, bijv. "ls -l" kan gebruikt worden met "|more", bijv. "ls -l |more". # Bijna elk commando heeft een ingebouwde help functie, bijvoorbeeld "ls --help". De helpfunctie moet (?) altijd worden aangeroepen met "[commando] --help". # Het gebruik van hoofdletters in Unix commando's is niet gebruikelijk. Het intypen van "LS" i.p.v. "ls" zorgt dan ook voor een foutmelding. Unix is namelijk case-sensitive. Er zijn een paar uitzonderingen zoals "SuperProbe". # Het intypen van het "help" commando zorgt voor wat informatie. Het laat wat Linux/Unix commando's zien. Dit zijn de commando's die ingebakken zitten in de gebruikte Unix shell 'bash' (net zoals in command.com van MS-DOS). De shells die onder Unix het meest voorkomen zijn (afgeleiden van) de Bourne shell of de C shell. De Bourne shell had in het begin een betere scripting taal en de C shell had betere interactieve mogelijkheden (zoals job-control). Een paar van de shells die in Linux/Unix gebruikt worden zijn: - ash -> 'A SHell'. Wat gelimiteerde shell. - bash -> 'Bourne-Again SHell'. Uigebreide shell met uitgebreide script- mogelijkheden, job-control en filename-completion. Dit is de standaard shell in Linux. - csh -> 'C SHell'. - ksh -> 'Korn SHell'. 'Het beste van beide werelden'. Deze shell is ook meegeleverd bij alle andere Unix varianten (HP-UX, Solaris, etc). - sash -> 'Stand-Alone SHell'. Maakt geen gebruik van shared libraries en belangrijke executables. Handig in noodgevallen. Belangrijkste commando's zitten hier ingebouwd. - tcsh -> 'Tenex C shell'. Uitgebreide versie van de C shell. - zsh -> 'Z shell'. De externe commando's zitten in de "/bin" directory (net zoals in de DOS directory in het MS-DOS operating system). # Als een kernel een versienummer heeft waarbij het tweede cijfer een even getal is, dan is deze kernel stabiel bevonden door de persoon die de desbetreffende kernel bijhoudt. De even kernels worden bijgehouden door Alan Cox in Engeland. De oneven kernels worden bijgehouden door Linus Torvalds in de USA. Bovengenoemde personen zijn de coordinatoren van de genoemde kernels, er zijn wereldwijd honderden organisaties en vrijwilligers die zich bezig houden met patches aan de Linux kernel. Red Hat 6.0 heeft kernel 2.2 - dit ondanks dat kernel 2.3 in de development fase zit - maar kernel 2.3 is een unstable release, niet geschikt voor consumptie dus. Elke kernel heeft weer een sub-versienummer, bijvoorbeeld versie 2.2.14 of versie 2.3.99. De unstable releases blijven in development fase totdat ze stabiel zijn bevonden, dan gaat genoemde 2.3 kernel naar versie 2.4.0 (enzovoorts). Als er een nieuwe stable release uit is, begint er tevens weer een nieuwe development cycle. In zo'n development cycle proberen de kernel-hackers drastische veranderingen toe te voegen (bijv. de update van kernel 2.0 naar 2.2 bracht o.a. SMP support, waarmee Linux zich gelijk kon meten met de NT Server pakketten van Microsoft. Zo brengt de update van kernel 2.2 naar 2.4 een verandering van het filesystem met zich mee, USB support en betere plug & play support. Linux 2.6 zal ook de nodige veranderingen en verbeteringen krijgen. Een overzicht van deze veranderingen en verbeteringen is te vinden op de internet site "http://kernelnewbies.org/status/". De URL van de officiele site waar de Linux kernel te downloaden is : "http://www.kernel.org/" Update : -------- Sinds Linux kernel 2.4 worden de even (stable) kernels bijgehouden door Marcelo Tosatti. Update : -------- Inmiddels heeft de Linux kernel versie 2.6.0-test4 bereikt en het ziet er naar uit dat omstreeks eind 2003 Linux kernel 2.6.0 zal verschijnen. Update : -------- Op 2003-12-18 is Linux kernel 2.6.0 verschenen. # Linux wordt in verschillende soorten smaken uitgebracht. Dit zijn de zogeheten distributies. Ondanks het feit dat Linux gratis te downloaden is, is dit niet voor iedereen weggelegd. Linux kun je downloaden op 2 manieren: allerlei losse bestanden downloaden of een grote .ISO image. Het voordeel van de ISO image is dat het een image is die bootable CD's oplevert. De mensen zonder kabelmodem, geduld, zin of CD-brander kunnen ook Linux kopen in de winkel. Een paar nadelen van het in de winkel kopen: - Nieuwe versies zijn meestal met enige vertraging te krijgen. - Er wordt door de tussenhandel geld verdiend op de Linux distributies. - Er wordt wel eens een hogere prijs gevraagd dan de advies prijs. Een paar voordelen van het in de winkel kopen: - Een goede distributie zit vaak netjes in plastic en is voorzien van een bijbehorend handboek. (De boeken bij de duurdere Red Hat & SuSE Linux distributies zijn meer dan 300 pagina's dik). - Met het kopen van een Linux distributie steun je de betreffende distributie en daarmee de verdere ontwikkeling van Linux. Bovendien is het uiteraard helemaal compleet geleverd met extra CD-ROMS die software bevatten die niet meegeleverd (mogen) worden in de gratis te downloaden versies. Op de extra CD's staan: - Commerciele programma's. - Demo's van commerciele programma's. - Extra applicaties. - Grote applicaties die _nooit_ op de 'main CD' zouden passen (denk aan WordPerfect 8 en StarOffice dat bij sommige distributies gratis wordt meegeleverd). - Alle source code van de Linux kernel, de tools en de programma's. De Linux distributie die SuSE levert is (kwantitatief) overigens het meest compleet. Bij de volgende Internet sites kun je goedkoop (iets meer dan de kostprijs van de media) aan Linux distributies komen: - "http://kooplinux.nl" - "http://www.munnikes.nl/cd/" Officiele Linux pakketten (waarmee je de betreffende Linux distributie steunt) kunnen worden verkregen bij o.a. : - "http://www.comcol.nl" (Computercollectief) - "http://www.mensys.nl" (Mensys online shop) # Wat Linux setup tips: - Zorg voor een swap partitie van minimaal (aantal MB RAM * 2). - Maak een Linux boot partitie (/boot) van minimaal 16 MB en plaats deze altijd aan het begin van de harde schijf i.v.m. het BIOS probleem van 1024 cylinders dat bij sommige computers voor kan komen. - Probeer de swap file op een fysiek andere harde schijf te plaatsen (deze tip geld eigenlijk voor elk operating system). Dit heeft namelijk een snelheidsvoordeel wanneer het systeem gaat swappen. - Zet bij het formatteren van de Linux partities altijd de optie 'check for bad blocks' aan. Dit kost wel meer tijd met het formatteren. # De Lilo bootmanager: /* De bootmanager Lilo heeft inmiddels plaats gemaakt voor de Grub bootmanager in de nieuwere Linux distributies. Het voordeel van Grub is dat Grub ook werkt met andere computer-architecturen dan Intel i386. */ Lilo is een prima bootmanager, alleen erg simpel qua uiterlijk en vrij onvriendelijk in gebruik. De Lilo bootmanager start altijd Linux op binnen 5 seconden (of als je op de toets drukt). Om een ander operating system te starten, moet je vlug op drukken om te zien welke OS'sen er allemaal door Lilo zijn op te starten. Het Lilo start scherm ziet er ongeveer zo uit: LILO boot: Als je vlug op drukt, krijg je iets als dit: LILO boot: dos linux Dus als je DOS wilt opstarten, moet je "dos" _intypen_. Een beetje lastig, maar je zou ook bijvoorbeeld het woordje "dos" kunnen afkorten naar "d" en het woordje "linux" naar "l" en "windows" - als die geinstalleerd was - naar "w". Dan zou je zoiets zien: LILO boot: d l w *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** Onderstaande informatie is _alleen_ voor gebruikers bedoeld die weten wat ze aan het doen zijn! De informatie die Lilo gebruikt staat in de file "/etc/lilo.conf". Hieronder staat een schermafdruk van de inhoud van deze file: [/etc]# cat lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.10-build4 label=linux root=/dev/hda6 read-only image=/boot/vmlinuz-2.2.9-19mdk label=linux.old root=/dev/hda6 read-only other=/dev/hda4 label=dos table=/dev/hda [/etc]# Standaard wacht Lilo 50 'deciseconds' (5 seconden) (timeout=50) voordat Lilo gaat booten. Lilo start dan standaard de eerstgenoemde Linux kernel op. In dit geval is dat dus de kernel "vmlinuz-2.2.10-build4" met als label "linux". De regel "label=....." geeft aan welk label een partitie moet krijgen (deze labels krijg je te zien als je indrukt). Om de inhoud van de file "/etc/lilo.conf" te wijzigen moet je wel als root zijn ingelogd. Als je eenmaal een wijziging hebt gedaan in deze file, moet je het commando "lilo -v" intypen om de wijziging naar de MBR (het Master Boot Record) door te voeren. De parameter -v (verbose) laat wat meer informatie zien tijdens dit proces. Ook hier geldt: raadpleeg de manual pages van Lilo met: "man lilo" en "man lilo.conf". Andere regels die in "/etc/lilo.conf" kunnen voorkomen zijn: message=/boot/message (dit is de tekst die je ziet als LILO opstart, dit kan een bitmap zijn, of een ASCII tekst file). Om een eigen opstart tekst te maken doe het volgende: "su -" "echo "Maak een keuze" > /boot/message" ) password=123456 (dit is het password dat gebruikt kan worden om het systeem tijdens het booten tegen ongewenste gasten te beschermen. Omdat het natuurlijk een cleartext password is, is het wel aan te raden om "chmod 600" te doen van de file "/etc/lilo.conf". (en misschien een "chattr +i"). restricted (als deze regel in de file "/etc/lilo.conf" staat wordt er pas een passwoord gevraagd als geprobeerd wordt te booten in bijv. single-user mode). IDE harddisks onder Linux worden als volgt genoemd: Primary Interface - Master: hda Primary Interface - Slave : hdb Secondary Interface - Master: hdc Secondary Interface - Slave : hdd # Het "&" teken: Stel: je typt in een terminal of een console sessie het commando "gedit", dan zal - uiteraard - het programma gEdit worden opgestart. Maar de terminal of console sessie waar je dat commando had opgestart staat dan 'vast', net zolang totdat gEdit weer wordt afgesloten. Om een proces op de achtergrond te draaien, is het "&" teken bedoeld. Dit teken dient dan gewoon achter het commando of naam van de tool te worden getypt. Bijvoorbeeld "gedit &". De scherm output is dan: [1] 1282 Het getal 1282 is het process id nummer (PID) wat door Linux aan gEdit is toegewezen. (een PID is overigens steeds anders als er een proces wordt opgestart). Een zelfde soort effect kan bereikt worden met de combinatie van de toetsen en de commando's "bg" en "fg". Na bijvoorbeeld "gedit" te hebben opgestart, kan door middel van in het console window waar het programma "gedit" is opgestart het proces worden gestopt. Met het commando "bg" kan dat proces worden vervolgd als achtergrond-proces, of met het commando "fg" als voorgrond-proces. # Windows9x long file names op diskette inlezen: Het is mogelijk om onder Linux m.b.v. de 'mtools' Win9x long file names naar Linux partities te lezen / kopieren. Met het commando "mdir" kan een overzicht worden opgevraagd van de directory inhoud van een floppy: [download]# mdir Volume in drive A is KDE Floppy Volume Serial Number is 379E-0F0D Directory for A:/ UPX081~1 TGZ 223975 08-06-1999 15:51 upx081-linux.tgz 1 file 223 975 bytes 1 233 408 bytes free Met het commando "mcopy" kan er van of naar een floppy gegevens worden gekopieerd van of naar een Linux partitie. [/tmp]# mcopy a:upx* . Als de mtools niet meegeleverd (of geinstalleerd) zijn, kan het commando mount ook worden gebruikt. Bijvoorbeeld: "mount -t auto /dev/fd0 /mnt/floppy" Bij Red Hat 6.x staan de mountpoints voor de floppy en de CD-ROM in de directory "/mnt". Bij SuSE 6.x en FreeBSD 4.0 staan deze mountpoints gewoon in de root ("/floppy" en "/cdrom"). Waarom? Joost mag het weten. # Compressie programmatuur binnen Linux: Standaard word de volgende compressie programmatuur meegeleverd met Linux: - zip \ - unzip | deze 4 zijn wel zo'n - lha | beetje bij iedereen bekend. - unarj / - gzip - tar - compress - bzip2 SuSE 6.4 levert ook nog unrar mee. De combinatie van gzip & tar is het meest gebruikt, wat de distributie van Linux/Unix programmatuur betreft, op het internet. Om een file _in te pakken_ met tar gebruik je het volgende commando: "tar cvfz [file0].tar.gz [file1] [file2] [...]" [file0] = hierbij de naam van het archief dat je aan tar meegeeft. [file1] = hierbij de naam van de file die je in wilt pakken. [file2] = hierbij de naam van de file die je in wilt pakken. [...] = etc. Het gebruik van wildcards (*) bij [file1] is natuurlijk ook toegestaan. En om een file uit te pakken met tar gebruik je: "tar xvfz [file].tar.gz" Voor de mensen die command line utilities niet prettig vinden werken is er voor het commando "tar" een frontend meegeleverd ("ark"). Het programma "ark" beperkt zich tot het uitpakken (extracten) van ".tar" bestanden. Een andere distributiemethode binnen Linux is "RPM". RPM staat voor Red Hat Package Manager. RPM kun je het beste vergelijken met InstallShield onder Windows. Om een .rpm file te installeren kun je het commando "rpm" gebruiken, de Gnome variant "gnorpm" of de KDE variant "kpackage". De bestanden die in de .rpm file zitten worden door "gnorpm" en "kpackage" automatisch in de juiste directories gezet, dus de libraries gaan naar "/lib", de binaries gaan naar "/usr/bin" en eventuele documentatie naar "/usr/doc", etc. De command line versie van RPM is vrij simpel in gebruik. Om een .rpm bestand te installeren is de opdracht "rpm -i foo.rpm" voldoende. Om de bestanden afkomstig van foo.rpm te deinstalleren kan de opdracht "rpm -e foo.rpm" gebruikt worden. Om de inhoud van een al-geinstalleerde .rpm file te upgraden door de inhoud van een nieuwere .rpm file kan de opdracht "rpm -Uvh foo.rpm" gebruikt worden. De parameter -v is 'verbose' en de parameter -h geeft 'hash marks' tijdens de installatie van een package. Red Hat 6.x, SuSE Linux 6.4 en Linux-Mandrake 6.x gebruiken dus RPM. Debian GNU/Linux 2.x gebruikt DEB. DEB is de Debian variant van RPM. # Documentatie binnen Linux: De meeste documentatie binnen Linux, denk aan FAQ's, HOWTO's en README's, zijn in ASCII, HTML en Postscript bestanden in de "/usr/doc" directory opgeslagen (binnen subdirectories). Het makkelijkst is om met Midnight Commander de vele textfiles door te lezen. # Het gebruik van : Door middel van , waarbij de F* de functietoetsen F1 tot en met F6 voorstellen, kan worden gewisseld tussen verschillende virtuele consoles vanuit een full-screen console scherm of een X Window scherm. Om terug te keren naar X, kan worden gebruikt. Het gebruik van virtuele consoles is vooral handig als een bepaalde console is gecrashed. Door naar een andere console te gaan en opnieuw in te loggen en de gecrashde programma's af te sluiten met het commando "kill [PID]" is het mogelijk om het Linux systeem weer aan de praat te krijgen, zonder dat een reset nodig is. # Het opsporen van een file op het systeem: Om een willekeurige file op te sporen op een Linux/Unix systeem moet eerst het commando "updatedb" worden gegeven. Dit commando maakt een database aan met daarin de locatie van elke file, met het bijbehorende pad vanaf "/". Het zal een tijdje duren voordat de database is aangemaakt, maar als de database eenmaal is aangemaakt zal het zoeken naar een willekeurige file ook heel snel gaan. Het daadwerkelijk zoeken naar een file doe je met het commando: "locate [file]" Locate beschouwd [file] als een string. Bijv. de zoekactie "locate unzip", levert op: [LinuxFAQ]# locate unzip /bin/gunzip /usr/bin/gunzip /usr/bin/funzip /usr/bin/unzipsfx /usr/bin/unzip /usr/doc/unzip-5.31 /usr/doc/unzip-5.31/BUGS ... etc ... Naast het commando "locate" kan ook het commando "find -name [file]" worden gebruikt. Het commando "find" werkt real time, en zal dus geen gebruik maken van de database die door "updatedb" is aangemaakt. Het is daardoor wel veel langzamer, zeker als er vanaf de root (/) wordt gezocht. Het is mogelijk om de opdracht "find -name [file]" te gebruiken met wildcards, bijvoorbeeld: "find -name *faq*". # Symbolische links: Een symbolische link is een verwijzing naar een file. Hieronder zie je een voorbeeld, in dit geval de Linux kernel: lrwxrwxrwx ..... vmlinuz -> vmlinuz-2.2.5-15 Het eerste attribuut, de char "l", geeft aan dat dit een symbolische link is. Dat is overigens ook te zien aan het pijltje (->) dat verwijst naar de file "vmlinuz-2.2.5-15". # De super-user: In het Linux/Unix operating system is de status van super-user het hoogste niveau wat je maar kunt hebben. Deze personen loggen in onder de login-naam "root" en zijn de beheerders van het Linux/Unix systeem. De super-user heeft ook de meeste rechten van alle users die er in het Linux/Unix systeem zijn gedefinieerd. De super-user heet ook wel de root-user. Vaak wordt gewoon de aanduiding 'root' gebruikt. # Verschillende Linux distributies: Hieronder volgt een lijstje met de meest voorkomende Linux distributies: +---------------------+------------------------------+----------------------+ | Naam distributie | URL | Meest recente versie | +---------------------+------------------------------+----------------------+ | Ark Linux | www.arklinux.org | Alpha 10 | | Conectiva Linux | www.conectiva.com | 9 | | Debian GNU/Linux | www.debian.org | 3.0r2 | | Gentoo Linux | www.gentoo.org | 1.4 | | Knoppix | www.knoppix.net | 3.3 | | Libranet GNU/Linux | www.libranet.com | 2.8.1 | | LindowsOS | www.lindows.com | 4.5 | | Mandrake Linux | www.mandrakelinux.com | 9.2 | | Morphix | www.morphix.org | 0.4 | | Red Hat Linux | www.redhat.com | 9 | | Slackware Linux | www.slackware.com | 9.1 | | SuSE Linux | www.suse.com | 9 | | The Fedora Project | fedora.redhat.com | 1 | | Turbolinux | www.turbolinux.com | 8 | | Vectorlinux | www.ibiblio.org/vectorlinux | 4.0 | +---------------------+------------------------------+----------------------+ Er zijn nog vele andere, vooral wat meer 'amateurische' versies. Die zijn niet echt aan te raden i.v.m. gebrek aan support op het internet. Van bovengenoemde distributies zijn de Red Hat Linux, SuSE Linux en Mandrake Linux distributies het populairst. De belangrijkste verschillen tussen de verkrijgbare distributies zit hem in de meegeleverde applicaties, het installatieprogramma en het eventuele handboek. Andere opvallende verschillen: - De distributie van Red Hat is waarschijnlijk de meest bekende distributie van allemaal. Red Hat heeft in de loop der jaren bewezen een goede 'allround' Linux distributie te zijn. Inspelend op een alsmaar groter wordende vraag vanuit het bedrijfsleven levert Red Hat tegenwoordig ook Enterprise versies van hun Linux distributie. Update : Red Hat is gestopt met het produkt Red Hat Linux, maar gaat verder met het produkt Red Hat Enterprise Linux en het project 'The Fedora Project'. Red Hat Enterprise Linux is bedoeld voor bedrijven en is alleen commercieel verkrijgbaar. De bedoeling is dat Red Hat Enterprise Linux een stabiele distributie is die op zijn minst 5 jaar lang ondersteunt wordt. The Fedora Project is een gratis distributie gesponsored door Red Hat. Red Hat zal veel nieuwe technologie in deze distributie verwerken. De bedoeling is dat ongeveer 2 keer per jaar een nieuwe versie uit komt van Fedora Core - de Linux distributie van het Fedora Project. - De Debian distributie streeft naar 100% GPL applicaties, dus hier zijn (bijna) geen packages meegeleverd die niet onder de GPL licentie vallen. Ook is de Debian organisatie een non-profit organisatie. Tevens staat de Debian distributie berucht om de drievoudige release fase waarin het pakket wordt ontwikkeld: Unstable --> Frozen --> Stable Deze manier van ontwikkeling zorgt voor veel tijd tussen versies van deze distributie; aanhangers van deze distributie zeggen daarentegen dat Debian de meest stabiele distributie is. - De distributie van Mandrake is geheel gecompileerd voor de Pentium chip en heeft het meest weg van een 'Linux voor de desktop'. De organisatie die achter Mandrake staat, staat berucht om Mandrake Linux te leveren met de allernieuwste packages, dit is voor server doeleinden niet echt slim vanwege de bugs die in de nieuwste versie van een programma _kunnen_ zitten (eigenlijk geldt dit alleen voor bedrijfs-kritische systemen). - De Linux distributie van SuSE heeft verreweg het meest aantal meegeleverde packages, dit zijn er in de meest recente versie 4000. Het pakket beslaat dan ook 7 CD's en is ook op DVD te krijgen. SuSE is trouwens vooral in Europa (met name Duitsland) de populairste Linux distributie. - De Linux distributie van Conectiva komt uit Brazilie en is daar de populairste Linux distributie. Conectiva richt zich vooral op de Spaans- talige markt. - Gentoo Linux is een nieuwkomer. Dit is een echte distributie voor de wat meer professionele Linux user. Opvallend is dat er een FreeBSD-achtig 'ports-system' is ingebouwd. Deze distributie is hard op weg om behoorlijk populair te worden. - Turbolinux richt zich vooral op de Aziatische markt. - Knoppix is een Linux distributie die geheel te draaien is vanaf de CD. Er hoeft niets van deze distributie op een harddisk geinstalleerd te worden om ermee te werken. Knoppix is vooral geschikt voor personen die Linux willen proberen, maar geen zin hebben om dit op hun harddisk te installeren. Knoppix is ook prima te gebruiken voor troubleshooting door de wat meer gevorderde gebruikers. Aanrader! # "/dev/null": "/dev/null" kun je zien als een soort zwart-gat, waarin alle output (bijv. status reports, foutmeldingen, etc.) in terecht komt. Dit is handig als je niet wilt dat een commando output genereert, denk hierbij aan het gebruik van commando's in batch bestanden of scripts. Bijvoorbeeld: Het intypen van het commando "ls -l >/dev/null" zorgt niet voor de verwachte directory inhoud op het scherm. De uitvoer van het commando "ls" wordt naar "/dev/null" gevoerd. "/dev/null" wordt ook wel de 'bit bucket' genoemd. # Het tilde-teken (~): Het tilde-teken (~) staat voor 'home-directory'. Met het commando "cd ~" kom je altijd weer in de directory terecht die als home-directory is gedefinieerd. Dus als je als root (super-user) bent ingelogd, kom je in de directory "/root" terecht. Als je als een andere user bent ingelogd, kom je natuurlijk in de home- directory terecht die deze user toegewezen heeft gekregen van de root. Een alternatief voor het ~ teken is de string "$HOME". Het commando "cd $HOME" levert hetzelfde resultaat op als "cd ~". # De door Linux ondersteunde filesystems: Het Linux filesystem heet 'ext2' en het is net als HPFS en NTFS een filesystem dat zichzelf zo weinig mogelijk fragmenteerd. In toekomstige versies van Linux zal ondersteuning zijn voor zogenaamde journalling filesystems, zoals Reiser-FS (SuSE), XFS (SGI), JFS (IBM) en 'ext3' van de makers van 'ext2'. Update: - Bij Red Hat 7.2 is 'ext3' het nieuwe standaard filesystem. - Bij Linux Mandrake 8 en SuSE Linux 7.2 is 'Reiser-FS' (en ext3) een van de filesystems waaruit gekozen kan worden. (Maar ook deze nieuwere Linux distributies hebben nog ondersteuning voor ext2). Het ext2 filesystem bestaat uit inodes, deze bestaan uit: - Data - Permissies - Type of file Het ext2 filesystem bestaat uit een Superblock (bestaat o.a. uit magic number (identificatie voor het mount programma), de mount-count (+1 elke keer als driver word geboot of gemount) en maximum count (maximum aantal keer voordat fsck word gestart) De door Linux ondersteunde filesystems zijn (in kernel 2.2) o.a.: - ext2 (het Linux filesystem) - msdos (het DOS FAT16 filesystem) - iso9660 (het CDROM filesystem) - hpfs (het OS/2 filesystem) - vfat (het Windows 9x FAT32 filesystem) - ntfs (het Windows NT filesystem) (experimenteel) en nog vele andere filesystems die gebruikt worden in de Unix wereld. Linux kan niet in alle filesystems schrijven, maar wel lezen. Zo kan een HPFS partitie alleen worden gelezen, en niet worden beschreven. Een Win9x FAT32 partitie kan daarentegen weer wel worden beschreven. De ondersteuning van de filesystems is afhankelijk van de gebruikte kernel. De nieuwere kernels bieden ondersteuning voor meer verschillende filesystems en kunnen meestal ook schrijven in die filesystems waar dat vroeger niet mogelijk was. In de file "/etc/fstab" is te zien welke filesystems er zijn toegewezen aan de door Linux ondersteunde devices. De inhoud van deze file ziet er ongeveer zo uit: [/]# cat etc/fstab /dev/hda6 / ext2 defaults 1 1 /dev/hda1 /boot ext2 defaults 1 2 /dev/hda5 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0622 0 0 # Een CD-ROM drive mounten: Om een overzicht te krijgen van welke devices er op het moment door Linux al zijn ge-mount, typ het commando "mount" in. Je krijgt dan een overzicht dat er ongeveer uit ziet als dit: [/root]# mount /dev/hda6 on / type ext2 (rw) none on /proc type proc (rw) /dev/hda1 on /boot type ext2 (rw) none on /dev/pts type devpts (rw,mode=0622) [/root]# Typ vervolgens het commando "mount /dev/cdrom" om de CD-ROM drive aan het bovenstaande rijtje devices toe te voegen. Om naar de CD-ROM te gaan, type dan het commando "cd /mnt/cdrom". Als je weer het commando "mount" intypt, dan zie je dat de regel: "/dev/hdd on /mnt/cdrom type iso9660 (ro)" aan het lijstje is toegevoegd. (ro) is een (Read Only) device. (rw) is een (Read Write) device. # Een MS-DOS (FAT-16) partitie mounten: *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** Om een overzicht te krijgen hoe ik mijn HD ook alweer had ingedeeld, gebruikte ik het commando "fdisk -l". Hiermee zag ik dat DR-DOS de device naam "hda4" toegewezen had gekregen. Toen maakte ik een directory aan in de "/mnt" directory met het commando: "mkdir /mnt/dr-dos". Om de DR-DOS partitie te mounten, gebruikte ik het commando: "mount -t msdos /dev/hda4 /mnt/dr-dos" De optie "-t" staat voor het type partitie / filesystem. (zie het verhaaltje bij "# De door Linux ondersteunde filesystems:") "/dev/hda4" is de door Linux toegewezen device-naam. En "/mnt/dr-dos" is de directory waar het mount-point moet komen te staan. Laten we eens kijken of de partitie inderdaad ge-mount is: [/mnt]# ls -l total 18 drwxrwxr-x 2 root root 1024 Oct 9 1998 cdrom drwxr-xr-x 3 root root 16384 Jan 1 1970 dr-dos drwxrwxr-x 2 root root 1024 Feb 6 1996 floppy [/mnt]# ls -l dr-dos total 192 -rwxr-xr-x 1 root root 112 Jun 4 13:45 autoexec.bat -r-xr-xr-x 1 root root 36 Jan 7 06:03 boot.lst -rwxr-xr-x 1 root root 66785 Jan 7 06:03 command.com -rwxr-xr-x 1 root root 261 Jun 4 13:45 config.sys drwxr-xr-x 3 root root 8192 Jun 4 13:45 drdos -rwxr-xr-x 1 root root 4768 Jan 7 06:03 drdos.386 -r-xr-xr-x 1 root root 24810 Jan 7 06:03 ibmbio.com -r-xr-xr-x 1 root root 30880 Jan 7 06:03 ibmdos.com -r-xr-xr-x 1 root root 512 Jun 4 13:56 oldmbr.bin -r-xr-xr-x 1 root root 4516 Jan 7 06:03 security.bin [/mnt]# Het is nu dus mogelijk om een file (bijvoorbeeld config.sys) met een Linux/Unix programma (bijvoorbeeld "vi" of "gedit") te bewerken. En het is natuurlijk mogelijk om bestanden van de FAT-16 partitie naar de ext2 Linux partitie te kopieren (of andersom natuurlijk). Ditzelfde proces kan natuurlijk worden uitgevoerd met alle de door Linux ondersteunde filesystems. Om ervoor te zorgen dat na het resetten / uitschakelen van het systeem het ge-mounte filesystem nog steeds aanwezig is, moet er een regel worden toegevoegd aan de file "/etc/fstab". *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** De file "/etc/fstab" is belangrijk voor Linux, dus zorg dat je weet wat je doet! (Je moet rekening houden dat als je als root bent ingelogd je dus de super-user status hebt en elke file - ook die het hartje van Linux vormen - mag wissen, als je daar zin in hebt). Ik heb de regel: /dev/hda4 /mnt/dr-dos msdos defaults 0 0 toegevoegd aan de file "/etc/fstab" (om de werking van deze file te begrijpen raadpleeg eens de manual pages van 'fstab' met het commando "man fstab"). (Om bovenstaande regel toe te voegen heb ik "vi" gebruikt). Na het toevoegen van bovenstaande regel ziet de file "/etc/fstab" er zo uit: [/]# cat /etc/fstab /dev/hda6 / ext2 defaults 1 1 /dev/hda1 /boot ext2 defaults 1 2 /dev/hda5 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0622 0 0 /dev/hda4 /mnt/dr-dos msdos defaults 0 0 [/]# # Een Windows 95 (FAT-32) partitie mounten: (Zie: een MS-DOS (FAT-16) partitie mounten) 1. mkdir /mnt/Windows 2. mount -t vfat /dev/hda1 /mnt/Windows/ De file "/etc/fstab" wijzigen: <...> /dev/hda1 /mnt/Windows vfat defaults 0 0 # De Linux DOS emulator: (niet meer meegeleverd met de nieuwere Red Hat Linux versies) Zoals eerder vermeld in de inleiding is de Linux DOS emulator, in Linux kringen bekend als DOSEMU, in staat om de wat simpeler MS-DOS programma's te draaien. Denk hierbij aan WordPerfect 5.1, QuickBasic en Turbo Pascal. Ook is het mogelijk om de wat oudere spellen uit bijvoorbeeld 1992 te draaien. DOSEMU kan op verschillende manieren worden gestart: De bestanden die nodig zijn om DOSEMU te laten werken, komen dan: - Vanaf floppy. - Vanaf de bijgeleverde versie van FreeDOS. - Vanaf een geinstalleerde DOS versie (bij mij DR-DOS 7.03). - Vanaf een netwerk. Om de boel goed aan de praat te krijgen moest ik eerst de file "/etc/dosemu.conf" aanpassen. (voordat ik dit allemaal wist heb ik de manual page geraadpleegd met: "man dos"). Verdere documentatie - zoals HOWTO's en Quickstart's vond ik in de directory "/usr/doc/dosemu-0.99.10". Ik koos ervoor om de emulator op te starten via de bestanden van DR-DOS 7.03. Daarvoor moest ik eerst een regel veranderen in de file "/etc/dosemu.conf". Dit was de regel die begon met: $_hdimage = "hdimage.first" Dit is een disk-image van de bijgeleverde versie van FreeDOS. Deze regel heb ik veranderd in: $_hdimage = "/dev/hda4" Nadat ik deze verandering in de configuratie-file had opgeslagen, moest ik nog _een_ ding doen, dat was namelijk het 'un-mounten' van "/dev/hda4"! (Dit heeft, denk ik, te maken met een lock-mechanisme van Linux, ik moest er dus eerst voor zorgen dat Linux _zelf_ niet meer bij deze partitie kon komen). Om de partitie die in gebruik was door Linux te unmounten gebruikte ik het commando "umount /dev/hda4". Toen kon DOSEMU worden opgestart. Daar zijn 2 commando's voor onder Linux, namelijk: "dos" en "xdos" Het commando "dos" start bij mij nu DR-DOS op in een soort text-mode en het commando "xdos" start DR-DOS op in een X sessie (grafische mode dus). Update: Bovenstaande stappen zijn onder recentere versies van Linux niet meer nodig. Linux-Mandrake 7.0 bijvoorbeeld heeft standaard out-of-the-box al een perfect werkende DOS emulator meegeleverd. # Een user toevoegen aan het systeem: In plaats van constant als root ingelogd te zijn, en de risico's die daaraan zijn verbonden (nogmaals: als root kun je *elke* file wissen die je maar wilt en je kunt ook alle programma's opstarten die nodig zijn om het systeem om zeep te helpen ("fdisk", "cfdisk"), is het wel handig om voor jezelf een eigen account aan te maken. Linux zelf zorgt ervoor dat je in een usergroup ingedeeld wordt die applicaties zoals Mozilla nog wel kunt draaien, maar niet de gevaarlijke systeem programmatuur. Mocht het nodig zijn om onderhoud te plegen aan je Linux systeem, dan log je gewoon weer in als root, en kun je weer lekker je gang gaan. Het makkelijkst is om hiervoor het commando "su -" te gebruiken. Om een user aan het systeem toe te voegen kunnen de commando's "useradd" en "passwd" gebruikt worden. Gebruik: "useradd [user]" - Dit commando voegt [user] toe aan het bestand "/etc/passwd". "passwd [user]" - Dit commando vraagt om een wachtwoord voor de zojuist gecreerde user. Om een aangemaakte user later te verwijderen kan het commando "userdel" worden gebruikt. Gebruik: "userdel [user]". # Het "write" commando: Om een berichtje te sturen van een user naar een andere user die is ingelogd op je systeem (die andere user kun je natuurlijk ook zelf zijn) is het "write" commando bedoeld. Stel, de user 'testuser' is aangemaakt in het systeem. Dan kan de root aan 'testuser' een berichtje sturen ('testuser' kan natuurlijk ook een berichtje sturen aan de root). Gebruik hiervoor het commando: "write testuser" Als je niet wilt dat iemand een bericht naar je kan schrijven met het commando "write", kun je dit met behulp van het commando "mesg n" uitschakelen. Je kunt dan zelf ook geen berichten meer met "write" schrijven. # Het "who" commando: Om een overzicht te krijgen van welke gebruikers er allemaal zijn ingelogd op het systeem is het "who" commando bedoeld. Bijvoorbeeld, na het intypen van het commando "who" krijg ik dit op het scherm: root tty1 Apr 6 20:10 testuser tty2 Apr 6 20:10 peterve :0 Apr 6 16:58 peterve pts/0 Apr 6 16:58 peterve pts/1 Apr 6 18:48 # De bestanden "/etc/passwd" en "/etc/shadow": Het bestand "/etc/passwd" bevat de volgende gegevens van de users: "Inlognaam, x, User ID, Group ID, volledige naam, home directory, shell". Een regel uit dit bestand ziet er zo uit: testuser:x:503:503:Test User:/home/testuser:/bin/bash Als er een "x" staat naast de inlognaam, dan betekent het dat er een shadow- password file op het systeem staat opgeslagen. Een shadow-password file is bedoeld om de security van het Linux/Unix systeem te vergroten. De shadow-password file kan alleen door de root worden benaderd. De normale password file kan ook door de users worden bekeken (tenzij de root natuurlijk ervoor heeft gezorgd dat dat *niet* kan. Er in schrijven of wissen kunnen de users natuurlijk niet). De attributen van de normale password file zijn: "-rw-r--r--" En de attributen van de shadow-password file zijn: "-r--------" Zo kun je zien dat de normale password file kan worden gelezen (r), en worden gewist/ge-edit (w) door de root. De volgende twee groepen gebruikers mogen alleen lezen (r). De shadow-password file kan alleen door de root worden gelezen (r) en dus niet worden gewist/ge-edit). (Red Hat Linux 6.x vraagt tijdens de installatie of er een shadow-password file moet worden gecreeerd). Een regel uit "/etc/shadow" ziet er zo uit: testuser:$1$pgaHlgl4$vd7RYxHsZoVeySHbo1Oq3/:12148:0:0:7:0:: Hier kun je zien dat het password van user 'testuser' ge-encrypt is opgeslagen. # Een gekleurde directory listing: Om een gekleurd directory overzicht te krijgen bij het uitvoeren van het commando "ls", moet je het volgende doen: Voeg de volgende regel toe aan de file "/etc/bashrc": "alias ls="ls --color=auto" Hieronder de inhoud van mijn huidige bashrc file: [/etc]# cat bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # For some unknown reason bash refuses to inherit # PS1 in some circumstances that I can't figure out. # Putting PS1 here ensures that it gets loaded every time. PS1="[\w]\\$ " alias ls="ls --color=auto" alias ll="ls -l -h" [/etc]# Bij mij zijn nu: - Directories -> blauw - Gearchiveerde bestanden -> groen - Binary files -> groen - Symbolische links -> licht blauw - Devices (/dev) -> licht geel Om inzicht te krijgen in de voorgedefinieerde kleuren die beschikbaar zijn voor X neem eens een kijkje in de file "/usr/lib/X11/rgb.txt". # Het gebruik van de toets onder Linux/Unix: De toets onder Linux/Unix speelt een belangrijke rol. In console en terminal sessies kun je met behulp van de toets behoorlijk wat tijd- winst verkrijgen. Linux/Unix gebruikt de toets in console en terminal sessies namelijk voor 'filename completion'. Stel: je zit in de directory "/usr" en je wilt naar de directory "i486-linux-libc5", dan is het intypen van "cd i4" al voldoende. Linux/Unix vult dan automatisch de directory naam aan. Nog iets: stel je zit in een willekeurige directory, bijvoorbeeld: "[/]# ", en je drukt twee keer snel achter elkaar op de toets, dan krijg je iets als dit op je scherm: [/]# There are 1333 possibilities. Do you really wish to see them all? (y or n) Als je nu "y" intypt, dan krijg je alle de door Linux uit te voeren commando's en programma's op het scherm. # Het opvragen van informatie over het Linux systeem: Om informatie op te vragen over de CPU die in je systeem zit, kun je het commando "cat /proc/cpuinfo" gebruiken. Hieronder een voorbeeld van de output op mijn Linux machine: [/LinuxFAQ]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 4 model : 8 model name : 486 DX/4 stepping : 0 fdiv_bug : no hlt_bug : no sep_bug : no f00f_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme bogomips : 37.48 Verdere informatie over je systeem kun je verkrijgen met: "cat /proc/apm" <-> Info over Advanced Power Management. "cat /proc/devices" <-> Info over Character devices en Block devices. "cat /proc/dma" <-> Info over gebruikte DMA adressen. "cat /proc/filesystems" <-> Info over geinstalleerde filesystems. "cat /proc/interrupts" <-> Info over gebruikte IRQ's. "cat /proc/ioports" <-> Info over gebruikte IO-poorten. "cat /proc/meminfo" <-> Info over het (gebruikte) geheugen. "cat /proc/rtc" <-> Info over de Real Time Clock. "cat /proc/swaps" <-> Info over de swap partitie. "cat /proc/version" <-> Info over de gebruikte Linux versie. Deze informatie is compleet afhankelijk van de gebruikte kernel. Als er bijvoorbeeld geen ondersteuning voor APM in de kernel is ingebakken dan zal de file "/proc/apm" niet bestaan. Een wat beperkte samenvatting van deze informatie is te verkrijgen met het commando "procinfo". # Speciale toetscombinaties in fullscreen console en terminal sessies: Onderstaande toetscombinaties werken _alleen_ in fullscreen console en terminal text-mode sessies: - Switch tussen virtual consoles. - Geeft register inhoud. - Geeft memory-info. - Geeft proces-informatie. Onderstaande toetscombinaties werken in XTerm sessies en in fullscreen console / terminal sessies: - Scrollt naar het begin van de scrollback buffer. - Scrollt naar het einde van de scrollback buffer. - Maakt scherm schoon. - Breekt proces af. - Log uit de terminal sessie. - Backspace. - Maakt scroll lock ongedaan. - Scroll lock, pauzeert beeldscherm activiteit. - Stuur proces naar de achtergrond. - Filename completion. - Shutdown -r now - Paste copy buffer. - Ga naar het begin van de regel. - Ga naar het einde van de regel. Als de kernel is gecompileerd met de mogelijkheid om de Magic Sysreq toets te gebruiken (dit is de optie CONFIG_MAGIC_SYSRQ in de kernel configuratie file) kunnen ook nog eens de onderstaande toetscombinaties worden gebruikt: - Stel console log level in. - Emergency reboot. - Kill all except init. - Kill all, incl. init. - Kill all programs on current console. - Kill all, hardlock. - Same as shift-scroll lock (memory info). - APM poweroff. - Show registers. - Set keyboard to XLATE. - Sync disks. - Same as ctrl-scroll lock (process list). - Unmount all filesystems and change to readonly. De volgende toetscombinaties werken alleen met de bash shell: - Zoek in de command history naar een commando. - Wis het woord links van de cursor. - Wis alles links van de cursor. - Draai de 2 characters links van de cursor om. - Draai de 2 woorden links van de cursor om. # Speciale toetscombinaties in een X Window sessie: *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** Onderstaande toetscombinaties _kunnen_ mogelijk schade veroorzaken aan je monitor als de combinatie van je videokaart en je monitor niet goed staat geconfigureerd! Om realtime van resolutie te veranderen in een X Window sessie, gebruik: - Om de resolutie te verhogen. - Om de resolutie te verlagen. Bovenstaande toetscombinaties werken overigens alleen als er tijdens de installatie & configuratie van het X Window Systeem meerdere resoluties zijn geselecteerd. Mocht je beeldscherm 'vastzitten' in een rare schermresolutie, gebruik: - - Om de X-Server te resetten! ZORG WEL DAT BELANGRIJKE GEGEVENS ZIJN OPGESLAGEN! Om instellingen van een xterm sessie in X te wijzigen kunnen de volgende combinaties worden gebruikt: - - "Main Options" - - "VT Options" - - "VT Fonts" Om in X de muiscursor te bewegen zonder de muis te gebruiken kan de volgende toetscombinatie worden gebruikt: - - Het systeem zal een piepje geven. Vanaf dat moment kan met de cursor toetsen op het numeric keypad de muiscursor worden bestuurd. Om dit ongedaan te maken dient dezelfde toetscombinatie te worden gebruikt. # Het commando "grep": Het commando "grep" is bedoeld om text-strings in een file op te zoeken. Het kan overigens ook gebruikt worden in combinatie met de output van een ander programma. Bijvoorbeeld: "grep Linux /usr/doc/FAQ/txt/FAQ" Bovenstaand commando geeft elke regel in de file "/usr/doc/FAQ/txt/FAQ" die de string "Linux" bevat. "grep" kan ook zo worden gebruikt: "cat /usr/doc/FAQ/txt/FAQ |grep Linux" Dit geeft hetzelfde resultaat als het eerdere voorbeeld. Nog een voorbeeld van het gebruik van "grep" in combinatie met een ander programma: "ps -aux |grep gnome" Bovenstaand voorbeeld geeft elke regel waarin de string "gnome" voorkomt in de output van het commando "ps -aux". # Verschillende commando's achter elkaar: Om meerdere commando's of programma's uit te voeren in _een_ regel is het ";" teken tussen verschillende commando's bedoeld. Bijvoorbeeld: "ls; ls; ls" Bovenstaand commando geeft 3 keer achter elkaar een directory inhoud op het scherm. Een wat nettere structuur is dit: "(ls; ls; ls) &". Door middel van deze structuur kunnen 3 verschillende commando's op de achtergrond worden uitgevoerd d.m.v. het "&" teken. # BogoMips: In Linux kom je wel het begrip 'BogoMips' tegen. BogoMips is een soort 'nutteloze' snelheidsaanduiding. MIPS staat voor 'Millions of Instructions Per Second' of, volgens de officiele Linux FAQ: 'Meaningless Indication of Processor Speed'. Onderstaande tabel geeft weer hoe BogoMips worden berekend: 386SX clock * 0.14 386DX clock * 0.18 486Cyrix/IBM clock * 0.33 486SX/DX/DX2/DX4 clock * 0.50 586 clock * 0.39 # De parameter "-h": De parameter "-h" bij commando's zoals "ls", "df" en "du" zorgt voor 'human-readable output', hierbij wordt de output in KB, MB en GB weergegeven i.p.v. bytes. # Een overzicht van de partities op het Linux systeem: Om een overzicht te krijgen van de partities op alle HD's, kan het commando "fdisk -l" gebruikt worden. Na uitvoering van dit commando verschijnt een scherm dat er ongeveer uitziet als volgt: [Linuxfaq]# fdisk -l Disk /dev/hda: 255 heads, 63 sectors, 826 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 255 2048256 b Win95 FAT32 /dev/hda2 256 826 4586557+ f Win95 Ext'd (LBA) /dev/hda5 256 510 2048256 b Win95 FAT32 /dev/hda6 511 826 2538238+ b Win95 FAT32 Disk /dev/hdb: 255 heads, 63 sectors, 1027 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 2 1027 8241345 f Win95 Ext'd (LBA) /dev/hdb2 515 517 24097+ 83 Linux /dev/hdb5 2 514 4120641 b Win95 FAT32 /dev/hdb6 518 526 72261 82 Linux swap /dev/hdb7 527 718 1542208+ 83 Linux # Het Linux systeem beveiligen tegen toegang van buitenaf: Bij een standaard installatie van Red Hat en Mandrake staat het systeem redelijk 'open' voor buitenstaanders. Dit wil niet zeggen dat je Linux systeem totaal onbeveiligd is, maar een beetje cracker met een script-tool of een password hack programma _kan_ binnenkomen, zeker als er slechte passwords zijn gekozen. Om je systeem wat meer dicht te timmeren, zijn vooral de volgende bestanden interessant: "/etc/hosts.deny" <-> Deze file bevat alle hosts, domeinen en ip-adressen die van bepaalde services van je Linux systeem _geen_ gebruik mogen maken. Raadpleeg de manual pages voor de werking van deze file met: "man hosts.deny". "/etc/hosts.allow" <-> Deze file bevat alle hosts, domeinen en ip-adressen die van bepaalde services van je Linux systeem _wel_ gebruik mogen maken. Raadpleeg de manual pages met: "man hosts.allow". Bovenstaande bestanden zouden genoeg moeten zijn om je Linux systeem af te schermen tegen (selecties van) de buitenwereld. Een goed begin zou zijn om aan de file "/etc/hosts.deny" de regel ALL: ALL toe te voegen. Hierdoor is voor elke service (ALL) die Linux draait voor alle hosts (ALL) de toegang ontzegt. Om specifieke services te verwijderen, kan de file "/etc/inetd.conf" aangepast worden. *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** "/etc/inetd.conf" <-> Deze file bevat alle services die draaien. Denk hierbij o.a. de volgende services: ftp en telnet. *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** Pas op met het teveel verwijderen van services, dit kan namelijk schadelijk zijn voor de correcte werking van het Linux systeem. +----------------------------------------------------------------------------+ | Tip: Log _alleen_ in als root als het echt nodig is. Ga dus nooit het IRC | | of het internet op als je als root bent ingelogd. Als root is het immers | | mogelijk om de system-maintenance tools op te starten, denk hierbij aan | | programma's zoals "fdisk" en uitvoering van programma's zoals "rm" en "vi" | | op systeemfiles. | +----------------------------------------------------------------------------+ Verder kan het handig zijn om files op te sporen die een potentieel gevaar vormen voor de beveiliging. Enkele commando's die daarvoor gebruikt kunnen worden zijn: "find / \( -nouser -o -nogroup \) -print" Dit commando zoekt vanaf de root directory naar alle bestanden die geen eigenaar hebben en niet tot een bepaalde usergroup horen en laat deze zien. Dit geld ook voor bestanden waarvan de eigenaar niet meer bestaat. "find / -perm -2 ! -type l -ls" Dit commando zoekt vanaf de root directory naar alle bestanden die 'world- writable' zijn. Bestanden die aan deze voorwaarden voldoen kunnen worden aangepast door elke groep gebruikers, dus ook door de 'everyone' groep. "find / \( -perm +2000 -o -perm +4000 \) -ls" Dit commando zoekt vanaf de root directory naar alle bestanden die het SETUID bitje aan hebben staan. Deze bestanden hebben root-access en daardoor directe toegang tot de hardware en zijn in verkeerde handen een bedreiging voor de security van het systeem. Om het SETUID bitje van een bestand te verwijderen kun je het commando "chmod a-s [bestand]" gebruiken. "find /home -name .rhosts -print" Dit commando zoekt of er users zijn (in de directory "/home") die de file ".rhosts" gebruiken om op een (andere) server te komen. Met ".rhosts" files is het mogelijk om zonder passwords in te voeren op een bepaalde server te komen, dit is gevaarlijk voor de security. Tip: ==== Om een overzicht te krijgen van de bestanden die zijn gewijzigd sinds de oorspronkelijke installatie van Linux kan de opdracht "rpm -Va" worden gebruikt. De parameter -V staat voor verify en de parameter -a staat voor allfiles. Om root-access door middel van het booten in single-user mode te voorkomen dient het bestand "/etc/lilo.conf" te worden gewijzigd: a) Open "/etc/lilo.conf" met een text editor, bijvoorbeeld "vi". b) Verander de huidige timeout waarde in "timeout = 0". c) Voeg de regel "restricted" toe. Dit zorgt ervoor dat voordat er in single-user mode wordt gestart er een password word gevraagd. d) Voeg de regel "password=" toe. Dit is het password dat gevraagd wordt als er gestart wordt in single-user mode. Omdat dit password unencrypted wordt opgeslagen is het verstandig om ervoor te zorgen dat de bestand "/etc/lilo.conf" alleen leesbaar is voor de root. Verder kan het raadzaam zijn om booten vanaf floppy uit te schakelen in het BIOS zodat er geen Linux bootfloppy gebruikt kan worden om het filesystem op de harde schijf te benaderen. Nog een paar tips: ================== - Als het mogelijk is om een firewall te draaien met iptables of ipchains doe dit dan. - Verwijder (of disable) alle user & group accounts die niet meer in gebruik zijn. - Disable alle services die niet nodig zijn. - Gebruik shadow passwords. Dit is tegenwoordig bij alle nieuwe Linux distributies standaard. - Gebruik Secure Shell (SSH / OpenSSH) i.p.v. telnet en ftp. - Kies goede passwoorden, zeker voor een root account. - Beperk gebruik van "su" door users d.m.v. de 'wheel' group: - Voeg de volgende regel toe aan de file "/etc/pam.d/su": auth required /lib/security/pam_wheel.so use_uid - Maak een user die "su" mag gebruiken lid van de 'wheel' group. - Maak creatief gebruik van het "chattr" commando (bijv. +a bij logfiles). Wat ook handig kan zijn is om de bestanden in de directories: "/bin", "/sbin", "/usr/bin", "/usr/sbin" met "chattr +i" te behandelen. - Maak een kopie van de "/etc/" directory nadat de initiele installatie is gedaan en zet deze in "/root". - Installeer geen binaries, maar compileer als het kan van source en haal software van de officiele sites. - Controleer de checksum / signatures van RPM's en source bestanden als het mogelijk is. - Probeer de meest actuele software te gebruiken, maar vermijd de .0 versies van distributies. Deze regel geldt alleen voor servers. - Bekijk open files d.m.v. "lsof |colrm 1 63 |sort |uniq |less". - Raadpleeg de logfiles en check regelmatig of deze zijn aangepast of aan te passen zijn door niet-root gebruikers. Hier zijn ook tools voor beschikbaar, o.a. LogWatch. - Creeer een admin account, zodat root access in logfiles opvallend wordt. - Vermijd het gebruik van de services "rexec", "rlogin" en "rsh". - Zorg dat er geen tools als gcc en Perl op servers staan die op het internet staan aangesloten. - Vermijd het gebruik van anonymous FTP. - Zet de FTP 'incoming' directory op een andere partitie dan het root FS. - Log data naar bijv. TTY10 (geen tampering mogelijk). - Om een machine een beetje onzichtbaar te maken voor de buitenwereld kun je deze niet laten reageren op ICMP (ping) commando's : "echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all" Een oplossing d.m.v ipchains of iptables is overigens stukken beter. - Op een machine met zowel telnet als ftp access is het handig om de ftp- users een account zonder shell te geven. Verander in "/etc/passwd" de regels waarin staat : "/bin/bash" naar "/bin/false". - FTP users' home-directory veranderen naar "/var/ftp/pub". - In de file "/etc/ftpaccess" de volgende regels toevoegen: "restricted-uid *" "unrestricted-uid joe" - De X server uit 'LISTEN' mode halen. Als het commando "netstat -nlt" een open poort 6000 voor adress 0.0.0.0 heeft dan is het raadzaam de X server te laten starten met de parameter "-nolisten". Voor XDM, geef deze optie mee in de file "/etc/X11/xdm/Xservers" Voor GDM, geef deze optie mee in de file "/etc/X11/gdm/gdm.conf" # De instellingen van de command prompt: De file "/etc/bashrc" bevat de variabele 'PS1'. Deze variabele zorgt voor de soort van prompt zichtbaar in console en terminal sessies. De mogelijke instellingen voor de prompt kunnen zijn: \t the current time in HH:MM:SS format \t the current time in seconds \d the date in "Weekday Month Date" format \n newline \s the name of the shell \w the current working directory \W the basename of the current working directory \u the username of the current user \h hostname \H fully qualified hostname \# the command number of this command \! the history number of this command \$ if the effective UID is 0, a #, otherwise a $ \\ a backslash \nnn the character corresponding to the octal number nnn Een voorbeeld van een mogelijke prompt is: PS1="(\w)\\$ " Een ander voorbeeld van een mogelijke prompt: PS1="[\u@\h \w]\\$ " Bij SuSE 6.4 staat de standaard-instelling van de prompt in de file: "/etc/profile". # Een programma 'root access' geven: Bepaalde programma's - vooral de demo's en spellen gebaseerd op Svgalib - hebben directe toegang nodig tot de (video) hardware. Standaard laat Linux het niet toe dat programma's directe toegang hebben tot de hardware, om dit te omzeilen kan het commando "chmod" gebruikt worden. Om met "chmod" het SETUID bit te wijzigen, moet er als root ingelogd zijn. Om bijvoorbeeld de Svgalib versie van MAME root access te geven moet het volgende commando gebruikt worden: "chmod u+s ./mame" Na uitvoering van bovenstaande opdracht zien de permissies van de executable van MAME er ongeveer zo uit: -rwsr-xr-x Het 's' teken staat voor het SETUID bit. Elke user (zonder root access) kan dit programma opstarten. Het programma heeft nu root access tot de hardware, dus OOK VOOR ALLE NORMALE USERS die dit programma opstarten. DIT IS EEN GROTE INBREUK OP DE BEVEILIGING VAN EEN LINUX SYSTEEM! !! Vermijd de noodzaak om deze actie op je bestanden los te laten. !! Om het SETUID bit van een programma te verwijderen kun je het volgende commando gebruiken: "chmod a-s [file]". # Een window-manager / desktop-environment toevoegen aan het systeem: *** ! WARNING ! *** *** ! WARNING ! *** *** ! WARNING ! *** De eerste stap die nodig is om een window-manager (WM) of een desktop- environment (DE) toe te voegen aan het systeem is natuurlijk het downloaden, compileren of uitpakken van de .rpm of de .deb file. Dit valt op dit moment even buiten beschouwing. Als deze eerste stap eenmaal gelukt is, en de WM / DE successvol is gecompileerd en geinstalleerd op het systeem, dan zal het volgende moeten gebeuren. PS: Onderstaand verhaal geld _alleen_ voor Red Hat 6.x distributies met KDE 1.1.2 als WM en DE, en KDM als Desktop Manager. Als er gewerkt wordt met een Desktop Manager (ik neem aan dat dat het geval is), dan moet de volgende file worden aangepast: "/etc/X11/xdm/Xsession". Doe dit bij voorkeur met een goede editor zoals "vi" of "kedit" - in ieder geval een editor die niet de mist ingaat met het fenomeen word-wrapping. Als deze textfile geopend is, scroll dan naar beneden totdat je bij de sectie bent aangekomen die begint met de regels: case $# in 1) case $1 in failsafe) Scroll vervolgens weer naar beneden, en voeg de naam van de WM / DE toe, voor de regel die begint met het woordje "esac". Bijvoorbeeld: wmaker) exec wmaker ;; esac Als de KDE Desktop Manager word gebruikt, open dan als root het programma "kdmconfig" en voeg de nieuwe sessie toe die zojuist is aangemaakt (in dit geval "wmaker"). Let erop dat de naam overeen moet komen met de naam die zojuist is ingevoerd in de textfile. Om een WM of DE aan de Gnome Display Manager (GDM) toe te voegen, doe het volgende: - "cd /etc/X11/gdm/Sessions" - "touch " (bijvoorbeeld "touch IceWM" - "vi IceWM" (voeg nu het pad in van de locatie van IceWM en schrijf de file weg). - "chmod +x IceWM" Ga nu terug naar het GDM scherm (bijv. d.m.v. Ctrl-Alt-BACKSPACE). Als het goed is staat er nu een nieuwe entry van de zojuist toegevoegde WM. # Wat te doen als je je root-password bent vergeten? Als je je root-password bent vergeten kun je het volgende proberen om weer in je systeem te komen: Aanpak A) [Stap 1] Herstart het systeem op in single-user mode. Dit doe je door aan Lilo de volgende optie mee te geven: - Bij Red Hat 6.x: "linux 1". - Bij SuSE 6.x: "linux S". [Stap 2] Verander met een text-editor (bijv. "vi") in de file "/etc/passwd" de regel: "root:GESCRAMBLED_PASSWORD:0:0:root:/root:/bin/bash" naar: "root::0:0:root:/root:/bin/bash" en schrijf de gewijzigde file weg. Als er gebruik wordt gemaakt van een shadow password file wijzig dan in de file "/etc/shadow" de regel: "root:GESCRAMBLED_PASSWORD:12345:0:12345::::" naar: "root::12345:0:12345::::" [Stap 3] Herstart het systeem en log in als root. Als het goed is wordt er nu _niet_ om een password gevraagd. [Stap 4] Geef het root account weer een password, d.m.v. het commando "passwd". Dit zou bij een standaard installatie van bovenstaande pakketten moeten lukken. Bovenstaande methode werkt _niet_ bij: - Nieuwere distributies (o.a. SuSE 6.4). - Systemen waarvan de file "/etc/lilo.conf" is aangepast zodat niet meer in single user mode geboot kan worden. - Systemen waarbij de attributen van de files "/etc/passwd" en "/etc/shadow" op read-only staan. Als bovenstaande methode niet lukt, probeer dan: Aanpak B) [Stap 1] Download een zogeheten mini-linux distributie. Dit zijn Linux- distributies van 1 diskette. Een goede mini-Linux distributie is "Tomsrtbt" - (Tom's floppy which has a root filesystem and is also bootable.". Deze distributie is te halen van: "http://www.toms.net/rb/". [Stap 2] Installeer de mini-Linux distributie op een flop. [Stap 3] Herstart het systeem, en boot vanaf de mini-Linux floppy. [Stap 4] Gebruik de meegeleverde fdisk om te kijken op welke partitie je Linux systeem staat en mount deze partitie aan het mount-point op de RAMdisk. [Stap 5] Wijzig de file "/etc/passwd" of de file "/etc/shadow" net als bij aanpak A en herstart de machine. # Het compileren van een (nieuwe) Linux (2.2.x en 2.4.x) kernel. Onderstaande procedure is geschreven met het oog op kernel 2.2.15, maar kan ook worden gebruikt voor het compileren van een nieuwere (2.4.x) versie. Let op dat voor Linux kernel versie 2.6 de stappen iets anders zijn! Let op dat wanneer je distributie gebaseerd is op bijvoorbeeld Linux 2.4 het niet aan te raden is om de stap naar Linux 2.6 te wagen. Vaak is het zo dat bepaalde packages (zoals initscripts en modutils) eerst geupgrade moeten worden voordat zo'n grote stap naar een nieuwere kernel versie gemaakt kan worden. +--------------------------------------------------------------------------+ | !!! Warning !!! !!! Warning !!! !!! Warning !!! !!! Warning !!! | | | | - Ga alleen een (nieuwe) Linux kernel downloaden en compileren als je | | vindt dat dat nodig is. If it works, don't fix it. | | - Om een Linux kernel te installeren moet je als root zijn ingelogd. | | - Zorg dat je het een en ander van je hardware (en software) af weet. | | | | !!! Warning !!! !!! Warning !!! !!! Warning !!! !!! Warning !!! | +--------------------------------------------------------------------------+ Een nieuwe kernel downloaden is vaak handig om je systeem actueel te houden op het gebied van hardware-ondersteuning, bugfixes en security-issues. Naast het downloaden van een kant-en-klare RPM file met daarin een voor- gecompileerde kernel, is het de moeite waard om de complete source-tree van een nieuwe kernel te downloaden en deze zelf te compileren. Om dit te doen dienen wel de ontwikkeltools te zijn geinstalleerd. Het kan ook de moeite waard zijn om de huidige kernel source-tree (als die is geinstalleerd) te compileren en zelf een Linux kernel te bakken. Dit kan handig zijn als je bijvoorbeeld een firewall wilt bouwen en je zo min mogelijk functionaliteit in de kernel wilt hebben i.v.m. security. Bij de meeste distributies staat de source-tree van de Linux kernel in de directory "/usr/src/linux". Om een nieuwe source-tree te downloaden kun je naar de site "ftp://ftp.kernel.org" gaan. In de directory "/pub/linux/kernel" staan de verschillende versies van Linux kernels. Het is verstandig om de nieuwste stabiele kernel te downloaden. Stabiele kernels hebben een even versie- nummer. Onstabiele kernels hebben een oneven versienummer. Op het moment van schrijven is v2.2 de nieuwste stabiele versie. In de directory "/pub/linux/kernel/v2.2" staat de allereerste versie tot en met de allerlaatste versie van deze release. De filenaam die begint met "LATEST-IS-x.x.xx" geeft altijd de nieuwste stabiele versie aan. In dit geval is dat "LATEST-IS-2.2.15". Dus moeten we "linux-2.2.15.tar.gz" downloaden. ps. Om de officiele site niet te veel te belasten is het raadzaam om de kernel sources bij een officiele mirror site vandaan te halen. Dit kan bijvoorbeeld bij de site "ftp://ftp.nl.kernel.org". (!!! Om verder te gaan is het nodig om root rechten te hebben !!!). Als de nieuwste versie is gedownload, zet de file dan in de directory "/usr/src". Ga naar de directory "/usr/src" en geef vervolgens de directory waarin de eventuele bestaande Linux kernel source-tree staat een andere naam om te voorkomen dat de twee verschillende versies door elkaar komen te staan. Bijvoorbeeld: "mv linux linux_old". Pak de nieuwe source-tree uit met: "tar xzvf linux-2.2.15.tar.gz". Hernoem nu de directory "linux" als "linux-2.2.15" ("mv linux linux-2.2.15") Maak een nieuwe symbolische link aan ("ln -s linux-2.2.15 linux") Wis vervolgens enkele include files van de oude kernel met de volgende opdrachten: "cd /usr/include" "rm -rf asm linux scsi" "ln -s /usr/src/linux/include/asm-i386 asm" "ln -s /usr/src/linux/include/linux linux" "ln -s /usr/src/linux/include/scsi scsi" Ga dan naar de directory "/usr/src/linux". Dit is nu de source-tree van de zojuist gedownloade kernel. Voordat je je kernel gaat compileren kun is het handig om een idee te hebben of je een volledig monolitische kernel gaat compileren (dus zonder modules) of een kernel met modules. Bovendien is het handig om een floppy disk aan te maken waarmee je in je systeem kunt komen mocht het fout gaan bij het installeren van de nieuwe kernel ("mkbootdisk [kernel versie]"). (Om achter de huidige kernel versie te komen doe "cat /proc/version") ********************************************************************* * Als je van eerder gemaakte kernelconfiguraties gebruik wilt maken * * dien je de volgende stappen uit te voeren: * * * * "cd /usr/src/linux" * * "make mrproper" * * * * Kopieer de betreffende configuratiefile naar de file * * "/usr/src/linux/.config" * * * * "make oldconfig" * * "make dep && make clean && make bzImage && make modules * * "make modules_install" * * * * "cp /usr/src/linux/System.map /boot/System.map-2.2.19" * * "cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.19" * ********************************************************************* Om een nieuwe kernel te bouwen zijn de volgende opdrachten nodig: - "make mrproper" Deze opdracht gooit o.a. oude configuratie-files, core-files, log-files, temporary files, oude .o files en oude modules weg. - "make config", "make menuconfig" of "make xconfig" De opdracht "make config" is text-georienteerd en is vrij lastig in het gebruik. De opdracht "make menuconfig" komt met een text-mode front-end om in te stellen wat er in de kernel moet worden gecompileerd. De opdracht "make xconfig" geeft een grafische variant van deze front-end. Het maakt in principe niet uit welke methode gekozen wordt. Lees goed wat er met de in te stellen opties wordt bedoeld en denk na over de implicaties van het aan- of uitzetten van een optie in deze front-end. Als je bijvoorbeeld SCSI support _en_ IDE support _niet_ aanzet dan hou je natuurlijk geen bruikbare kernel over. Je kunt hier ook beslissen of je een gedeelte van de kernel als module wilt compileren. - "make dep" om de dependencies (zoals include files) in te stellen. - "make clean" om temporary files weg te halen. - "make bzdisk" om een boot disk op basis v/d nieuwe kernel aan te maken. - "make zImage" of "make bzImage" De opdracht "make zImage" zorgt ervoor dat de kernel wordt gecompileerd. Afhankelijk van de snelheid van de machine duurt dit ongeveer 10 minuten tot een half uur. Als de kernel te groot wordt, moet de kernel met "make bzImage" worden gecompileerd, hiermee wordt de kernel file met een ander (beter) algoritme en een andere layout aangemaakt. Het is aan te raden om "make bzImage" te gebruiken! - "/sbin/mkinitrd /boot/initrd-2.2.15.img 2.2.15". Deze opdracht is alleen nodig voor de mensen met SCSI devices. Deze opdracht maakt een initial RAM disk (initrd) aan. - "make modules" De opdracht "make modules" zorgt ervoor dat optionele delen van de kernel als module worden gecompileerd i.p.v. in de kernel zelf. Het compileren van modules i.p.v. in de kernel is verstandig voor bijv. ondersteuning voor hardware die minder in gebruik is als andere hardware (minder in gebruik zijnde hardware kan bijv. een geluidskaart zijn). Het is aan te raden om ondersteuning voor geluidskaarten en netwerk-kaarten als module te compileren, dit om de kernel niet onnodig groot te maken. ************************************************************************* * Alle punten die hierboven staan beschreven kunnen ook in _een_ stap * * gedaan worden : * * * * "make dep; make clean; make bzImage; make modules" * * * * (beter is : "make dep && make clean && make bzImage && make modules") * ************************************************************************* - "make modules_install" De opdracht "make modules_install" zorgt ervoor dat de gecompileerde modules in de directory "/lib/modules/2.2.15" terecht komen. - "cp /usr/src/linux/System.map /boot/System.map-2.2.15" - "cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.15" Deze opdracht zorgt ervoor dat de nieuwe kernel in de directory "/boot" komt te staan. Dit is nodig als je de nieuwe kernel wilt gebruiken. - Kijk of de symbolic links in de "/boot" directory goed staan. Het gaat in dit geval om 3 symbolic links, namelijk de files "System.map", "module-info" en "vmlinuz". Deze symbolic links dienen naar de meest recente kernel versie te wijzen. Als dit niet het geval is, dan dient dit veranderd te worden met behulp van het commando "ln -s System.map-2.2.15 System.map". Vergeet niet om eerst de oude symbolische link te wissen met het commando "rm System.map". Doe hetzelfde met de overige symbolic links, de files "module-info" en "vmlinuz". - De file "/etc/lilo.conf" aanpassen. Om de nieuwe kernel toe te voegen aan de Lilo bootloader moet bovenstaande file worden aangepast met een editor zoals "vi". Voeg dan de volgende regels toe aan deze file: image=/boot/vmlinuz-2.2.15 label=new read-only root=/dev/hdXX Waarbij "vmlinuz-2.2.15" de naam is van de nieuwe kernel zoals die in de "/boot" directory is gekopieerd. Voor het gemak kan hier ook de naam van de symbolic link worden ingevuld, deze verwijst immers naar de meest recente kernel versie. Deze regel zou dan worden : "image=/boot/vmlinuz". De regel "root=/dev/hdXX" is zo'n beetje bij iedereen anders. Kijk naar een van de oude entries in de file om te weten wat je hier moet invullen. Hier moet het zogeheten root filesystem worden ingevuld. De regel "label=new", waarbij "new" de naam is zoals jij de nieuwe kernel wilt starten vanuit het Lilo bootscherm. - De wijzigingen in de file "/etc/lilo.conf" opslaan. - De nieuwe MBR wegschrijven m.b.v. "/sbin/lilo -v". - Nadat je nog even nagelopen hebt of je misschien ergens een foutje hebt gemaakt, het systeem herstarten met bijvoorbeeld "shutdown -r now". Als het goed is kun je nu vanuit het Lilo opstartscherm kiezen uit de oude kernel en de zojuist compileerde nieuwe kernel. - En als alles goed werkt, kun je weer wat diskruimte winnen door even het volgende te doen: - "cd /usr/src/linux" - "make clean" # Linux services: Hieronder staan enkele services / daemons die in Linux een belangrijke rol spelen. In verband met security is het belangrijk om alleen die services en daemons te draaien die daadwerkelijk nodig zijn. Services en daemons die niet nodig zijn kunnen worden uitgeschakeld met het commando "chkconfig". -----------+---------------------------------------------------------------- Service | Omschrijving -----------+---------------------------------------------------------------- anacron | Een verbeterde versie van cron, speciaal voor machines die niet | 24 uur per dag aan staan. | apache | Dit is de web service van Linux. De daemon heet httpd. | apmd | Daemon voor Advanced Power Management & logging. Voornamelijk | voor notebooks en laptops bedoeld. Moderne Linux distributies | bieden ook acpid, de ACPI daemon. | arpwatch | Deze daemon houdt ARP (de koppeling van ethernet/ip adressen) | tabellen bij. | atd | Deze daemon dient voor personal scheduling en voert jobs uit die | zijn opgegeven door het commando at. In tegenstelling tot cron | is deze daemon niet noodzakelijk. | autofs | Daemon voor het automatisch mounten van filesystems. Deze daemon | is niet echt nodig als mounten handmatig gebeurt. | crond | Dit is de daemon die jobs uitvoert die opgegeven zijn volgens de | crontabs. | cupsd | Dit is de daemon voor het Common UNIX Printing System (CUPS). | dhcpcd | Dit is de DHCP (client) daemon. DHCP zorgt ervoor dat hosts in | een TCP/IP netwerk automatisch IP-adressen krijgen toegewezen. | dhcpd | Dit is de DHCP (server) daemon. Deze is alleen nodig als de | machine dienst gaat doen als DHCP server. | dhcrelay | Deze daemon treedt in werking wanneer er geen DHCP server | gevonden kan worden op een subnet. Er wordt dan gekeken naar een | DHCP server op een ander subnet. | ftpd | Dit is de ftp daemon. Alleen nodig als je een FTP _server_ wilt | opzetten, dus voor FTP clients _niet_ bedoeld. | gated | Deze daemon is alleen nodig voor een machine met meerdere | internet links. | gpm | Dit is de mouse server en daemon voor cut- & paste operaties in | virtual consoles. Als er alleen in X gewerkt wordt is deze | daemon niet echt nodig. | httpd | Dit is de Apache HyperText Transfer Protocol (HTTP) webserver | daemon. Deze daemon is alleen nodig als je een webserver wilt | draaien. | identd | Deze daemon wordt door andere hosts gebruikt om TCP sessies te | identificeren afkomstig vanaf de host waar deze daemon op | draait. | | /usr/sbin/in.identd | inetd | De daemon inetd wordt ook wel de super-server genoemd. Deze | daemon start allerlei kleinere netwerk daemons op, maar doet | dit alleen als er een connectie (FTP, POP3, Telnet, etc.) voor | zo'n daemon binnen komt. Als je geen van deze servers wilt | draaien is het het beste om deze uit te schakelen in verband | met de veiligheid! Om dit te realiseren dient het bestand | "/etc/inetd.conf" te worden veranderd. | | Hieronder volgt een overzicht van de daemons die opgestart | worden door inetd: | | - finger (/usr/sbin/in.fingerd) | - linuxconf-web | - ntalk | - rexec (/usr/sbin/in.rexecd) | - rlogin (/usr/sbin/in.rlogind) | - rsh (/usr/sbin/in.rshd) | - talk (/usr/sbin/in.talkd) | - telnet (/usr/sbin/in.telnetd) | - tftp (/usr/sbin/in.tftpd) | - wu-ftpd (/usr/sbin/in.wuftpd) | | /usr/sbin/in.ftpd | /usr/sbin/in.ntalkd | innd | Dit is de INterNet News daemon, deze werkt met het NNTP | protocol. Deze daemon is alleen nodig voor een news server. | ipchains | Ipchains is een packet filter, deze dient eerst geconfigureerd | te worden. | iptables | Iptables is net als Ipchains een packet filter, alleen is deze | nieuw bij kernel 2.4. | isdn | Alleen voor computers met een ISDN aansluiting. | kdcrotate | Script ten behoeve van Kerberos. | keytable | Dit script zorgt voor de keyboard mappings. De keyboard mapping | is in te stellen in de file "/etc/sysconfig/keyboard". | klogd | Dit is de Kernel Log Daemon. Deze zorgt voor het loggen van | kernel-messages. | kudzu | Dit is een hardware detectie programma. Tijdens elke bootup van | de machine kijkt Kudzu of er hardware is toegevoegd, of is | verwijderd. | linuxconf | Dit script is nodig als er gebruik wordt gemaakt van het | programma linuxconf. | lpd | Dit is de line printer spooler daemon. Deze zorgt voor de | afhandeling van print-opdrachten. | mcserv | Dit is de Midnight Commander file server. Aangezien deze alleen | met een Midnight Commander client werkt en potentieel nogal | gevaarlijk is, is het niet verstandig deze te draaien. | mingetty | mingetty - minimal getty for consoles. Dit programma zorgt voor | de layout van de login-schermen die te zien zijn op de console | sessies. | mountd | Deze daemon zorgt voor de afhandeling van NFS. | named | Dit is de Internet Domain Name Server. Zorgt voor DNS. Alleen | nodig als de machine een BIND name server moet worden. | netfs | Dit script mount alle exported filesystems (NFS, SMB en NetWare | shares). | network | Deze service activeert alle network interfaces door gebruik te | maken van de files die in de volgende directory staan: | "/etc/sysconfig/network-scripts/". | nis | Network Information Services. | nfs | Wordt gebruikt voor NFS server. | nfsd | Net als mountd zorgt deze daemon voor de afhandeling van NFS. | Alleen nodig voor file & printer sharing. | nfslock | Dit is de NFS file locking service. Alleen nodig als er gebruik | wordt gemaakt van NFS. | | rpc.lockd - Houd file locks bij. | rpc.statd - Houd reboots bij. | nscd | Dit is de Name Switch Cache Daemon. | ntpd | ntpd - Network Time Protocol Daemon. | pcmcia | Dit script is verantwoordelijk voor PCMCIA kernel modules en | zal vooral voor laptops een rol spelen. | portmap | Deze daemon alloceert poorten voor RPC services, zoals NFS voor | files over een netwerk (Network File System) en NIS voor user | accounts (Network Information System). | postgresql | Postgres is een SQL server. | radvd | NOGDOEN | random | Dit script houdt de random databron van het systeem bij. | rarpd | NOGDOEN | rawdevices | Alleen nodig voor applicaties als Oracle. | rhnsd | Red Hat Network Services Daemon. | routed | Dit is de network routing daemon. Deze is alleen nodig als de | machine dienst gaat doen als router. | rstatd | Deze daemon maakt het mogelijk om vanaf een remote host | performance statistieken te verkrijgen van de host waar deze | daemon op draait. | rusersd | Deze daemon maakt het mogelijk om vanaf een remote host | informatie te verkrijgen over de gebruikers die ingelogd zijn op | de host waar deze daemon op draait. | rwalld | Deze daemon maakt het mogelijk om met behulp van het commando | rwall berichten te sturen naar de users die ingelogd zijn op de | host waar deze daemon op draait. | rwhod | Deze daemon biedt ongeveer dezelfde functionaliteit als de | daemon rusersd. | sendmail | De daemon sendmail zorgt voor het transporteren van e-mail. | Sendmail is een zogenaamde relay agent / mail transporter. | | Om e-mail te versturen is deze daemon niet nodig. Het hebben | draaien van sendmail is alleen nodig om e-mail te kunnen | ontvangen van andere systemen. Als er gebruik gemaakt wordt | van een provider die zowel smtp als pop3 mail services biedt | is deze daemon helemaal niet nodig. | smbd | De SMB (Server Message Block Protocol Server) (ook wel Samba | genoemd) daemon voor file & print sharing met Windows machines. | snmpd | Daemon voor Simple Network Management Protocol. Dit protocol | stelt remote users in staat om gedetailleerde informatie over | het systeem op te vragen. | squid | Squid - een caching proxy server. | sshd | Secure Shell Daemon. Dit is de vervanger voor ftp, rcp, telnet, | rsh en rlogin services met als doel encrypted communication. | syslog | Dit script start de syslogd en klogd daemons. | syslogd | Syslogd zorgt voor het loggen van systeem en kernel-messages. | tux | TUX - Een kernel-based webserver. | vncserver | NOGDOEN | xinetd | xinetd - De opvolger van inetd. | xfs | Dit is de X Window System Font Server. Deze server levert fonts | aan X Window System display servers. | ypbind | Deze daemon 'bind' NIS clients aan een NIS domein en is alleen | nodig op NIS client. | yppasswdd | Dit is de RPC server die users in staat stelt om in een NIS- | omgeving hun passwords te veranderen. | ypserv | Deze server zorgt voor distributie van o.a. hostnames en | usernames in een NIS omgeving. Dit is de NIS server en is niet | nodig op NIS clients. | xntpd | Deze daemon is bedoeld voor afhandeling van het Network Time | Protocol - een manier om voor Unix servers onderling de tijd te | synchroniseren. # Op een handige manier een passwoord laten genereren: Als je geen zin hebt om elke keer een (uniek) passwoord te bedenken kun je door middel van de opdracht: "head -c 6 /dev/urandom | mimencode" deze laten genereren door de 'kernel random number source device'. # De doorvoersnelheid van (E)IDE harde schijven verbeteren: ************************************************************************ * Pas op! Verkeerd gebruik van dit programma _kan_ mogelijk schade aan * * data veroorzaken! * ************************************************************************ Met behulp van de utility "hdparm" kunnen de prestaties van een systeem met (E)IDE harde schijven behoorlijk worden verbeterd. Dit is mogelijk omdat veel standaard Linux distributies niet zijn afgesteld om alles uit de hardware te halen. Dit is in de meeste gevallen opzettelijk gedaan om een betrouwbare werking met wat minder goede hardware te kunnen garanderen. Vanzelfsprekend kan deze utility alleen door root worden opgestart. Om met "hdparm" een benchmark te nemen van de prestaties van de harde schijf kan het volgende commando worden gebruikt: "hdparm -Tt /dev/hda". Om betrouwbare resultaten van deze benchmark te garanderen dient het systeem in single user mode te draaien. Zie hiervoor de beschrijving bij het commando "init". Om ervoor te zorgen dat deze utility steeds wordt opgestart bij het opstarten van het systeem, dient een regel in de file "/etc/rc.local" te worden toegevoegd. Bij mij ziet de desbetreffende regel in de file "/etc/rc.local" er zo uit: "hdparm -d1 -W1 -X34 -c1 -A1 -m16 /dev/hdb". ***************************************************************************** ps. De Red Hat Linux distributie heeft voor dit programma een configuratie- bestand genaamd "/etc/sysconfig/harddisks" in het leven geroepen. Als de gebruikte Linux distributie van Red Hat is, is het aan te bevelen om "/etc/sysconfig/harddisks" te gebruiken voor de configuratie van hdparm. ***************************************************************************** Gebruik: "hdparm [parameter] [device]" Voor dit doeleinde kent de utility "hdparm" o.a. de volgende (case-sensitive) parameters: -A0 Disable read-lookahead. -A1 Enable read-lookahead. -c0 Disable (E)IDE 32-bit I/O support. -c1 Enable (E)IDE 32-bit I/O support. -c3 Enable (E)IDE 32-bit I/O support with sync sequence (more overhead). -d0 Disable bus-mastered DMA. -d1 Enable bus-mastered DMA. -h Help. -i Display the identification info. -m0 Disable multiple sectors per I/O interrupt. -mX Enable X multiple sectors per I/O interrupt. Het aantal multiple sectors dat maximaal kan worden ingesteld, kan worden gevonden met "hdparm -i" (neem het getal dat staat bij 'MaxMultSect'). -T Perform timings of cache reads for benchmark and comparison purposes. -t Perform timings of device reads for benchmark and comparison purposes. -u1 Permits the driver to unmask other interrupts during processing of a disk interrupt, which greatly improves Linux's responsiveness and eliminates "serial port overrun" errors. -v Display all settings. -W0 Disable the IDE drive's write-caching feature. -W1 Enable the IDE drive's write-caching feature. -X34 Set the IDE transfer mode to multiword DMA mode2 transfers. -X66 Set the IDE transfer mode to UltraDMA mode2. # Werken met remote X: Het X Window System (X) kent de mogelijkheid om de output van een programma dat draait in X weer te geven op een andere machine dan de machine waar het programma op draait. Dit gebeurt dan via poort 6000 (zie de file "/etc/services"). Het eerste dat moet worden gedaan is telnetten naar de machine waar de desbetreffende applicatie op draait, bijvoorbeeld "telnet arrakis". Op de machine 'arrakis' moet dan de variabele "DISPLAY" worden gewijzigd. Standaard staat deze variabele op ":0.0", dat betekent dat de output van een X programma op de lokale X Server moet draaien. Dit moeten we nu veranderen in "callahan:0.0". Dit doen we met het commando: "export DISPLAY=callahan:0.0" 'arrakis' is in dit voorbeeld de hostname van de machine waar het programma op staat waarvan de output op de machine met hostname 'callahan' moet komen. De tweede stap die moet worden gedaan is vertellen aan de X Server die op 'callahan' draait dat de machine met hostname 'arrakis' een connectie mag maken naar de X server op 'callahan'. Open een X terminal op 'callahan' en voer in: "xhost +arrakis" Ga weer terug naar de telnet sessie op arrakis en start hier het desbetreffende programma op. # Een screenshot van het scherm maken: Er zijn verschillende manieren om in Linux een screenshot van het scherm te maken. Hier volgen er enkele: "import -display localhost:0.0 -window root screenshot.jpg" Bovenstaande opdracht maakt van het totale scherm een screenshot en maakt er een JPEG plaatje van. Het is natuurlijk ook mogelijk om een PNG plaatje aan te maken. PNG bestanden zijn 'losless' en daarom voor screenshot gebruik meer geschikt: "import -display localhost:0.0 -window root screenshot.png" Om te voorkomen dat er ook een afbeelding wordt gemaakt van het xterm window van waaruit het commando wordt gegeven, kunnen bovenstaande commando's tevens vanuit een virtual console worden gegeven. Om alleen een screenshot te maken van een gedeelte van het scherm kan het volgende commando worden gebruikt: "import screenshot.png" Er dient dan met de muis eerst een selectie te worden gemaakt van het gebied waar het om gaat. # "chroot" stuff / Een restricted inlog shell maken: NOGDOEN ldd /bin/bash cp libs naar /tmp/ROOT/libs cp bin/bash naar /tmp/ROOT/bin *HOPSA* # PostScript. Om van de file "bestand.txt" een PostScript file te maken kan het volgende commando worden gebruikt: "enscript bestand.txt -U 2 -o bestand.ps" Met bovenstaande opdracht worden er 2 logische pagina's afgedrukt op een fysieke pagina. Om bijvoorbeeld 4 logische pagina's af te drukken kan het commando "enscript bestand.txt -U 4 -o bestand.ps" worden gebruikt. Om van een bestaande PostScript file 2 logische pagina's op een pagina te zetten kan het commando "mpage -2 bestand.ps > nieuw_bestand.ps" worden gebruikt. # Synchroniseren met een time server. Om de tijd te laten synchroniseren met een server is het commando "rdate" bedoeld. Het gemakkelijkst is om een verbinding met een time server te realiseren d.m.v. een script, bijvoorbeeld: #!/bin/sh /usr/bin/rdate -s ben.cs.wisc.edu setclock Als het setclock commando niet ondersteund wordt, probeer dan: #!/bin/sh /usr/bin/rdate -s ben.cs.wisc.edu hwclock --systohc Noem dit script bijvoorbeeld "timesync.sh". Om periodiek de tijd te synchroniseren kan gebruik worden gemaakt van cron: "crontab -e" --> "0 2 * * * /root/timesync" # De text editor Vi. De text editor Vi is zonder enige twijfel de meest irritante ter wereld, maar is wel meegeleverd bij elk Unix systeem vanaf de jaren '80. Om de cursor in Vi te sturen kunnen de onderstaande toetsen worden gebruikt. k h l j (Met de editor Vim, meegeleverd met de meeste Linux distributies kan ook met de cursortoetsen worden gewerkt). [Esc] -> Commando mode. Ctrl-d -> (vanuit commando mode) Scroll half scherm naar beneden. Ctrl-f -> (vanuit commando mode) Scroll heel scherm naar beneden. Ctrl-u -> (vanuit commando mode) Scroll half scherm omhoog. Ctrl-b -> (vanuit commando mode) Scroll heel scherm omhoog. b -> (vanuit commando mode) Spring naar het vorige woord. B -> (vanuit commando mode) Spring naar het vorige woord (negeer leestekens). e -> (vanuit commando mode) Spring naar het einde v/h volgende woord E -> (vanuit commando mode) Spring naar het einde v/h volgende woord G -> (vanuit commando mode) Ga naar laatste regel. H -> (vanuit commando mode) Ga naar TOP. w -> (vanuit commando mode) Spring naar het volgende woord. W -> (vanuit commando mode) Spring naar het volgende woord (negeer leestekens). cw -> (vanuit commando mode) Change Word (verander woord). dw -> (vanuit commando mode) Delete Word (wis woord). dd -> (vanuit commando mode) Wis hele regel. x -> (vanuit commando mode) Wis karakter. D -> (vanuit commando mode) Wis alles vanaf cursor tot EOL. C -> (vanuit commando mode) Verander alles vanaf cursor tot EOL. i -> (vanuit commando mode) Insert text. I -> (vanuit commando mode) Insert text aan begin van de regel. a -> (vanuit commando mode) Append text. A -> (vanuit commando mode) Append text aan einde van de regel. o -> (vanuit commando mode) Nieuwe regel onder de cursor. O -> (vanuit commando mode) Nieuwe regel boven de cursor. r -> (vanuit commando mode) Replace karakter. R -> (vanuit commando mode) Replace mode. u -> (vanuit commando mode) Undo. yy -> (vanuit commando mode) 'Yank' regel. p -> (vanuit commando mode) put below cursor. P -> (vanuit commando mode) put above cursor. ZZ -> Write and quit. "a -> (vanuit commando mode) Selecteer register a. "b -> (vanuit commando mode) Selecteer register b. :set list -> :set nu -> Regel nummers aan. :set nonu -> Regel nummers uit. :set sw -> Stel de shift grootte in. (:set sw=4) :w -> Write buffer (sla buffer op in file). :wq -> Write then quit. :n -> Next file. :r -> Read file. Bijvoorbeeld ":r!cat /etc/passwd |sort" :e -> Edit file. :q -> Quit. :q! -> Quit, no safe. :100 -> spring naar regel 100. 1G -> Spring naar regel 1. ~ -> Converteer upper case naar lower case en vice versa. >> -> Shift de huidige regel een naar rechts. << -> Shift de huidige regel een naar links. $ -> Spring naar EOL. ^ -> Srping naar begin van een regel. / -> Zoek (forward) naar een woord. ? -> Zoek (backwards) naar een woord. n -> Herhaal zoekactie. . -> Herhaal laatste actie (of commando). # Kleurtjes X terminal kleurtjes: xterm -sb -sl 2000 -bg lightblue xterm -sb -sl 2000 -bg wheat xterm -sb -sl 2000 -bg cornsilk2 Gekleurde promptjes: Voorgrond | Achtergrond -------------+--------------- 30=black | 0=transparent 31=red | 40=black 32=green | 41=red 33=yellow | 42=green 34=blue | 43=yellow 35=purple | 44=blue 36=turquoise | 45=purple 37=white | 46=turquoise | 47=white Voor tcsh : set prompt='%{^[[44;33;1m%}%!\-%n@%m%{^[[m%}\n%{^[[44;37;1m%}(%~)%#%{^[[m%}' # Remote X (XDM) NOGDOEN 1. - Open de file "/etc/X11/xdm/xdm-config" - Becommentarieer de regel "DisplayManager.requestPort: 0" 2. - Open de file "/etc/X11/xdm/Xaccess" - Decommentarieer de regel "# *" (???) 3. - Open de file "/etc/X11/xdm/Xservers" 3. - "killall -HUP xdm" # IP reeksen Range | Klasse | Mask | Prive reeks (RFC 1918) --------+----------+---------------+---------------------------------- 1-126 | Klasse A | 255.0.0.0 | 10.0.0.0/8 - 10.255.255.255 128-191 | Klasse B | 255.255.0.0 | 172.16.0.0/12 - 172.31.255.255 192-223 | Klasse C | 255.255.255.0 | 192.168.0.0/16 - 192.168.255.255 Gereserveerde IP's: Range | Klasse | Omschrijving ------------------------------+----------+----------------------------- 0.0.0.0/8 | | Broadcast address 127.0.0.1/8 | | Loopback address (localhost) 169.254.0.0/16 | | Gereserveerd voor DHCP range 224.0.0.0/4 - 239.255.255.255 | Klasse D | IP multicasting 240.0.0.0/4 - 255.0.0.0/4 | Klasse E | 255 voor broadcasting Overzicht subnets : * /24 = 255.255.255.0 : 254 hosts * /25 = 255.255.255.128 : 128 hosts * /26 = 255.255.255.192 : 64 hosts * /27 = 255.255.255.224 : 32 hosts * /28 = 255.255.255.240 : 16 hosts * /29 = 255.255.255.248 : 8 hosts * /30 = 255.255.255.252 : 2 hosts * /31 = 255.255.255.254 : 1 hosts # Shell stuff: | = pipe will take the first commands stdout as the second commands stdin. || = OR if first command is false, it will take the second. |= = OR IS (mostly used in if statements) && = AND if first command is true, it will execute the second one. ! = NOT (mostly used in if and test statements) != = NOT IS (mostly used in if statements) !$ = last commands last argument = = IS (mostly used in if statements) ; = will separate 2 commands as if they were written on separate command lines. ;; = end of a case function in a case statement. (see `case` further down) $ = prefix to a variable like "$myvar" $$ = PID of current process (PID == Process ID) $0 = Shows program that owns the current process. $# = Shows the number of arguments. $? = Any argument (good to use in `if` statements) $_ = All arguments $* = All arguments $@ = All arguments # = remmed line, anything on a line after "#" will be overlooked by the script { = start braces (starts a function) } = end braces (ends a function) [ = start bracket (multiple-argument specifiers) ] = end bracket (multiple-argument specifiers) @ = $@ is equivalent to "$1" "$2" etc. (all arguments) * = wild card (* can substitute any number of characters) ? = wild card (? can substitute any single character) " = quote ' = precise quote. (Will even include "'s in the quote) ` = command quote. (variable=`ls -la` doing $variable will show the dir list) . = dot will read and execute commands from a file, ( . .bashrc ) & = and. as suffix to executed file makes it go to the background (./program &) 0> = stdin stream director 1> = stdout stream director 2> = stderr stream director % = job character, %1 = fg job 1, %2 = fg job 2, etc. >> = stream director append to a file << = stdin stream director, that appends. (cat > file << EOF; anything ; EOF) < = stdin stream director > = stream director that will start at the top of the file (in if statements < and > may be used as greater-t$ \ = back-slash, takes away any special meaning with a character, \$var will not be treated as a variable. (and a new line will not be treated as a new line) Bash: $1 eerste argument $2 tweede argument $n etc. $? exit value van laatste commando. $0 eerste woord van commando. $* Alle argumenten. "bla bla" negeer spatie tussen bla en bla. 'bla bla' negeer speciale tekens tussen bla en bla inhoud=`ls` inhoud krijgt output van ls. test (integer) int1 -eq int2 equal int1 -ge int2 greater or equal int1 -gt int2 greater int1 -le int2 less or equal int1 -lt int2 less int1 -ne int2 not equal (strings) str1 = str2 identical str1 != str2 not identical str true if str is not null -n str true if length of str is > 0 -z str true if length of str is = 0 (files) -d filename true if file = directory -f filename true if file = ordinary file -r filename true if file can be read -s filename true if file has nonzero length -w filename true if file can be written -x filename true if file is executable (expr) !expression true if expression is not true expr1 -a expr2 true if expr1 and expr2 are true expr1 -o expr2 true if expr1 or expr2 are true (logic) If...then if [ expression ] then commands fi If..then...else if [ expression ] then commands else commands fi If..then...else If...else if [ expression ] then commands elif [ expression2 ] then commands else commands fi Case select case string1 in str1) commands;; str2) commands;; *) commands;; esac (loops) for var1 in list do commands done while [ expression ] do commands done until [ expression ] do commands done (functions) Create a function: fname(){ commands } Call it by using the following syntax: fname Or, create a function that accepts arguments: fname2 (arg1,arg2...argN){ commands } And call it with: fname2 arg1 arg2 ... argN # Grappige fontjes NOGDOEN heb8x13 heb6x13 -misc-fixed-medium-r-normal--10-70-100-100-c-60-iso8859-1 -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-13 -Schumacher-Clean-Medium-R-Normal--12-120-75-75-C-60-ISO646.1991-IRV # Boot procedure van Linux: NOGDOEN Hieronder staat de (System V-achtige) boot procedure van Linux vermeld: BIOS -> Master Boot Record -> LILO (of GRUB) -> /boot/boot.b -> Kernel (vervolg) Kernel -> Init -> /etc/inittab -> /etc/rc.d/rc.sysinit | +-> Runlevel | +-> rc1.d -> > .. > rc5.d -> /etc/X11/xinit/xinitrc # Veel voorkomende devices onder Linux: Hieronder staan de meest voorkomende devices waar je mee te maken krijgt onder Linux. Als je de kernel sources hebt geinstalleerd, zie de file "/usr/src/linux/Documentation/devices.txt" voor een uitgebreider overzicht. /dev/mem Physical memory access /dev/kmem Kernel virtual memory access /dev/null Null device /dev/zero Null byte source /dev/random Nondeterministic random number gen. /dev/urandom Faster, less secure random number gen. /dev/fd0 Controller 0, drive 0, autodetect /dev/fd?u720 3.5" 720K Double Density /dev/fd?u1440 3.5" 1440K High Density /dev/hda Master: whole disk (or CD-ROM) (First MFM, RLL and IDE) /dev/hdb Slave : whole disk (or CD-ROM) (First MFM, RLL and IDE) /dev/hd? Whole disk /dev/hd?1 First partition /dev/hd?2 Second partition (Partitions 1-4 are the primary partitions) (Partitions 5 and above are logical partitions) /dev/tty0 Current virtual console /dev/tty1 First virtual console /dev/ttyS0 First UART serial port (8250/16450/16550) /dev/tty Current TTY device /dev/console System console /dev/lp0 Parallel printer on parport0 /dev/lp1 Parallel printer on parport1 /dev/vcs Current vc text contents /dev/vcs1 tty1 text contents /dev/sda First SCSI disk whole disk /dev/sdb Second SCSI disk whole disk /dev/st0 First SCSI tape, mode 0 /dev/sr0 First SCSI CD-ROM /dev/dsp Digital audio # BIND8 / BIND9 NOGDOEN (hostname -> IP adres) (IP adres -> hostname) /etc/named.conf resource records: db.mijndomein.nl db.192.168.101. (reverse lookup) db.cache (waar staan de root servers?) db.127.0.0 # BIND 8 NOGDOEN vi /etc/named.boot directory /var/named cache . /var/named/named.ca (cache) primary peter.peter.com /var/named/named.peter primary 24.24.98-in-addr.arpa /etc/named.peterrev primary 0.0.127.in-addr.arpa /etc/named.local vi /var/named/named.ca (welke servers have auth to answ req.)? vi /var/named/named.local /var/named/peterrev /var/named/named.peter vi /etc/resolv.conf domain peter.peter.com nameserver 127.0.0.1 named start # NOGDOEN x:6:respawn:/etc/X11/X :1 -bpp 8 vt08 # NOGDOEN Quota's: Hard limit cannot be exceeded under any circumstances. Soft limit sends warnings to users and groups /etc/fstab /dev/hdaX / /et2 rw,quota 1 1 /etc/fstab /dev/hdaX / /et2 rw,usrquota 1 1 /etc/fstab /dev/hdaX / /et2 rw,grpquota 1 1 # Het installeren van een kernel-patch: Een kernel-patch over een officiele stabiele kernel-release kan soms handig zijn om bepaalde features die niet in een officiele kernel zijn terug te vinden toch te hebben: Een paar voorbeelden van zulke features zijn: - De 'Preemptible Kernel' patches van Robert M. Love. Deze patches verbeteren de response tijd van de Linux kernel - wat handig kan zijn voor spelletjes, multimedia- en audio toepassingen. "http://www.tech9.net/rml/linux/" - De 'Alan Cox' patches. Alan Cox heeft soms wat eigen ideeen over bepaalde zaken op het gebied van de Linux kernel, als je zijn patches wilt gebruiken kun je die hier vinden: "http://www.kernel.org/pub/linux/kernel/people/alan/" - De zogenaamde 'pre-' patches. Dit zijn de zogenaamde pre-release patches die uiteindelijk een officiele stabiele kernel-release zullen vormen. Als je geen zin en/of tijd hebt om te wachten totdat een officiele kernel verschijnt: "http://www.kernel.org" Hieronder een voorbeeld van het installeren van de (op moment van schrijven) nieuwste pre-patch: - Haal de nieuwste stabiele kernel van "http://www.kernel.org" (bijvoorbeeld "linux-2.4.14.tar.gz") en deze file in bijv. je home- directory. - Download de nieuwste pre-patch versie van de Linux kernel van "http://www.kernel.org" (bijvoorbeeld "patch-2.4.15-pre5.gz") en zet deze file in bijv. je home-directory. - su naar user root en doe: - Delete (of backup) je oude Linux source-tree: "rm -rf /usr/src/linux" - Kopieer "linux-2.4.14.tar.gz" en "patch-2.4.15-pre5.gz" naar "/usr/src". - Pak de nieuwe source tree uit en apply de patch: "cd /usr/src/" "tar xzvf linux-2.4.14.tar.gz" "cd /usr/src/linux" "gzip -dc ../patch-2.4.15-pre5.gz | patch -p1" - Even de oude include files weghalen en opnieuw aanmaken: "cd /usr/include/" "rm -rf asm linux scsi" "ln -s /usr/src/linux/include/asm-i386 asm" "ln -s /usr/src/linux/include/linux linux" "ln -s /usr/src/linux/include/scsi scsi" - De uiteindelijke kernel compileren: "cd /usr/src/linux" "make mrproper" "make xconfig" "make dep && make clean && make bzImage && make modules" "make modules_install" "cp /usr/src/linux/System.map /boot/System.map-2.4.15-pre5" "cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.15-pre5" # Het veranderen van de tijd-zone: De directory die alle tijdzones bevat : "/usr/share/zoneinfo" De file die de lokale tijdzone aangeeft : "/etc/localtime" Voorbeeld om een andere tijdzone in te stellen: "cp /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime" # TrueType fonts onder Linux: NOGDOEN "cp *.ttf /usr/share/fonts/default/TrueType/" "/etc/rc.d/init.d/xfs restart" # Videobestanden en DVD's bekijken en DVD's rippen onder Linux: ( NOGDOEN APPLE QUICKTIME CODEC INSTALLATIE BESCHRIJVEN NOGDOEN vqscale= voor "vpass=1" met 3 fase rip. ) Inmiddels is het bekijken van videobestanden en DVD's onder Linux niet zo heel moeilijk meer t.o.v. enige tijd geleden; er zijn inmiddels verschillende programma's die dit kunnen (Xine, MPlayer en Ogle). Een probleem is echter dat de benodige programmatuur niet bij de reguliere Linux distributies is meegeleverd. Dit komt voornamelijk door het grijze gebied waarin deze software zich bevind. Bijvoorbeeld, het stukje code dat nodig is om een DVD te bekijken is officieel nooit vrijgegeven aan de open- source gemeenschap. Echter, door middel van reverse engineering is er toch iemand uit Noorwegen in geslaagd om dit voor elkaar te krijgen onder Linux. Om rechtszaken te voorkomen leveren grote distributies zoals Red Hat geen codecs mee die gepatenteerd zijn (bijv. de MP3 codec en de DVD decoder). Gelukkig kan alle software die nodig is om een DVD af te spelen of om verschillende videobestanden te bekijken zonder al te veel problemen op het internet worden gevonden. Op dit moment is de decoder/encoder genaamd "MPlayer" een van de betere programma's voor dit doel. MPlayer is de meest veelzijde multimedia speler onder Linux. Er zit ook encoding software bij waarmee op uitgebreide wijze videobestanden kunnen worden gemaakt. Hieronder een klein stappenplan voor de installatie en configuratie van dit programma : a) Allereerst de source van MPlayer downloaden. De source van MPlayer kan bij de URL "http://www.mplayerhq.hu" worden verkregen. Op dit moment is MPlayer v0.90 de meest recente versie. De bestandsnaam van deze versie is "MPlayer-0.90.tar.bz2". b) De meest voorkomende codecs downloaden. Alhoewel MPlayer redelijk wat codecs out-of-the-box ondersteunt zal toch de behoefte ontstaan om ook andere formaten af te spelen. Voor dit doel zijn de 'Win32 codecs' bedoeld. Ook deze zijn te downloaden op de site van MPlayer. De bestandsnaam van deze verzameling codecs is "win32codecs.tar.bz2". c) Skins downloaden voor MPlayer. MPlayer is out-of-the-box een commandline gebaseerde tool met heel veel opties. Voor normaal gebruik kan ook een GUI worden gebruikt. Daarvoor zijn wel 'skins' nodig. Zelf gebruik ik de skin genaamd 'Blue'. Ook deze skin kan gedownload worden op de site van MPlayer. De bestandsnaam van deze versie is "Blue-1.0.tar.bz2". d) Fonts downloaden voor MPlayer. Om een DVD te ondertitelen dienen fonts te worden gedownload. Ook deze fonts zijn te downloaden op de site van MPlayer. De bestandsnaam voor de fonts die ik gekozen heb is "font-arial-cp1250.tar.bz2". e) De source van de LAME MP3 codec downloaden. Als we een stream willen encoderen met MP3 als audio codec hebben we LAME nodig. Deze kan op de site "http://www.mp3dev.org/mp3" worden gedownload. De bestandsnaam voor de huidige stabiele versie van de LAME encoder is "lame-3.93.1.tar.gz". f) De Win32 codecs installeren. Ga naar de directory waar je "win32codecs.tar.bz2" hebt neergezet. - "bunzip2 win32codecs.tar.bz2" - "su" - "mv win32codecs.tar /opt" - "cd /opt" - "tar xvf win32codecs.tar" Nu hebben we de meest voorkomende video codecs geinstalleerd. g) De LAME MP3 library compileren en installeren. (deze stap vereist wel dat de GNU C compiler is geinstalleerd). Ga naar de directory waar je "lame-3.93.1.tar.gz" hebt neergezet. - "tar xzvf lame-3.93.1.tar.gz" - "cd lame-3.93.1" - "./configure --prefix=/opt/lame-3.93.1 && make" (dit kan een tijdje duren, als dit proces klaar is dient de library te worden geinstalleerd, zie hieronder). - "pwd" (noteer het pad op papier of zet het in de copy-buffer). - "su -" - "cd ". - "make install" (nu is de LAME library in "/opt/lame-3.93.1/lib" geinstalleerd). (we gaan nu de shared libraries goedzetten voor het systeem zodat de LAME library gebruikt kan worden door andere programma's). - "cd /etc" - "cp ld.so.conf ld.so.conf.backup" - "vi ld.so.conf" Nu zetten we een nieuwe regel in deze file : /opt/lame-3.93.1/lib en we slaan deze wijzigingen op en verlaten vi. - "ldconfig -v" Voor het compilatie proces van MPlayer zetten we alvast een include bestand voor de LAME library klaar : Ga weer naar de directory waar je "lame-3.93.1.tar.gz" hebt neergezet. - "cd lame-3.93.1" - "cd include" - "mkdir lame" - "cp lame.h lame" - "pwd" (zet dit pad in de copy buffer, of schrijf het ergens op. Dit pad hebben we zo nodig bij de compilatie van MPlayer). h) MPlayer compileren en installeren : Ga naar de directory waar je "MPlayer-0.90.tar.bz2" hebt neergezet. - "bunzip2 MPlayer-0.90.tar.bz2" - "tar xvf MPlayer-0.90.tar" - "cd MPlayer-0.90" - "./configure --prefix=/opt/MPlayer-0.90 --enable-gui \ --with-win32libdir=/opt/win32codecs \ --with-extralibdir=/opt/lame-3.93.1/lib \ --with-extraincdir=" - "make" (dit gaat een tijdje duren). - "pwd" (zet dit pad bijv. in de copy buffer). - "su -" - "cd " - "make install" Gefeliciteerd! Hiermee is MPlayer gecompileerd en geinstalleerd. i) Pad aanpassen voor MPlayer. Omdat het handig is om een tool als MPlayer in het pad te hebben passen we de globale pad setting aan voor alle gebruikers van het systeem : - "su -" - "cd /etc" - "vi profile" voeg de volgende regel toe : export PATH=$PATH:/opt/MPlayer-0.90/bin j) Skin installeren voor MPlayer. Ga naar de directory waar je "Blue-1.0.tar.bz2" hebt neergezet. - "bunzip2 Blue-1.0.tar.bz2" - "tar xvf Blue-1.0.tar" - "su" - "mv Blue /opt/MPlayer-0.90/share/mplayer/Skin" - "cd /opt/MPlayer-0.90/share/mplayer/Skin" - "ln -s Blue default" k) Font installeren voor MPlayer. Ga naar de directory waar je "font-arial-cp1250.tar.bz2" hebt neergezet. - "bunzip2 font-arial-cp1250.tar.bz2" - "tar xvf font-arial-cp1250.tar" - "cd cp1250" - "su" - "cp -r arial-18/* /opt/MPlayer-0.90/share/mplayer/font" i) Testen. Als alle bovenstaande stappen successvol zijn verlopen zou MPlayer moeten werken. Dit kunnen we testen : "mplayer" - start de console versie van MPlayer. "gmplayer" - start de GUI versie van MPlayer. "mplayer /dev/cdrom" - Speel een DVD af (ik heb een combi DVD/CD-ROM). "mplayer " - Speel AVI af. "mplayer " - Speel MP3 af. j) Rippen van een DVD. Rippen van een video-stream of een DVD kan met het programma "mencoder", dat ook deel uitmaakt van de MPlayer tools. Als bovenstaande stappen successvol zijn verlopen, zal ook het programma "mencoder" werken. Het is het handigst om een DVD rip in 3 fasen te doen. Dit zorgt voor een goede kwaliteit en er kan in een redelijk vroeg stadium een schatting worden gemaakt van de grootte en kwaliteit van de DVD rip. Fase 1 - De audio stream. Eerst gaan we de audio stream van de DVD rippen. Dit heeft als voordeel dat er geen problemen m.b.t. synchronisatie van beeld en geluid ontstaan. Ook krijgen we hiermee een indicatie wat voor bitrate voor de video compressie we later moeten gebruiken. mencoder -dvd-device /mnt/cdrom -dvd 4 -sid 0 -oac mp3lame \ -lameopts br=96:cbr:vol=2 -ovc frameno -o frameno.avi De volgende opties worden gebruikt: "-dvd-device /mnt/cdrom" - Het mountpoint dat wijst naar de DVD. "-dvd 4" - Track nummer. Bij de film die ik hier gebruik als voorbeeld, is track 4 de speelfilm zelf. "-sid 0" - Nederlandse ondertiteling aan (id = 0). "-oac mp3lame" - We gebruiken LAME als audio codec. "-lameopts br=96:cbr:vol=2" - De volgende LAME opties gebruiken we : br=bitrate (96). cbr=constant bitrate (nodig voor de indicatie tijdsduur van de rip). vol=volume/audio gain. "-ovc frameo" - Video codec "frameno" om aan te geven dat we een 3 fase DVD rip gaan maken. "-o frameno.avi" - Output file wordt "frameno.avi". Dit is een speciale file voor de 3 fase rip. Als fase 1 (de audio stream) klaar is zal een indicatie worden gegeven wat de aangeraden bitrate is voor een 650 MB en een 700 MB CD-R(W). Fase 2 - De eerste video stream. Voordat we echt gaan beginnen met deze fase, kijken we welk gedeelte van het beeld we kunnen weglaten met de optie "-vop cropdetect". mencoder -dvd-device /mnt/cdrom -dvd 4 -sid 0 -oac copy \ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=844:vpass=1 \ -vop cropdetect,pp=0x20000 -aspect 16:9 -o "test.avi" Laat dit een tijdje lopen. Na een tijdje is te zien dat het videobeeld zich beperkt tot bijvoorbeeld het volgende gebied "710:574:6:2". We doen nu Ctrl-C en we beginnen nu met fase 2. mencoder -dvd-device /mnt/cdrom -dvd 4 -sid 0 -oac copy \ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=844:vpass=1 \ -vop crop=710:574:6:2,pp=0x20000 -aspect 16:9 -o "test.avi" De volgende opties worden gebruikt: "-oac copy" - Om aan te geven dat we een al geripte audio stream gebruiken. "-ovc lavc" - We gebruiken de "libavcodec". "-lavcopts vcodec=mpeg4:\ vhq:vbitrate=844:vpass=1" - Opties voor "libavcodec": - "mpeg4" - DivX 4/5 formaat. - "vhq" - Very High Quality. - "vpass=1" - Fase 1 van de video rip. "-vop crop=710:574:6:2,\ pp=0x20000" - We croppen de DVD (crop=x:x:x:x) en we gebruiken een post-processing (pp=) de-interlace filter. "-aspect 16:9" - De aspect ratio van de film. "-o "test.avi" - De naam van de output file. Fase 3 - De tweede video stream. mencoder -dvd-device /mnt/cdrom -dvd 4 -sid 0 -oac copy \ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=844:vpass=2 \ -vop crop=710:574:6:2,pp=0x20000 -aspect 16:9 -o "test.avi" Nu is alleen de optie "vpass=2" anders. Dit dient om aan te geven dat we bezig zijn met fase 2 van de video rip. Als deze fase klaar is, is de DVD geript. # Een internet aansluiting delen onder Linux: NOGDOEN - uitgebreide beschrijving, maar in het kort zijn dit de stappen: #!/bin/sh /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack_ftp /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # NTFS partities lezen onder Red Hat Linux: Afhankelijk van de gebruikte distributie is het mogelijk om 'out-of-the-box' een NTFS partitie te mounten en te bekijken onder Linux. De bekende Red Hat Linux distributie heeft helaas geen ondersteuning 'out-of-the-box' om dit te doen. Red Hat heeft ervoor gekozen om de ondersteuning voor NTFS uit de kernel te laten bij hun distributie, dit omdat NTFS onder Linux voor een groot deel door reverse-engineering tot stand is gekomen en Red Hat geen zin heeft in juridische rompslomp. Gelukkig is op het internet een site waar een RPM te downloaden is voor elke recente versie van Red Hat Linux waarmee gemakkelijk support voor NTFS kan worden geactiveerd : "http://linux-ntfs.sourceforge.net/info/redhat.html" Het is voldoende om de RPM te downloaden die compileerd is voor het type CPU die in je computer zit. Als dat is gedaan kan met het commando : "mount -t ntfs /dev/hda1 /mnt/ntfs/" de drive "/dev/hda1" (in mijn geval een Windows XP NTFS partitie) worden gemount aan het mountpoint "/mnt/ntfs". Afhankelijk van de gebruikte versie van de NTFS module zal de partitie read-only zijn gemount, dit ivm. mogelijke problemen die kunnen ontstaan bij het beschrijven van een NTFS partitie. # POP3 mailboxen uitlezen zonder e-mail client. Het is mogelijk om zonder gebruik van een e-mail client een pop3 server te raadplegen. Met behulp van het commando "telnet 110" kan op de volgende manier een sessie met een pop3 mailserver worden opgezet : "user " "pass " Als het inloggen successvol is gebeurd kunnen de volgende commando's worden gebruikt : - "stat" - Hoeveel berichten staan klaar en hoe groot zijn deze in totaal? - "list" - Een lijst met de berichten. - "retr" - Opvragen van een bericht. - "dele" - Markeer een bericht om te verwijderen. - "rset" - Maak de selectie van berichten die gewist dienen te worden ongedaan. - "top" - Bekijk een aantal regels van een bericht. (top 1 5) - "capa" - - "last" - - "noop" - - "uidl" - - "quit" - Beindig de sessie met de pop3 server. Alle gemarkeerde berichten worden verwijderd. # Een SMTP server gebruiken zonder e-mail client. Het is mogelijk om zonder gebruik van een e-mail client een SMTP server te gebruiken om een mailtje te sturen. Met behulp van het commando "telnet 25" kan op de volgende manier een berichtje worden verstuurd: "helo jij.daar" "mail from: " "rcpt to: " "data" "from: " "to: " "subject: " " Scroll naar "NTFS file system support (read only)" -> Selecteer "m" voor NTFS support in de vorm van een module. -> (optioneel) Selecteer "NTFS write support (DANGEROUS)" als je de mogelijkheid wilt hebben om ook te schrijven naar een NTFS filesystem. -> Kies "Main Menu". -> Kies "Save and Exit". 09. Edit de makefile met "vi Makefile". 10. Edit de regel met EXTRAVERSION. Haal het woord "custom" weg. 11. "make dep" "make modules SUBDIRS=fs/ntfs" "mkdir /lib/modules/2.4.21-20.1.2024.2.1.nptl/kernel/fs/ntfs" "cp /usr/src/linux-2.4.21-20.1.2024.2.1.nptl/fs/ntfs/ntfs.o \ /lib/modules/2.4.21-20.1.2024.2.1.nptl/kernel/fs/ntfs" "/sbin/depmod -a" 12. Nu zou je met behulp van het commando "modprobe ntfs" de NTFS module moeten kunnen laden. Hoofdstuk 4 +-------------------------------------------+ | Belangrijke utilities / tools / libraries | +-------------------------------------------+ # De mtools utilities. Deze utilities zijn bedoeld voor manipulatie van files op DOS floppy disks. Typ het commando "mtools" in om een overzicht te krijgen van de commando's die in deze utilities zitten. De commando's zijn: "mattrib" - Om de file attributen te veranderen. "mbadblocks" - Om een DOS floppy te testen en eventuele (ongebruikte) bad blocks te markeren. "mcat" - Om een DOS floppy helemaal uit te lezen. De output hiervan kan bijv. naar een file worden gestuurd om boot floppies te maken. "mcd" - Om de werk-directory te veranderen. "mcheck" - Om files op een DOS floppy te controleren op errors. "mcopy" - Om files van een DOS floppy naar een Unix filesystem te kopieren, of andersom. "mdel" - Om een of meerdere files te verwijderen. "mdeltree" - Om een directory en de inhoud daarvan te verwijderen. "mdir" - Om de directory-inhoud van een DOS floppy weer te geven. "mformat" - Om een floppy op DOS formaat te formatteren. "minfo" - Om uitgebreide informatie op te vragen en de "mformat" command line om een zelfde soort floppy te formatteren. "mlabel" - Om het volume label te veranderen. "mmd" - Om een subdirectory aan te maken. "mmount" - Om automatisch een DOS floppy te mounten. "mmove" - Om een file of subdirectory te verplaatsen of te hernoemen. "mrd" - Om een subdirectory te verwijderen. "mren" - Om een file of subdirectory te renamen. "mtoolstest" - Om de configuratie van de mtools utilities weer te geven. "mtype" - Om de inhoud van een file te bekijken. "mzip" - Om verschillende operaties op een Zip/Jaz drive los te laten. Bijvoorbeeld: "mdir a:" geeft de directory inhoud van de floppy in drive A. De instellingen van deze utilities staan in de file "/etc/mtools.conf". # De manual pages. De manual pages kunnen worden opgeroepen door "man " in te typen. Dus "man mtools" geeft informatie over de mtools. Het "man" commando kan bijna voor elk Linux/Unix commando worden gebruikt. De manual pages staan opgeslagen in de directories: "/usr/man" - Hier staan de manual pages voor de niet-X11 (de niet- grafische) toepassingen. "/usr/X11R6/man" - Hier staan de manual pages voor de grafische X11- toepassingen. "/usr/local/man" - Hier komen de manual pages van programma's te staan die zijn gedownload en/of gecompileerd. # De Midnight Commander. "mc" start het programma 'Midnight Commander' op. Dit programma wordt bij de meeste Linux distributies meegeleverd. Midnight Commander is een soort Norton Commander / Volkov Commander kloon, maar dan voor Linux/Unix. Erg handig! # Het programma "yast". Het programma "yast" - Yet Another Setup Tool - is een programma dat bij de SuSE distributie van Linux is geleverd. Dit programma is bedoeld om zaken als printer-configuratie, Linux packages en netwerk-configuratie in te stellen. # Het programma "printtool". Met het programma "printtool" kunnen printers worden geconfigureerd. # Het programma "sndconfig". Hiermee kun je je geluidskaart instellen. Zorg wel dat je het een en ander van te voren weet van je kaart, het is namelijk niet zo'n vriendelijk programma wat betreft autodetectie van ISA kaarten. Bij problemen met het instellen van de geluidskaart kunnen de volgende parameters worden gebruikt: "sndconfig --noprobe" "sndconfig --noautoconfig" De opvolger van dit programma is het programma "redhat-config-soundcard". # Het programma "Xconfigurator". Met dit programma kun je je grafische kaart en je monitor installeren. Als je monitor niet in de lijst van ondersteunde monitoren voorkomt, kan de custom monitor setup gebruikt worden, maar daarvoor moet je wel een boekje met de specificaties van je monitor bij de hand hebben, want er wordt gevraagd naar dingen zoals maximale verticale en horizontale refresh rates. Mocht op de een of andere manier dit programma problemen opleveren, dan kunnen ook de programma's "XF86Setup" en "xf86config" worden gebruikt. Het programma "XF86Setup" is een grafische tool om de X server te configureren, terwijl "xf86config" in text-mode werkt. Update: Sinds Red Hat Linux 8.0 en hoger is dit programma vervangen door het programma "redhat-config-xfree86". # Het programma "setup". Hiermee kun je ook je beeldscherm en geluid instellen, maar ook dingen zoals je muis, toetsenbord en de tijdzones. # Het programma "SuperProbe". Dit programma is bedoeld om informatie in te winnen over je videokaart. Het programma _KAN_ je computer crashen, dus schrijf belangrijke data weg voordat je dit programma opstart! Je runt het programma door "SuperProbe" in te typen in een console of terminal sessie. Het programma wacht automatisch 5 seconden voordat het start, zodat je vlug kunt gebruiken om het programma te verlaten. Ook hier geldt: raadpleeg eerst de manual pages ("man SuperProbe") voordat je het programma opstart. Hier is een voorbeeld van de schermoutput van 'SuperProbe': First video: Super-VGA Chipset: Tseng ET4000/W32p Rev B (Port Probed) Memory: 1024 Kbytes RAMDAC: STG1702 15/16/24-bit DAC w/cursor,pixel-mux (with 6-bit wide lookup tables (or in 6-bit mode)) (programmable for 6/8-bit wide lookup tables) Update: Sinds Red Hat Linux 8.0 en hoger is dit programma vervangen door het programma "redhat-config-xfree86". # Het programma "info". Dit programma is een soort hypertext gebaseerd help systeem. Met behulp van de cursor toetsen en de toets kan informatie worden opgevraagd over elk commando of programma dat opgenomen is in de database van het programma "info". # Het commando "whatis". Met behulp van dit commando kan informatie worden opgevraagd over Linux/Unix commando's. Het verschil tussen dit commando en de andere commando's en programma's bedoeld voor het opvragen van informatie, is dat het commando "whatis [file]" meestal niet meer dan _een_ regel informatie geeft over een bepaald programma of commando. Voordat het commando "whatis [file]" kan worden gebruikt, moet eerst een database worden aangemaakt. Dit doe je met het commando "makewhatis". # Het programma "x11perf". Het programma "x11perf" is bedoeld om te meten hoe snel de gebruikte X-server bepaalde operaties kan uitvoeren. De prestaties van X zijn sterk afhankelijk van de gebruikte videodriver en videokaart. Hoofdstuk 5 +-------------------------------------+ | Handige sites voor Linux gebruikers | +-------------------------------------+ "bugzilla.redhat.com/bugzilla" ........ Voor het opvragen en rapporteren van bugs in Red Hat Linux. "forum.nedlinux.nl" ................... Nederlands Linux en BSD forum. "forums.gentoo.org" ................... Discussie forum van Gentoo Linux. "freshmeat.net" ....................... Zeer uitgebreide software site. "freshrpms.net" ....................... Packages voor Red Hat Linux. "linux-sound.org" ..................... Sound & MIDI software voor Linux. "old.lwn.net/Gallery" ................. De LWN Penguin Gallery. "people.debian.org/~bagpuss/sag" ...... The Linux System Administrator's Guide. Uitgebreid online boek. "tldp.org/LDP/intro-linux/html" ....... Introduction to Linux. Uitgebreid online boek. "tldp.org/LDP/nag2/index.html" ........ The Linux Network Administrators Guide. Uitgebreid online boek. "www.alsa-project.org" ................ Officiele site van de Advanced Linux Sound Architecture (ALSA) die in Linux 2.6 zal verschijnen. "www.distrowatch.com" ................. Handig om verschillende Linux distributies met elkaar te vergelijken. "www.dsl.org/cookbook" ................ The Linux Cookbook. Online boek. "www.freebsd.org" ..................... Alternatief voor Linux. "www.gnome.org" ....................... Thuisbasis van het GNOME project. "www.gnu.org" ......................... Thuisbasis van het GNU project. "www.happypenguin.org" ................ Site met spelletjes voor Linux. "www.justlinux.com/forum" ............. De forums van JustLinux.com "www.kde.org" ......................... Thuisbasis van het KDE project. "www.kernelnewbies.org" ............... Bijna alles over de Linux kernel. "www.kernelnewbies.org/status" ........ Uitgebreide informatie over de volgende versie van Linux. Op dit moment is dat 2.5.69. "www.kernel.org" ...................... Thuisbasis van de Linux kernels. "www.linux.com" ....................... Community site voor Linux. "www.linuxgames.com" .................. Site met spelletjes voor Linux. "www.linuxhardware.net" ............... Over hardware en Linux. "www.linuxhomepage.com" ............... Verzameling van allerlei Linux gerelateerde headlines van andere sites. Leuk om je standaard startpagina van te maken. "www.linuxjournal.com" ................ Thuisbasis van het blad 'Linux Journal'. "www.linuxjournal.com/magazine.php" ... Archief met alle oude 'Linux Journals' online. Aanrader. "www.linuxmagazine.com" ............... Thuisbasis van het blad 'Linux Magazine'. "www.linux-mag.com/gallery.html" ...... Archief met alle oude 'Linux Magazines' online. Aanrader. "www.linuxmag.nl" ..................... Thuisbasis van het Nederlandse blad 'Linux Magazine'. "www.linuxmag.nl/sitemap.php" ......... Archief met alle oude Nederlandse 'Linux Magazines' online. Aanrader. "www.linux.org" ....................... Community site over Linux. "www.linuxtoday.com" .................. Nieuwtjes in de Linux wereld. "www.linux-usb.org" ................... Bijna alles over Linux en USB. "www.mozilla.org" ..................... Thuisbasis van de open-source en multiplatform Mozilla browser. "www.nedlinux.nl" ..................... Nederlandse Linux community site. "www.nl.linuxfocus.org/Nederlands" .... LinuxFocus Magazine. Aanrader. "www.oreillynet.com" .................. Verschillende artikelen over open-source software. "www.redhat.com/docs/manuals/linux" ... De online handleidingen van Red Hat Linux. Aanrader. "www.seifried.org/lasg" ............... Linux Administrator's Security Guide. "www.tldp.org" ........................ The Linux Documentation Project. "www.xfree86.org" ..................... Thuisbasis van The XFree86 Project. Hoofdstuk 6 +---------------------------------------+ | Versie geschiedenis van deze textfile | +---------------------------------------+ + = Toegevoegd aan deze textfile / = Veranderd aan deze textfile # Versie: 0.5.6 (4 januari 2004) # # / Hier en daar wat aanpassingen in de textfile. # + Informatie over de volgende commando's: # # "alternatives" "mkpasswd" "shred" # Versie: 0.5.5 (31 augustus 2003) # # / De textfile wat meer gestructureerd en netter gemaakt. # # + NTFS partities benaderen met Linux door zelf een NTFS module te compileren. # + Informatie over de volgende commando's: # # "cdda2wav" "msgfmt" "sar" "setleds" "socklist" "symlinks" # Versie: 0.5.4 (14 juni 2003) # # + Informatie over gebruik van een USB memory stick onder Linux. # + Informatie over de volgende commando's: # # "cdrdao" "cvs" "fetchmail" "isoinfo" "ssh-keygen" # Versie: 0.5.3 (15 mei 2003) # # / Informatie over videobestanden en DVD's bekijken en DVD's rippen # uitgebreid. # # + Informatie over source code compileren. # + Informatie over de volgende commando's: # # "sysctl" # Versie: 0.5.2 (05 mei 2003) # # + Nieuw hoofdstuk (5) toegevoegd : "Handige sites voor Linux gebruikers". # # + Informatie over videobestanden en DVD's bekijken en DVD's rippen. # + Informatie over een internet aansluiting delen. # + Informatie over NTFS partities lezen onder Red Hat Linux. # + Informatie over POP3 mailboxen uitlezen zonder e-mail client. # + Informatie over een SMTP server gebruiken zonder e-mail client. # + Informatie over de volgende commando's: # # "mii-tool" "cdrecord" "mkisofs" "grpck" "xclock" "ip" # Versie: 0.5.1 (21 juli 2002) # # + Informatie over het installeren van een kernel-patch. # + Informatie over het veranderen van de tijd-zone. # + Informatie over de volgende commando's: # # "cdparanoia" "strip" # Versie: 0.5.0 (29 oktober 2001) # # + Informatie over de volgende commando's: # # "top" "halt" "mail" "reboot" "ifdown" # "ifup" "modprobe" "SVGATextMode" "rpm" "chage" # "groupadd" "groupdel" "lastb" "mkbootdisk" "renice" # "chkconfig" "col" "lpc" "rmmod" "uudecode" # "uuencode" "export" "clockprobe" "xsetroot" "chattr" # "lsattr" "mpg123" "sox" "xon" "logger" # "apropos" "chroot" "fuser" "hexdump" "nohup" # "xargs" "hwclock" "printf" "awk" "chsh" # "exportfs" "setterm" "smbmount" "strip" "test" # "updatedb" "xdpyinfo" "xset" "xwininfo" "Xwrapper" # "rdate" "showmount" "stty" "script" "smbclient" # "xv" "groupmod" "lndir" "pwck" "usermod" # "vipw" # # + Informatie over de doorvoersnelheid van (E)IDE harde schijven verbeteren. # + Informatie over werken met remote X. # + Informatie over een screenshot van het scherm maken. # + Informatie over synchroniseren met een time server. # + En nog veel meer! # Versie: 0.4.1 (7 juni 2000) # # + Informatie over SuSE Linux 6.4 specifieke locatie van bestanden e.d. # + Wat te doen als je je root-password bent vergeten? # + Het compileren van een (nieuwe) Linux (2.2.x en 2.4.x) kernel. # + Informatie over Linux services. # Versie: 0.4.0 (24 april 2000) # # / De textfile wat meer gestructureerd en netter gemaakt. # + Informatie over de volgende commando's: # # "fmt" "uniq" "colrm" "rev" "arp" "date" "netstat" # "ping" "route" "chgrp" "traceroute" "expr" "id" "whoami" # "groups" "gzexe" "hash" "hostname" "set" "unzip" "zip" # "info" "ln" "pico" "resolveip" "who" "grep" "locate" # "lprm" "mount" "newgrp" "nl" "dirs" "gunzip" "gzip" # "zcat" "bggen" "procinfo" "printenv" "ftp" "w" "rcp" # "rwall" "talk" "shutdown" "touch" "tr" "ulimit" "unset" # "vmstat" "wall" "dd" "last" "ldconfig" "lsdev" # "lsof" "lspci" "nslookup" "stat" "umask" # # + Informatie over een window-manager / desktop-environment toevoegen aan het # systeem. # # / Versie geschiedenis van versies < 0.4.0 verwijderd. -= EOF =-