1. GET dir: linux
2. GET dir: linux
3. GET dir: linux

In composeIncludeFileName
Filename: /home/web/public/linux/tips
langcode:
bestaat niet.
Test op /home/web/public/linux/tips.inc
/home/web/public/linux/tips.inc bestaat.
1. includeFile: /home/web/public/linux/tips.inc
3. includeFile: /home/web/public/linux/tips.inc
4. GET dir: linux

In composeIncludeFileName
Filename: /home/web/public/linux/keywords
langcode:
bestaat niet.
Test op /home/web/public/linux/keywords.inc

In composeIncludeFileName
Filename: /home/web/public/keywords
langcode:
bestaat niet.
Test op /home/web/public/keywords.inc
/home/web/public/keywords.inc bestaat.
linux (tips)
cybertux-logo

GNU/Linux

Inleiding Instappen in Linux

Bewerkingen

Tips & trucs Foto's bewerken Video bewerken

Linux installatie

Algemeen Packages Apache Samba NFS CUPS ALSA Postfix etc. OpenSuse 10.2 Agfa SnapScan 310 USB-schijven SSD-schijven

Linux algemeen

Toegangsrestricties Permissies

Bronnen

Debian website Links

Tips & trucs

Hier verzamelen we allerlei wetenswaardigheden en handigheidjes die het leven met Linux wat kunnen vereenvoudigen.

Let wel op dat sommige dingen specifiek zijn voor we het hier hebben over Debian/GNU Linux en andere weer voor openSUSE. Veschillende distributies kunnen verschillend omgaan met de dingen. Namen en locaties van bestanden kunnen bijvoorbeeld anders zijn.

Gnome

KDE

LibreOffice en OpenOffice

Mozilla Firefox

Mozilla Thunderbird

Diverse toepassingen

Starten en afsluiten

Beheer van de fileserver

Beheer van de webserver

BASH-scripts

SED Stream Editor

device is busy (1)

Het kan wel eens gebeuren dat een usb-device niet kan worden ge-unmount en de volgende melding verschijnt:

device is busy

Om te achterhalen welk proces, bijvoorbeeld, je scanner nog in gebruik heeft, doe je als root:

# lsof +D /scanner

Vul op de plaats van /scanner het betreffende mountpoint van het device in.
Er zal een overzicht verschijnen waarop het PID (process-id) is te zien van het betreffende proces:
COMMAND   PID  USER    FD  TYPE DEVICE SIZE     NODE NAME
X        6065  root   mem   CHR    1,1 12652951 /scanner
X        6065  root   mem   CHR  226,0 12650840 /dev/dri/card0
In de kolom PID staat het getal dat je nodig hebt om het proces te stoppen met:

# kill 6065

Op de plaats van de 6065 in het voorbeeld vul je het gevonden PID in.
Een ander proces kan nu nog steeds het device blokkeren dus doe de check nogmaals om te controleren of het device nu vrij is.
Als dat zo is, kan het apparaat worden ge-unmount met:

# umount /scanner

Let op, er staat "umount", zonder "n".

device is busy (2)

Het hierboven omschreven probleem kan ook worden veroorzaakt door Konqueror. Deze kan namelijk worden geconfigureerd om meerdere "instances preloaded" te houden. Dat wil zeggen dat op de achtergrond ��n of meerdere exemplaren klaar staan om getoond te worden. Het voordeel daarvan is dat ze heel snel starten. Het nadeel is dat zo'n gereedstaand exemplaar je device bezet kan houden.
Oplossing: In Konqueror via menu Settings | Performance bij preloading 0 invullen.

dmesg

Met dmesg worden de meldingen, welke tijdens booten verschijnen, weergegeven.
Om de bootmessages naar het bestand meldingen.txt te schrijven doe je:

$ dmesg > meldingen.txt

Om alle meldingen te zien waarin de term "pci" voorkomt, doe je:

# dmesg | grep pci

keyboard error

