Met de shell leren werken

Wat is een shell eigenlijk?

Zoals we reeds gezegd hebben, is een shell een programma dat wordt opgestart in een terminal venster. Het is de interface naar het hart van je computer. Een terminal venster zonder shell zou waardeloos zijn.

Als we een computer zouden vergelijken met een voertuig, kan je je voorstellen dat de kernel de motor is. De shell is het stuur. Trekken we deze vergelijking verder, dan zouden we kunnen zeggen dat een grafische interface, zoals Gnome, die je voornamelijk bestuurt met de muis, als een busje is, waarin je meerijdt als passagier. Je hebt namelijk niet veel te kiezen. Uit de uurregelingen - de menu's - kan je kiezen welke bus je neemt, maar je kan niet kiezen hoe die rijdt en waar die stopt. De shell laat je toe veel meer invloed uit te oefenen op je systeem. De meeste commando's op je systeem hebben via-via wel een grafische interface. Maar in zo'n interface alle mogelijke opties programmeren - zoals bijvoorbeeld de meer dan 40 opties bij het ls commando, is een helse opdracht. Meestal hebben grafische interfaces slechts een beperkte subset van de echte mogelijkheden van een commando. Werken met de shell biedt meer mogelijkheden, en bovendien gaat het na verloop van tijd ook veel sneller. De shell is dus niet enkel te vergelijken met een auto, eerder dan met een busje, het is ook nog eens een racewagen!

Bash truuks

Sneller werken

Jaja, zal je zeggen, allemaal goed en wel, maar ik heb al veel moeten typen en dat gaat niet zo vlot voor mij. Inderdaad, zonder de juiste toetsencombinaties te kennen, is een shell niet zo leuk om mee te werken. Daarom gaan we die nu overlopen.

Tabel 2.4. Toetsencombinaties in Bash

Toets of combinatie van toetsenFunctie
Ctrl+APlaatst de cursor aan het begin van de lijn, vlak achter de prompt.
Ctrl+CBeëindigt een lopend programma en geeft je de prompt terug zodat je een nieuw commando kan starten.
Ctrl+DVerlaat de huidige shell sessie, dit staat gelijk met exit of logout.
Ctrl+EPlaatst de cursor aan het einde van de lijn.
Ctrl+HGenereert een backspace, verwijdert het karakter links van de cursor.
Ctrl+LMaakt de terminal leeg, zodat je prompt bovenaan komt te staan.
Ctrl+RZoek in de commandogeschiedenis
Ctrl+ZBevriest een programma.
Pijltjes naar links en rechtsBeweeg de cursor over en weer op de commandolijn.
Pijltjes omhoog en omlaagOverloopt de commandogeschiedenis. Ga naar de lijn die je opnieuw wilt uitvoeren, editeer eventueel en druk Enter.
Shift+PageUp en Shift+PageDownOverloop de terminalbuffer om tekst te zien die al van het scherm gerold is.
TabCommando- of bestandsnaam vervolledigen. Als er meerdere mogelijkheden zijn, zal de shell je met een geluidje of een flits waarschuwen.
Tab TabToont de mogelijke bestandsnamen of commandonamen om te vervolledigen.

[Opmerking]Trager van de Live CD

Afhankelijk van de snelheid van je CD speler, kan de reactietijd van de shell en van de toepassingen op het bureaublad nogal tegenvallen, zelfs al gebruik je alle features. Als we eenmaal de Ubuntu omgeving echt geïnstalleerd hebben, zal alles veel sneller gaan.

Voorbeeld bestandsnamen vervolledigen

Vooral de laatste twee lijnen uit bovenstaande tabel verdienen misschien een beetje extra uitleg. Je wilt bijvoorbeeld in de map /usr/share/doc gaan. Dan typ je cd /uTabshTabdoTab. Bij de laatste Tab hoor je een biep of zie je een flits, omdat er meerdere mogelijkheden zijn. We zijn echter waar we wilden zijn, de shell heeft de bestandsnaam vervolledigd en je kan Enter drukken.

Mogelijke bestandsnamen tonen

Willen we nu in openoffice.org2-help-en-us gaan, dan volstaat het om cd op te typen. Het systeem vervolledigd tot “open”, maar daarna zijn er meerdere mappen waarvan de naam met dezelfde karakters begint. Druk nu twee keer Tab om de mogelijkheden te laten zien. Druk dan o, de shell vervolledigd tot “openoffice.org”. Typ nu 2-h gevolgd door Tab en we zijn waar we wilden geraken. Niet vergeten nu nog Enter te drukken, natuurlijk. Het systeem werkt eveneens voor commandonamen.

De betekenis van de andere combinaties komt later nog uitgebreider aan bod.

En nu oefenen! Je moet uiteindelijk sneller met de shell kunnen werken dan je de commando's kan uitspreken. Probeer vanaf nu alles te volgen en de oefeningen te doen en daarbij zo weinig mogelijk karakters in te typen.