Skip to content

Basis Linux

Linux

Op de website Linux Journey vind je een gratis, open source online cursus Linux. Ik heb een gedeelte vertaald, maar raad je aan om een middagje Linux te studeren op Linux Journey.

Als je aan de slag gaat met ethical hacking moet je gewoon basiskennis hebben van Linux. Ik wil je hierbij een eindje op weg helpen.

Historie van Linux

Om te leren hoe Linux tot stand kwam, gaan we terug naar het begin, naar 1969 waar Ken Thompson en Dennis Ritchie van Bell Laboratories het UNIX besturingssysteem ontwikkelden. Het werd later herschreven in C om het draagbaarder te maken en werd uiteindelijk een veel gebruikt besturingssysteem.

Een tiental jaren later begon Richard Stallman te werken aan het GNU (GNU is Not UNIX) project, de GNU kernel genaamd Hurd, die helaas nooit werd voltooid. De GNU General Public License (GPL), een licentie voor vrije software, werd hierdoor ook gecreëerd.

De kernel is het belangrijkste onderdeel van het besturingssysteem. Het zorgt ervoor dat de hardware kan praten met de software. Het doet ook een heleboel andere dingen, maar daar zullen we in een andere cursus op ingaan. Voor nu is het voldoende te weten dat de kernel vrijwel alles regelt wat er op uw systeem gebeurt.

Gedurende deze tijd werden andere pogingen zoals BSD, MINIX, enz. ontwikkeld als UNIX-achtige systemen. Maar één ding dat al deze UNIX-achtige systemen gemeen hadden was het ontbreken van een uniforme kernel.

In 1991 begon een jonge kerel, Linus Torvalds genaamd, met de ontwikkeling van wat we nu kennen als de Linux kernel.

De Shell

De wereld is je oester, of eigenlijk is de schelp je oester. Wat is de shell? De shell is eigenlijk een programma dat je commando's van het toetsenbord haalt en ze naar het besturingssysteem stuurt om ze uit te voeren. Als je ooit een GUI hebt gebruikt, heb je waarschijnlijk programma's gezien als "Terminal" of "Console", dit zijn gewoon programma's die een shell voor je starten. In deze hele cursus zullen we de wonderen van de shell leren kennen.

In deze cursus gebruiken we het shell-programma bash (Bourne Again shell), bijna alle Linux-distributies gebruiken standaard de bash-shell. Er zijn ook andere shells beschikbaar, zoals ksh, zsh, tsch, maar daar gaan we niet op in.

Laten we er meteen in springen! Afhankelijk van de distributie kan je shell-prompt veranderen, maar voor het grootste deel zou hij het volgende formaat moeten hebben:

username@hostname:current_directory

pete@icebox:/home/pete $

Zie je de $ aan het einde van de prompt? Verschillende shells hebben verschillende prompts, in ons geval is de $ voor een normale gebruiker die de Bash, Bourne of Korn shell gebruikt, je voegt het promptsymbool niet toe wanneer je het commando typt, je weet gewoon dat het er is.

Laten we beginnen met een eenvoudig commando, echo. Het echo commando drukt gewoon de tekstargumenten af op het scherm.

$ echo Hello World

Veelgebruikte Commandos

pwd (Print Working Directory)

Alles in Linux is een bestand, als je je verder in Linux verdiept zul je dit begrijpen, maar voor nu moet je dit in gedachten houden. Elk bestand is georganiseerd in een hiërarchische mappenstructuur. De eerste directory in het bestandssysteem wordt toepasselijk de root directory genoemd. De hoofddirectory heeft vele mappen en bestanden waarin je meer mappen en bestanden kunt opslaan, enz. Hier is een voorbeeld van hoe de mappenstructuur eruit ziet:

/

|-- bin

|   |-- file1

|   |-- file2

|-- etc

|   |-- file3

|   `-- directory1

|       |-- file4

|       `-- file5

|-- home

|-- var
De locatie van deze bestanden en mappen worden paden genoemd. Als je een map home hebt met daarin een map pete en een andere map in die map die Movies heet, dan ziet dat pad er als volgt uit: /home/pete/Movies, vrij eenvoudig hè?

