Linux – Shell enzo… deel 6
Welkom terug bij het 6e deel van “Linux – Shell Enzo”. Leuk dat je er nog steeds bij bent en deze maandelijkse blog nog steeds volgt. Vandaag gaan we verder met een aantal hele belangrijke zaken. Namelijk “mounten”, en bekijken we diverse disk en netwerk commando’s. Tenslotte kijken we nog even naar Linux services en processen.
We bijten de spits af met “mounten”.
Mounten
Mounten is een anglicistische term, wat feitelijk betekend dat de term geleend is uit het “Engels” maar niet goed te vertalen is. Mounten zou afkomstig kunnen zijn van de Engelse term “Mounting” wat “monteren” betekend maar beter vertaald kan worden naar “koppelen”. Met mounten bedoelen we het aankoppelen van opslagmedia (of digitale opslag zoals een ISO bestand) op een besturingssysteem (in dit geval Linux).
Het mounting proces in Windows is vaak automatisch en is ook in Linux steeds meer geautomatiseerd. USB schijf inpluggen en “hoppa” hij is beschikbaar (hij is gemount).
Om te kunnen mounten moet het systeem beschikken over een “mount point”. Dit “mount point” is feitelijk een voor gedefinieerde directory waarop het apparaat kan worden gemount. Deze directory kan inhoud bevatten maar deze inhoud is niet meer zichtbaar zodra er een device gemount is op deze directory. Na het mounten is namelijk de inhoud van het apparaat zichtbaar. Na het unmounten (apparaat loskoppelen en verbinding verbreken) wordt vervolgens de originele inhoudt weer beschikbaar.
Alle mount points (behalve de swapspace, ofwel de diskspace die gereserveerd is voor processing taken als het fysieke RAM vol zit) zijn gespecificeerd in het bestand “/etc/fstab”. Zo zien we op onderstaande voorbeeld dat device “sr0” (de eerste SCSI CD-Rom) gemount is in de directory (mount point) “/media/cdrom0”.

