Linux Commando's / Opdrachten

De command line is de meest krachtige manier om met Linux te werken, maar als je er niet aan gewend bent, kan het moeilijk zijn. De beste manier om de commando's te leren, is om te beginnen met wat basis commando's te werken. Probeer niet meteen alles via je Command Line te doen. Leer een paar commando's, gebruik ze, en voeg er langzaam een paar toe. Zo kan je langzaam je vocabulaire van commando's uitbreiden. Hieronder staan wat basis commando's waarmee je kunt beginnen.

Probeer ze niet tegelijkertijd te leren. Kies er een paar, en oefen ze.

  • man
  • ls
  • cd
  • mkdir
  • mv
  • rm
  • locate / slocate
  • ping
  • cp
  • pwd
  • tab

En nog een paar die goed zouden zijn om te kennen:

  • ldconfig
  • updatedb
  • ./configure
  • make
  • make install
  • tar
  • more
  • whereis

Laten we ze allemaal eens afzonderlijk te bekijken. Voel je vrij om ermee te experimenteren, maar pas op dat je geen bestanden of mappen aantast. Ik zal het hieronder aangeven als het een commando is waarmee je problemen kunt veroorzaken.

man

Dit is een goed commando om ee te beginnen, omdat het de ingebouwde hulp-pagina's van Linux aanroept. man is kort voor manual of handleiding. En als je dit intypt, gevolgd door een spatie, en dan de naam van een ander commando, krijg je de hulp pagina in je terminal, met een beschrijving van het commando. Probeer eens: 
man ls

Je zult een terminal venster krigen vol informatie over het ls commando. De opzet van de helppagina kan wat verwarrend zijn, dus browse wat rond. Het gedeelte wat het meest interssant is, is de beschrijving van het commando (oftewel: wat het doet). Druk, om naar beneden te scrollen, op de handleidingpagina, en om hem af te sluiten kun je op de q toets drukken.

Probeer nog eens wat man commando's en lees dan verder.
Er is nog een hulp-systeem dat hetzelfde werkt, maar in plaats van man type je info in:

info ls
Experimenteer!

ls

Het ls commando is het 'list/lijst' commando. Je kunt dit gebruiken om de inhoud te laten zien van de map waarin je bent. Type dit commando eens in in je terminal venster, en kijk wat je krijgt.
Nu, een mogelijkheid van Linux commando's is dat je verschillende parameters eraan toe kan voegen. Dit is niet zo moeilijk, en het verfijnd de manier waarop je een commando gebruikt. Over het algemeen worden deze parameters toegevoegd door een - direct na het commando te typen, en dan de parameter namen of afkortingen. Bijvoorbeeld als ik het volgende type:

ls -l

Dan voeg ik de l parameter toe aan het ls commando. De l parameter is kort voor 'long list/lange lijst' en refereert naar de manier waarop de ls informatie getoond  kan worden. Deze manier geeft meer informatie dan het ls commando alleen. Probeer en vergelijk ze eens. 

De parameters voor alle commando's zijn te vinden in de man pagina's van ieder commando.

Voor het ls commando zijn  de volgende handig: ls zelf, ls - al en ls - l.

cd

cd is het meest gebruikte commando om door het bestandssysteem op je computer heen te navigeren. cd staat voor 'change directory' of 'verander map'. Probeer het uit, door ls in te typen om een lijst te krijgen van alle bestanden en folders in de map waar je nu in zit. Type daarna eens cd gevolgd door de naam van een van de bestanden in de lijst. Als er bijvoorbeeld een bestand genaamd 'me.txt' in de lijst staat, kan ik het volgende typen:

cd me.txt
Nu krijg ik een foutmelding! Waarom? Omdat je niet naar een map kan gaan als het een bestand is. Met cd kan je verder geen schade aanrichten. Om van map te veranderen type je cd in, gevolgd door de naam van de map waar je heen wilt gaan. Als er een map genaamd src in de lijst stond, zouden we: 
cd src

intypen. Als dat lukt, zal de terminal geen foutmelding geven. Probeer het eens met een echte map op je computer. Als het niet lukt is dat omdat je of geen toestemming hebt om de map te bekijken, omdat je de mapnaam verkeerd gespeld hebt, of omdat de map niet bestaat. 

Nu even wat informatie over het Linux bestands-systeem. Over het algemeen, als je het systeem netjes hebt opgezet, werk je in je home map. Deze staat vaak op dezelfde plek in Linux. Om je home directory te vinden type je  

cd /