Navigatie op het bestandssysteem, net als in het echte leven, is handig als je weet waar je bent en waar je naartoe gaat. Om te zien waar je bent, kun je het pwd commando gebruiken, dit commando betekent "print working directory" en het laat je gewoon zien in welke directory je bent, let op het pad gaat uit van de root directory.

$ pwd

Wie ben jij eigenlijk? Probeer het gewoon.

cd (Change Directory)

Nu je weet waar je bent, laten we eens kijken of we een beetje door het bestandssysteem kunnen bewegen. Onthoud dat we onze weg moeten vinden met behulp van paden. Er zijn twee verschillende manieren om een pad op te geven, met absolute en relatieve paden.

Absoluut pad: Dit is het pad vanuit de hoofdmap. De root is de hoofdmap. De hoofddirectory wordt gewoonlijk weergegeven als een schuine streep. Elke keer dat je pad begint met / betekent dit dat je start vanaf de root directory. Bijvoorbeeld, /home/pete/Desktop.

Relatief pad: Dit is het pad van waar je je momenteel in het bestandssysteem bevindt. Als ik op de locatie /home/pete/Documenten was en naar een map in Documenten wilde, genaamd belastingen, hoef ik niet het hele pad vanaf de root op te geven zoals /home/pete/Documenten/belastingen, maar kan ik gewoon naar belastingen/ gaan.

Nu je weet hoe paden werken, hebben we iets nodig om ons te helpen naar de gewenste map te gaan. Gelukkig hebben we cd of "change directory" om dat te doen.

$ cd /home/pete/Pictures

Dus nu heb ik mijn directory locatie veranderd in /home/pete/Pictures.

Nu heb ik in deze map een map genaamd Hawaii, ik kan naar die map navigeren met:

$ cd Hawaii

Zie je hoe ik gewoon de naam van de map heb gebruikt? Dat is omdat ik al in /home/pete/Pictures zat.

Het kan behoorlijk vermoeiend worden om de hele tijd te navigeren met absolute en relatieve paden, gelukkig zijn er enkele sneltoetsen om je te helpen.

. (huidige directory). Dit is de map waarin u zich momenteel bevindt. .. (bovenliggende map). Brengt je naar de directory boven je huidige. ~ (home directory). Deze directory is standaard uw "home directory". Zoals /home/pete. - (vorige directory). Dit brengt je naar de vorige directory waar je net was.

$ cd .

$ cd ..

$ cd ~

$ cd -

Probeer ze eens!

ls (List Directories)

Nu we weten hoe we door het systeem moeten bewegen, hoe komen we erachter wat er voor ons beschikbaar is? Nu is het alsof we in het donker rondlopen. Nou, we kunnen het prachtige ls commando gebruiken om de inhoud van mappen op te sommen. Het commando ls geeft standaard de mappen en bestanden in de huidige map weer, maar je kunt aangeven van welk pad je de mappen wilt zien.

$ ls

$ ls /home/pete

ls is een heel handig hulpmiddel, het toont ook gedetailleerde informatie over de bestanden en mappen die je bekijkt.

Merk ook op dat niet alle bestanden in een directory zichtbaar zijn. Bestandsnamen die beginnen met . zijn verborgen, je kunt ze echter bekijken met het ls commando en er de -a vlag aan geven (a voor all).

$ ls -a

Er is nog een nuttige ls-vlag, -l voor lang, die een gedetailleerde lijst van bestanden in een lang formaat toont. Dit toont u gedetailleerde informatie, beginnend vanaf links: bestandspermissies, aantal koppelingen, naam van de eigenaar, groep eigenaars, bestandsgrootte, tijdstempel van de laatste wijziging, en naam van het bestand/de map.

$ ls -l


pete@icebox:~$ ls -l

totaal 80

drwxr-x--- 7 pete penguingroup 4096 Nov 20 16:37 Desktop

drwxr-x-- 2 pete penguingroup 4096 19 okt 10:46 Documents

drwxr-x--- 4 pete penguingroup 4096 20 nov 09:30 Downloads