Een korte intro in device naming in Linux:
fd
De “fd” afkorting staat voor floppy disk en is dus de benaming voor een floppy disk apparaat. “fd0” is het eerste floppy disk apparaat, “fd1” de 2e etc.
sda
SD staat voor “SCSI Device”. Deze afkorting is nog afkomstig uit het begin tijdperk. Tegenwoordig is SD de Linux afkorting voor alle data dragende apparaten (block devices) die geen andere toekenning hebben binnen het linux systeem. Het eerste SD apparaat wordt aangegeven met een A (sda) en het tweede SD apparaat met een B (sdb)…etc. Daarnaast kunnen deze apparaten ook nog bestaan uit verschillende partities. Deze worden aangegeven met een cijfer. De 3e partitie op het eerste SD apparaat (de eerste hard drive) wordt dan aangegeven als “sda3”.
hdd
De “hdd” term refereert naar een IDE Block Device (ofwel een IDE hard disk). Deze komen we tegenwoordig niet zoveel meer tegen. De eerste IDE disk wordt aangeduid als “hda” en de 3e als “hdc” etc. De hda is meestal de master drive op de eerste IDE controller en de hdd is meestal de slave op de 2e IDE controller.
scd / sr
De oudere term “sr” gaf de SCSI CD-Rom apparaten aan. De meeste Linux distributies gebruiken tegenwoordig de logischere term “scd” welke staat voor “Scsi CD-rom. De eerste CD-Rom drive die gevonden wordt is sr0/scd0 en de tweede is sr1/scd1 etc.
Stel je voor dat we een nieuw apparaat (in dit voorbeeld een nieuwe SCSI HD slave – sdb) willen mounten (en Linux deze niet automatisch herkent) dan hanteren we de volgende werkwijze.
1. Sluit de hdd aan als secondary drive op de 1e SCSI controller. Linux maakt hier dan hdb van omdat de hdd de 2e SCSI hdd is welke op deze controller gevonden wordt.
2. De drive is leeg en we willen een extra partitie aanmaken. Dit doen we met het “fdisk” commando. Allereerst zorgen we ervoor dat we op de juiste hdd aan het werken zijn. Voer het volgende commando uit:
fdisk /dev/hdb |
Vervolgens krijgen we een aantal opties, waaronder:
- a
De “a” flag zet de “bootable flag” op deze disk / partitie - b
De “b” flag geeft je de optie om de schijf / partitie te labelen - d
De “d” flag verwijderd een partitie - l
De “l” flag geeft een overzicht van alle aanwezige partities - n
De “n” flag laat je een nieuwe partitie toevoegen - v
De “v” flag geeft je de optie om de partitietabel te verifieren - w
De “w” flag schrijft de aangepaste partitietabel naar de schijf (en sluit fdisk) - 0 – No errors
- 1 – Filesystem errors corrected
- 2 – System should be rebooted
- 4 – Filesystem errors left uncorrected
- 8 – Operational error
- 16 – Usage or syntax error
- 32 – Fsck canceled by user request
- 128 – Shared-library error
- eth: dit staat voor “ethernet” ofwel een netwerkkaart met een bekabelde interface.
- wlan: dit staat voor “Wireless LAN” ofwel een netwerkkaart met een draadloze interface.
- lo: dit staat voor “loopback”. De loopback interface is een virtuele netwerkinterface die Linux gebruikt om met zichzelf te communiceren. De “lo” interface wordt vooral gebruikt voor troubleshooting en diagnostische doeleinden.
Wij willen op deze lege schijf een nieuwe partitie maken en kiezen dus voor:
n |
Vervolgens kiezen we een “extended” partitie omdat we alleen data op willen slaan.
e |
Voer het partitienummer in. Hier hanteren we gewoon 1 omdat het de eerste extended partitie is:
1 |
We willen de partitie vervolgens formatteren met een bestandssysteem (NTFS / FAT / EXT). In dit geval “ext3”. Om dit te doen gebruiken we het volgende commando:
mkfs –t ext3 /dev/hdb1 |
Nu maken we een mount point aan voor deze schijf. Het mount point willen we plaatsen in de root van de schijf en noemen we “datadisk1”. We maken hiervoor eerst een nieuwe directory:
mkdir /datadisk1 |
Vervolgens mounten we de schijf naar zijn mount point toe en maken deze toegankelijk vanuit het actieve Linux systeem.
mount –t ext3 /dev/hdb1 /datadisk1 |
En tenslotte voegen we deze nieuwe schijf toe aan het “fstab” bestand zodat de schijf automatisch gemount wordt tijdens het booten van Linux. Open hiervoor het /etc/fstab bestand en voeg de volgende regel toe:
filesystem: /dev/hdb1 mount point: /datadisk1 type: ext3 options: defaults dump: 1 pass: 2 Dus: /dev/hdb1 /datadisk1 ext3 defaults 1 2 |
Als we “dump” op 1 zetten dan betekend dit dat deze partitie ook gebackupped wordt wanneer het “dump” commando gebruikt wordt. Als je dit niet wilt dan kun je deze waarde op 0 zetten. De pass waarde hebben we hier op 2 gezet. Dit betekend dat deze disk de 2e disk is welke het fsck commando controleert. De waarde “1” wordt altijd aan de partitie gegeven waar het primaire systeem op draait. Elke vervolgdisk mag waarde 2 of hoger hebben. Hoe hoger de waarde des te later in de volgorde dat de disk gecontroleerd wordt. Als disks eenzelfde ordernummer hebben dan bepaald het fsck commando zelf de volgorde.
Bovenstaande volgorde is omslachtig omdat dit ook het partitioneren van een nieuwe hdd omvat. Een CR-Rom drive mappen is een stuk sneller. In het kort is dit een mount point aanmaken, de juiste drivice naming opzoeken (“fdisk -l” – of “/proc/partitions”) en mounten naar het mount point.
Nu we zo lekker aan het mounten zijn en ook het fdisk commando al aangeraakt hebben gaan we lekker even door met nog meer disk commando’s:
Disk Commando’s
Zoals we al in het vorige hoofdstuk hebben gezien kunnen we heel veel met “fdisk”. Zo kunnen we partities bekijken, maken, bootable maken en verwijderen. Hieronder nog een voorbeeldje van een nieuwe SWAP partitie maken met fdisk. Deze partitie wordt 5GB groot.
fdisk /dev/hdb n l +5G De nieuwe partitie is nu een default Linux partitie. We moeten dus het type veranderen. Dit doen we als volgt: t (voer hex code in van het nieuwe type of zoek de hex code op via de “L” optie. Deze is:)82 |
Het “mkfs” ofwel “MaKe FileSystem” commando gebruiken we voor het formatteren van disks. Dit werkt als volgt:
sudo mkfs.ext4 /dev/sda5 |
Voor het labelen van disks / partities zijn diverse commando’s aanwezig. Het commando dat gebruikt moet worden is afhankelijk van het aanwezige bestandssysteem. Hieronder een kort overzicht:
ext2, ext3, ext4:
Comando: e2label
Voorbeeld:
/sbin/e2label /dev/sda5 LABEL |
NTFS
Comando: ntfslabel
Voorbeeld:
ntfslabel /dev/sda5 LABEL |
FAT(32):
Comando: mlabel
!Let op: om “mlabel” te gebruiken moet “mtools” geinstalleerd worden
Voorbeeld:
mlabel -i /dev/sda5 ::LABEL |
Naast “fdisk” zijn er in Linux uiteraard ook grafische tools. “Disks” ofwel “Gnome partition editor” is een grafische partitie editor welke geïnstalleerd is op vrijwel alle Ubuntu distributies die gebruik maken van Gnome. Disks is de grafische variant van “fdisk”. Er zijn meer grafische partitiemanagers zoals QtParted en GParted. GParted is de grafische variant van de “Parted” CLI tool.
Parted selecteert standaard de “primary partition” als default partitie. Om Parted te starten, te kijken welke versie van “Parted” uw distributie draait en welke disk momenteel gebruikt wordt door Parted wordt gebruikt voer je het volgende commando uit:
parted |

