De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

Basiskennis

Oplossing

Gebruikers

Tijdens de installatie van de meeste distributies wordt gevraagd om een normale gebruiker aan te maken naast root. Als het installatieprogramma van jouw distributie dat niet vraagt, moet je dat zelf naderhand doen. De gebruiker root, ook wel superuser genoemd, mag alles doen. Hij mag alles bekijken en veranderen. Daarom is het ook gevaarlijk om de hele tijd als root te werken. Je kunt o.a. gemakkelijk iets fout doen. Maak voor jezelf een normale gebruiker aan met:

useradd jarkko
passwd jarkko

Verander hierin jarkko door de gebruikersnaam. Useradd is een script om het proces van een nieuwe gebuiker aanmaken te automatiseren. Als useradd niet bestaat, probeer dan eens adduser. Zowel GNOME als KDE hebben ook grafische tooltjes om gebruikers toe te voegen. Wat ook altijd werkt, is het met de hand doen. Maak daarvoor een home directory aan in /home voor de nieuwe gebruiker. In die directory mag de gebuiker al zijn configuratie- en andere persoonlijke bestanden zetten. Het is gebruikelijk (en overzichtelijk) de home directory hetzelfde te noemen als de loginnaam. (Om de directory te mogen aanmaken, zul je root moeten worden met su, zoals verderop wordt uitgelegd.) Voeg vervolgens een regel toe aan /etc/passwd en eventueel /etc/group. Wat scripts als useradd daarnaast nog doen is de inhoud van /etc/skel kopiëren naar de nieuwe home directory. Zodra de gegevens zijn toegevoegd aan passwd en eventueel group, moet de home directory ook eigendom gemaakt worden van deze gebruiker. Dit kan met chown, wat wordt uitgelegd in sectie Permissies en eigenaren.

Regels in /etc/passwd zitten als volgt in elkaar:

jarkko:x:500:500:Jarkko Huijts:/home/jarkko:/bin/bash

Van links naar rechts staat er de gebruikersnaam, zijn geëncrypteerde wachtwoord, de UID (user-ID), de GID (group-ID), een veld met informatie over de gebruiker (meestal zijn volledige naam), zijn home directory en ten slotte zijn shell. De populairste shell is Bash. Naast Bash bestaan er o.a. ash, bsh, tcsh, csh en zsh. De shell moet in /etc/shells staan, anders mag de gebruiker niet inloggen. Alle moderne distributies maken gebruik van shadow passwords. Daarbij staat het wachtwoord in /etc/shadow (een bestand dat naast root door niemand gelezen mag worden) en staat in /etc/passwd enkel x op de plaats van het wachtwoord. Om het wachtwoord van een gebruiker te veranderen, gebruik je passwd gebruiker. (Als je geen gebruiker opgeeft, verander je je eigen wachtwoord.) Een normale gebruiker kan alleen zijn eigen wachtwoord veranderen. Root kan alle wachtwoorden wijzigen.

De user-ID en group-ID zijn nummers die de gebruiker resp. de groep waar hij toe behoort aangeven. Gebruik een UID (en GID) van 500 of hoger als je er zelf een wilt kiezen. De GID's kun je terugvinden in /etc/group. Wil je een nieuwe gebruiker tot een bestaande groep laten behoren, dan kun je de optie -g group gebruiken bij useradd. Vervang hierin group door de GID of naam van de groep. (Wil je de gebruiker nog bij extra groepen laten behoren, dan moet je ook de optie -G group2,group3 gebruiken. Scheid de groepen met komma's.)

Een regel in /etc/group zit als volgt in elkaar:

jarkko:x:505:jarkko

Van links naar rechts staat er de naam van de groep, een wachtwoord voor de groep (meestal geen), de GID (group-ID) en achteraan een lijstje met gebruikers die tot die groep behoren. Zijn er meerdere gebruikers, dan moet je een komma tussen de namen zetten. Met dit veld kun je een gebruiker bij meerdere groepen laten horen.

