Terug naar Linux


IV Werken met Linux

Twee manieren
De DOS-manier: de bash shell
Shellscripts
Procesbeheer
De Windows-manier: de windowmanagers
Programma's

Twee manieren
Werken met Linux kan op tenminste twee manieren. Simpel gezegd: het kan op een DOS manier en het kan op een Windows manier.
De DOS manier werkt met DOS-achtige omgevingen, genaamd 'csh' , 'tcsh', 'ash' of 'bash' of hoe die shells verder allemaal heten mogen. U typt dus gewoon witte letters in op zwarte schermen zoals onder het oude DOS gebruikelijk was.
De Windows manier werkt met een Windows-achtige omgeving, genaamd XWindows of KDE of AfterStep of Enlightenment ... Allemaal (gratis!) grafische omgevingen vergelijkbaar met de schermen die u van Windows gewend bent. Bij de Windows manier kunt u trouwens ook shell vensters openen, waarin u weer de gebruikelijke Linux/Unix commando's kunt invoeren. Allemaal nogal vaag en abstract? Hier komt de praktijk!

Terug naar begin

De DOS-manier: de bash shell
Zoals hierboven al vermeld. bestaan er vele shells in Linux. Om uit te maken welke shell op een bepaald moment actief is geeft u het commando 'echo $SHELL'. Tien tegen een reageert Linux met een regeltje als '/bin/bash' om aan te geven, dat u in de 'bash' shell zit.
De letters 'bash' staan voor 'Bourne Again SHell'. Onder RedHat Linux is dit de standaard shell. Het gaat om een verbeterde versie van de 'Bourne Shell' ('bsh') en vandaar dus ook de grappige naam. Natuurlijk zou ik hier hele verhalen kunnen houden over de 'C Shell' ('csh') of over de 'Turbo C Shell' ('tcsh'), maar voor een praktische inleiding als dit stuk moet zijn, is dat niet zinnig. Leest u daar dus de handboeken maar op na!

Het belangrijkste dat je over een shell kunt zeggen, is waarschijnlijk dat je er zogenaamde 'shell-programma's' of 'shell-scripts' mee kunt draaien. U kunt deze scripts vergelijken met de ouderwetse DOS batchfiles. Alleen zijn ze onder Linux veel krachtiger dan onder DOS ooit het geval was!!

Als u op uw Linux RedHat machine ingelogd bent, komt u automatisch in uw eigen shell terecht. Drie scripts regelen de shell-zaken voor u en zijn dus de moeite van een nadere kennismaking waard: profile in de /etc directory en .bashrc en .bash_profile in de /home/~user directory. Omdat de laatste twee bestandsnamen met een punt ('.') beginnen, verschijnen ze niet in een normale directory-listing. Maar ze bestaan dus wel degelijk! Laadt u elk van deze scripts maar eens in de editor 'pico' om ze nader te bekijken.

Het bestand 'profile' in /etc wordt door de systeembeheerder opgezet en door alle bash gebruikers uitgevoerd bij het inloggen. Hier staan dus de instellingen voor alle bash shells gezamenlijk.

In .bashrc kunt u o.a. uw eigen (alleen voor uw eigen shell geldende) 'aliassen' regelen. D.w.z. uw eigen afkortingen voor een aantal standaard commando's. Een alias, die ik zelf veel gebruik is 'ls --color' als standaard uitvoering voor het 'ls' commando. Je krijgt de directory listings dan in kleur (= meer informatief!) op het scherm te zien, zonder dat je telkens de uitgebreide optie hoeft in te typen. Zo zijn er meer nuttige aliassen denkbaar. Bijvoorbeeld aliassen voor het koppelen en ontkoppelen van de cdrom en/of de floppy. U zou ze b.v. 'cdin' en 'cduit' kunnen noemen en deze nieuwe commando's in .bashrc de juiste inhoud kunnen geven. Zie daarvoor hoofdstuk III.

In het script .bash_profile kunt u o.a. een aantal shell-variabelen instellen. De PATH variabele bijvoorbeeld, die (net als in DOS) aangeeft in welke directories naar commando's gezocht gaat worden. Krijgt u dus de bekende melding 'command not found', dan kunt u in .bash_profile proberen de PATH variabele wat uit te breiden. Andere standaard variabelen voor uw shell zijn bijvoorbeeld 'SECONDS' (= aantal seconden dat uw shell actief is), 'HOME' (= de volledige padnaam van uw homedirectory) en 'LOGNAME' (= uw inlognaam).

Terug naar begin

Shellscripts
Een shellscript is een verzameling shell commando's in een (uitvoerbaar gemaakt) tekstbestand. Bij aanroepen werkt het script een voor een de commando's af net alsof u ze handmatig via het toetsenbord had ingevoerd. Zoals gezegd: zeer vergelijkbaar met de DOS batchbestanden. Zo maak ik zelf gebruik van een klein script genaamd 'netwerk' dat nagaat of verschillende netwerkmachines bereikbaar zijn. In plaats van alle 'ping' regels zelf te moeten invoeren, kan ik volstaan met het aanroepen van 'netwerk'.