Om een andere partitie te kiezen gebruik je het commando:
select /dev/sdb |
Alle partities laten zien welkt met het volgende “print” commando:
print |
Een partitie aanmaken doe je met het “mkpart” commando. Een primary partitie maak je als volgt aan:
mkpart primary 0.0 15360 |
Het bovenstaande commando maakt de partitie van 0 MB (begin van de disk) tot 15360 MB (15GB) op de disk. Om de bootable flag te plaatsen moeten we weten welk nummer de partitie heeft die we zojuist aangemaakt hebben. Hiervoor gebruik je gewoon het “print” commando. Als het nummer van de primary disk 1 is dan gebruiken we:
set 1 boot on |
Een logische partitie maken gebeurt op eenzelfde manier:
mkpart logical 15361 30721 |
Net zoals bij fdisk hebben we ook “mkfs” nodig om de partitie te voorzien van een bestandssysteem. Echter kunnen we “mkfs” gebruiken binnenin de “Parted” tool. We hoeven Parted (in tegenstelling tot fdisk) dus niet af te sluiten. Om de partitie te voorzien van een bestandssysteem doen we:
mkfs
y
2
ext4 |
We roepen hierboven de “mkfs” tool op en geven akkoord op de voorwaarden. Vervolgens kiezen we partitie nummer 2 en geven we aan dat we deze willen formatteren als het “ext4” bestandssysteem.
Het mooie is dat we in Parted ook een partitie kunnen maken en deze meteen kunnen formatteren. Hiervoor gebruiken we het “mkpartfs” commando en dat doen we als volgt:
mkpartfs logical ext4 15361 30721 |
Met parted kunnen we ook gemakkelijk partities groter en kleiner maken. Dit doen we als volgt:
resize 2 |
Hierboven selecteren we partitie 2 om te resizen. Vervolgens geeft je het startpunt en het eindpunt op. Je kunt met dit commando dus ook partities verplaatsen.
Wil je nog geavanceerder te werk gaan dan kun je ook data van partitie A naar partitie B kopiëren. Alvorens je dit doet moet je eerst beide partities unmounten:
umount /dev/sda |
Vervolgens gebruiken we het “cp” commando gevolgd door de partitie welke fungeert als data bron en de partitie die fungeert als data bestemming.
cp 2 3 |
Een partitie verwijderen doen we met het “rm” commando gevolgd door het nummer van de partitie:
rm 2 |
We kunnen zelfs een verloren partitie herstellen middels Parted als deze per ongeluk verwijderd is. Om dit te doen ga je als volgt te werkt:
unit s print rescue 63 305602123 |
Hierboven zetten we allereerst de units op “s” welke “sectors” betekend zodat Parted de sectors van de bestaande partities weergeeft. Vervolgens gebruiken we “print” om alle partities weer te geven en hun start en eind sectoren te noteren. Dan voeren we het “rescue” commando uit om verloren partities te herstellen. Dan geef je de start en eindsectors op van de partitie en de verloren partitie zal hersteld worden.
Uiteraard kunnen we ook nog andere commando’s uitvoeren om info over de HD te verkrijgen. Een veelgebruikt commando is “df”. Het “df” (ofwel “Disk Free”) commando laat alle bezette en beschikbare ruimte zien van alle volumes. Df toont standaard zijn output in blokken. De hier onderstaande methode gebruiken we om de output in MB / GB te zien:
df -h |
Linux genereerd dagelijks, wekelijks en maandelijks diverse logbestanden. In sommige gevallen worden deze gewoon te groot en bezetten ze teveel schijfruimte. Om systeembeheerders te verlichten zijn er een aantal commando’s om effectief en snel om te gaan met deze logbestanden die de harde schijf vervuilen. Het “logrotate” commando archiveert de logbestanden als %logfile%1” bestand. Een nieuwe log zal dan worden aangemaakt en wij kunnen vervolgens de gearchiveerde bestanden netjes verwijderen.
Om “logrotate” dagelijks te draaien maken we een CRON aan. Later meer over CRON bestanden. Deze CRON maken we als volgt aan:
sudo /etc/cron.daily/logrotate |
Om alle gearchiveerde logrotate bestanden te verwijderen voeren we het volgende commando uit:
find /var/log –type f –regex “.*\.[0-9]$” –delete |
Niet alle logs (zoals syslog en deamon.log) worden meteen opgeschoond. Deze worden pas na 7 dagen gearchiveerd. Om deze netjes te verwijderen (en opnieuw aan te maken) gebruik je het commando:
rm –v /var/log/syslog /var/log/daemon.log && /usr/sbin/logrotate –f /etc/logrotate.d/rsyslog |
Disk Maintenance
Windows systemen moeten regelmatig gedefragmenteerd worden. Defragmentatie betekend dat bestanden niet meer als geheel bij elkaar staan en in delen over de HD verspreid staan. Hierdoor treed performance verlies op. Bij Linux systemen is defragmentatie niet nodig. Dit komt door het bestandssysteem dat Linux gebruikt. Linux gebruikt de ext2, ext3, en ext4 bestandssystemen. Dit bestandssysteem wijst bestanden op een meer intelligente manier toe aan de schijf. In plaats van meerdere bestanden naast elkaar op de harde schijf (zoals bij Windows) zorgt het Linux bestandssystemen ervoor dat verschillende bestanden over de schijf verspreid worden., waardoor een grote hoeveelheid vrije ruimte tussen de bestanden ontstaat. Als een bestand wordt bewerkt en moet groeien is er meestal voldoende vrije ruimte voor het bestand om dit te doen. Indien fragmentatie optreedt, zal het bestandssysteem proberen de bestanden verplaatsen naar een locatie meer vrije ruimte. Op deze manier komt er geen fragmentatie voor. Als er al fragmentatie optreed dan heb je eigenlijk altijd een grotere HD nodig.
Wat wel soms nodig is, is een schijfcontrole. In Windows kennen we “chkdsk” (checkdisk) en in Linux heet dit proces “fsck”. Om een bepaalde partitie op fouten te controleren gebruiken we:
fsck /dev/hdb1 |
Alle aanwezige partities / schijven controleren:
fsck -A |
Bovenstaande optie is niet aan te raden. Het is aan te raden om de primary partitie uit te sluiten tijdens de scan. Dit doe je als volgt:
fsck -AR -y |
Om alle ext4 partities te controleren gebruik je:
fsck -AR -t ext4 -y |
Het is zelfs nog beter om je partitie eerst te unmouten alvorens deze gecontroleerd wordt. Door toevoeging van de –M flag zorg je ervoor dat de schijfcontrole alleen gedaan wordt op unmounted partities:
fsck -AM ext4 |
Standaard slaat “fsck” partities over welke als “clean” vermeld staan. Om deze toch te controleren kun je de “-f” flag toevoegen:
fsck /dev/hdb1 -f |
We kunnen de checkdisk ook automatisch problemen laten repareren wanneer deze gevonden worden. Dit doen we met de –y optie:
fsck -AM ext4 -y |
Om alle problemen te repareren zonder user interventie gebruik dan de “-a” flag:
fsck -a -AM |
Als de checkdisk klaar is dan zijn er verschillende statuscode ’s die getoond kunnen worden om te laten weten wat het proces gevonden en gedaan heeft:
Netwerk commando’s
Nu we de disk commando’s al aardig onder de knie hebben leek het me handig om ook nog even te kijken naar de Linux netwerk commando’s. Want ook hier kunnen we ontzettend veel mee.
“ifconfig” is het allereerste netwerk commando die elke Linux shell gebruiker moet kennen. Het ifconfig commando geeft namelijk inzicht in de huidige netwerkstatus van de machine. ifconfig staat voor “interface configurator” en maakt het mogelijk om een netwerk interface te configureren. Denk hierbij aan het toevoegen van IP adressen, aanpassen MTU en veranderen van subnet.
Het zusje van “ifconfig” is “iwconfig”. Het “iwconfig” commando is de “wireless interface configurator” en regelt de draadloze aspecten van draadloze verbindingen zoals SSID’s, WPA sleutels etc.
Om de huidige netwerkstatus te bekijken van alle netwertkkaarten type je simpelweg “ifconfig” (vergelijkbaar met het “ipconfig” commando in Windows):
ifconfig |