in. Hierdoor kom je in de allerhoogste map van je computers bestandssysteem.

Als je nu ls intikt, zal je de lijst van mappenzien, die op het hoogste niveau van je computer staan.

Daar staan belangrijke mappen tussen, maar je wilt je richten op de map met de naam home. Om naar deze map te gaan kunnen we het cd commando gebruiken:

cd home

Als je nu ls intikt, zal je een lijst zien van meer mappen, en hopelijk heeft een ervan de je gebruikersnaam als naam. Dit is jouw home map. Nu zijn we hier aangekmen door relatieve positionering te gebruiken Dat betekent: Als ik in de hoogste map ben, en ik type cd home in, kom ik in de home map, waar alle home mappen van de afzonderlijke gebruikers in staan. Als ik in een andere map was en cd home had ingetikt, zou ik een fout krijgen. Je kunt, als je wilt ook absolute paden naar de map die je wilt bereiken gebruiken. Als ik bijvoorbeeld ergens in een vage hoek van mijn bestandssysteem ben, en ik snel naar de home map wil komen type ik:

cd /home
Als ik naar de map wil gaan die onder de home map zit, (bijvoorbeeld als ik daar een map genaamd adam heb) Type ik:
cd /home/adam

mkdir

Dit is het commando dat je gebruikt om een map aan te maken. Het staat voor 'make directory/maak map". Om het te gebruiken type je de naam van de map die je wilt maken na het mkdir commando:

mkdir bleep
In dit geval krijg je een map in de map waarin je bent met de naam bleep. Als er al een map is met deze naam, krijg je een foutmelding, en zal de computer niet de bestaande map overschrijven. Probeer eens wat mappen aan te maken.

pwd

Als je de weg kwijt raakt in je bestandsysteem, kan je als pwd intikken, en het vertelt je waar je bent. Dit commando geeft je het locatie pad, of een absoluut pad naar waar je bent. Alsik bijvoorbeeld in mijn adam map ben, in mijn home map, zal ik als ik pwd intik het dit terugkrijgen:

/home/adam
Experimenteer met het veranderen van mappen met cd en dan pwd in te tikken om te kijken waar je bent. 

mv

Dit commando is kort voor move/verplaats. Met mv kan je bestanden verplaatsen op je bestandssysteem. Het is vergelijkbaar met de knip en plak acties die je bij Mac en Windows hebt. Om v te gebruiken moet je eerst het commando intikken, gevolgd door het bestand dat je wilt verplaatsen (in absolute of relatieve paden, inclusief de bestandsnaam) en dan de plek waar je hem heen wilt verplaatsen (in absolute of relatieve paden). Als ik bijvoorbeeld het bestand 'me.txt' wil verplaatsen van mijn huidige naar de /usr/bin map. Zou ik het volgende intikken:
mv me.txt /usr/bin

Let op: Ik hoef niet de bestandsnaam in te tikken in de naam van het pad waar ik het bestand heen wil verplaatsen, behalve als ik de naam ervan wil veranderen. Als ik b.v. de naam van 'me.txt' naar 'you.txt' wil veranderen, terwijl ik het bestand verplaats zou ik tikken:

mv me.txt /usr/bin/you.txt
Als ik alleen de naam van het bestand zou willen veranderen, maar niet een nieuwe plek geven, kan ik het mv commando gebruiken:
mv me.txt you.txt
Let op dat als je mv gebruikt, dat je het bestand verplaatst en niet kopieert. Het orgineel zal daarom verplaatst worden en niet meer bestaan in de map waar je hem vandaan hebt gehaald. Je moet met deze naam wel oppassen, omdat je per ongeluk bestanden kunt overschrijven. Als je b.v. een bestand verplaatst naar een map waar al een bestand met dezelfde naam staat, wordt het oude bestand overgeschreven, en is die weg. Pas daarom op.

rm

Een commando waarbij je heel erg op moet letten is het rm commando. Het staat voor remove/verwijder, en je gebruikt het als je een bestand of map wilt verwijderen. Type daarvoor rm gevolgd door de naam van het bestand dat je kwijt wilt. Om een map te verwijderen, kan je hetzelfde commando gebruiken, maar met de -r parameter:

rm -R mapnaam

Mapnaam in dit geval is natuurlijk de naam van de map die je weg wilt gooien. Je kunt hier ook rmdir voor gebruiken (kort voor remove directory/verwijder map). Let ontzettend goed op als je dit commando gebruikt, omdat je je besturingssysteem ermee kunt wissen. 

locate / slocate

