Basis 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:
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.
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
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.
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.
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:
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.
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 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).
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.
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.
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.).
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.
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