“ifconfig” laat je nog niet alle details van de netwerkkaarten zien. De toevoeging “-a” laat echter wel alle details zijn, zelfs uitgeschakelde kaarten en minder belangrijke eigenschappen van de netwerkkaarten worden hiermee zichtbaar:
ifconfig -a |
Om alleen de details van een specifieke kaart te zien specificeren we de kaart:
ifconfig eth0 |
Linux specificeert netwerkkaarten als volgt:
Het cijfer achter de specificatie is de volgorde waarin Linux de kaarten herkent. “wlan0” is dus de eerste draadloze interface die Linux herkent. “wlan1” de 2e enzovoorts.
Om een bepaalde interface te activeren doe je het volgende:
ifup eth0 |
En om de interface uit te schakelen doe je:
ifdown eth0 |
De MTU (Maximum Transmission Unit) waarde aanpassen (default is 1500) gaat als volgt:
ifconfig eth0 mtu 1800 |
Een kaart in “luistermodus” (ofwel promiscuous mode) zetten doen we zo:
ifconfig eth0 -promisc |
Zo voegen we een nieuw IP adres toe aan de interface (deze setting is tijdelijk en wordt ongedaan gemaakt bij een reboot):
ifconfig eth0 192.168.50.5 netmask 255.255.255.0 up |
Om bovenstaande setting permanent te maken moeten we het “/etc/network/interfaces” bestand aanpassen met de volgende settings:
auto eth0:1 iface eth0:1 inet static address 192.168.50.5 gateway 192.168.50.254 netmask 255.255.255.0 |