Het bestand ziet er als volgt uit:

#!/bin/bash

ping -c 3 dns
ping -c 3 gateway
ping -c 3 mailhost.snelnet.nl

U maakt het aan met een editor als het eerder genoemde 'pico'. De eerste regel van het script geeft aan dat het hier om een 'bash' script gaat. Het is goed dat soort commentaar er even bij te zetten. Anders weet u bij meer ingewikkelde scripts echt niet meer voor welke shell u het ook alweer geschreven had. Als u echt ingewikkelde werkscripts gaat maken doet u trouwens verstandig met de hoeveelheid commentaar nog aanzienlijk uit te breiden. Rekent u er maar niet op dat u een half jaar na dato nog begrijpt wat u met dat ene script ook al weer probeerde te bereiken! O ja ... wat bovenstaand script betreft: u moet natuurlijk wel zorgen dat de IP nummers van de genoemde computernamen in het bestand /etc/hosts zijn bekend gesteld! Anders weet Linux niet waar hij heen moet pingen.

Na het wegschrijven van het bestand, moet u het natuurlijk nog wel 'uitvoerbaar' maken. Dat doet u door de 'executable' vlag te zetten. U gebruikt in dit geval dan het commando 'chmod u+x netwerk'. Daarna verschijnt het bestand met een groene kleur in de directory listing (als u tenminste de optie --color hebt gebruikt) en kunt u het bestand uitvoeren. Als u het script vanuit elke directory op uw computer wilt gebruiken, moet u het script b.v. in de directory /bin zetten of de PATH varabele even uitbreiden. Het zou in dit verband te ver voeren om een complete uitleg te geven van het maken van shellscripts. Leest u daarvoor weer een van de handboeken. Maar weest u ervan verzekerd, dat u Linux middels scripts bij wijze van spreken zelfs kunt leren touwtje springen!

Terug naar begin

Procesbeheer
Linux is niet alleen een multiuser, maar ook een multitasking operating system. Multiuser wil zeggen, dat meerdere gebruikers het systeem tegelijk kunnen gebruiken. En multitasking wil zeggen, dat Linux daarbij meerdere taken tegelijk afhandelt. Misschien denkt u dat dat laatste niet zo bijzonder is, omdat een systeem als Win95 dat immers ook kan (of tenminste zou moeten kunnen)? Dan zal het een hele verrassing voor u zijn te ontdekken, dat multitasking bij Linux ook echt werkt! ;-)

Strikt genomen is er verschil tussen een programma en een proces. Een proces is in Unix/Linux taalgebruik een taak, die wordt uitgevoerd. Zo kun je een draaiend programma aanduiden als een proces. Aan de andere kant kan een enkel programma verschillende processen starten. Linux houdt al die processen uit elkaar door elk proces een ID nummer te geven: een PID. U kunt een lijst van de nu draaiende processen op het scherm krijgen via het commando 'ps'. Probeert u dat maar eens uit. Een dynamische lijst van processen (die dus telkens wordt aangepast) krijgt u te zien via het commando 'top'. Met deze commando's kunt u gemakkelijk vaststellen welk PID aan welk proces is toebedeeld.

Als u de naam van een comando in de shell intypt, draait het aldus gestarte programma 'op de voorgrond'. U kunt dat zien doordat de cursor verdwijnt tijdens het draaien van het programma. Tijdens die periode kunt u in dezelfde shell even niets anders doen. Vooral bij het draaien van programma's die lang duren en weinig interessante uitvoer hebben (bijvoorbeeld het in hoofdstuk III genoemde 'updatedb')is dat vervelend. U zou dan een hele tijd moeten zitten niksen. Dat kan voorkomen worden door het betreffende programma zogenaamd 'op de achtergrond' te draaien. Dat doet u door het ampersand teken ('&') aan het commando toe te voegen. Probeert u maar eens de invoer 'updatedb &'. Terwijl de harddisk draait (en het programma dus kennelijk bezig is!), komt de cursor onmiddellijk weer terug en kunt u nieuwe commando's invoeren!

Met het commando 'nice' kunt u de prioriteit van een proces verlagen. Als u superuser bent, kunt u de prioriteit ook verhogen. Zie de documentatie bij het commando. Met 'renice' kunt u de prio van een lopend proces veranderen.

Wilt u een proces stoppen dan kan dat met het 'kill' commando. U dient daarbij dan wel het PID op te geven van het proces dat u wilt 'killen'. Die behoefte zou zich kunnen voordoen als een bepaald programma is vastgelopen. Netscape heeft daar soms nog wel eens een handje van. U hoeft dan niet (zoals bij Win95 al te vaak het geval is), de hele computer te resetten! U kunt met Alt-Functietoets een nieuw scherm openen, met 'ps' kijken wat het PID van het onwillige programma is en dat vervolgens met 'kill <PID>' om zeep helpen. Mocht het programma desondanks blijven draaien dan kunt u met 'kill -9 <PID>' de zaak definitief beslechten. De optie '-9' geldt namelijk als het signaal: onvoorwaardelijk verwijderen uit het geheugen! Werkt altijd!

