Dit artikel is vervangen door DIT artikel.
Werken met de terminal
Geschikt voor: Versie: -
1. Inleiding
Het terminalvenster of terminalprogramma wordt binnen Linux veel gebruikt om allerlei soorten taken mee uit te voeren. Men maakt hierbij doorgaans gebruik van bash, een “shell”, vergelijkbaar met MS-DOS, maar veel krachtiger. Deze shell maakt gebruik van tekstcommando's om acties uit te voeren. Het is een heel krachtig hulpmiddel waarmee veel taken sneller uitgevoerd kunnen worden dan met een grafische gebruikersomgeving.
Voor beginnende gebruikers kan het terminalvenster eerst nogal ingewikkeld lijken, maar er is veel documentatie beschikbaar op internet (onder andere via het Nederlandstalige forum en Google). In deze how-to zullen de basisbeginselen van het terminalvenster aan de hand van voorbeelden worden uitgelegd.
Het openen van de terminal gebeurt in GNOME via Toepassingen -> Hulpmiddelen -> Terminalvenster
Het resultaat is een venster met een regel tekst. In dit geval:
bb@bartek:~$
bb is de gebruikersnaam van de huidige gebruiker van de computer.
bartek is de computernaam.
~ is de huidige map waarin de shell zich bevindt. ~ is een 'afkorting' die Linux gebruikt voor 'de home map van de huidige gebruiker'. Dit is meestal gelijk aan '/home/gebruikersnaam', in dit geval dus /home/bb.
$ dit wil zeggen dat de gebruiker een normale gebruiker van het systeem is. De systeembeheerder 'root' heeft hier een #-teken staan.
In het algemeen geeft deze regel tekst dus het volgende weer: Ik zit op mijn computer in mijn home map als normale gebruiker.
Met de KDE desktop kan het Terminalprogramma via K Menu -> Systeem -> Konsole gestart worden.
De werking van commando's ingegeven in het terminalvenster (Ubuntu) of het terminalprogramma (Kubuntu) is gelijk. Wel zijn er verschillen in de functionaliteit van de menubalk.
2. Enkele simpele commando's
2.1. cd (Change Directory)
We zitten nu dus in onze Terminal in onze home map. Nu wil ik naar een andere map gaan. Ik wil dus van map veranderen (change directory). Dat doe ik met het commando: cd. Stel ik wil naar mijn map Downloads gaan.
Na het ~teken is de map Downloads verschenen. Ik kan nu aanpassingen gaan doen in die map.
Tip: Bij het intoetsen van de naam van een map of bestand de kan de tab-toets je helpen: toets alleen de eerste paar letters in en druk op de tab-toets. De naam zal worden aangevuld. In dit voorbeeld kan het voldoende zijn om alleen de letters Do in te toeten en dit met de tab-toets aan te vullen tot Downloads. Zijn de ingetoetste letters niet uniek genoeg om de naam automatisch aan te vullen kan je nog eens op de tab-toets drukken om alle mogelijkheden te zien.
2.2. ls (List)
Laten we eens kijken wat er in die map zit. Dan vragen we gewoon een lijst op met het commando: ls
We krijgen nu een lijst te zien met wat er zich allemaal in mijn Downloads map bevindt. Merk ook op dat er verschillende kleuren gebruikt worden. Blauw voor mappen, roze voor foto's, oranje voor zip bestanden, ....
2.3. mkdir (Make DIRectory)
In mijn map Downloads zitten teveel foto's die ik graag in een aparte map had staan. Laten we nu eens een map “foto” aanmaken met het commando mkdir (make directory)
Ik heb nu een map "foto" aangemaakt door het commando mkdir foto in te typen. En als we eens terug in de lijst gaan kijken zien we dat de map foto erbij gekomen is.
2.4. cp (CoPy)
Nu wil ik graag de foto linux.jpg kopiëren en hem ubuntu.jpg noemen. Ik ga dus niet alleen 't bestand kopiëren maar ook de naam veranderen. Let op:
bb@bartek:~/Downloads$ cp -v linux.jpg ubuntu.jpg `linux.jpg' -> `ubuntu.jpg' bb@bartek:~/Downloads$
Kijk nu eens in de map en er zit een foto ubuntu.jpg in. Wat doet die -v nu in het commando?
Het commando is: cp [optie] <naam van bestand> <nieuw bestand>
De optie hoeft niet ingevuld te worden maar is soms wel makkelijk. In dit geval wordt -v gebruikt wat betekent dat de terminal alles moet melden wat hij doet. Maar er zijn meer opties. Voor een lijst met opties doen we in de Terminal: cp --help
bb@bartek:~$ cp --help Gebruik: cp [OPTIE]... [-T] BRON BESTEMMING of: cp [OPTIE]... BRON... MAP of: cp [OPTIE]... -t MAP BRON... Kopiëer BRON naar BESTEMMING, of meervoudige BRON(nen) naar MAP. Verplichte argumenten bij lange opties zijn ook verplicht bij korte opties. -a, --archive zelfde als -dpR --backup[=CONTROL] maak een reservekopie van elk bestaand bestemmingsbestand -b zoals --backup maar accepteert geen argument --copy-contents kopiëert de inhoud van speciale bestanden indien recursief -d zelfde als --no-dereference --preserve=link -f, --force als een bestaand bestemmingsbestand niet geopend kan worden, verwijder het dan en probeer opnieuw -i, --interactive vraag toestemming voor het overschrijven -H volg de symbolische koppelingen in de commandoregel -l, --link maak koppelingen naar bestanden in plaats van te kopiëren -L, --dereference volg altijd symbolische koppelingen -P, --no-dereference volg nooit symbolische koppelingen -p zelfde als --preserve=mode,ownership,timestamps --preserve[=ATTR_LIST] handhaaf de gespecificeerde attributen (standaard: mode,ownership,timestamps), indien mogelijk additionele attributen: links, all -c same as --preserve=context --no-preserve=ATTR_LIST handhaaf de gespecificeerde attributen niet --parents gebruik volledige naam van bronbestand onder MAP -R, -r, --recursive kopieer mappen recursief --remove-destination verwijder ieder bestaand bestemmingsbestand voordat een poging gedaan wordt het te openen (in contrast met –force) --sparse=WHEN controle over het aanmaken van schaarse bestanden --strip-trailing-slashes verwijder schuine strepen achteraan van elk BRON argument -s, --symbolic-link maak een symbolische koppeling in plaats van kopiëren -S, --suffix=SUFFIX vervang het gebruikelijke achtervoegsel voor reservekopieën -t, --target-directory=MAP verplaats alle BRON-argumenten naar MAP -T, --no-target-directory behandel BESTEMMING als een normaal bestand -u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -x, --one-file-system stay on this file system -Z, --context=CONTEXT set security context of copy to CONTEXT --help toon deze helptekst en beëindig programma
Pffffff wat een lange lijst zeg ... Maak u niet ongerust je moet dat echt niet van buiten weten tenzij je programma's wilt gaan maken. Wij houden ons gewoon bezig met het doorgronden van die rare tekens die we moeten kopiëren en plakken in onze terminal.
We hebben nu een kopie gemaakt en gaan hem verplaatsen naar een map "foto".
2.5. mv (MoVe)
Willen we de foto ubuntu.png verplaatsen naar de map foto doen we dat met mv (move): mv [optie] <bestand> <map>
bb@bartek:~/Downloads$ mv -v ubuntu.jpg foto `ubuntu.jpg' -> `foto/ubuntu.jpg' bb@bartek:~/Downloads$
Het mv commando geeft telkens aan wat hij doet met de optie -v
2.6. rm (ReMove)
Dezelfde werkwijze geldt ook voor rm (remove), ik wil de map foto weer verwijderen: rm [optie] <bestand of map>
bb@bartek:~/Downloads$ rm -r foto bb@bartek:~/Downloads$
Heb je gezien dat ik nu voor -r als optie gekozen heb in plaats van -v. Ik doe dat omdat ik ook de volledige inhoud van alle eventueel onderliggende mappen wil verwijderen. Het mv commando heeft mij nu niet verteld over wat hij gedaan heeft. Een combinatie van beide opties is ook mogelijk:
bb@bartek:~/Downloads$ rm -rv foto `foto/ubuntu.jpg' verwijderd map verwijderd: `foto' bb@bartek:~/Downloads$
Waar vind ik die lijst met opties?
bb@bartek:~$ rm --help
Met de optie --help geven veel commando's een helptekst. Een andere manier om informatie over een commando op te vragen is via de "manual pages", ofwel de MANpages met de opdracht man gevolgd door het commando.
bb@bartek:~$ man rm
Ook het man commando kan voor vele commando's gebruikt worden om (engelstalige) documentatie op te vragen. Je verlaat het man scherm door op de q te drukken.
2.7. history
Met de toets "pijltje omhoog" kunnen de eerder gegeven commando's worden teruggehaald. Het commando history geeft een overzicht van de eerder gegeven commando's.
De 1e kolom bevat een regelnummer. Typ een uitroepteken en het regelnummer om dezelfde opdracht te herhalen.
Een tip is om het commando te gebruiken in combinatie met grep. Zie het volgende voorbeeld waarin ik zoek naar alle opdrachten met het zoekwoord foto.
2.8. find
Een handig commando is find. Stel je hebt een foto, film, iso-bestand, ... op je pc geplaatst en je weet niet meer waar je die nu ergens gestoken hebt. De terminal weet raad. Voer het commando: find ~ -iname in gevolgd door de naam van het bestand. Voorbeeld ik zoek de foto 475.jpg die zich ergens op mijn pc bevindt:
Ziezo, gevonden. Blijkbaar zat hij dus in de map "foto's".
2.9. xkill
Om dit hoofdstuk af te sluiten nog een leuk weetje:
Om een commando onverwachts af te breken kan je de toetsencombinatie Ctrl+C proberen.
CTRL+C stopt een actie die je op dat moment laat uitvoeren door de Terminal!
Een ander handig commando waar je via uw terminal een venster of programma kunt sluiten dat om één of andere reden vast is gelopen is xkill. Gewoon het commando xkill invoeren en dan met uw muis boven het venster of programma gaan staan. Merk op dat uw cursor nu de vorm heeft van een doodshoofd op een piratenvlag, leuk.
3. Beveiliging
3.1. Permissies
Aan alle bestanden en mappen in een Linux systeem worden permissies meegegeven zodat niet iedere gebruiker alles zomaar kan lezen, beschrijven, wissen of uitvoeren.
Alleen de eigenaar kan deze permissies bepalen en veranderen. Van bestanden en mappen die je maakt ben je uiteraard zelf de eigenaar.
Van systeembestanden is de eigenaar meestal de gebruiker root.
Goed om te weten: de gebruiker root kan van alle bestanden de permissies bepalen ongeacht wie de eigenaar is! Ook kan de gebruiker root een andere eigenaar toewijzen met het commando chown. Dat maakt de gebruiker root zo belangrijk op een Linux systeem.
Om bestanden te delen met meerdere gebruikers kunnen er groepen van gebruikers gemaakt worden. Bij de installatie van ubuntu geef je een gebruikersnaam op. Voor die gebruikersnaam wordt er ook altijd een groep gemaakt waar (alleen) deze gebruiker lid van is.
3.2. Permissies opvragen
Om de permissies van een bestand of map op te vragen kan de -l aan de ls opdracht meegegeven worden:
De eerste 10 posities geven dan de permissie aan. Het eerste teken is het type bestand:
- is eennormaal bestand
d is een map
l is een verwijzing (link)
De volgende 9 tekens zijn verdeeld in 3 groepjes. De eerste groep zijn de permissies voor de eigenaar, de tweede groep bevat de groepspermissies en de laatste groep de permissies voor alle overige gebruikers.
eigenaar groep overige rwx rwx rwx
Iedere groep bestaat weer uit drie posities. Deze geven de permissies voor deze groep aan:
r mag bestand lezen
w mag bestand wijzigen of wissen
x mag bestand uitvoeren (programma's)
- permissie ontbreekt
Voor mappen is de betekenis vergelijkbaar:
r mag opvragen welke bestanden in de map zitten (lezen)
w mag bestanden in de map toevoegen, wissen of wijzigen (schrijven)
x toegang tot de map
3.3. Permissie voorbeelden
3.3.1. Voorbeeldbestand
Een voorbeeld van een bestand:
bb@bartek:~/downloads/foto$ ls -l -rw-r--r-- 1 bb bb 23506 2006-05-22 21:35 ubuntu.jpg
De eerste 10 posities zijn -rw-r--r--:
postitie: betekenis
- 1 -: normaal bestand
- 2 r: eigenaar (bb) mag het bestand lezen
- 3 w: eigenaar mag het bestand beschrijven of overschrijven
- 4 -: eigenaar mag het bestand NIET uitvoeren (het is GEEN programma)
- 5 r: de groep (bb, de standaard eigen groep) mag het bestand lezen
- 6 -: de groep mag het bestand niet beschrijven
- 7 -: de groep mag het bestand niet uitvoeren
- 8 r: alle overige gebruikers mogen dit bestand lezen (publiek leesbaar bestand)
- 9 -: alle overige gebruikers mogen dit bestand niet beschrijven of wissen
- 10 -: alle overige gebruikers mogen dit bestand niet uitvoeren.
3.3.2. Voorbeeldmap
Het volgende voorbeeld is een veel voorkomende instelling voor mappen. Voor mappen is de eerste positie een d.
bb@bartek:~/downloads$ ls -l foto drwxr-xr-x 2 bb bb 4096 2006-05-22 21:35 foto
Als eigenaar (bb) kunnen bestanden aan deze map worden toegevoegd en ook gewijzigd of gewist. Andere gebruikers hebben wel toegang maar kunnen niets wissen of toevoegen. Dit is een veel gebruikte instelling ook voor systeemmappen.
3.4. Permissies wijzigen
Met het commando chmod kunnen permissies gewijzigd worden. Alleen de eigenaar van een bestand of map OF de gebruiker root kan de permissie wijzigen.
In het commando chmod wordt gebruik gemaakt van letters om aan te geven voor wie de nieuwe permissies gelden. De letters hebben de volgende betekenis
u - eigenaar van bestand of map
g - groeps permissie
o - overige gebruikers
a - alle gebruikers
Ook een combinatie van letters is toegestaan.
Na deze letter komt een plus (+) teken om permissies toe te voegen en een min (-) teken om te verwijderen en als laatste de permissie waar het om gaat.
Wis bijvoorbeeld alle lees permissies voor de groep en overige gebruikers om de foto ubuntu.jpg te beveiligen:
bb@bartek:~/downloads/foto$ chmod go-r ubuntu.jpg bb@bartek:~$ ls -l ubuntu.jpg -rw------- 1 bb bb 23506 2006-05-22 21:35 ubuntu.jpg
Of als iedereen een bepaald programma of script uit moet kunnen voeren, in dit voorbeeld script1 genoemd, moeten de permissies zo ingesteld worden:
bb@bartek:~$ chmod a+rx script1 bb@bartek:~$ ls -l script1 -rwxr-xr-x 1 bb bb 140 2006-05-22 21:35 script1
4. Werken met Root rechten
4.1. Map structuur
Nu heb je waarschijnlijk gemerkt dat er nog meer mappen zijn dan de /home/bb folder ... De basis-map, de map waar alle mappen inzitten waaronder de /home/bb map, heet / (ja enkel dat schuinestreep-teken) maar kunnen wij daar ook komen met onze terminal? Zeer zeker, kijk nu eens goed.
Zie je dat het ~tekentje plots vervangen is door een / ?
Nu zit ik dus in de folder waar ook alle linux mappen zitten. 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/menu.lst
- /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. Zoals mijn map /home/bb/
- /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:
bb@bartek:~$ cat /proc/cpuinfo # geeft informatie over de cpu bb@bartek:~$ 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 NIET voor user, maar voor Unix System Resources. Het is dan ook niet de bedoeling om te rommelen in deze map!
- /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.
Van hieruit kunnen we bijvoorbeeld eens gaan kijken wat er zoal in de map /usr/share/pixmaps zit.
cd /usr/share/pixmaps
Tof, nu gaan we hier eens lekker wat gaan tweaken om Ubuntu nog gaver te maken. Dat kan maar niet zomaar. Hier kan ik nu wel in mappen zitten bladeren en lezen maar ik kan niets wijzigen ... De Terminal staat u toe om alles te veranderen en verbeteren in uw eigen map, niet in mappen van andere gebruikers of in Linux mappen. Ubuntu is niet zoals bij Windows waar de gebruiker automatisch Administrator rechten krijgt. Dat is ideaal voor virussen die dan uw systeem om zeep kunnen helpen. Bij Ubuntu moet je uzelf eerst de root rechten geven om hier veranderingen in aan te brengen..
4.2. sudo (SuperUserDo)
Dit is een veel gebruikt commando die je gaat terugzien.
Voor alle wijzigingen die je aan uw systeem wil aanbrengen zal je sudo moeten gebruiken. sudo staat voor SuperUserDO. Het commando wordt dan uitgevoerd onder de gebruikersnaam root, de beheerder.
Iedere keer dat je de Terminal opstart en een commando invoert dat met sudo begint zal door de Terminal beantwoord worden met een vraag naar uw wachtwoord. Dit is het wachtwoord dat u ook gebruikt bij het inloggen. Dat paswoord wordt gedurende 15 minuten opgeslagen, in die tijd mag je zonder paswoord sudo gebruiken. Verstrijkt deze 15 minuten dan zal hij bij een nieuwe sudo opnieuw om een paswoord vragen. Tijdens het intypen van je wachtwoord zie je niets op het scherm verschijnen. Dit is normaal, zo kunnen mensen die over je schouder meekijken niet je wachtwoord zien. Ook zien ze dan niet uit hoeveel tekens je wachtwoord bestaat. Op die manier is het moeilijker om het wachtwoord te raden.
Waarschuwing: Doe nooit rm -rf / met sudo ervoor geschreven in uw Terminal. Of uw harde schijven worden gewist. Merk op dat ik bewust de sudo na 't commando schrijf, voor iemand 't in zijn hoofd haalt dat ff copy -> paste te doen! Via het commando sudo kunnen we root worden, dat doen we zo:
bb@bartek:~$ sudo -i Password: root@bartek:/home/bb# exit exit bb@bartek:~$
We geven het commando sudo -i, hij vraagt uw gekende paswoord en plots staat er dat we root zijn. Hij zegt dat root nu op mijn computer zit in de /home/bb map. Zoals ik helemaal in het begin heb uitgelegd is dit teken # het bewijs dat we nu root zijn. We kunnen uitloggen als root door 't commando exit in te voeren. We zien dat we nu terug gewoon gebruiker zijn. Het is aan te raden dit niet te vaak te doen omdat je onbeperkt zomaar alles kan wijzigen op je pc met soms zware gevolgen. Beter is om elke keer als je iets wil wijzigen het commando sudo gebruikt.
Maar met sudo alleen ben je uiteraard niets, je moet dat altijd combineren met een ander commando. We zullen nu eens een aantal commando's gaan bespreken.
4.3. sources.list
Met ingang van Ubuntu 7.04 (Feisty Fawn) staan de pakketbronnen Universe en Multiverse standaard aan. Met andere woorden: dit hoofdstuk kan je dan gerust overslaan. Ook als je versie 8.04 LTS (Hardy Heron) gebruikt, is het niet nodig dit gedeelte te volgen.
Er staan verschillende mappen in / waar we zonder Root te zijn niet aankunnen. Toch is er 1 belangrijke lijst waar in fora en how-to's naar verwezen wordt: De sources.list. Dat is een bestand waarin staat met welke repositories Ubuntu verbinding mag maken om programma's en updates te installeren. Laten we deze eens openen:
gksudo gedit /etc/apt/sources.list
De mijne ziet er zo uit:
# Automatically generated sources.list # http://www.ubuntulinux.nl/source-o-matic # # If you get errors about missing keys, lookup the key in this file # and run these commands (replace KEY with the key number) # # gpg --keyserver subkeys.pgp.net --recv KEY # gpg --export --armor KEY | sudo apt-key add - # Ubuntu supported packages (packages, GPG key: 437D05B5) deb http://be.archive.ubuntu.com/ubuntu dapper main restricted deb http://be.archive.ubuntu.com/ubuntu dapper-updates main restricted deb http://security.ubuntu.com/ubuntu dapper-security main restricted # Ubuntu supported packages (sources, GPG key: 437D05B5) deb-src http://be.archive.ubuntu.com/ubuntu dapper main restricted deb-src http://be.archive.ubuntu.com/ubuntu dapper-updates main restricted deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted # Ubuntu community supported packages (packages, GPG key: 437D05B5) deb http://be.archive.ubuntu.com/ubuntu dapper universe multiverse deb http://be.archive.ubuntu.com/ubuntu dapper-updates universe multiverse deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse # Ubuntu community supported packages (sources, GPG key: 437D05B5) deb-src http://be.archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://be.archive.ubuntu.com/ubuntu dapper-updates universe multiverse deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse
Die #-tekens zijn comments. Dat wil zeggen dat onze Terminal die regel overslaat, het zijn regels die als uitleg voor de gebruiker bedoelt zijn.
Ubuntu gebruikers in Nederland gebruiken nl.archive.ubuntu.com in plaats van be.archive.ubuntu.com.
Door het toevoegen van de universe en multiverse bronnen (repositories) aan sources.list krijg je toegang tot duizenden softwarepakketten. De backports bronnen kan je toevoegen om nieuwe pakketten of een nieuwe versies van bestaande pakketten te downloaden. Zonder de backports bronnen toe te voegen kan je wel beveiligings wijzigingen downloaden via de -security bron.
4.4. apt-get
Met apt-get (Advanced Package Tool - Get) kun je een heleboel dingen doen. Bijvoorbeeld, laten we onze pc eens updaten.
bb@bartek:~$ sudo apt-get update Password:
Je krijgt nu een hele waslijst te zien van pakketlijsten die ververst worden De update is net hetzelfde als het verversen van de pakketlijst in Synaptic. Nu is deze opdracht op zich redelijk nutteloos omdat je alleen maar een lijst ververst hebt. Om die veranderingen ook uit te voeren zullen we een upgrade moeten uitvoeren.
sudo apt-get upgrade
Hij vraagt nu geen paswoord omdat we dat net al gedaan hebben, verlaten we de Terminal dan zullen we ons paswoord opnieuw moeten melden bij een volgende Terminal bezoek. De opdracht upgrade uitvoeren zonder update is uiteraard ook nutteloos vermits hij eerst moet weten wat er verandert is aan de pakketlijsten voor hij die kan uitvoeren. Het is mogelijk deze 2 commando's in 1 keer uit te voeren:
sudo apt-get update && sudo apt-get upgrade
Die && vertelt mijn systeem dat hij eerst moet updaten en dan dan upgraden. Hij voert eerst het eerste commando uit, en als er geen fouten zijn voorgekomen daarna het tweede commando.
4.5. apt-cache
Ubuntu is heel leuk maar ik zoek nog een paar programma's die beter bij mijn noden passen. Maar hoe weet ik nu welke programma's ik zo kan afhalen? Daar weet de Terminal ook wel raad mee:
apt-cache search <zoekwoord>
Vervang nu <zoekwoord> door iets dat je precies wil. (bijvoorbeeld Chess, media, office, ...) Hou er rekening mee dat sommige lijstjes wel eens erg lang kunnen zijn. er zijn ongeveer 18.000 pakketten beschikbaar bij Ubuntu. Zorg dat je zo gericht mogelijk kunt zoeken. Heb je ook gemerkt dat ik nu geen sudo meer gebruikte? Ik verander namelijk niets aan mijn systeem.
Is de lijst te lang kan die door een bladerprogramma (less) bekijken met behulp van het | teken:
apt-cache search <zoekwoord> | less
Bladeren kan met de spatiebalk en de pijltjes. Het programma verlaat je met de q toets.
Of je kan de lijst verkorten door een filterprogramma (grep) te gebruiken.
apt-cache search <zoekwoord> | grep <filterwoord>
Bijvoorbeeld:
apt-cache search video | grep multimedia
Nu heb je een programma gevonden, VLC bijvoorbeeld, maar je weet niet of dit wel is wat je zoekt, je wil ook niet zomaar alles installeren en verwijderen tot je het juiste programma gevonden hebt. Laat de Terminal het vertellen:
apt-cache show vlc
Nu krijg ik opnieuw een hele bladzijde uitleg met heel wat nuttige zaken.
4.6. install
VLC ziet er veelbelovend uit, laten we dat eens proberen te installeren.
sudo apt-get install vlc
Super gemakkelijk toch? Maar kunnen wij die media-player ook opstarten vanuit de Terminal? Gewoon de naam van dat programma intypen is voldoende. Probeer maar:
bb@bartek:~$ vlc VLC media player 0.8.4 Janus
Tataaa! Leuk, de speler staat er en ik kan muziek en filmpjes beluisteren en bekijken. In de Terminal staat er ook wat uitleg bij? Dat is vooral handig wanneer er iets fout loopt met het programma. Dan geeft hij ook de fout code op en kun je proberen met Google een oplossing te zoeken voor 't probleem. Dat kan zijn een ontbrekende codec of een verouderd bibliotheek bestand.
Let wel op als je nu de Terminal afsluit, sluit je ook VLC af. VLC zit nu ook gewoon in Toepassingen -> Audio en Video. Start je via het icoontje kan je gewoon weer verder werken met uw Terminal.
4.7. remove
Nu ja, VLC is ook niet dat wat we zochten en we willen het weer verwijderen:
sudo apt-get remove vlc
Om alle sporen van vlc te wissen moeten ook alle instellingen verwijderd worden. Deze blijven normaal gesproken aanwezig op je systeem, maar zijn makkelijk te verwijderen:
sudo apt-get --purge remove vlc
Met de optie --purge geef je de opdracht om het programma volledig te verwijderen.
4.8. aptitude
Als alternatief voor apt-get en apt-cache kan aptitude gebruikt worden. Zonder opties geeft aptitude op de terminal een menuscherm. Gebruik het commando aptitude -h voor enige nederlandstalige hulp en opsomming van opties.
4.9. dpkg (DebPacKaGe)
Stel dat we nu Frostwire willen installeren. Maar dat zit niet in de lijst van Ubuntu ... Geen nood, op de site van FrostWire vinden we een Ubuntu/Debian versie die we kunnen downloaden (www.frostwire.com). Maar 't is een .deb-bestand.
Hoe gaan we dat installeren? We downloaden het programma op onze desktop. Het snelste is om nu te dubbelklikken op het bestand, maar het kan ook via de terminal. En met onze terminal gaan we eerst naar de Desktop.
cd Desktop
We moeten immers aan de Terminal vertellen in welke map hij FrostWire moet gaan zoeken. Nu moeten wij dit paketje enkel nog uitpakken en installeren:
sudo dpkg -i FrostWire-4.10.9-1.i586.deb
dpkg zorgt ervoor dat het uitgepakt wordt en de code -i zorgt ervoor dat het pakket zich nu automatisch zal installeren. Het gekende commando voor de andere opties: dpkg --help. We vinden FrostWire nu terug in Toepassingen -> Internet.
Maar hallo, moeten wij dat echt helemaal intypen? Nee dat moet niet, er zit een handigheidje in de Terminal, je kan met de Tab de Terminal laten raden welk bestand je precies wil hebben. Typ gewoon de eerste paar letters correct en druk dan op Tab. De volledige naam staat er nu. Gewoon enter drukken en klaar.
Je kunt met dpkg ook zien welke pakketten er nu geïnstalleerd staan:
sudo dpkg -l "gnome*"
Dit commando geeft een lijst met alle paketten die met gnome beginnen en die op het systeem staan en met welke versie. Het begin van de regel geeft met (ii) aan dat het geinstalleerd is of met (un) dat het een bekend pakket is maar dat die niet op het systeem staat.
Verder kun je met dpkg ook zien welke bestanden een pakket op je systeem heeft gezet:
sudo dpkg -L telnet
Hiermee kun je snel een goed beeld krijgen van wat waar nu voor dient bij Ubuntu. Natuurlijk zitten deze opties ook in Synaptic maar die is weer onbruikbaar als je via ssh in een puur server systeem zit aangelogd.
4.10. chown (CHange OWnership)
Dit is een commando waarmee je de eigenaar van een bestand of map kan veranderen. Om te weten wie de huidige eigenaar is van een map zullen we eerst eens kijken wat de Terminal daar over te zeggen heeft met het commando ls -l
Met de -l achter het commando ls krijgen we meer info over de bestanden en mappen. In de 3de kolom zien we wie de eigenaar is van die map/bestand.
Nu zit hier toevallig een foto die ik zeker niet per ongeluk mag wissen of aanpassen. Ik wil dat root daar eigenaar van wordt. Het commando werkt als volgt: sudo chown <nieuwe eigenaar> <bestand of map>
bb@bartek:~$ sudo chown root 475.jpg Password: bb@bartek:~$
Laten we eens even controleren of de rechten inderdaad naar root zijn overgegaan:
Yep, de foto 475.jpg is veranderd van eigenaar. Van bb naar root. In mijn home/ map vind ik dan de bewuste foto terug met een hangslotje erboven:
4.11. gksudo nautilus
Tot slot nog dit: Voor wie het werken met de terminal toch nog wat omslachtig vind is er nog een grafische manier van werken. Invoeren in de Terminal:
gksudo nautilus
Kijk nu wel uit wat je hebt plots root rechten gekregen over al uw mappen, inclusief diegene die belangrijk zijn voor een goede werking van Ubuntu. Crasht je systeem dan is 't op eigen risico.
Merk op dat we nu gksudo gebruiken in plaats van sudo. Met gksudo starten we grafische programma's in Ubuntu met root rechten. In Kubuntu gebruiken we kdesu.
5. tools
“Goed gereedschap is het halve werk”
5.1. vi
Een bekende editor voor het terminalscherm is vi. De vi (of vim) editor is een echte terminal editor en maakt GEEN gebruik van de grafische interface. Dit maakt deze editor zeer bruikbaar bij een server installatie. De vi editor staat bekend als lastig maar ook als zeer goed. Er zijn zeer veel (soms ingewikkelde) vi-opdrachten maar om te beginnen met vi zijn slechts een paar opdrachten van belang.
Start de editor met de opdracht vi:
vi bestandsnaam
Om vi toestscombinaties te geven druk je achtereenvolgend (dus NIET gelijktijdig) op de volgende toetsen:
- escape + dubbele punt + q + uitroepteken om te stoppen ZONDER op te slaan.
- escape + dubbele punt + w + q om te stoppen en de wijzigingen WEL op te slaan.
- escape + a om tekst toe te voegen
- escape + schuine streep(/) + tekst om naar een bepaalde tekst te zoeken
Verder werken de pijltjes toetsen, de Home, de End, de page-down en page-up toetsen zoals je verwacht.
5.2. nano
nano is een editor die veel eenvoudiger is dan vi. Je hebt iets minder mogelijkheden, maar voor nieuwe gebruikers werkt nano veel fijner.
5.3. Midnight Commander
Midnight Commander, mc, is een kloon van het bekende Norton Commander (nc). Je kan heel veel commando's via menu's uitvoeren. Het werken via een menu is handig als je 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 kopieëren (F5). Dit is ook te gebruiken voor netwerkbestanden via ftp of ssh of voor windows computers via smb en ook voor ingepakte bestanden.
Midnight Commander is onderdeel van de universe pakketbron. Deze moet zijn toegevoegd aan /etc/apt/sources.list. Kijk elders in deze wiki voor het toevoegen van pakketbronnen.
Installeer Midnight Commander 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:
sudo mcedit /etc/apt/sources.list
Nog een tip:
sudo mc
Pas op, je krijgt zo root rechten.
5.4. Info over je PC
Je kan via een aantal commando's belangrijke info krijgen over je PC. Dit is vooral handig wanneer je bijvoorbeeld een nieuwe webcam of draadloze netwerkaart aangeschaft hebt. Deze commando's vind je op deze pagina.
6. Lijst met commando's
Een volledig lijst met commando's hier neerschrijven zou wat gekkenwerk zijn, er bestaan een paar goede sites met info over al de verschillende commando's zoals deze: http://www.ss64.com/bash/ en http://www.linuxdevcenter.com/linux/cmd/.
7. Afsluiter
Je hebt nu een beeld van wat er zoal mogelijk is met de Terminal. Het is echt niet de bedoeling dat iedere nieuwe Ubuntu gebruiker de commando's uit zijn hoofd moet kennen, het belangrijkste is dat je ongeveer weet wat er zal gebeuren met je pc van zodra je een bepaald commando ingeeft. Heb je een probleem dan is Google en het Nederlandstalig forum de aangewezen plek om een oplossing ervoor te verkrijgen en dan is het enkel een kwestie van een paar simpele copy -> paste bewegingen om het in orde te krijgen.