Zoals al gezegd kunnen we met “iwconfig” de draadloze eigenschappen van een draadloze NIC configureren. Om b.v. het ESSID in te stellen naar “mijnnetwerk” gebruiken we:
iwconfig wlan0 essid “mijnnetwerk” |
Het instellen van het kanaal gaat zo:
iwconfig wlan0 channel 5 |
En op een bepaalde frequentie:
iwconfig wlan0 freq 2.422G |
Om te verbinden bij een specifiek access point geven we het volgende commando:
iwconfig wlan0 ap 00:42:1D:02:33:21 |
We kunnen zelfs de bitrate instellen met:
iwconfig wlan0 rate 11M |
De zendkracht (tx power) stellen we als volgt in:
iwconfig wlan0 txpower 15 |
Voor vrijwel alle draadloze opties bestaat ook een automatische (auto) of “elke” (any) variant zodat de kaart zijn eigen instelling mag kiezen. Denk aan b.v.:
iwconfig wlan0 essid any iwconfig wlan0 channel auto iwconfig wlan0 freq auto iwconfig wlan0 rate auto iwconfig wlan0 txpower auto |
Om alle beschikbare draadloze netwerken weer te geven gebruik je:
iwlist wlan0 scanning |
“ifconfig” en “iwconfig” zijn niet de enige commando’s waarmee IP adressen aan te passen zijn. De meeste distributies kennen ook het “ip addr” commando waarmee vergelijkbare dingen gedaan kunnen worden zoals:
Bekijken IP gegevens:
ip addr show |
Netwerk interface activeren:
ip link set eth1 up |
IP adres verwijderen:
ip addr del 192.168.50.5/24 dev eth0 |
Met het “ip route” en het “route” commando is het mogelijk om de routetabel aan te passen. Zoals het bekijken van de routetabel:
route |