Log altijd in als normale gebruiker i.p.v. root. Je moet wel root zijn als je software wilt installeren of bestanden buiten je home directory wilt aanpassen. Je kunt van normale gebruiker naar root overgaan met het commando su (substitute user). Je moet dan vanzelfsprekend het root-wachtwoord opgeven. In plaats van su kun je soms beter su - gebruiken, omdat daarmee ook het PATH voor root wordt gezet overeenkomstig met wat er in /etc/login.defs gedefinieerd staat. Dat kan nodig zijn om /sbin en /usr/sbin meteen in het PATH te hebben staan. (Daar staan binary's in die alleen voor root bestemd zijn.) Je kunt achter su ook een gebruikersnaam zetten om een andere gebruiker te worden. Stop met root (of een andere gebruiker) zijn met het commando exit of ctrl-d. Dat commando moet ook gebruikt worden om een shell die binnenin een andere shell is gestart te verlaten. Een shell binnen de huidige shell starten kan door bijv. bash in te tikken.

Ubuntu is op dit punt afwijkend. Daar is er standaard geen wachtwoord voor root ingesteld, zodat je niet kunt inloggen als root of su kunt gebruiken om het te worden. Commando's die root moet uitvoeren, moeten vooraf gegaan worden door sudo. Daarbij wordt om een wachtwoord gevraagd, maar dat is het wachtwoord van de huidige gebruiker. Zie ook sectie Sudo.

Grafische software die handelingen uitvoert die alleen door root gedaan mogen worden (zoals een programma om pakketten met software te installeren), moeten worden gestart als root. Dat kan door in een terminalvenster root te worden (met su) en vervolgens het programma te starten op de command line. Bij GNOME en KDE zit hiervoor ook een klein tooltje dat je op de desktop grafisch om het root-wachtwoord vraagt als je een dergelijk programma probeert te starten, of je eigen wachtwoord als Sudo gebruikt wordt.

Consoles en terminals

De basisinterface van Linux is de console: een shell in tekstmode waar je commando's in kunt geven, zoals bij DOS. Als je bent ingelogd in de console krijg je meestal Bash als shell. De meeste distributies starten tegenwoordig al bij het booten een grafische inlogprompt (display manager genaamd), waarna je een desktop onder X krijgt voorgeschoteld.

Je kunt onder meerdere consoles tegelijk inloggen. Gebruik alt + een functietoets om van console te wisselen. Je kunt ook met alt + de pijltjes naar links en rechts door de consoles wandelen. Met alt-F7 kom je onder X als dat gestart is. Als je vanuit X naar een console terug wil, moet je naast alt ook de ctrl-toets indrukken.

Onder X kun je ook een shell in een window krijgen door een terminalemulator te starten. De traditionele is xterm, maar er zijn verschillende modernere. In alle terminals krijg je exact dezelfde shell als in de console.

Met exit of logout sluit je de huidige shell af. Je kunt ook ctrl-d intikken. Als je in de console zit, zul je hierdoor uitloggen. Doe je het in een terminal in X, dan zal alleen die terminal sluiten.

Is X nog niet gestart tijdens het booten, dan kan dat vanuit de console met startx. Meer hierover kun je vinden in hoofdstuk X windowing system. Of er bij het booten al een display manager wordt gestart ligt aan de standaard runlevel waartoe geboot wordt (zie ook sectie Display manager).

Wil je de computer uitschakelen, voer dan in de console shutdown -h now uit. Heb je X gestart met startx, sluit dat dan eerst af. Vervang de h (van halt) door r om te rebooten. Shutdown mag alleen door root worden uitgevoerd. Bij de meeste distributies wordt de toetsencombinatie ctrl-alt-del opgevangen. Druk je die toetsen in, dan wordt shutdown uitgevoerd. Met andere woorden: je kunt ctr-alt-del gebruiken om het systeem af te sluiten. Hierbij maakt het niet als welke gebruiker je bent ingelogd. (Je kunt de uit te voeren actie ook veranderen in /etc/inittab.) Zit je in X, dan zal deze zelfde toetsencombinatie eerst door X opgevangen worden en sluit je X op een abrupte manier af. Ben je ingelogd met een display manager, log dan uit van je desktop en kies afsluiten/herstarten in de display manager.

Werken met consoles en terminals

Om jezelf heel wat typewerk te besparen is er een ontzettend handige toets voor Bash, namelijk de TAB-toets. Probeer maar eens de eerste letters van een bestandsnaam in te tikken en op TAB te drukken. Dan zal de rest van de naam automatisch worden aangevuld! Zijn er meerdere mogelijkheden, dan volgt een overzicht door nogmaals op TAB te drukken. Naast bestandsnamen kan Bash ook aliasnamen, hostnamen (na een @) en namen van variabelen (na een $) afmaken. In andere software werkt de TAB-toets soms ook om iets af te maken. Verder kun je alle vorige commando's opvragen met de pijltjes omhoog/omlaag.

Wat niet met Bash te maken heeft, maar werkt in elke VT100-compatible terminal zijn de volgende toetsen. De console emuleert een VT100, terminal emulators voor X de VT220. Maar ook daar werken dezelfde toetsen.

ToetsFunctie
ctrl-c breek huidig proces af
ctrl-d voer EOF-karakter (end of file) in, sluit een shell af
ctrl-l refresh het scherm
ctrl-a naar begin van de regel
ctrl-b karakter naar links (zelfde als pijltje naar links)
ctrl-d delete het karakter onder de cursor (zelfde als delete)
ctrl-e naar einde van de regel
ctrl-f karakter naar rechts (zelfde als pijltje naar rechts)
ctrl-h delete het karakter voor de cursor (zelfde als backspace)
ctrl-k delete alles van de cursor tot het einde van de regel
ctrl-t verwissel het karakter onder de cursor met dat ervoor
ctrl-u delete alles van de cursor tot het begin van de regel
ctrl-w delete het vorige woord
ctrl-s bevries de output
ctrl-q laat de output weer doorgaan
ctrl-v karakter dat je hierna invoert wordt ingevoerd als escape code
ctrl-y voeg in wat je het laatste verwijderd hebt

Als je per ongeluk op ctrl-s druk, lijkt het alsof alles vast zit. Je kunt dan simpelweg op ctrl-q drukken om alles weer door te laten gaan.

Basiscommando's

De meest gebruikelijke commando's hebben allemaal slechts 2 letters:

CommandoFunctie
ls directoryinhoud bekijken (list)
cd van directory veranderen (change directory)
rm bestand verwijderen (remove)
cp bestand kopiëren (copy)
mv bestand verplaatsen of hernoemen (move)
ln link aanmaken (link)
du bestandsgrootte opvragen (disk usage)
df vrije schijfruimte opvragen (disk free)

Om te zien welke opties je achter deze commando's kunt zetten, kun je --help achter het commando zetten. Je ziet dan twee rijen met mogelijke opties. De linker kolom bevat een enkele letters met een liggend streepje ervoor, de rechter kolom bevat woorden met twee liggende streepjes ervoor. Beide opties doen hetzelfde. De ene is korter, maar bij de andere is het gemakkelijker om te zien wat het doet. Dit idee kom je bij veel GNU-software tegen. De korte versie is volgens de POSIX-standaard, de lange versie is toegevoegd bij de GNU-software.

Veel gebruikte opties voor ls zijn: -l voor meer informatie en -a voor het bekijken van verborgen bestanden en directory's. Alle bestanden en directory's die beginnen met een punt zijn in Linux verborgen. En laten nou toevallig alle configutiebestanden en directory's met configuratiebestanden in je home directory met een punt beginnen. Daardoor zie je ze normaal gesproken niet, wat wel zo overzichtelijk is. Een andere zeer handige optie is --color=auto om een verschil te kunnen zien tussen een normaal bestand, directory, symlink etc. (Zie ook sectie Output van ls in kleur.) Met ls -lR krijg je een compleet overzicht van alle bestanden in de huidige en alle subdirectory's.

Bestandsnamen worden als strings, een reeks karakters, gezien. Je kunt zonder problemen meerdere punten in een bestandsnaam zetten. Spaties in de bestandsnaam zijn ook toegestaan. Een bestandsnaam kan maximaal 256 tekens lang zijn. Doordat bestandsnamen als strings worden gezien, is het niet nodig om ls *.* te gebruiken om alles te zien te krijgen. Het zal zelfs niet het gewenste effect opleveren. Dan worden namelijk alleen die bestanden getoond waar een punt in de naam voorkomt. Met ls * worden alle bestanden in de huidige en een directory „dieper” getoond. Het *-teken geeft een reeks tekens met willekeurige lengte aan. Naast * bestaat er ook ?, wat staat voor één enkel karakter. De tekens * en ? worden wildcards genoemd. Met ls a* worden alle bestanden getoond waarvan de naam begint met een a.

Linux is, net als alle andere Unices, hoofdlettergevoelig. Hierdoor is file een ander bestand dan File, terwijl dat onder Windows hetzelfde bestand zou zijn. Verder is het belangrijk op te merken dat in Linux en andere Unices / gebruikt wordt waar in DOS en Windows \ gebruikt wordt.

Om een directory terug te gaan moet je cd .. gebruiken en niet cd.., dus met een spatie tussen cd en de puntjes. Bij sommige distributies is echter een alias gemaakt zodat het laatste ook werkt. (Waarschijnlijk voor mensen die DOS gewend zijn.) Je kunt snel teruggaan naar je home directory met cd ~ of zelfs alleen maar cd. Je kunt in alle commando's je home directory aangeven met een tilde (~). Met cd - ga je naar de laatst bezochte directory terug. Als je niet zeker weet in welke directory je op dit moment zit, kun je pwd (print working directory) gebruiken.

Bij rm kun je de optie -f gebruiken als je geforceerd bestanden wilt verwijderen (je hoeft dan geen bevestiging te geven) en -r om directory's compleet (recursief) te verwijderen. Deze twee kun je combineren tot rm -rf dirnaam om een complete directory weg te halen zonder enige bevestiging. Je hoeft dus niet twee aparte streepjes te gebruiken (-r -f is niet nodig).

Met cp -r vanlocatie naarlocatie kun je een hele directory (recursief) kopiëren.

Met mv kun je zelfs hele directory's verplaatsen naar waar je maar wil. Het is dus veel krachtiger dan ren en move onder DOS.

Een symlink (of softlink) kun je maken met ln -s vanlocatie naarlocatie. Wordt deze symlink benadert, dan wordt eigenlijk de data uit het bestand waar het naartoe wijst benadert. Je kunt ook een symlink naar een directory maken. Je moet een symlink zien als een doorverwijzer naar een ander bestand (of directory). Zonder de optie -s wordt een hard link aangemaakt. Door een hard link naar een bestand aan te maken, zijn er twee bestandsnamen gekoppeld aan dezelfde data. Het is alleen mogelijk een hard link te maken naar een ander bestand op dezelfde partitie en een hard link naar een directory maken is onmogelijk. Delete je een bestand waarvan meerdere hard links bestaan, dan blijft de data benaderbaar via de andere bestandsnaam of -namen. Pas als alle bestanden die naar dezelfde data verwijzen zijn verwijderd, is de data gedelete. Delete je een symlink, dan is de data nog benaderbaar via het bestand waar de symlink naar verwees. Delete je het bestand waar een symlink naar verwijst, dan wijst de symlink naar iets dat niet meer bestaat. In het overzicht van ls -l kun je zien waar een symlink naartoe wijst. Het eerste getal dat je ziet in de uitvoer van dit commando laat zien hoeveel hard links er naar het bestand bestaan. Gebruik je ls -l symlinknaam en deze symlink verwijst naar een directory, dan zul je een overzicht krijgen van de bestanden in de directory waarnaar verwezen wordt. Wil je alleen zien naar welke directory de symlink wijst, dan moet je de optie -d gebruiken bij ls, dus ls -ld symlinknaam.

Met du directorynaam wordt van alle subdirectory's de grootte getoond. Met de optie -s krijg je het totaal te zien. Met de optie -h is het formaat human readable, d.w.z. in kB, MB of GB aangegeven.

Met df krijg je een overzicht van alle gemounte partities en hoeveel ruimte er gebruikt c.q. vrij is. Ook hier bestaat de optie -h. Dit commando is samen met mount ook handig om informatie over partities te verkrijgen.

Achter commando's als cp en mv kun je meerdere bestandsnamen zetten: mv file1 file2 tmp om file1 en file2 beide naar de directory tmp te verplaatsen. Je kunt hierbij uiteraard ook wildcards gebruiken: mv *.ext tmp.

Als een bestandsnaam spaties of speciale tekens zoals een ( bevat, zul je aanhalingstekens om de naam moeten zetten. Alternatief kun je deze karakters een voor een „escapen” door er direct vóór een backslash op te nemen. Zo kun je de grootte van een bestand genaamd „rare (bestandsnaam)” opvragen met een van de volgende commando's:

du rare\ \(bestandsnaam\)
du "rare (bestandsnaam)"

Dit is nodig omdat sommige karakters een speciale betekenis hebben in Bash en het anders niet eenduidig is wat je bedoelt. Alle karakters met een speciale betekenis zijn $ # & ? * < > [ ] ( ) ` en |. Een spatie wordt normaal gesproken gezien als scheiding tussen bestandsnamen. Het is meestal het makkelijkste lastigere bestandsnamen automatisch te laten afmaken met TAB.

Begint de bestandsnaam met een minteken, dan krijg je ook problemen, omdat het zal worden aangezien als optie. Je moet voor dergelijke bestandsnamen -- zetten om aan te geven dat wat erna komt een bestandsnaam is en niet als optie gezien moet worden. Alternatief kun je ./ voor het streepje aan het begin van de bestandsnaam zetten. De punt daarin geeft de huidige directory aan (net zoals in DOS). Op die manier laat je de bestandsnaam niet met een streepje beginnen en heb je ook geen problemen. Een voorbeeld: rm -- -file of rm ./-file.

Wildcards (* en ?) worden niet door de programma's ls, mv, cp en mv begrepen, maar worden door de shell verwerkt. Die vervangt een uitdrukking met een wildcard erin door alle bestandsnamen die eraan voldoen en geeft dat door aan het programma. Naast wildcards kent de shell (Bash in ieder geval) ook enkele simpele reguliere expressies:

[str] elk karakter in de string str 
[a-b] elk karakter tussen a en b

Voorbeelden:

ls a[abc] toont de bestanden aa, ab en ac indien ze bestaan
ls a[0-9] toont de bestanden a0, a1 tot en met a9 indien ze bestaan

Pipelines, redirecting en backquotes

Met | kun je de output van het ene programma laten gebruiken als invoer voor het volgende. Dit heet een pipeline. Voorbeeld: ps aux | grep mozilla. Het eerste commando (ps aux) geeft als output alle processen die op dit moment draaien. Deze output dient als input voor grep mozilla, die ervoor zorgt dat alleen de regels waar mozilla in voorkomt overblijven. De invoer van een programma noem je stdin, de uitvoer stdout. Er is ook nog stderr, de error output. Die laatste wordt gebruikt voor foutmeldingen. Beide worden hetzelfde getoond in de console/terminal, maar je kunt ze wel apart filteren bij het redirecten.

Met > kun je de output van een commando naar een bestand laten redirecten. Zo zorgt echo hoi > testfile ervoor dat de output van echo hoi (de tekst „hoi”) in het bestand testfile wordt gezet. Bestaat dat bestand al, dan wordt het overschreven! De output krijg je bij het redirecten niet op het beeld te zien. Je kunt van ongewenste output afkomen door het te redirecten naar /dev/null. Dan verdwijnt het in de digitale prullenbak. De stderr wordt normaal gesproken niet meegenomen bij het redirecten. Wil je die ook meenemen, gebruik dan &> file of > file 2>&1.

Met >> kun je ook output naar een bestand redirecten, maar in dit geval wordt het bestand niet overgeschreven, maar wordt de output achteraan in het bestand toegevoegd.

Met < wordt wat erna komt als input gebruikt voor het programma dat ervoor komt.

Met << kun je zelf input intikken totdat je een bepaald woord intikt. Voorbeeld: cat > test << stop. Je kunt na dit commando gegeven te hebben van alles intikken, totdat je op een lege regel alleen stop intikt. Dan wordt de ingetikte tekst (zonder het woord stop) in het bestand test gezet. Waarschijnlijk ga je dit niet zo vaak gebruiken.

Ten slotte nog iets handigs dat in ieder geval in Bash werkt: backquotes (ook wel backticks genoemd). Een backquote is de quote die links naast de 1 op je toetsenbord zit. De output van wat tussen backquotes staat, wordt letterlijk zo ingevuld op die plaats. Een voorbeeld: vim `which startx`. Het commando which startx geeft de exacte locatie (complete pad + bestandsnaam) van het script startx als output. Dat wordt letterlijk ingevuld achter vim, dus zo open je het script startx, zonder dat je precies weet waar het staat.

Permissies en eigenaren

Als je ls -l intikt, dan zul een regel als de volgende zien:

-rw-rw-r-- 1 jarkko jarkko 2786 Aug 8 20:19 index.html

Van links naar rechts staan er de permissies, het aantal hard links naar het bestand, de eigenaar van het bestand, de groep waar hij toe behoort, de grootte in bytes, de datum, de tijd en ten slotte de bestandsnaam. Bij de datum zie je de tijd als het bestand in het huidige jaar gemaakt is (zoals in het voorbeeld hier) of anders een jaartal.

De permissies zitten als volgt in elkaar. Helemaal links staat een letter die het type van het object aangeeft.

LetterOmschrijving
- bestand
b block device, komt voor in /dev
c character device, komt voor in /dev
d directory
l symlink
p named pipe
s socket

Daarachter staan drie blokken met ieder drie tekens waar dezelfde letters in kunnen staan, variërend van --- tot rwx. De r staat voor read, de w voor write en de x voor execute. Het eerste blok geldt voor de eigenaar van het bestand, het tweede voor de groep en het derde voor de rest van de wereld. Symlinks hebben altijd lrwxrwxrwx. Read, write en execute spreken voor zich bij gewone bestanden, maar bij directory's heeft het een ander effect. Het volgende overzicht geeft aan wat je kunt met welke permissies.

PermissieBestandDirectory
--- niks onbenaderbaar
r-- inhoud bekijken bestandsnamen bekijken
rw- inhoud zien en wijzigen inhoud (bestanden) zien en wijzigen
rwx alles (incl. uitvoeren script/binary) alles (incl. naar directory cd'en)
r-x bekijken, script uitvoeren kunt niks verwijderen of toevoegen, wel zien en cd'en
--x binary uitvoeren kunt een binary uitvoeren als je de exacte locatie kent

Merk op dat je voor het uitvoeren van een binary alleen maar execute nodig hebt, terwijl voor het uitvoeren van een script zowel execute als read nodig is. Dat komt doordat een script door een interpreter gehaald moet worden en die moet de tekst van het script kunnen inlezen.

Om de permissies te veranderen, is het commando chmod. Zet daar eerst achter voor wie de verandering geldt, dan of het aan of uit moet en ten slotte wat er moet veranderen. De u staat voor user, g voor group en o voor other (de rest van de wereld). De volgende twee voorbeelden maken het waarschijnlijk meteen duidelijk.

chmod ugo-rwx file   Haal voor User, Group en Others Read Write en eXecute weg.
chmod u+x file       Maak het voor User eXecutable.

In plaats van letters kun je ook cijfers gebruiken. Bij andere Unices is dit vaak ook de enige optie. Om het getal te bepalen dat je moet hebben, moet je de drie posities waar rwx kan staan zien als drie bits (het zijn ook eigenlijk drie bits, die zo letterlijk in het bestandssysteem staan opgeslagen). Zet dit binaraire getal om in een octaal getal. In binair stelt de meest rechter bit 20=1 voor. De bit er links naast 21=2 en die daarnaast 22=4. Als alle permissiebits aan staan, dus rwx, levert dit 4+2+1=7 op. Hier volgt weer een tweetal voorbeelden ter verduidelijking.

chmod 777 file  Geef iedereen read-, write- en execute-permissie.
chmod 750 file  Geef de eigenaar alle rechten, de rest van de groep alleen
                read- en execute-permissie en de rest niks. 

Naast de permissies zijn er nog drie bits die je per bestand in kunt stellen: SUID, SGID en de sticky bit. Even iets vooraf: Er wordt niet uitgelegd wat er gebeurt als de execute bit niet is gezet samen met een van deze bits. Je kunt de sticky bit voor bestanden zetten en SUID en SGID voor directory's. Al deze dingen worden zelden gedaan. Wat er in die gevallen gebeurt, hangt af van welke Unix-variant je precies gebruikt.

De sticky bit wordt normaal alleen gebruikt voor directory's. Is deze bit gezet, dan mogen bestanden toegevoegd worden door iedereen die er schrijfrechten heeft, maar niet iedereen die schrijfrechten heeft mag zomaar bestanden hernoemen of verwijderen (wat normaal wel zou mogen). Dat mag dan alleen als de gebruiker ook de eigenaar is van het bestand. De sticky bit wordt typisch gezet voor /tmp. De sticky bit, SUID en SGID zijn verbonden aan execute. In de output van ls -l verandert de laatste x in een t als de sticky bit is gezet. De sticky bit zet je aan met chmod +t file of door een extra 1 voor de permissiewaarde te zetten (bijv. 1777).

Als je de SUID-bit (waarbij de S staat voor saved) zet voor een binary of script, dan verander je de effectieve UID (user-ID) van alle gebruikers die het uitvoeren. Het effect is hetzelfde als wanneer de eigenaar van het programma het uitvoerde. Is root de eigenaar, dan is het dus net alsof root het uitvoerde en het programma heeft daarmee dezelfde rechten als root. Op die manier kun je alle gebruikers programma's laten uitvoeren die normaal gesproken alleen door root uitgevoerd mogen worden. Dit wordt SUID-root genoemd. De SUID-bit kun je zetten door een extra 4 voor de permissiewaarde te zetten. Hiermee samen hangt de SGID-bit. Is die gezet, dan is de effectieve groep de groep die eigenaar is van het bestand. Je kunt de SGID-bit zetten door een extra 2 voor de permissiewaarde te zetten. Met chmod +s file kun je de SUID- en SGID-bit zetten (als je u+s gebruikt zet je SUID alleen, met g+s SGID alleen en zonder aanduiding voor wie het moet gelden beide tegelijk). Een alternatief voor SUID-root is Sudo gebruiken. Zie sectie Sudo voor meer daarover.

Net zoals bij de bits voor read, write en execute kun je de waardes van de sticky bit, SUID en SGID bij elkaar optellen. Zo kun je de sticky bit en SUID tegelijk zetten door een 1+4=5 voor de permissiewaarde te zetten. Er wordt vaak een extra 0 voorop gezet bij de permissiewaarde voor chmod om er zeker van te zijn dat de sticky bit, SGID en SUID weggehaald worden.

Om de eigenaar en groep te veranderen is het commando chown. Zet daar eerst de nieuwe eigenaar, dan een dubbele punt en dan de nieuwe groep achter. Laat voor of achter de dubbele punt de eigenaar of groep leeg om de huidige eingnaar of groep te behouden. Zo verandert chown jarkko: file de eigenaar van file in jarkko. Bij oudere versies van chown moet je een punt gebruiken i.p.v. een dubbele punt. De eigenaar van een bestand veranderen zorgt ervoor dat SUID en SGID weggehaald worden, tenzij root het doet.

Variabelen

Veel software kijkt naar bepaalde variabelen. Elk programma dat je start heeft omgevingsvariabelen. Je kunt in Bash alle huidige variabelen bekijken met export. Je kunt nieuwe zetten met export VAR=waarde. Om een variabele te zetten voor een enkel programma kun je voordat je het programma start export gebruiken, maar wat ook kan is de variabele voor dat programma alleen opgeven door het te starten met VAR=waarde programmanaam.

Variabelen worden bijgehouden per instantie van Bash. Ze gelden dus alleen voor programma's die je start onder díe shell (alle zogenaamde kindprocessen van die shell). Als je een Bash-script uitvoert, wordt voor het uitvoeren daarvan een nieuwe instantie van Bash gestart. Om die reden kun je geen Bash-script maken waar export-commando's in staan voor de huidige shell.

Je kunt variabelen die je elke keer bij het starten van Bash wilt laten zetten opnemen in ~/.bashrc.

FIXME: Verschil met .bash_profile aangeven.

Aliases

De shell Bash kent aliases. Hiermee kun je commando's maken om minder te hoeven typen. Je kunt bijv. alias ll='ls -l' gebruiken om ll te definiëren als snelle versie van ls -l. Je kunt het ook gebruiken om bepaalde opties standaard te laten meegeven. Een voorbeeld is alias df='df -h'. Hierdoor wordt altijd de optie -h gebruikt bij df.

Je kunt aliases net als variabelen opnemen in ~/.bashrc.

Bestanden bekijken en editen

Bestanden kunnen editen is wel iets wat je snel onder de knie moet krijgen, want anders kun je geen enkel (configuratie)bestand wijzigen. Er zijn verschillende editors voor Linux. De meest uitgebreide zijn Vim en Emacs. Pico en Nano zijn enkele simpelere editors, die de beginnende gebruiker misschien meer aanspreken. Daarnaast zijn er ook vele editors voor X beschikbaar.

Vim

Vi kun je op bijna elk Unix-systeem vinden en tegenwoordig commercieel. Een open-sourceversie is Vim (VIsual editor iMproved), gemaakt door Nederlander Bram Molenaar. Vim vereist enige gewenning als je het nog niet kent, maar als je daar eenmaal doorheen bent is het handig en vooral ontzettend snel in gebruik. Het is zo gemaakt dat je je vingers niet van het toetsenbord af hoeft te halen en je nooit toetsen nodig hebt die „ver weg” zitten. Dat komt vooral doordat Vi op terminals gebruikt moest kunnen worden met toetsenborden waar minder toetsen op zitten dan die gebruikelijk zijn bij een pc. Zelfs als je Vim niet wilt gebruiken voor je normale editwerk, is het erg nuttig op zijn minst een basis te leren. Op een resucue disk of een Unix-systeem kom je wellicht geen enkele andere editor tegen.

In Vim werk je in twee modes: de command mode en de insert mode. Standaard zit je in de command mode. De meeste toetsen op het toetsenbord hebben dan een functie. Zo haal je met x het karakter op de huidige cursorpositie weg. Om ex-commando's in te kunnen voeren, moet je eerst : intikken. Openen van bestanden, opslaan en de editor verlaten zijn allemaal ex-commando's. Om tekst toe te voegen moet je overschakelen naar de insert mode. Dat doe je met i. Om vervolgens weer terug te gaan naar command mode gebruik je ESC of ctrl-[. (De laatste mogelijkheid is vaak weer iets sneller in te tikken.)

De belangrijkste functies:

ToetsFunctie
:q quit
:q! quit zonder opslaan
:w write
:wq write and quit (kan ook met ZZ)

De helpfunctie van Vim is erg uitgebreid. Gebruik :help of F1 om die te bekijken. Op de officiële website van Vim, http://www.vim.org, staat ook veel informatie, met name vele tips van gebruikers.

Naast de command-lineversie is er ook een voor X: gVim. De editor zelf werkt hetzelfde, maar je hebt er een menu bij.

Emacs

Emacs is een behoorlijk uitgebreide editor. Het is een tegenhanger van Vim. Mensen die Vim gebruiken zijn typisch wat anti-Emacs en vice versa. Een typische opmerking van een Vim-aanhanger: „Emacs is a great operating system. It lacks a good editor, though.” Het eerste deel van die opmerking is niet eens zo gek, want je kunt er e-mail mee versturen, nieuwsgroepen, websites en manual pages mee bekijken en tetris spelen!

Emacs kent niet twee modes, zoals Vi(m). Je kunt direct beginnen tekst in te tikken. Veel commando's geef je door ctrl + een bepaalde toets in te drukken. De belangrijkste zijn:

ToetsFunctie
ctrl-x, ctrl-s opslaan
ctrl-x, ctrl-c quit

Ook van Emacs is er een versie voor X: XEmacs.

Pico en Nano

Pico hoort bij Pine (een mail- en nieuwsclient). Een clone van Pico is Nano. Het werkt in grote lijnen hetzelfde als Pico, maar is nog kleiner. Het gebruik van deze editors spreekt voor zich. De toetsen staan onder in beeld.

Less

Dit is geen editor, maar kan wel gebruikt worden om bestanden (of willekeurige output) handig te bekijken. Gebruik less file of cat file | less. Met less kun je door lange teksten heen scrollen met de pijltjestoetsen. Naast naar beneden en naar boven scrollen, kun je ook naar links en rechts scrollen. Gebruik ctrl-v om een pagina omlaag te gaan en ctrl-u voor een pagina terug. (Of page up en page down.) Als je meerdere bestanden tegelijk opent (met less *.txt bijvoorbeeld), dan kun je naar het volgende bestand met :n en naar het vorige bestand met :p. Wil je een bestand editen met Vim, tik dan :v. Druk op h voor help en q om te stoppen.

Er is een soortgelijk programma genaamd more. Less is beter dan more. Met less kun je ook terugscrollen en less start sneller op doordat hij niet eerst het complete bestand (of alle output) inleest.

Directoryhiërarchie

De complete Filesystem Hierarchy Standard, een overzicht van alle directory's en hun functie, kan gevonden worden op http://www.pathname.com/fhs/. Hier volgt de hoofdindeling.

  • /bin

Binary's die nodig zijn tijdens het opstarten en andere belangrijke binary's die ook door normale gebruikers gebruikt mogen worden. Hier staan alle basiscommando's zoals ls, cp, df, ln, en mv in.

  • /boot

Normaal gesproken staat hier de kernel in. Soms staat die echter ook meteen in /.

  • /dev

Device files. Elk device (zoals harde schijven, seriële poort, paralelle poort en geluidskaart) wordt weergegeven als bestand.

  • /etc

System-wide configuratiebestanden.

  • /home

Bestanden van gebruikers, zoals persoonlijke configuratiebestanden en documenten. De configuratiebestanden, of soms directory's met configuratiebestanden, beginnen altijd met een punt. Bij Unices zijn dat verborgen bestanden/directory's.

  • /lib

Belangrijke gedeelde (shared) library's en kernelmodules (in /lib/modules).

  • /lost+found

Naamloze bestanden die gevonden worden door e2fsck worden hier gedumpt. Je hebt een directory genaamd lost+found op elke partitie.

  • /media

Plaats voor mount points van verwisselbare media, zoals cd's.

  • /mnt

Plaats voor mount points van andere tijdelijke bestandssystemen, zoals partities op harde schijven.

  • /proc

De bestanden hieronder staan niet op je harde schijf, maar zijn louter fictief (al kun je wel hun grootte opvragen). Als je ze bekijkt, krijg je informatie die in het geheugen wordt opgeslagen. Het kan gebruikt worden om informatie over je systeem en lopende processen te krijgen. Verder staan er onder de subdirectory sys bestanden waarmee je direct kunt „praten” met de kernel.

  • /root

De home directory van de systeemadministrator (superuser of root).

  • /sbin

Systeembinary's. Deze zijn over het algemeen niet voor normale gebruikers bedoeld. Daarom staat deze directory ook niet standaard in de PATH-variabele voor normale gebruikers.

  • /tmp

Tijdelijke (temporary) bestanden. Er staan ook tijdelijke bestanden in /var/tmp. Het verschil is dat de bestanden daar tussen reboots behouden moeten blijven.

  • /usr

Staat niet voor user, maar voor Unix System Resources. Hier wordt veruit de meeste data (zoals binary's, library's en documentatie) in gezet. Deze data is niet essentieel tijdens het opstarten. Je zult hier behoorlijk wat subdirectory's onder aantreffen, o.a. weer opnieuw directory's genaamd lib, bin en sbin.

  • /usr/local

Alles dat niet tot de distributie behoort, hoort hier te worden geplaatst om alles overzichtelijk te houden. Als je later wilt upgraden of van distributie wisselen, dan kun je deze partitie laten staan om zo al je zelf toegevoegde software te behouden.

  • /var

Hier staan bestanden onder die vaak veranderen, zoals spools (voor printer, mail en nieuws), logbestanden en lockbestanden (worden aangemaakt om aan te geven dat een programma gestart is) en opgemaakte manual pages (gebeurt als je er een opvraagt).

Archiveren en comprimeren

Tar is een programma waarmee je bestanden kunt archiveren. Tar stopt losse bestanden bij elkaar in één groot bestand. Dat werd vooral vroeger veel gebruikt om backups te maken op tape. Als je bestanden archiveert met tar, blijven de permissies behouden als je het kopieert naar een partitie met een ander bestandssysteem (zoals FAT of NTFS).

Gzip is een programma dat een bestand comprimeert/inpakt. Dit wordt vaak gebruikt bij bestanden die niet direct gebruikt worden, maar wel bewaard moeten blijven. Bij sommige distributies worden manual pages en fonts gecomprimeerd bijgehouden. Het wordt ook gebruikt om bestanden gemakkelijker te kunnen transporteren via bijv. een website.

Om een partij bestanden in een groot gecomprimeerd bestand samen te voegen, moeten tar en gzip samen gebruikt worden. De taak van archiveren en comprimeren is daarmee gescheiden. Er ontstaat uiteindelijk een .tar.gz- of .tgz-bestand, ook wel tarball genaamd. Je kunt een complete directory archiveren en comprimeren met het volgende commando:

tar zcvf file.tar.gz directory/

Heb je zo'n tarball gedownload, dan decomprimeer en dearchiveer je het met:

tar zxvf file.tar.gz

Vaak wordt er dan een subdirectory aangemaakt met dezelfde naam als de tarball zonder de extensie .tar.gz. De volgorde van de opties (zxvf) is niet belangrijk, maar in deze volgorde tikt het het snelst. Een minteken voor de opties kan, maar is niet nodig. De x staat voor extract, de c voor create en de v voor verbose (laat de bestandsnamen zien). De z zorgt ervoor dat gzip of gunzip wordt gebruikt. Analoog hieraan kan de optie j gebruikt worden voor bzip2 en bunzip2. Daarmee kunnen .tar.bz2-bestanden worden in- en uitgepakt. Bzip2 kan betere compressie geven, maar het duurt langer om weer te decomprimeren.

Een oud compressieprogramma is compress. Daarmee ingepakte bestanden eindigen op .Z. Je kunt ze weer uitpakken met uncompress file.Z.

Mounten

Onder Linux bestaan geen letters die een station aanduiden, zoals A voor floppy en C voor de eerste Windows-partitie, maar alles hangt onder dezelfde boom. Elke partitie moet worden gemount op een bepaald punt aan deze boom (mount point). Elke partitie, cd of dvd moet worden gemount om benaderbaar te zijn. Mount points voor partities die tijdelijk gemount worden, behoren in /mnt (bijv. /mnt/dosc). Die voor verwisselbare media, zoals cd en dvd, behoren in /media (bijv. /media/cdrom).

Een Windows-partitie kan een FAT- of NTFS-bestandssyteem hebben, terwijl een Linux-partitie typisch van het type ext2, ext3 of Reiser is. Stel je wilt bij een FAT-partitie voor Windows, zeg /dev/hda1. Je kunt die mounten met mount -t vfat /dev/hda1 /mnt/dosc. (Weet je niet welke partitie je precies nodig hebt, dan kun je een overzicht krijgen met fdisk -l /dev/hda als root, met i.p.v. hda je harde schijf.) Je kunt het type opgeven met de optie -t. Zoals je hier ziet wordt FAT vfat genoemd. NTFS heet simpelweg ntfs. Meestal kan mount het type zelf ook wel goed ontdekken.

Als je wilt dat elke keer bij het opstarten de partitie automatisch gemount wordt, kun je een regel als de volgende toevoegen aan /etc/fstab.

/dev/hda1 /mnt/dosc vfat auto,user,quiet,umask=0000,rw 0 0

Van links naar rechts staan er de partitie, de mount point, het bestandssysteem, opties, of de partitie gedumpt moet worden als je dump gebruikt en een getal dat aangeeft in welke volgorde de partities gecontroleerd moeten worden. Een 0 in de laatste kolom geeft aan dat de partitie niet gecontroleerd hoeft te worden. Belangrijk bij de opties is dat ze gescheiden worden door een komma en geen spaties bevatten. Spatiëring wordt gebruikt om de velden van elkaar te scheiden. De opties die hier staan, zijn nodig om FAT-partities voor alle gebruikers lees- en schrijfbaar te maken. Auto geeft aan dat de partitie automatisch gemount moet worden en user dat normale gebruikers de partitie mogen (un)mounten.

Je kunt regels in fstab opnemen voor partities die je niet automatisch wilt laten mounten, maar die wel aangeven welke opties gebruikt moeten worden en wat de mount point is. Gebruik dan de optie noauto. Dit is nuttig voor bijvoorbeeld een dvd-speler. Je kunt dan achter mount alleen de devicenaam of de mount point meegeven, bijv. mount /media/cdrom. Voor alle mogelijke opties zie man fstab.

Een partitie weer ontkoppelen van de boom kan met umount (dus niet unmount). Geef als argument de te ontkoppelen mount point of device aan. Voor een overzicht van op dit moment gemounte partities, tik mount zonder argumenten. Het zal niet lukken een partitie te unmounten als een gebruiker nog in die directory aanwezig is. Dan zal een melding als „umount: /media/cdrom: device is busy” verschijnen. Ga als root en alle andere gebruikers uit de directory weg, dan zal het unmounten wel lukken. Bij problemen kan de optie -f van force nog wel eens uitkomst bieden.

De bestandssystemen die worden ondersteund, hangt af van de kernel. Ondersteuning voor FAT (zoals gebruikt onder oudere versies van Windows) is perfect. Lezen en schrijven gaat altijd goed. Die voor NTFS (ingevoerd vanaf Windows NT en ook gebruikt door Windows 2000 en XP) is minder eenvoudig. Dit komt doordat het geen triviaal bestandssysteem is en compleet met reverse engineering uitgeplozen moet worden. Er is geen publieke documentatie over. Voor meer over NTFS en Linux zie http://linux-ntfs.sf.net.

FIXME: Huidige status NTFS?

Om een cd of dvd niet elke keer te hoeven mounten en naderhand weer te unmounten zijn verschillende oplossingen gemaakt, zoals automount, supermount en submount. De basisfunctionaliteit is dat het medium vanzelf gemount wordt als het nodig is. Alle drie de oplossingen zijn inmiddels weer verouderd. Er is nu een beter alternatief beschikbaar onder de verzamelnaam project Utopia. Het project richt zich op het automatisch detecteren van hardware, met name verwisselbare media zoals USB-sticks, digitale camera's, geheugenkaarten in kaartlezers en cd/dvd's. De basisonderdelen zijn D-BUS (een communicatiesysteem voor applicaties) en HAL (Hardware Abstraction Layer). HAL biedt een interface aan naar de hardware. Het zorgt niet voor het automatisch mounten ervan. Bij GNOME doet gnome-volume-manager dat. Naast mounten kan het ook bepaalde programma's starten als een medium gevonden is. Bijv. een mediaspeler om een dvd af te spelen of een programma om foto's op te halen van je digitale camera. KDE heeft vergelijkbare ondersteuning voor HAL (in de vorm van een ioslave). Een alternatief dat te gebruiken is zonder een van deze desktopomgevingen is Ivman (http://ivman.sf.net). Gebruik je HAL, dan hoef je voor verwisselbare media niet zelf regels in fstab op te nemen.

Geheugenbeheer

Linux zal het beschikbare geheugen zo veel mogelijk verdelen over de draaiende processen. Daardoor zal je geheugen vrijwel altijd goed gevuld zijn. Linux gebruikt het geheugen o.a. voor disk cache. D.w.z. dat er gegevens in worden opgeslagen die ook op de harde schijf staan. Gegevens zijn veel sneller uit het geheugen te benaderen dan van een harde schijf. Je kunt dat goed merken als je tweemaal achter elkaar een zware applicatie start. De tweede keer bevinden de gegevens zich in het geheugen en is het (veel) sneller gestart.

Als je wilt weten hoeveel geheugen er in gebruik is, tik je free in. Met de optie -t wordt ook het totaal getoond. Om de uitvoer in MB's te zien, kun je -m gebruiken. Je krijgt bijvoorbeeld de volgende uitvoer. In de tweede regel zie je hoeveel geheugen er gebruikt en vrij is afgezien van disk cache en buffers. Disk cache en buffers zullen worden vrijgemaakt als een nieuwe proces geheugen nodig heeft.

             total       used       free     shared    buffers     cached
Mem:          2026       1875        150          0         58        644
-/+ buffers/cache:       1172        853
Swap:         1027        408        619
Total:        3053       2284        769

Processen

Een programma kan meerdere keren gestart worden. Elke gestarte versie is een losstaand proces. Verschillende gebruikers kunnen zo tegelijkertijd hetzelfde programma gebruiken.

Wil je dat een programma in de achtergrond wordt uitgevoerd, zet dan een &-teken achter de naam als je het start. Op die manier zorg je ervoor dat een console of terminal niet in beslag genomen wordt. Heb je een programma al in de voorgrond gestart (dus geen &-teken gebruikt), dan kun je hem naar de achtergrond verplaatsen door op ctrl-z te drukken en vervolgens bg in te tikken. Om het vervolgens weer naar de voorgrond te verplaatsen, kun je fg gebruiken. Als je meerdere programma's in de achtergrond hebt draaien, dan kun je daar een overzicht van krijgen met jobs. Om een van deze programma's weer op de voorgrond te krijgen, kun je fg # gebruiken, met in plaats van # het jobnummer dat je bij de uitvoer van jobs zag.

Start je een programma voor X via een terminal, dan kunnen meldingen in de terminal getoond worden, ook als het programma in de achtergrond draait. Wil je die meldingen per se weg hebben, gebruik dan programmanaam &> /dev/null &. Start je het vanuit een menu van je window manager of desktopomgeving, dan zullen de meldingen in de console verschijnen van waaruit X gestart is of misschien nergens. Werkt een programma niet, dan kun je eens proberen het vanuit een terminal te starten om eventuele foutmeldingen te kunnen zien.

Een PID is een Process-ID. Elk proces heeft een eigen nummer. Met ps aux krijg je compleet overzicht van draaiende processen. Het commando pidof proces, waarin je proces vervangt door de naam van het programma, geeft de PID van dat proces. Als je de naam niet exact weet, kun je ook ps aux | grep stukvannaam gebruiken.

Met het hulpprogramma top krijg je een live overzicht van op dit moment actieve processen. Je ziet daarbij hun processor- en geheugengebruik. Het is handig dit in een terminal in X te starten, zodat er veel in beeld past.

Je kunt een proces meer CPU-tijd geven met renice n pid. Als je voor n -20 invult krijg het proces de hoogst mogelijke prioriteit, met 0 normale en met 20 de laagst mogelijke. Een normale gebruiker mag alleen positieve getallen gebruiken (dus vertragen). Alleen root mag ook negatieve getallen gebruiken. Om een programma meteen met een alternatieve prioriteit te starten, gebruik je nice n programmanaam.

Je kunt een programma dat niet reageert afsluiten met kill pid, waarin je pid vervangt door de PID van het process. Je kunt ook killall naam gebruiken. Daarbij moet je niet de PID invullen, maar de naam van het proces. Je kunt een programma in X vrij letterlijk afschieten door xkill te starten en vervolgens het gewenste venster aan te klikken. In top kun je een proces killen door op k te drukken en vervolgens de PID in te tikken.

Je kunt het kill-commando verschillende signalen laten sturen. Zie man 7 signal voor een compleet overzicht. Met -9 wordt het proces absoluut afgebroken door de kernel. Het is geen nette manier om processen te stoppen. Het programma krijgt dan geen tijd meer om lock-bestanden te verwijderen en gedeeld geheugen vrij te geven. Wil het programma echt niet weg, dan is dit de definitieve oplossing. Werkt dit niet, dan werkt niets meer. Met -15 wordt vriendelijk aan het proces verzocht of hij wil stoppen. Een goed programma roept dan de exit-procedure aan en sluit netjes af. Dit signaal wordt gestuurd als je geen andere opgeeft. Shells en daemons kun je herstarten met de optie -1 of -HUP. Dit is het zogenaamde SIGHUP-signaal. Dit signaal zegt dat de gebruiker de lijn opgehangen heeft (uit de modemtijd).

Processen kunnen met behulp van de system call fork() kindprocessen creëren. Het proces zelf is dan een parent. Een zombie is een proces dat overleden is, maar dat nog niet heeft doorgegeven aan z'n parent. Het gebruikt geen CPU of geheugen meer, maar staat nog wel in de process table. Ze verdwijnen als je hun parent killt.

Als je een proces hebt gestart vanuit een terminal, dan zal dat proces vaak worden afgebroken als je die terminal sluit. Om dat te voorkomen, moet je het programma starten met nohup prog &. De output van het programma wordt dan naar het bestand nohup.out in de huidige directory gestuurd.

Het commando uptime zegt naast hoe lang je computer al aan staat ook ruwweg hoeveel processen de processor graag compleet bezet zouden houden. Het is een pseudo-meetmethode van de belasting van je systeem. Als 2 processen 100% willen, is de load 2. Als 3 prosessen elk 25% CPU-tijd willen, is de load 0.75. Uptime geeft de load voor de afgelopen 1, 5, en 15 minuten weer.

Gebruikers in de gaten houden

Je kunt zien welke gebruikers zijn ingelogd met who. Met w krijg je ook te zien wat ze op het moment aan het doen zijn. Is iemand met zaken bezig die je liever niet hebt, dan kun je hem van je server af schoppen door zijn shell (waarschijnlijk Bash) te killen.

Printen

Er zijn twee oude systemen onder Unices om te printen: die van BSD (Berkeley Line Printer Daemon of LPD) en die van System V (AT&T Line Printer system). Beide zijn, zoals al aan de namen te zien is, ontworpen voor lijnprinters. In het verleden werden bij Linux systemen gebruikt die waren gebaseerd op de eerste (LPD), zoals LPRng. Je kunt hierbij een document printen met lpr file. De queue of spool is te bekijken met lpq en een printopdracht kan uit de queue verwijderd worden met lprm job, waarin je job vervangt door het nummer van de job dat je met lpq kunt opvragen. Bij het printsysteem van System V gebruik je resp. lp, lpstat en cancel. Tegenwoordig wordt onder Linux gebruikgemaakt van het modernere printsysteem CUPS. CUPS heeft ondersteuning voor beide sets van commando's, zodat oudere software hiermee nog kan printen. Je kunt het ook zelf gebruiken voor het printen van o.a. tekstbestanden of PostScript-documenten. Vanuit grafische software voor KDE of GNOME kun je gebruikelijk printen kiezen in het menu File/Bestand.

Er zijn enkele handige tooltjes voor tekstbestanden. Met pr kun je een tekst opmaken en voorzien van header, footer en paginanummer. Met enscript kun je zo ongeveer hetzelfde, maar dat zet de tekst om naar PostScript. Dat kan of naar de printer spool gestuurd worden of opgeslagen in een bestand. Je kunt er ook source code mee pretty-printen. Zie de manual pages voor meer informatie.

 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen Bash scripting
Errors
GNU-utility's
Security
Linux commando overzicht
Kernel
Tips & trucs
Systeemconfiguratie
Partities
Internationalisering
Artikel details
Artikel ID: 736
Categorie: Linux handboek 2008
Zoekwoorden basis, kennis, linux, gebruikers, gebruikers, kernel, passwd, user, sudo, su, jarkko, permissies, gebruikersnaam, bash
Datum toegevoegd: 6-Dec-2008 03:19:23
Aantal bekeken: 616
Beoordeling (Stemmen): Artikel beoordeeld 5.0/5.0 (1)

 
« Ga terug