Deze commando's helpen je om bestanden te vinden in je bestandssysteem. De locatie van alle bestanden op je computer staan in een database, die af en toe geupdate wordt met het updatedb commando. Om een bestand te viden kan je locate of slocate intikken (hangt af welke op je computer geinstalleerd is), gevolgd door een deel van de naam van het bestand of de map waarin je kijkt. Als je b.v. het 'icecast.conf' bestand zoekt, type je:

slocate icecast.conf

Als er geen reactie volgt, betekent dat dat het bestand niet bestaat op je computer, of dat het bestaat, maar dat de database niet weet waar het is. In het laatste geval type ik updatedb, en probeer het daarna weer.

Met locate en slocate kan je niets  kapot maken, je kunt er dus zoveel mee spelen als je wilt. Soms kan updatedb even duren, als je het niet recent gebruikt hebt, of als je een langzame computer hebt. Het kan een hoop werkgeheugen gebruiken op langzame computers, dus het is slim het niet te gebruiken als je met iets heel belangrijks bezig bent.

Je kan ook met whereis en find experimenteren om bestanden te vinden.

cp

Cp staat voor copy/kopieren. Je kunt het hetzelfde gebruiken als mv. Het enige verschil is dat het een versie van het bestand achterlaat op de originele plek. 

ping

Ping wordt normaliter niet toegevoegd aan de 10 belangrijkste commando's, maar het is handig als je wilt weten waar je online bent. Ping stuurt een verzoek naar een computer op het net, als die computer het verzoek krijgt, zal hij antwoorden. Type ping in, gevolgd door een URL die je kent. bijvoorbeeld:

ping www.cnn.com

Als die computer het verzoek krijgt, krijg je informatie terug via de terminal. Dit zal blijven scrollen totdat je het stopt door control en c tegelijkertijd in te tikken.

Als je geen reactie krijgt op de ping, ben je waarschijnlijk offline. Het kan echter ook zijn dat de machine niet op pings reageert vanwege veiligheids en andere redenen. zorg daarom dat je zeker weet dat de machine waarnaar je pingt reageert op ping verzoeken

En niet alle internetverbindingen laten ping-verkeer toe, als je dus op niks een ping terugkrijgt, kan dat ook aan je internetverbinding/provider liggen.

tab

tab is niet echt een commando, maar meer een 'toets' .. Ieder toetsenbord heeft een tabtoets, en het is erg handig om te hebben in Linux. Je kan deze eerder gebruikt hebben om je tekst meer naar rechts te zetten in een tekstverwerker, dit kan in Linux tekstverwerkers nogsteeds. Maar als je de tab gebruikt in de Linux terminal kan je er veel tijd mee winnen.

 Wat tab doet is eigenlijk je zin automatisch afmaken. Als ik b.v. het bestand 'dlfjasalfiasjdflsjafda.txt' ergens wil verplaatsen met het mv commando, kan ik of alle letters in gaan tikken, of ik tik mv (voor verplaats), gevolgd door de eerste paar letters van de bestandsnaam, en druk dan op tab. De rest van de bestandsnaam wordt dan automatatisch toegevoegd. Als hij niet wordt aangevuld, betekent het dat er meerdere bestanden of mappen zijn die met die eerste letters beginnen. Je kunt dan meer letters intikken en weer op tab klikken, of je kunt twee keer op tab toetsen, om een lijst te krijgen van de bestanden die met die letters beginnen.

Andere Commando's

Aan het begin van dit onderdeel gaf ik een lijstje met andere die ook handig zijn om te weten. Ze waren:

  • ldconfig
  • updatedb
  • ./configure
  • make
  • make install
  • tar
  • more
  • whereis

 Twee ervan (whereis en updatedb) heb ik al genoemd. De andere kunnen handig zijn om software te installeren.

more

more is handig als je een enorme lange output wilt kunnen bekijken. Als ik in een map ben met 1000 bestanden, en ik type ls in, past de output niet in mijn kleine terminal scherm, zodat het sneller langsscrollt dan ik kan lezen. Om het langzamer te krijgen, kan ik more gebruiken:

ls | more

Ik krijg dan 1 pagina output per keer, en door op de spatiebalk te drukken ga ik naar de volgende pagina. Als je op q drukt, wordt more afgesloten.

Dat rare verticale lijntje in het bovenstaande commando is het pipe commando.

Met Pipe kan je verschillende commando's samen gebruiken om de output die je krijgt te bepalen. Vaak wordt het gebruikt om een commando te verfijnen. Als je deze dus goed  leert kennen kan je heel efficient worden.