het toevoegen van een route:
route add -net 82.36.55.244 gw 192.168.50.254 netmask 255.255.255.255 dev eth0 |
En het verwijderen van een route:
route del -net 82.36.55.244 gw 192.168.50.254 netmask 255.255.255.255 dev eth0 |
Om de default gateway (0-route) aan te passen gebruiken we het volgende commando:
route add default gw 192.168.50.1 eth0 |
Bovenstaande aanpassingen aan de routetabel zijn tijdelijk. Om ze permanent te maken moeten deze toegevoegd worden in het “/etc/network/interfaces” voor Debian / Ubuntu en in het “/etc/sysconfig/network” bestand voor CentOS, Fedora, RHEL. In deze bestanden zijn de netwerkconfiguraties van de netwerkkaarten geconfigureerd. Om een route aan een netwerkkaart toe te voegen kan onderstaande regel aan dit blok worden toegevoegd:
up route add -net 82.36.55.244 gw 192.168.50.254 netmask 255.255.255.255 |
Netwerken zijn in Linux tot in het kleinste detail te configureren. Bovenstaande voorbeelden zijn slechts een greep uit de mogelijkheden. Laten we nog snel naar een paar andere commando’s kijken waaronder een aantal troubleshooting commando’s.
ping
Het ping (Packet INternet Groper) commando gebruiken we om de layer 3 connectiviteit tussen 2 nodes te testen. Als een ping commando succesvol is dan betekend dit dat device A, device B kan bereiken. Het uitvoeren van een ping commando is vergelijkbaar met Windows. Het grote verschil is dat Linux continue blijft pingen i.p.v. 4x (zoals Windows).
ping 8.8.8.8 |
Om slechts 4x te pingen gebruiken we de –c toevoeging:
ping -c 4 8.8.8.8 |
traceroute
Ping is een mooi commando maar geeft weinig inzicht in de route die het verkeer aflegt en de hoeveelheid nodes deze onderweg tegenkomt. Het “traceroute” commando geeft hierin een beter inzicht. In Linux schrijven we het “traceroute” commando voluit terwijl we deze in Windows afkorten naar “tracert”.
traceroute 8.8.8.8 |
netstat
Het “netstat” (network statistics) commando geeft ons inzicht in de huidige verbindingen. Met netstat kunnen we inkomende en uitgaande verbindingen bekijken. Maar ook kunnen we de routetabel inzien, openstaande poorten monitoren en kijken welke applicaties deze poorten gebruiken. Een zeer nuttig commando dus. Om de routetabel met netstat te raadplegen doen we:
netstat -r |
Alle TCT en UDP “listening” poorten bekijken:
netstat –a | more |
Alleen TCP listening poorten bekijken:
netstat –at |
Alle “listening” verbindingen bekijken:
netstat –l |
Alle UNIX listening poorten weergeven:
netstat –lx |
Statistieken per protocol bekijken:
netstat –s |
Bekijken van service namen met bijbehorende PID’s:
netstat –tp |
Ruwe en ongefilterde netwerkstatistieken bekijken:
netstat --statistics --raw |
dig
Het “dig” commando wordt gebruikt om DNS gerelateerde problemen op te sporen. Dig staat voor “domain information groper” en geeft ons inzage in DNS informatie van een domein zoals A-records, CNAME en MX records etc.
Het dig commando leest het “/etc/resolv.conf” bestand uit en gebruikt de DNS servers die hier opgegeven zijn. De resultaten van deze DNS servers worden door dig zichtbaar gemaakt.
Om simpelweg de A-records te zien van een domein voeren we het volgende commando uit:
dig google.nl |
Omdat het normale (bovenstaande) dig commando veel extra informatie meestuurt (meestal uitgequote met een “;”) kan de informatie wat onoverzichtelijk worden. Door “+short” toe te voegen wordt alleen de relevante informatie getoond.
dig google.nl +short |
Om meer informatie over de MX records te krijgen gebruik je:
dig google.nl MX |
Een SOA record wordt als volgt opgehaald:
dig google.nl SOA |
En de TTL als volgt:
dig google.nl TTL |
Om een overzicht te krijgen van alle DNS records gebruik je:
dig google.nl ANY +noall +answer |
Ook een reverse DNS loopup is mogelijk met de “-x” flag:
dig -x 82.94.234.39 +short |