Dit is geen Linux-probleem, maar we noteren 'm toch maar:

304-Keyboard or System Unit Error

Deze foutmelding kan optreden bij een server die wordt geboot zonder toetsenbord.
Bij sommige systemen kan je in de BIOS aangeven dat het ontbreken van een toetsenbord niet mag leiden tot een foutmelding, bij andere computers zal je een toetsenbord moeten aansluiten.

lsmod

$ lsmod

lsmod laat zien welke modules geladen zijn.
Zie ook: modinfo.

lspci

$ lspci

lspci geeft een overzicht van alle pci-devices in de computer.
Heel handig bij het bepalen van de vereiste modules.

modinfo

Met modinfo krijg je uitgebreide informatie over een geladen module:

# modinfo ext3

Dit voorbeeld geeft informatie over ext3, de module voor het ext3-bestandssysteem.
Zie ook: lsmod.

Openstaande poorten

Testen welke poorten van je computer openstaan doe je met:

# netstat -lnpt

Nummers van openstaande poorten worden opgesomd en als je dit als root doet, ook de namen van de processen (programma's) die dat hebben gedaan.
Goed middel om eventuele spyware op te sporen.

SSH Secure Shell (inloggen op een andere host)

Met ssh kan via een beveiligde verbinding worden ingelogd op andere hosts. Uiteraard moeten de nodige rechten wel in orde zijn. Uitgebreide vorm van het commando:

$ ssh -l username hostname

De eenvoudige vorm gaat er vanuit dat je met dezelfde username inlogt en waarbij je dus alleen de naam van de host opgeeft waarop je wilt inloggen:

$ ssh hostname

Overzicht van schijfpartities

Een overzicht van alle aanwezige schijfpartities krijg je met:

$ cat /proc/partitions

Overzicht van usb-devices

Een overzicht van alle aangesloten usb-devices krijg je met:

$ cat /proc/bus/usb/devices

Alle linux-partities verwijderen

Wie zou dat nou willen? Maar OK, met fdisk van MS lukt dat niet altijd, dus hieronder de procedure om dat met fdisk van Linux te doen.
Let op dat je dus wel Linux geinstalleerd moet hebben.

# fdisk /dev/hda
optie m = menu
optie o = schone dos-partitie
optie w = write to disk

Daarna heb je een lege dos-partitie op de eerste primaire harde schijf (hda).

X configureren

Om aanpassingen te maken in de configuratie van het X-window systeem, start je het oorspronkelijke setup-programma met:

# dpkg-reconfigure xserver-xfree86

Je doorloopt daarmee weer alle opties zoals bij de eerste installatie.

RSA host key for <servername> differs...

Deze foutmelding kan je krijgen bij het maken van een verbinding via ssh, als je met ip-nummers of hostnames hebt zitten rommelen. De melding betekent eigenlijk gewoon dat een eerdere versleuteling van de identificatie van de server die je nu weer probeert te bereiken, niet klopt.
Als je zeker weet dat je zoiets hebt uitgehaald en er dus niet geprobeerd wordt om in te breken op je systeem, dan los je dat op door het bestand met bekende hosts te verwijderen:

# rm /home/username/.ssh/known_hosts

Als je daarna weer verbinding maakt met de server via ssh, dan krijg je de melding dat de authenticiteit van de server niet kan worden vastgesteld en wordt gevraagd of je toch verbinding wilt maken. Je moet antwoorden met 'yes' of 'no'. Antwoord met 'yes' (voluit intikken) en je hebt weer verbinding.

Directories verwijderen

Een directory verwijderen met alles wat erin zit gaat met:

$ rm -dR dirname

De directory "dirname", inklusief alle subdirectories, is dan weg.

cd/dvd info

Benieuwd naar je plaatselijke cd/dvd-aansluitingen?

# cdrecord -scanbus

Dat geeft een overzicht van de aanwezige devices.
Als dat een foutmelding over een SCSI-driver oplevert, probeer dan:

cdrecord dev=ATA: -scanbus

Meer informatie is (op een Debian GNU/Linux-systeem) te vinden met:

$ cat /usr/share/doc/cdrecord/README.ATAPI.setup

Let op 1: hoofdletters/kleine letters van bestandsnaam.
Let op 2: in het document worden kernel 2.4 en 2.6 apart beschreven.

Overigens is deze informatie alleen op een fileserver zonder grafische user-interface echt interessant. Op een werkstation waarop bijvoorbeeld K3B beschikbaar is, wordt de configuratie van CD- en DVD-branders automatisch tot stand gebracht.

Floppy-drive wordt niet herkend

Dit is langzamerhand een probleem uit de oude doos, maar is vervelend genoeg als je ermee te maken krijgt. Als je floppy-drive niet wordt herkend, doe dan:

# modprobe floppy

Daarmee wordt de driver-module voor de floppy-drive geinstalleerd. Om dit voortaan automatisch te laten gebeuren, voeg je aan het bestand

/etc/modules

een regel met de tekst "floppy" toe.
Daarna op de gebruikelijke wijze mounten:

# mount -t vfat /dev/fd0 /floppy

De deviceaanduiding "/dev/fd0" en het mountpoint "/floppy" kunnen in sommige gevallen anders zijn.

Network interfaces

Instellingen aan je netwerkkaarten kan je zien en wijzigen met ifconfig.
Je kan echter ook rechtstreeks wijzigingen aanbrengen in het configuratiebestand:

# mcedit /etc/network/interfaces

In dat bestand wordt een NIC (network interface card) voor gebruik met een dhcp-server zo aangegeven:
# The primary network interface
auto eth0
iface eth0 inet dhcp

Wil je de kaart een vast ip-adres geven, dan moet er wat meer worden ingesteld:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.154
netmask 255.255.255.0
gateway 192.168.1.1
address = het gewenste ip-adres van het systeem.
gateway = normaal gesproken het ip-adres van je modem/router.
Uiteraard kunnen je eigen ip-adressen er anders uitzien dan in bovenstaand voorbeeld.

Na wijziging van het bestand moet de netwerk-service opnieuw worden gestart:
# ifdown eth0
# ifup eth0
Hierbij ga ik er vanuit dat eth0 de interface waar 't om gaat.

openoffice start niet meer

Als openoffice niet meer start (omdat je met je systeem aan het rommelen bent geweest), maar je krijgt geen enkele foutmelding, dan kan het zijn dat in

~/.sversionrc

(een onzichtbaar bestand in je home-directory) een foute verwijzing naar je persoonlijke bestanden staat, of dat hij verwijst naar ongeldige bestanden.
Om dat op te lossen gooi je dat bestand gewoon weg:

$ rm ~/.sversionrc

Overigens worden de foutmeldingen zichtbaar als je bijvoorbeeld Calc niet start vanuit het K-menu, maar in een console door middel van:

$ oocalc

openoffice print niet meer

Als openoffice geen nieuwe documenten print, maar wel de reeds bestaande en je hebt toevallig cups geinstalleerd, open dan het configuratiebestand van openoffice:

# mcedit /etc/openoffice/openoffice.conf

Verwijder in dat bestand het commentaarteken "#" uit de regel:

# export SAL_DISABLE_CUPS=1

De functionaliteit waardoor OpenOffice rechtstreeks communiceert met CUPS is nog betrekkelijk nieuw (2004) en leidt wel eens tot problemen. Het is onder andere herkenbaar aan het niet kunnen selecteren van een papierformaat en het niet kunnen toevoegen van een printer. Na bovenstaande ingreep moet je de gewenste printer handmatig toevoegen en het juiste papierformaat en dergelijke instellen.

Gebruik eventueel oopadmin (Open Office Printer Administration) om properties van printers in te stellen.

kmail geeft foutmelding en start niet

Na een experiment met Suse-Linux welke een iets nieuwere versie van KMail draaide (1.8 in plaats van 1.7.2), kon op de andere computers het email-programma KMail niet meer worden gestart. De volgende foutmelding verscheen:

KMail could not create folder '$HOME/Mail'

Het probleem is eenvoudig op te lossen. Open het bestand met gebruikersinstellingen:

$ mcedit /home/USERNAME/.kde/share/config/kmailrc.

Op de plaats van USERNAME uiteraard de juiste username invullen.
Plaats in dat bestand het commentaarteken "#" voor de tekst:

# folders=$HOME/Mail

Daarmee is de regel uitgeschakeld.
Sla het bestand op en KMail start weer zoals het hoort.


hosts in het netwerk opsporen

Om te zien welke hosts er in je netwerk actief zijn, gebruik je het programma nmap:

# nmap -sP 192.168.1.*

Dit voorbeeld laat alle computers zien in het aangegeven ip-bereik. Alle access-points, routers en werkstations worden met ip-adres getoond.
Let op: Computers die stand-by staan worden niet getoond.

Een wellicht nog interessantere variant:

# nmap 192.168.1.*

Daarmee wordt van alle gevonden hosts getoond welke poorten ze open hebben staan.

USB-sticks

Om een usb-stick leeg te maken kan je die natuurlijk gewoon mounten om daarna met Konqueror alle bestanden te selecteren en met Shift+Del alles te verwijderen.
Als dat niet zo best lukt omdat de stick niet meer zo lekker werkt, dan kan je altijd nog proberen om de stick via de command-line te benaderen.

In de volgende voorbeelden is het nodig om te weten wat de juiste device is van de usb-stick.
Gebruik eventueel de opdracht dmesg om te zien wat de door de kernel toegewezen device is. Je gebruikt dmesg direct na insteken van de usb-stick.

Doe de volgende voorbeelden als root.

Leegmaken van een usb-stick doe je met "dd":

# dd if=/dev/zero of=/dev/sdx

Op de plaats van de "x" in sdx vul je de juiste partitieletter in. Je krijgt dan bijvoorbeeld /dev/sdf.
Het effect van de opdracht "dd" is dat de stick volledig met nullen wordt overschreven. Welk bestandsysteem er op dat moment op de stick staat maakt niets uit, want de opdracht dd negeert dat.

Wees extreem voorzichtig met dd, want het overschrijft heel gewillig een volledige harde schijf!

Een stick partitioneren doe je met fdisk.
Linux ondersteunt meer dan 100 verschillende bestandssystemen, waaronder ook die welke onder het oude DOS en Windows gebruikelijk zijn. De meeste USB-sticks worden geformatteerd als Windows 95 FAT32. Vroeger ook wel FAT16. Het FAT32-bestandssysteem heeft bij fdisk de code "c". Als je dus een partitie maakt op de stick, geef je dat op als gewenst bestandssyteem. Partitioneren doe je zoals gezegd met fdisk:

# fdisk /dev/sdx

Denk aan de juiste letter op de plaats van de "x".
Binnen fdisk toont de keuze "m" een menu met mogelijke actie's.

Let wel: we hebben het hier over fdisk van Linux. Het gelijknamige programma van DOS/Windows is daarmee vergeleken een lachertje...

De stick formatteren kan met:

# mkdosfs -I /dev/sdx1

Ook hier vul je op de plaats van de "x" weer de juiste partitieletter in.
Zorg ervoor dat de stick niet is gemount, anders kan hij niet worden geformatteerd.

Onzichtbare USB-stick

Als je een usb-stick plaatst zou Linux daar een device voor moeten maken. Dat is bijvoorbeeld /dev/sdc. As je bovendien een grafische omgeving zoals KDE of Gnome gebruikt zou je bovendien een icoontje op je desktop moeten krijgen waarmee je de USB-stick- of disk zou moeten kunnen openen.

Als dat echter allemaal niet gebeurt en de stick blijft onzichtbaar, begin dan met:

$ lsusb

Je krijgt dan een overzicht van de aangesloten usb-apparaten en dat ziet er ongeveer zo uit:

Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 005: ID 0d7d:1620 Phison Electronics Corp.
Bus 001 Device 002: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 001 Device 001: ID 0000:0000

In dit geval gaat het om de Phison, want de logitech is de aangesloten muis.


Als de stick ertussen staat (wat bijna niet anders kan), dan kijk je vervolgens of Linux er iets mee heeft gedaan:

$ dmesg

Als je de stick zojuist hebt geplaatst, dan vind je onderaan de uitvoer soortgelijke regels:

usb 1-2: new full speed USB device using uhci_hcd and address 3
usb 1-2: new device found, idVendor=0d7d, idProduct=1620
usb 1-2: new device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: USB DISK Pro
usb 1-2: Manufacturer:
usb 1-2: SerialNumber: 0753133B0086
usb 1-2: configuration #1 chosen from 1 choice

In dit geval heeft het operating system wel in de gaten dat er een apparaat is aangekoppeld, maar heeft er geen device voor aangemaakt.
Waarschijnlijk is de benodigde driver daarvoor niet geladen. Daarom doe je (als root):

# modprobe usb-storage


Om te zien wat het systeem nu heeft gevonden en hoe het daarop heeft gereageerd, gebruik je weer dmesg:

$ dmesg

Dat levert dan wat meer op dan even hiervoor, zonder de juiste driver:

usb 1-2: new full speed USB device using uhci_hcd and address 5
usb 1-2: new device found, idVendor=0d7d, idProduct=1620
usb 1-2: new device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: USB DISK Pro
usb 1-2: Manufacturer:
usb 1-2: SerialNumber: 0753133B0086
usb 1-2: configuration #1 chosen from 1 choice

Tot hier is de uitvoer nog (ongeveer) hetzelfde, maar dit is erbij gekomen:

scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
Vendor: Model: USB DISK Pro Rev: PMAP
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sda: 982016 512-byte hdwr sectors (503 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 982016 512-byte hdwr sectors (503 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
sda: sda1
sd 1:0:0:0: Attached scsi removable disk sda
sd 1:0:0:0: Attached scsi generic sg0 type 0

Duidelijk is te zien dat het systeem een USB Mass Storage device heeft gevonden. De term SCSI lijkt fout, maar Linux behandelt dit soort apparaten als scsi-apparaten ter onderscheid van standaard ide-apparaten.
Verder zie je een aantal regels beginnen met sda, hetgeen betekent dat de stick is gekoppeld aan /dev/sda.

Waarschijnlijk heeft ook de desktop (KDE) gereageerd met de mogelijkheid een venster te openen om de inhoud van de stick of disk te zien.

Als het nu allemaal werkt zoals het hoort, dan moet nog aan het systeem worden doorgegeven dat de driver bij elke start moet worden geladen.
De wijze waarop dat gaat, kan bij de diverse Linux-distributies nogal verschillen.

Bij openSUSE moet het bestand /etc/sysconfig/kernel worden aangepast:

# mcedit /etc/sysconfig/kernel

In dat bestand zoek je de regel:

MODULES_LOADED_ON_BOOT=""

Tussen de aanhalingstekens voeg je toe: usb-storage
Als er al iets tussen de aanhalingstekens stond, laat je dat gewoon staan.
De regel in dit voorbeeld wordt dus:

MODULES_LOADED_ON_BOOT="usb-storage"

Daarna moet je de configuratie doorvoeren in SUSE:

# SUSEconfig

Dit laatste commando is hier met openSUSE 10.2 wel eens vastgelopen, maar de nieuwe configuratie werkte toch...


Bij andere Linux-distributies moet je, in plaats van /etc/sysconfig/kernel, waarschijnlijk het bestand /etc/modules openen en daaraan "usb-storage" toevoegen.
Zoals gezegd kan dit per distributie verschillend zijn.