drwxr-x-- 2 pete penguingroup 4096 7 okt 13:13 Muziek

drwxr-x-- 2 pete penguingroup 4096 21 sep 14:02 Afbeeldingen

drwxr-x-- 2 pete penguingroup 4096 27 jul 12:41 Openbaar

drwxr-x-- 2 pete penguingroup 4096 27 jul 12:41 Sjablonen

drwxr-x-- 2 pete penguingroup 4096 jul 27 12:41 Video's

Commando's hebben dingen die vlaggen (of argumenten of opties, hoe je het ook wilt noemen) worden genoemd om meer functionaliteit toe te voegen. Zie hoe we -a en -l hebben toegevoegd, nou je kunt ze allebei samen toevoegen met -la. De volgorde van de vlaggen bepaalt in welke volgorde het gaat, meestal maakt dat niet zoveel uit, dus je kunt ook ls -al doen en dan werkt het nog steeds.

$ ls -la

cat

We zijn bijna klaar met het navigeren door bestanden, maar laten we eerst leren hoe je een bestand leest. Een eenvoudig commando om te gebruiken is het cat commando, kort voor concatenate, het toont niet alleen de inhoud van een bestand, maar het kan meerdere bestanden combineren en de uitvoer ervan tonen.

$ cat dogfile birdfile

Het is niet geweldig voor het bekijken van grote bestanden en het is alleen bedoeld voor korte inhoud. Er zijn vele andere gereedschappen die we gebruiken om grotere tekstbestanden te bekijken.

help

Linux heeft enkele geweldige ingebouwde hulpmiddelen om je te helpen hoe je een commando moet gebruiken of om te controleren welke vlaggen beschikbaar zijn voor een commando. Eén hulpmiddel, help, is een ingebouwd bash-commando dat hulp biedt bij andere bash-commando's (echo, logout, pwd, enz.).

$ help echo

Dit geeft u een beschrijving en de opties die u kunt gebruiken wanneer u echo wilt uitvoeren. Voor andere uitvoerbare programma's is het gebruikelijk om een optie --help of iets dergelijks te hebben.

$ echo --help

Niet alle ontwikkelaars die uitvoerbare programma's uitbrengen voldoen aan deze standaard, maar het is waarschijnlijk de beste manier om hulp te vinden bij een programma.

Handige sneltoetsen

Sneltoets Uitleg
Cursorbeweging
Ctrl + A Ga naar het begin van de huidige regel
Ctrl + E Ga naar het einde van de huidige regel
Ctrl + B Ga één positie naar links
Ctrl + F Ga één positie naar rechts
Geschiedenis
Ctrl + N Ga naar de volgende regel in de geschiedenis van de opdracht
Ctrl + P Ga naar de vorige regel in de geschiedenis van de opdracht
Ctrl + R Zoek naar de opdracht in de geschiedenis van de opdracht
Pijltje omhoog Ga naar de vorige opdracht in de geschiedenis van de opdracht
Pijltje omlaag Ga naar de volgende opdracht in de geschiedenis van de opdracht
Verwijderen
Ctrl + U Verwijder alles voor de cursor
Ctrl + K Verwijder alles na de cursor
Ctrl + W Verwijder het laatste woord voor de cursor
Ctrl + Y Plak de laatste verwijderde tekst terug
Tekstbewerking
Ctrl + C Forceer beëindiging van het huidige proces
Ctrl + D Beëindig de invoer / sluit de huidige shell
Ctrl + G Verlaat de huidige prompt of annuleer de huidige opdracht
Ctrl + L Wis het scherm
Ctrl + T Wissel de laatste twee karakters vóór de cursor om
Ctrl + V Schakel over naar letterlijke invoermodus
Annuleren
Ctrl + X Annuleer de huidige opdracht
Ctrl + Z Onderbreek het huidige proces (voor later)
Ctrl + _ Ongedaan maken van de laatste actie
Magisch
TAB Auto-completeert de huidige opdracht of bestandsnaam.

Experimenteer

Ga vooral experimenteren met Linux! Je kunt niets kapot maken, want jij werkt natuurlijk een in Virtual Machine