nslookup
Het “nslookup” commando wordt eveneens gebruikt voor het oplossen van DNS gerelateerde problemen. Windows administrators zullen aardig bekend zijn met het “nslookup” commando. In Linux werkt nslookup vrijwel identiek als in Windows.
Om de A-records van www.google.nl te bekijken gebruik je:
nslookup www.google.nl |
Een reverse lookup uitvoeren is vrijwel identiek en in tegenstelling tot “dig” zonder toevoeging van extra flags:
nslookup 82.94.234.39 |
Om de MX records op te vragen gebruiken we:
nslookup -query=mx www.google.nl |
Het opvragen van de nameservers (ns records):
nslookup -query=ns www.google.nl |
Het bekijken van alle DNS records doe je als volgt:
nslookup -query=any www.google.nl |
arp
ARP is het “Address Resolution Protocol” en is TCP protocol. Het ARP protocol bestaat uit een tabel die door TCP devices wordt bijgehouden welke informatie bevat over MAC en IP adressen van andere hosts op het netwerk. Met de ARP tabel kan het apparaat een IP adres vertalen naar een MAC adres. Stel je voor dat een pakketje van computer A naar computer B gaat. Op de 2e netwerklaag wordt niet met IP adressen maar met MAC adressen gewerkt. De computer moet dus weten welk MAC adres de volgende hop is om het pakketje bij computer B te kunnen bezorgen. Als computer A nog niet het MAC adres weet van computer B, maar wel het IP adres dan zal computer A een ARP request over net netwerk sturen met de vraag “wil computer B zijn MAC adres retourneren”. Als computer B zijn MAC adres retourneert dan is de ARP tabel compleet en kan het pakketje verstuurd worden.
De ARP tabel kan uitgelezen worden met het volgende commando:
arp |

Om ARP entry (IP: 192.168.1.10 – MAC: 22:34:ad:42:b2:14) aan de tabel toe te voegen gebruik je het volgende commando:
arp -s 192.168.1.10 22:34:ad:42:b2:14 |
Om deze ARP entry te verwijderen gebruik je het volgende commando:
arp -d 192.168.1.10 22:34:ad:42:b2:14 |
Linux services en processen
Tenslotte kijken we nog heel even naar de Linux services en processen. Services draaien op de achtergrond om bepaalde processen te monitoren, controleren en beheren. Services zorgen ervoor dat alle gewenste diensten op de computer goed draaien en beschikbaar zijn wanneer nodig. Een service kan bestaan uit meerdere processen. Een proces is kan automatisch door een service gestart worden of on-demand door een applicatie worden gestart. Sommige processen zijn dus tijdelijk (zolang een applicatie draait en deze nodig heeft) of permanent (denk aan processen die het Linux OS nodig heeft om te draaien of om zijn services beschikbaar te stellen).
Zo kan bijvoorbeeld de service “network-manager” gestart worden tijdens het starten van Linux en beheerd de netwerkadapters, DHCP, DNS, VPN etc. Als de netwerk-manager service gestopt wordt zal het netwerk niet meer functioneren. De “network-manager” service zelf start weer verschillende netwerk gerelateerde processen (afhankelijk van de configuratie) zoals “dhclient” en “BIND”.
In sommige gevallen kan het nodig zijn om een service zoals de “network-service” te resetten. Het stopzetten van deze service gaat als volgt:
service network-manager stop |
Het starten van de network manager doen we dan als volgt:
service network-manager start |
Bovenstaande stop en start commando’s kunnen we ook combineren als we de service willen resetten:
service network-manager restart |
Mocht je niet weten hoe een bepaalde service heet, dan kun je onderstaande commando gebruiken om alle services te bekijken:
ls /etc/init.d |