Terug naar begin

De Windows manier: de windowmanagers
En dan nu eindelijk de Windows manier om met Linux te werken. In verschillende opzichten werkt dat gemakkelijker. Programma's zijn slechts een druk op de (muis)knop verwijderd van uitvoering en u hoeft niet allemaal moeilijke programma opties handmatig in te voeren. Keerzijde is, dat u ietsje verder van de machine af staat. Keerzijde daarvan is weer, dat dat voor heel velen ook juist de bedoeling is!!

Standaard windowmanager van RedHat is XWindows. U kunt deze grafische shell starten door het commando startx in te typen. Mocht de zaak bij de eerste keer niet (goed) draaien dan zit het er dik in, dat de videokaart niet goed is ingesteld. U kunt dat alsnog regelen via het programma 'XF86Setup', dat zich bevindt in de directory /usr/X11R6/bin. Behalve de videokaart kunt u daar trouwens ook de instellingen voor nog andere zaken regelen, zoals monitor, muis, toetsenbord, enzovoorts.
Het scherm van XWindows ziet er redelijk acceptabel uit, maar is toch niet echt meer van deze tijd te noemen. Keerzijde is, dat u deze omgeving kunt gebruiken met een hoeveelheid intern geheugen van 16 Mb. Voor de modernere interfaces KDE en AfterStep heeft u minimaal 32 Mb geheugen nodig. Enlightenment doet zijn verheven naam alle eer aan (en is beslist de meest indrukwekkende grafische omgeving!), maar heeft dan ook minimaal 64 en liever nog meer Mbs nodig.

Behalve XWindows wordt ook AfterStep bij een standaard RedHat 5.2 geleverd. Als u (na het draaien van XWindows) kiest voor het afsluiten van de grafische shell, kunt u zien dat er ook de mogelijkheid is om te schakelen naar Afterstep. Probeert u dat maar eens. AfterStep is een beetje anders (dan XWindows), maar wel heel erg aardig!

De omgevingen van KDE en van Enlightenment zult u zelf moeten downloaden en installeren. Dat is minder ingewikkeld dan u zou denken. Vooral als u (zoals bij KDE) gebruik kunt maken van .rpm pakketten. Zie voor de installatie van dergelijke pakketten de opmerkingen in hoofdstuk II. Bij de installatie van KDE dient u overigens wel goed te letten op de juiste volgorde van de verschillende .rpms. Leest u de bijbehorende installatieteksten vooral goed door!

Het kan ook zijn, dat u alleen pakketten met de extensie .tar of .gz of (gecombineerd!) .tgz op Internet kunt vinden. In dat geval zult u de zaak moeten uitpakken met de programma's 'tar' en/of 'gunzip'. De commando's daarvoor zijn 'tar -zxvf <pakketnaam.tar>' en 'gunzip <pakketnaam.gz>'. Denkt u er wel om, dat

Terug naar begin

Programma's
Bruikbare programma's kunt u te kust en te keur op Internet vinden. Kijkt u maar eens op http://rufus.w3.org of een van de vele mirrors. Of gaat u eens kijken op http://www.nllgg.nl . Ook is een site als http://www.linuxresources.com zeer de moeite waard. En er zijn er nog veel meer.

Een pakket dat eigenlijk een must is, is StarOffice 5.0, dat voor particulier gebruik gratis opgehaald en geinstallerd mag worden. Het beslaat 60 Mb in ingepakte vorm, en 150 Mb in uitgepakte staat. Maar dan heb je ook een compleet professioneel pakket op je machine staan, bestaande uit tekstverwerker, presentation manager, database, spreadsheet, enzovoorts.

Een heel redelijke WYSISWYG HTML editor is Amaya, alhoewel de editor van StarOffice sommige zaken wat soepeler afhandelt!
En een bruikbare kleine tekstverwerker is Maxwell, als u niet voor elk wissewasje onmiddellijk het StarOffice kanon wilt afvuren.
Ook van ICQ hoeft u onder Linux niet verstoken te blijven. Zelf ben ik erg tevreden over Licq. Zoekt u onder de L maar eens op http://rufus.w3.org
Een programma als FileRunner heeft zelfs nog wat Amiga reminiscenties en is een heel bruikbare hulp bij bestandsbeheer.
Inmiddels is ook WordPerfect 8.0 gratis voor particuliere Linuxers verkrijgbaar en naar mijn eigen ervaringen werkt het perfect!

Laat niemand dus de fabel geloven, dat er voor Linux geen goede professionele software zou zijn. Het is er bij stapels tegelijk!

Terug naar begin

Terug naar Linux