Werken met de Terminal
Geschikt voor: | |
Versie: | Vanaf 12.04 LTS |
Waarom?
Linux heeft verschillende grafische interfaces waarmee u door wat muisklikken veel kan bereiken zonder veel documentatie te lezen. De traditionele Unix omgeving waar Linux (en dus Ubuntu) op gebouwd is werkt met ingetypte opdrachtregels. Dit is nog steeds de snelste en krachtigste manier om met Linux te werken maar vereist enige tijd om te begrijpen hoe deze opdrachtregels werken.
Soms, met name voor systeem configuratie taken, is het beter om een terminalvenster te gebruiken.
Iedere Ubuntu gebruiker heeft wel eens ergens iets gelezen als
sudo asjemenou iets -w -a -t ~/IetsmetLetters_en_streepjes.punt
Vaak wordt er aangenomen dat hiervoor bekend is hoe het terminalvenster werkt. En zo lastig is het niet om een terminalvenster te openen en iets te typen! Maar het helpt als u:
- weet hoe de toetsen in een terminalvenster werken en u eerder ingetypte opdrachten kan aanpassen.
- wat basis Linux/terminalvenster opdrachten kan gebruiken.
Dit artikel
- Dit artikel geeft een inleiding tot de basis terminalvenster opdrachten
- Het is NIET bedoeld om een complete gids voor het Linux terminalvenster te worden
- Het gebruik van de terminalvenster wordt gezien als aanvulling op de grafische programma's van Ubuntu.
Opdrachtnamen zijn vetgedrukt.
Opdrachten die ingetypt kunnen worden zijn "vet tussen aanhalingstekens"
Let op dat het juist gebruiken van hoofd- en kleine-letters belangrijk is in een terminalvensteropdracht. Bijvoorbeeld: User, user en USER zijn voor het terminalvenster verschillende namen.
Start een terminalvenster
Ubuntu Unity
Unity is de standaard werkomgeving van Ubuntu 12.04. Maakt u nog geen gebruik van Unity maar Gnome, kijk dan verderop.
De eenvoudigste manier om een terminalvenster te openen is met de "zoeken" na het indrukken van de dash (knop linksboven in het scherm). Maar u kan ook op de dash drukken en kiezen voor "Meer toepassingen" en vervolgens "meer resultaten weergeven" in het onderdeel "Geïnstalleerd". Een derde manier is om voor "Meer toepassingen" te kiezen en dan in de rechterbovenhoek "Alle applicaties" te gebruiken. U ziet dan een lijst waarin u kan kiezen voor "Hulpmiddelen" en dan "Terminalvenster".
De manieren om in Unity een terminalvenster te starten zijn:
- Dash → Zoek naar Terminalvenster
- Dash → Meer toepassingen → 'meer resultaten weergeven' → Terminalvenster
- Dash → Meer toepassingen → Alle toepassingen → Hulpmiddelen → Terminalvenster
- Toetsenbord sneltoets: Ctrl + Alt + T
Gnome
Gnome is de klassieke werkomgeving in Ubuntu 12.04 (Precise Pangolin) en de standaard werkomgeving in oudere versies zoals Ubuntu 10.04 LTS (Lucid Lynx).
Toepassingen menu → Hulpmiddelen → Terminalvenster.
Xfce (Xubuntu)
Applications menu → Accessoiries → Terminal.
KDE (Kubuntu)
KMenu → Systeem → Terminal (Konsole).
Terminal opdrachten
sudo
Opdrachten uitvoeren met beheerdersrechten. Door voor een opdracht het woord sudo te plaatsen wordt deze uitgevoerd met extra rechten. Dit is bijvoorbeeld nodig om systeem instellingen te veranderen. Het terminalvenster vraagt dan om het wachtwoord. Als het wachtwoord wordt ingetypt is dit niet zichtbaar in het terminalvenster, ook geen sterretjes ofzo. Toch wordt het wachtwoord wel degelijk gecontroleerd!
Opdrachten voor Bestandsbeheer
'~' Om het typen te beperken kan in opdrachten het teken '~' worden gebruikt in plaats van de "Persoonlijke mapnaam" (/home/naam).
cd: De cd opdracht kan gebruikt worden om een andere map te gebruiken. Het terminalvenster start in de "Persoonlijke map". Voorbeelden:
Ga naar de hoofdmap (root), "cd /"
Ga naar de Persoonlijke map, "cd ~" of korter "cd"
Om naar een bovenliggende map te gaan, gebruik "cd .."
Om naar de vorige map te gaan, "cd -"
Om naar een bepaalde map te gaan kan een pad naar deze map worden opgegeven. Bijvoorbeeld "cd /var/www" gaat naar de submap 'www' in de map '/var'. Nog een voorbeeld, "cd ~/Bureaublad" gaat naar de persoonlijke map 'Bureaublad'.
cp: De cp opdracht maakt een kopie van een bestand. Bijvoorbeeld "cp bestand testbestand" maakt een kopie van bestand 'bestand' met de naam 'testbestand'. Om een gehele map te kopiëren gebruik: "cp -r map testmap" (de -r optie staat voor recursief).
ls: De ls opdracht toont de bestanden in een map. Er zijn opties voor deze opdracht om meer informatie te tonen zoals bestandsomvang, aanmaak datum en rechten. Bijvoorbeeld: "ls -l ~" toont uitgebreide informatie over de bestanden in de Persoonlijke map. Met een -a optie, "ls -a", toont deze opdrachte ook de "verborgen" bestanden.
nano bestandsnaam start het programma nano om het bestand met de naam bestandsnaam te wijzigen. Het programma nano kan worden afgesloten met de toetscombinatie Ctrl+X. Als er wijzigingen zijn gemaakt wordt gevraagd of deze opgeslagen moeten worden.
man: Met de man opdracht kan de handleiding (Engelstalig: manual) worden gelezen. Probeer "man man"voor de handleiding van de man opdracht zelf.
Kijk voor meer informatie over de opdracht man in het hoofdstuk ""Man" en hulp"
mkdir: De mkdir opdracht maak een nieuwe map. Bijvoorbeeld "mkdir muziek" maakt een map met de naam 'muziek'.
mv: De mv opdracht verplaatst een bestand naar een andere map of wijzigt de naam van het bestand. Voorbeelden: "mv bestand testbestand" hernoemd 'bestand' in 'testbestand'. "mv bestand ~/Bureaublad" verplaatst bestand met de naam 'bestand' naar de map van het Persoonlijke "Bureaublad" maar met dezelfde naam. Om de naam te veranderen moet een nieuwe bestandsnaam in de opdracht worden opgegeven, bijvoorbeeld "mv bestand ~/Bureaublad/testbestand"
pwd: De pwd opdracht toont de mapnaam waarin de terminal werkt (pwd staat voor het Engelstalige "print working directory"). Voorbeeld: "pwd" in de map van het Bureaublad geeft "~/Bureaublad". Tip: de het Gnome terminalvenster geeft deze informatie ook in de titel van het terminalvenster.
rm: Gebruik deze opdracht om een bestand of map te wissen.
rmdir: Gebruik een rmdir opdracht voor het wissen van een lege map. Gebruik rm -r om een map met inhoud recursief te wissen.
Opdrachten voor systeem informatie
df: De opdracht df toont het schijfgebruik van gekoppelde partities. De opdracht "df -h" wordt vaak gebruikt - het gebruikt megabyte (M) en gigabyte (G) in plaats van diskblokken.(-h Engels: "human-readable")
du: De opdracht du toont het schijfgebruik voor (sub) mappen. Veel gebruikte opties zijn -s voor een samenvatting (Engels: summary) en -h voor een leesbaar overzicht. Bijvoorbeeld:
naam@ubuntu-nl:~$ du /boot 224 /boot/grub 13108 /boot naam@ubuntu-nl:~$ du -sh /boot 13M /boot
free: Met de opdracht free kan het geheugen gebruik worden opgevraagd. "free -m" toont het geheugengebruik in megabyte, voor de huidige computers een bruikbare grootheid.
ifconfig: toont informatie over de netwerk interfaces.
lsb_release -a: Met de -a optie geeft de lsb_release opdracht informatie over de geinstalleerde Linux distributie. Bijvoorbeeld:
naam@ubuntu-nl:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04 Release: 12.04 Codename: precise
top: De opdracht top geeft een beeld van de activiteiten op het Linux systeem en hoeveel computerbronnen zoals CVE, RAM geheugen en swap geheugen in gebruik zijn. Het top scherm wordt doorlopend ververst. Om top te stoppen druk op "q".
uname -a: Een uname opdracht met de -a optie geeft alle systeem informatie zoals systeemnaam en gebruikte versie van de Linux kernel.
Een nieuwe gebruiker toevoegen
"sudo adduser gebruikersnaam" maakt een nieuwe gebruiker met de naam "gebruikersnaam". De opdracht vraagt om een wachtwoord voor de nieuwe gebruiker in te stellen. Om een wachtwoord van een gebruiker te wijzigen kan de opdracht "sudo passwd gebruikersnaam" worden gebruikt.
Map structuur
De hoofdmap, de map waar alle mappen inzitten, heet / (enkel een schuinestreep-teken).
Deze hoofdmap bevat de volgende submappen:
- /bin is een map met commando's als cp en mv.
- /boot is de map met bestanden om de computer op te starten. Hier staat bijvoorbeeld het boot menu in /boot/grub/grub.cfg
- /dev is een map met apparaat beschrijvingen om de hardware in je systeem te kunnen gebruiken.
- /etc is de plek voor configuratie bestanden die voor het hele systeem geldig zijn zoals de configuratie van X windows in /etc/X11/xorg.conf.
- /home is de basis map voor alle gebruikersmappen.
- /lib is de map met programma bibliotheken en onderdelen van het Ubuntu besturingssysteem.
- /lost+found is een speciale map. Als er onverwachts een probleem is met de harde schijf dan kan er incidenteel een bestand corrupt raken. Daarom controleert Ubuntu regelmatig de harde schijf en plaatst corrupte bestanden in deze map.
- /media is de map waar verwijzingen komen naar tijdelijke media zoals cdrom of usb-stick.
- /opt is een optionele map voor overige bestanden bijvoorbeeld de Picasa foto-software (linux versie) van Google.
- /proc een map met informatie over systeemprocessen. Bijvoorbeeld:
$ cat /proc/cpuinfo # geeft informatie over de cpu $ cat /proc/meminfo # geeft informatie over het interne geheugen gebruik
- /root is de standaad (“home”) map voor de speciale gebruiker root.
- /sbin is vergelijkbaar met de /bin map maar dan voor commando's om het systeem op te starten of te onderhouden. Deze map bevat bijvoorbeeld het commando ifconfig om het netwerk in te stellen.
- /tmp is de map met tijdelijke bestanden. Ubuntu zorgt ervoor dat deze bestanden weer worden opgeruimd.
/usr is een hoofdmap voor mappen met applicatie software. N.B. usr staat tegenwoordig niet meer voor user, maar voor Unix System Resources (blijkens de oorspronkelijke Unix-manuals van AT&T (Bell Labs) was het aanvankelijk wel een afkorting van 'user').
- /var is de map voor werkbestanden die het systeem gebruikt voor verschillende taken. Deze bestanden veranderen vaak. Denk daarbij aan printer bestanden in /var/spool, logboekbestanden in /var/log maar ook web pagina's in /var/www.
De Terminal staat u toe om alles te veranderen en verbeteren in uw eigen map, niet in mappen van andere gebruikers of in systeem mappen (hiervoor kan sudo worden gebruikt).
Opties
Hoe een opdracht werkt is vaak te beïnvloeden door een optie aan de opdracht mee te geven. Bijvoorbeeld bij de ls opdracht om een lijst van de aanwezige bestanden op te vragen. Aan de ls opdracht kan de -s optie worden meegegeven. "ls -s" zal per bestand ook de bestandsgrote tonen. Een andere optie is de -h optie om de uitvoer ("human readable") te tonen in kilobytes (K), megabytes (M) of gigabytes (G).
Meerdere opties kunnen worden gegroepeerd. Dus "ls -sh" is dezelfde opdracht als "ls -s -h". Ook kennen opties soms een lange en een korte notatie. "ls --size --human-readable" is ook dezelfde opdracht.
Rechten
Met een "-l" optie toont de ls opdracht ook de rechten bestanden en mappen. Voorbeeld:
naam@ubuntu-nl:~$ ls -l total 16 -rw-r--r-- 1 naam naam 814 2009-06-04 23:25 server.crt -rw-r--r-- 1 naam naam 631 2009-06-04 23:25 server.csr -rw-r--r-- 1 naam naam 887 2009-06-04 23:24 server.key -rw-r--r-- 1 naam naam 963 2009-06-04 23:24 server.key.secure
in bovenstaand voorbeeld kan iedereen (eigenaar(user)+groep+overig) de bestanden lezen (r) maar alleen de eigenaar (gebruiker "naam") de bestanden wijzigen (w).
De 1e kolom (10 posities) met de letters 'r' en 'w' (soms ook 'x') geeft informatie over de bestandsrechten.
Deze kolom is opgebouwd uit 3 delen. De 1e drie posities tonen de rechten voor de eigenaar, de volgende drie posities voor de "groepsrechten" en de laatste drie tonen de rechten voor "overige" gebruikers.
bit |
eigenaar |
groep |
overige |
- |
rwx |
rwx |
rwx |
r staat voor leesrechten (Engels: Read) w staat voor schrijfrechten (Engels: Write) x staat voor uitvoerrechten (Engels: eXecute).
De letter x bij een map toont de rechten om deze map binnen te gaan (cd opdracht).
De 1e positie heeft de letter d als het een mapnaam betreft. Deze 1e positie kan soms ook een andere letter bevatten voor bijzondere bestanden.
Rechten kunnen met een terminalvenster opdracht chmod worden gewijzigd. Het wijzigen van rechten kan alleen van bestanden en mappen waarvan de gebruiker de eigenaar is. Zoniet, dan is het wijzigen van rechten alleen mogelijk door gebruik van sudo voorafgaand aan de chmod opdracht.
De chmod opdracht kent 2 vormen:
chmod met letters
Bij het gebruik van letters kunnen rechten worden toegekend met een plus ("+") teken en worden afgenomen met een minus ("-") teken. Geef voorafgaand aan dit teken op voor WIE (u=eigenaar(user),g=groep,o=overigen,a=allen) en na dit teken WELKE rechten (r, w of x). Voorbeelden:
Neem lees- en schrijfrechten AF van andere gebruikers (groepsleden en overige gebruikers) dan de eigenaar van het bestand server.key:
chmod go-rw server.key
Geef iedereen leesrechten op bestand server.crt:
chmod a+r server.crt
Maak een tekstbestand met terminalopdrachten uitvoerbaar:
chmod +x script.txt
de terminalopdrachten uit dit tekstbestand kunnen dan (als een programma) worden uitgevoerd met de opdracht:
./script.txt
chmod met cijfers
De chmod opdracht kan ook met cijfers werken. Bijvoorbeeld:
Geef alleen lees- en schrijfrechten aan de eigenaar van server.key:
chmod 600 server.key
Geef iedereen leesrechten op bestand server.crt:
chmod 666 server.crt
De achtergrond achter deze cijfer methode valt buiten dit artikel.
"Man" en hulp
man opdracht, info opdracht en opdracht --help zijn de belangrijkste opdrachten voor hulp in een terminalvenster.
Bijna alle terminalvenster opdrachten en Linux programma's hebben een man (Engels voor manual, handleiding) bestand. Om dat bestand te tonen kan de opdracht "man opdracht" worden gebruikt. De man pagina geeft uitleg over de werking en te kiezen opties. Soms geeft de man aan het einde een voorbeeld of een verwijzing naar meer informatie. Bijvoorbeeld de opdracht "man ls" toont de manual (Engelstalige handleiding) voor de ls opdracht.
Navigeer door de man pagina met de pijltjes naar beneden en omhoog of met de PageDown en PageUp toetsen. Sluit de man pagina met "q"
"man man" toont de man pagina van de man opdracht zelf. Een goede inleiding tot de man informatie!
"man intro" geeft een Engelstalige introductie voor het gebruik van terminalopdrachten.
Heel veel opdrachten kennen ook de optie -help (of kortweg --h) voor een korte beschrijving van de opdrachten de de opties voor deze opdracht. Bijvoorbeeld "ls --help" (de ls opdracht kent geen korte notatie van --help, de -h opties heeft hier een andere functie!).
Zoeken naar "Man" pagina's
Als het niet duidelijk is welke opdracht of programma gebruikt kan worden kunnen de man pagina's worden doorzocht.
man -k zoekterm zoekt naar zoekterm. Bijvoorbeeld "man -k wireless" geeft opdrachten die iets met "wireless" te maken hebben.
man -k zoekterm is hetzelfde als apropos zoekterm.
Tips
Fraaie "Man" Pagina's
Gebruikers met Konqueror kunnen de man pagina's op een hele fraaie manier lezen door het adres man:/opdracht met Konqueror te bezoeken.
Opdrachten plakken
Vaak wordt voorgesteld een (complexe) terminalvenster-opdracht te knippen en te plakken in het terminalvenster. Maar ctrl+v werkt niet!
Toch is de oplossing eenvoudig: de middelste muisknop. Bij een muis met een wiel is het wiel de middelste knop. Bij een muis met 2 knoppen kunnen beide knoppen tegelijk worden ingedrukt. Alternatief is in de menubalk Bewerken → Plakken te gebruiken of Shift+Insert.
Bespaar typewerk
pijltje omhoog of ctrl+p |
Blader terug door eerder ingegeven opdrachten. |
|
pijltje omlaag of ctrl+n |
Blader vooruit door eerder ingegeven opdrachten. |
|
Enter |
Voer een met bladeren gevonden opdracht uit (Ctrl+c breekt het bladeren af) |
|
tab |
Een hele nuttige toets! Het vult opdrachten of bestandsnamen aan. Zijn er meerdere mogelijkheden dan worden deze getoond als nogmaals op tab wordt gedrukt. |
|
ctrl+r |
Zoekt in eerder ingegeven opdrachten. Type het eerste deel van de opdracht tot de eerder ingegeven opdracht is gevonden. Druk op Enter om de opdracht nogmaals uit te voeren. |
|
history |
De history opdracht toont een lijst met de eerder ingegeven opdrachten. Voor iedere opdracht wordt een nummer n gegeven. Type !n om deze opdracht uit te voeren. Gebruik "history | less" om door de lijst met opdrachten te bladeren. Gebruik "history | grep zoekterm" om de opdrachten te filteren. |
Tekst wijzigen
De muis werkt niet in een terminalvenster. Gebruik de toetsen pijltje naar links en rechts om met de aanwijzer over de opdrachtregel te gaan om de opdracht te wijzigen.
Op de plaats van de aanwijzer kan ingetypte tekst worden ingevoegd, om eerder ingetypte tekst te overschrijven druk op de Ins toets.
ctrl+a of Home |
Verplaats de aanwijzer naar het begin van de regel. |
|
ctrl+e or End |
Verplaats de aanwijzer naar het einde van de regel. |
|
ctrl+b |
Verplaats de aanwijzer naar het einde van het woord. |
|
ctrl+k |
Wis de rest van de opdrachtregel. |
|
ctrl+u |
Wis de opdrachtregel tot aan de aanwijzer. |
|
ctrl+w |
Wis het woord voor de aanwijzer. |
Meer terminalvensters
Een opdracht voor de terminalvenster kan ook via Alt+F2 worden opgegeven.
Er kunnen meerdere terminalvenster gelijktijdig worden geopend. In meerdere vensters of als tabblad.
tools
“Goed gereedschap is het halve werk”
nano
Een eenvoudig terminalvensterprogramma om tekstbestanden te maken of te wijzigen is nano.
Sluit nano met de toetsen Ctrl+x. Druk op n om te sluiten zonder de wijziging op te slaan. Druk op j om de wijziging wel op te slaan, eventueel onder een andere naam.
Midnight Commander
Midnight Commander, mc, is een kloon van het bekende Norton Commander (nc). Men kan heel veel commando's via menu's uitvoeren. Het werken via een menu is handig als men alle opdrachten nog niet precies weet te typen. Omdat er 2 mappen gelijktijdig afgebeeld worden is het eenvoudig om mappen en bestanden te verplaatsen (functietoets F6) of te kopiëren (F5). Dit is ook te gebruiken voor netwerkbestanden via ftp of ssh of voor windows computers via smb en ook voor ingepakte bestanden.
Installeer Midnight Commander (uit de Universe pakketbron) met de opdracht:
sudo apt-get install mc
Tijdens het gebruik van mc kunnen nog steeds commando's worden ingegeven en uitgevoerd op de onderste regel.
Tip: Druk op Ctrl toets en de letter o om te schakelen tussen mc en het achterliggende scherm.
Het pakket bevat een ingebouwde bestandeditor, mcedit, die met functietoets F4 gebruikt kan worden maar ook zelfstandig. Bijvoorbeeld:
sudo mcedit bestandsnaam
Meer Informatie
https://help.ubuntu.com/community/UsingTheTerminal - Dit is vrije vertaling van deze pagina.
http://linuxcommand.org/ - (Engelstalig) basic BASH tutorials, including BASH scripting
http://mywiki.wooledge.org/BashGuide - (Engelstalige) Bash guide, ook voor beginners.