Alle huidige processen incl. hun PID kunnen bekeken worden via:
ps -e |

Om de process-tree (boomweergave waarin duidelijk wordt welk proces een ander proces gestart heeft omdat hij deze nodig heeft) te zien typen we:
ps -ejH |
Om processen te zien welke als een specifieke gebruiker draaien (zoals b.v. “root”) dan gebruik je:
ps -U root -u root u |
En om te zien welk proces als PID 42 draait type je:
ps -p 42 |
Processen kunnen ook bekeken worden via een duidelijke schematische weergave in de shell met “top” of “htop”.
Processen en applicaties in de achtergrond
Het laden van processen en applicaties vanuit de shell zorgt er vaak voor dat de shell pas terugkeert als het proces of de applicatie gesloten is. Het & commando laad deze processen en applicaties in de achtergrond zodat je verder kunt werken in dezelfde shell.
Bekijk het verschil maar tussen “xload” en “xload &”. Stel voor dat je vergeten bent om een proces in de achtergrond te laden kun je met CTRL+Z terugkeren naar de shell. Het proces bestaat dan nog wel maar is tijdelijk gestopt. Om het proces weer in de achtergrond te starten type je simpelweg “bg” (afkorting van “background”).
Processen stoppen
Om een proces te stoppen gebruik je het “kill” commando. Met het “kill” commando worden er signalen naar een process gestuurd. Alle signalen kun je vinden door het “kill –l” commando uit te voeren. Een proces afsluiten met het “kill” commando doe je door het jobnummer in te geven achter het kill commando. Dus:
kill 42 |
Bovenstaande voorbeeld is zo simpel omdat het standaard signaal van “kill” het “TERM” signaal is (15), ofwel “terminate”. Dit signaal wordt ook wel een “gracefull shutdown” genoemd maar kan door het proces genegeerd worden. Nummer 9, het SIGKILL signaal is de “hard-shutdown” optie. Dit signaal kan niet door het proces genegeerd worden. Het proces wordt meteen afgesloten en niet opgeslagen werk zal verloren gaan.
Andere signalen die we kunnen sturen zijn op te vragen met het “kill -l” commando. Een paar voorbeelden:
Een proces (in dit voorbeeld een proces met PID 42) hard afsluiten:
kill SIGKILL 42 |
of
kill -9 42 |
Meerdere processen afsluiten:
kill -9 42 56 91 104 |
Alle processen sluiten (killen) die mogelijkerwijs afgesloten kunnen worden doe je met de -9 (SIGKILL) -1 (SIGHUP) toevoeging.
kill -9 -1 |
Het “pkill” commando is een uitbreiding op het “kill” commando. Met “pkill” kan reguliere expressie worden gebruikt en kan de procesnaam i.p.v. het PID gebruikt worden zoals:
pkill firefox |
Om “Firefox” te sluiten kan zelfs een gedeelte van de naam gebruikt worden. Onderstaande voorbeeld sluit alle processen die beginnen met “fire”.
pkill fire |
Het “kilall” commando sluit automatisch alle processen die open staan en matchen met de opgegeven naam:
killall firefox |
Er is ook een grafische manier om vastgelopen processen / applicaties te sluiten. Dit is door het gebruik van “xkill”. Wanneer “xkill” wordt ingevoegd veranderd de muisaanwijzer in een kruis. Wanneer de vastgelopen applicatie aangeklikt wordt met het kruis wordt deze gesloten. Wanneer je klaar bent met het afsluiten van applicaties kan “xkill” weer gesloten worden met de toets combinatie “CTRL+C”.
Het lijkt wel of elk nieuw deel van “Linux – Shell Enzo” steeds langer wordt. Ook in dit deel was weer een hele hoop te vertellen…en daar moet je het dan weer wel een hele maand mee doen 🙂 Hopelijk vonden jullie het interessant! In het volgende deel gaan we een aantal commando’s bekijken die het werken in Linux nog makkelijker maken en die de Shell laten glanzen. Na deel 7 weet je het… hier doen we het voor. Daarom werken we meestal met de Shell! Tot deel 7!