2021 |
\end{urlbox} |
\end{urlbox} |
2022 |
|
|
2023 |
In dit hoofdstuk zullen we een groot aantal dingen bespreken die de |
In dit hoofdstuk zullen we een groot aantal dingen bespreken die de |
2024 |
beginnende \gl\ gebruiker een beetje op weg zal helpen. Tussen de |
beginnende \gl\ gebruiker een op weg zal helpen. Tussen de |
2025 |
theorie staan er enkele commando's ter illustratie die best |
theorie staan er enkele commando's, ter illustratie, die best |
2026 |
allemaal worden uitgeprobeerd om de materie te snappen. |
allemaal worden uitgeprobeerd. |
2027 |
|
|
2028 |
Maak wel dat de commando's niet worden uitgevoerd als root, maar als |
Maak wel dat de commando's niet worden uitgevoerd als root, maar als |
2029 |
gewone gebruiker. Dan kan er niet veel mislopen. |
gewone gebruiker. Dan kan er niet veel mislopen. |
2035 |
\section{Inloggen} |
\section{Inloggen} |
2036 |
|
|
2037 |
De login prompt is altijd het eerste wat we zien als we met een \gl\ |
De login prompt is altijd het eerste wat we zien als we met een \gl\ |
2038 |
systeem willen werken. Daar moet de username en password ingetypt |
systeem werken. Daar moet de username en password ingetypt |
2039 |
worden. Als de username en password kloppen, komt er een |
worden. Als de username en password kloppen, komt er een |
2040 |
welkomst-melding op ons scherm, mislukt het aanmelden dan krijgen we |
welkomst-melding op ons scherm, mislukt het aanmelden dan krijgen we |
2041 |
na enkele seconden opnieuw de kans om in te loggen. |
na enkele seconden opnieuw de kans om in te loggen. |
2081 |
verbindingen zijn met jouw computer. |
verbindingen zijn met jouw computer. |
2082 |
|
|
2083 |
Zoals al opgemerkt in \ref{sshuitleg}, kunnen er mensen via het |
Zoals al opgemerkt in \ref{sshuitleg}, kunnen er mensen via het |
2084 |
netwerk ingelogd zijn op / werken met onze computer. Maar ook zijn |
netwerk ingelogd zijn op/werken met onze computer, maar ook zijn |
2085 |
verbindingen voor bestandsoverdracht mogelijk. Voor de computer |
verbindingen voor bestandsoverdracht mogelijk. Voor de computer |
2086 |
uitgezet wordt, moeten al deze verbindingen netjes worden afgesloten, |
uitgezet wordt, moeten al deze verbindingen netjes worden afgesloten, |
2087 |
anders ontstaat er een kleine chaos op het netwerk. |
anders ontstaat er een kleine chaos op het netwerk. |
2091 |
als voor schrijven. De lees-cache is een stuk werkgeheugen dat wordt |
als voor schrijven. De lees-cache is een stuk werkgeheugen dat wordt |
2092 |
gebruikt om even te `onthouden' wat er als laatste van de schijven is |
gebruikt om even te `onthouden' wat er als laatste van de schijven is |
2093 |
gelezen. Het komt namelijk heel vaak voor dat \'e\'en bepaald stukje |
gelezen. Het komt namelijk heel vaak voor dat \'e\'en bepaald stukje |
2094 |
harde schijf meerdere keren vlak achter elkaar wordt gelezen, en dan |
harde schijf meerdere keren vlak achter elkaar wordt gelezen en dan |
2095 |
is lezen uit het werkgeheugen veel sneller dan van de betreffende |
is lezen uit het werkgeheugen veel sneller dan van de betreffende |
2096 |
schijf (bijvoorbeeld een single-speed cdrom). Het schrijven naar een |
schijf (bijvoorbeeld een single-speed cdrom). Het schrijven naar een |
2097 |
bestand gebeurt vaak in kleine stukjes met steeds een hele korte |
bestand gebeurt vaak in kleine stukjes met steeds een hele korte |
2098 |
tussentijd. Het schrijven van kleine stukjes naar een harde schijf is |
tussentijd. Het schrijven van kleine stukjes naar een harde schijf is |
2099 |
bijzonder tijdrovend, vandaar dat er eerst een tussenopslag in het |
bijzonder tijdrovend, vandaar dat er eerst een tussenopslag in het |
2100 |
geheugen plaatsvindt, in de schrijf-cache. Als er genoeg kleine |
geheugen plaatsvindt, in de schrijf-cache. Als er genoeg kleine |
2101 |
stukjes zijn `gebufferd', worden ze in één keer achter elkaar naar de |
stukjes zijn `gebufferd', worden ze in \'e\'en keer achter elkaar naar de |
2102 |
harde schijf geschreven; de tijd die daarvoor nodig is, is praktisch |
harde schijf geschreven; de tijd die daarvoor nodig is, is praktisch |
2103 |
gelijk aan die voor het schrijven van één klein stukje. De cache wordt |
gelijk aan die voor het schrijven van één klein stukje. De cache wordt |
2104 |
helemaal door de \linux\ kernel geregeld, zelfs de cache-grootte, die |
helemaal door de \linux\ kernel geregeld, zelfs de cache-grootte, die |
2105 |
aangepast wordt aan het geheugengebruik van andere programma's -- met |
aangepast wordt aan het geheugengebruik van andere programma's --- met |
2106 |
64 MB werkgeheugen kan er gemakkelijk 50 MB gebruikt worden voor |
64 MB werkgeheugen kan er gemakkelijk 50 MB gebruikt worden voor |
2107 |
cache. |
cache. |
2108 |
|
|
2123 |
meldingen over het scherm komen en zal het systeem tenslotte |
meldingen over het scherm komen en zal het systeem tenslotte |
2124 |
rebooten. Na die reboot kunnen we de computer uitzetten, bijvoorbeeld |
rebooten. Na die reboot kunnen we de computer uitzetten, bijvoorbeeld |
2125 |
tijdens het testen van het geheugen. Trouwens, als we de computer |
tijdens het testen van het geheugen. Trouwens, als we de computer |
2126 |
niet netjes uitzetten, zul je dat merken ook\ldots Als we \linux\ dan |
niet netjes uitzetten, zul je dat merken ook\ldots Als we dan |
2127 |
weer opnieuw starten, krijgen we een melding als \Begrip{/dev/hda5 was |
weer opnieuw starten, krijgen we een melding als \Begrip{/dev/hda5 was |
2128 |
not cleanly unmounted, check forced}, en dan wordt de hele harde |
not cleanly unmounted, check forced} en dan wordt de hele harde |
2129 |
schijf getest op fouten, die zouden kunnen zijn ontstaan omdat de |
schijf getest op fouten, die zouden kunnen zijn ontstaan omdat de |
2130 |
schrijf-cache nog niet was geleegd. En dat testen kan bij grotere |
schrijf-cache nog niet was geleegd. En dat testen kan bij grotere |
2131 |
schijven meer dan tien minuten gaan duren. |
schijven meer dan tien minuten gaan duren. |
2138 |
Als we ingelogd zijn, kunnen we aan de computer vragen wie hij denkt |
Als we ingelogd zijn, kunnen we aan de computer vragen wie hij denkt |
2139 |
dat we zijn. Type achter de prompt \com{whoami} -- wie ben ik? |
dat we zijn. Type achter de prompt \com{whoami} -- wie ben ik? |
2140 |
|
|
2141 |
Als antwoord verschijnt de naam waarmee je bent ingelogd. |
Als antwoord verschijnt de naam waarmee we zijn ingelogd. |
2142 |
|
|
2143 |
\input{inleiding/whoami} |
\input{inleiding/whoami} |
2144 |
|
|
2151 |
netwerk bezig zijn. |
netwerk bezig zijn. |
2152 |
|
|
2153 |
\section{Het password veranderen} |
\section{Het password veranderen} |
2154 |
Als we ons wachtwoord te zwak vinden, of als we iemand verdenkten van |
Als we ons wachtwoord te zwak vinden, of als we iemand verdenken van |
2155 |
bepaalde zaken, is het verstandig ons wachtwoord te veranderen. Dat |
bepaalde zaken, is het verstandig ons wachtwoord te veranderen. Dat |
2156 |
gaat met het commando \com{passwd}. We moeten eerst ons oude password |
gaat met het commando \com{passwd}. We moeten eerst ons oude password |
2157 |
intypen en dan twee keer het nieuwe. Het nieuwe wachtwoord moet aan |
intypen en dan twee keer het nieuwe. Het nieuwe wachtwoord moet aan |
2168 |
staan. Maar dat kan met een commando uitgevonden worden. Gebruik het |
staan. Maar dat kan met een commando uitgevonden worden. Gebruik het |
2169 |
commando \com{pwd}, van print working directory (huidige |
commando \com{pwd}, van print working directory (huidige |
2170 |
werkdirectory). We zien iets als /home/username. Ja, elke gebruiker |
werkdirectory). We zien iets als /home/username. Ja, elke gebruiker |
2171 |
krijgt z'n eigen directory, zijn home directory (``thuis directory''). |
krijgt z'n eigen directory, zijn \begrip{home directory} (``thuis directory''). |
2172 |
|
|
2173 |
\begin{opgave} |
\begin{opgave} |
2174 |
Wat is je home directory? |
Wat is je home directory? |
2175 |
\end{opgave} |
\end{opgave} |
2176 |
|
|
2177 |
De home directory is het privé-domein van de gebruiker: alleen hij kan |
De home directory is het priv\'e-domein van de gebruiker: alleen hij kan |
2178 |
er bestanden inzetten en weghalen. Bestanden zijn standaard leesbaar |
er bestanden inzetten en weghalen. Bestanden zijn standaard leesbaar |
2179 |
voor iedereen, maar dat kan veranderd worden (zie \ref{chmod}). Er is |
voor iedereen, maar dat kan veranderd worden (zie \ref{chmod}). Er is |
2180 |
ook een tijdelijke directory, \file{/tmp}, waar iedereen in mag schrijven. |
ook een tijdelijke directory, \file{/tmp}, waar iedereen in mag schrijven. |
2231 |
\end{itemize} |
\end{itemize} |
2232 |
|
|
2233 |
We kunnen ook naar de / directory toe gaan, met het commando \com{cd |
We kunnen ook naar de / directory toe gaan, met het commando \com{cd |
2234 |
/} (``cd root''). |
/}. |
2235 |
|
|
2236 |
\begin{opgave} |
\begin{opgave} |
2237 |
Ga naar de / directory en controleer met \com{pwd} of het ook gelukt |
Ga naar de / directory en controleer met \com{pwd} of het gelukt is. |
|
is. |
|
2238 |
\end{opgave} |
\end{opgave} |
2239 |
|
|
2240 |
Nu kunnen we met \com{ls -alF} (zonder de /) de inhoud van de / |
Nu kunnen we met \com{ls -alF} (zonder de /) de inhoud van de / |
2241 |
directory bekijken. We zouden weer terug kunnen gaan met \com{cd |
directory bekijken. We zouden weer terug kunnen gaan met \com{cd |
2242 |
/home/<username>}, maar alleen \com{cd} heeft hetzelfde resultaat. |
/home/$<$username$>$}, maar alleen \com{cd} heeft hetzelfde resultaat. |
2243 |
Met \com{pwd} kunnen we het resultaat weer bekijken. |
Met \com{pwd} kunnen we het resultaat weer bekijken. |
2244 |
|
|
2245 |
\begin{opgave} |
\begin{opgave} |
2272 |
Ga met een enkele \com{cd} weer terug naar de home directory. |
Ga met een enkele \com{cd} weer terug naar de home directory. |
2273 |
\end{opgave} |
\end{opgave} |
2274 |
|
|
2275 |
In de prompt staat blijkbaar de directory, en het `golfje' (`tilde') |
In de prompt staat blijkbaar de directory en het `golfje' (`tilde') |
2276 |
`~' is een afkorting van je home directory. Ofwel ~/bestand is |
`\~{}' is een afkorting van je home directory. Ofwel ~/bestand is |
2277 |
precies hetzelfde als /home/ikke/bestand. |
precies hetzelfde als /home/ikke/bestand. |
2278 |
|
|
2279 |
\begin{opgave} |
\begin{opgave} |
2280 |
Ga naar de \file{/etc} directory en keer dan terug naar de home directory |
Ga naar de \file{/etc} directory en keer dan terug naar de home directory |
2281 |
met \com{cd ~}. |
met \com{cd \~{}}. |
2282 |
\end{opgave} |
\end{opgave} |
2283 |
|
|
2284 |
\section{Het bekijken van een bestand} |
\section{Het bekijken van een bestand} |
2291 |
\end{opgave} |
\end{opgave} |
2292 |
|
|
2293 |
\begin{opgave} |
\begin{opgave} |
2294 |
Doe ook eens \com{cat /etc/inetd.conf}, om \`en van de |
Doe ook eens \com{cat /etc/inetd.conf}, om \'e\'en van de |
2295 |
configuratiebestanden te zien. |
configuratiebestanden te zien. |
2296 |
\end{opgave} |
\end{opgave} |
2297 |
|
|
2306 |
scrollen, het past niet in de scrollback buffer. Voor zulke lange |
scrollen, het past niet in de scrollback buffer. Voor zulke lange |
2307 |
bestanden gebruiken we het commando \com{less}. Dus: \com{less |
bestanden gebruiken we het commando \com{less}. Dus: \com{less |
2308 |
/etc/fb/modes}. Met de Enter gaan we \'e\'en regel verder, met de |
/etc/fb/modes}. Met de Enter gaan we \'e\'en regel verder, met de |
2309 |
spatie een heel scherm, of gebruik de pijltjestoetsen op/ neer, of |
spatie een heel scherm, of gebruik de pijltjestoetsen op/neer, of |
2310 |
PageUp en PageDown. Met Home en End, of `g' en `G', gaan we naar het |
PageUp en PageDown. Met Home en End, of `g' en `G', gaan we naar het |
2311 |
begin en het einde van het bestand. Maar \com{less} kan meer. De toets |
begin en het einde van het bestand. Maar \com{less} kan meer. De toets |
2312 |
`q' bijvoorbeeld sluit meteen af, we hoeven niet eerst de hele tekst te |
`q' bijvoorbeeld sluit meteen af, we hoeven niet eerst de hele tekst te |
2334 |
|
|
2335 |
We zien een typische \gl\ beveiliging: we hebben geen toestemming om |
We zien een typische \gl\ beveiliging: we hebben geen toestemming om |
2336 |
dit bestand te lezen. Er kunnen namelijk geheimen in staan, in dit |
dit bestand te lezen. Er kunnen namelijk geheimen in staan, in dit |
2337 |
geval de ge\"encrypteerde passwords van ons \gl\ systeem. En het is |
geval de ge\"encrypteerde passwords van ons \gl\ systeem en het is |
2338 |
niet de bedoeling dat elke willekeurige gebruiker die wachtwoorden te |
niet de bedoeling dat elke willekeurige gebruiker die wachtwoorden te |
2339 |
weten komt. |
weten komt. |
2340 |
|
|
2341 |
Daarom is dat bestand alleen leesbaar voor de root gebruiker, en voor |
Daarom is dat bestand alleen leesbaar voor de root gebruiker, en voor |
2342 |
niemand anders. En dan is er voor jou als gewone gebruiker totaal geen |
niemand anders en dan is er voor jou als gewone gebruiker totaal geen |
2343 |
enkele manier om de inhoud te weten te komen. Typisch \gl\ security. |
enkele manier om de inhoud te weten te komen. Typisch \gl\ security. |
2344 |
|
|
2345 |
We onderzoeken dit at van naderbij. |
We onderzoeken dit van naderbij. |
2346 |
|
|
2347 |
\begin{opgave} |
\begin{opgave} |
2348 |
Type \com{ls -alF /etc}. |
Type \com{ls -alF /etc}. |
2356 |
|
|
2357 |
Het commando \com{ls /etc/logrotate.d} geeft de inhoud van die |
Het commando \com{ls /etc/logrotate.d} geeft de inhoud van die |
2358 |
directory terug terug. Maar die hele lange bestandsnaam intypen is |
directory terug terug. Maar die hele lange bestandsnaam intypen is |
2359 |
lastig. En ook daar is wat op gevonden. |
lastig. Ook daar is wat op gevonden. |
2360 |
|
|
2361 |
\begin{opgave} |
\begin{opgave} |
2362 |
Type alleen het eerste stuk,\com{ls /etc/log} en druk dan op de |
Type alleen het eerste stuk, \com{ls /etc/log} en druk dan tweemaal |
2363 |
TAB toets. |
op de TAB toets. |
2364 |
\end{opgave} |
\end{opgave} |
2365 |
|
|
2366 |
En zie daar, de shell geeft alle mogelijke bestanden en directorys in |
Zie daar, de shell geeft alle mogelijke bestanden en directoriess in |
2367 |
\file{/etc} die met `log' beginnen. |
\file{/etc} die met `log' beginnen. |
2368 |
|
|
2369 |
\begin{opgave} |
\begin{opgave} |
2373 |
Nu wordt de commandline aangevuld tot 'logrotate.', |
Nu wordt de commandline aangevuld tot 'logrotate.', |
2374 |
|
|
2375 |
\begin{opgave} |
\begin{opgave} |
2376 |
Druk nogmaals op de TAB toets in en we krijgen de resterende |
Druk nogmaals tweemaal op de TAB toets in en we krijgen de resterende |
2377 |
mogelijkheden. Vul nu aan met 'c' en druk nogmaals op |
mogelijkheden. Vul nu aan met 'c' en druk nogmaals op |
2378 |
de TAB toets. |
de TAB toets. |
2379 |
\end{opgave} |
\end{opgave} |
2380 |
|
|
2381 |
Ddan wordt de commandline aangevuld met het ganse woord. Hadden we |
Dan wordt de commandline aangevuld met het ganse woord. Hadden we |
2382 |
aangevuld met een 'd' dan hadden we terug het commando dat we |
aangevuld met een 'd' dan hadden we terug het commando dat we |
2383 |
daarjuist ingevoerd hadden. |
daarjuist ingevoerd hadden. |
2384 |
|
|
2453 |
bewerken. Laten we de message of the day weer eens pakken. |
bewerken. Laten we de message of the day weer eens pakken. |
2454 |
|
|
2455 |
\begin{opgave} |
\begin{opgave} |
2456 |
Copi\"eer de message of the day naar je eigen home dir en geef het |
Kopi\"eer de message of the day naar je eigen home dir en geef het |
2457 |
de naam \Begrip{ae\_test\_file}. |
de naam \Begrip{ae\_test\_file}. |
2458 |
\end{opgave} |
\end{opgave} |
2459 |
|
|
2477 |
kunnen we het met \com{rm ae\_test\_file weggooien}. |
kunnen we het met \com{rm ae\_test\_file weggooien}. |
2478 |
\end{opgave} |
\end{opgave} |
2479 |
|
|
2480 |
We hebben tot nu toe 5 editors gezien: pico, vim, emacs en ae. |
We hebben tot nu toe vier editors gezien: pico, vim, emacs en ae. |
2481 |
|
|
2482 |
\begin{opgave} |
\begin{opgave} |
2483 |
Oefen met iedere editor de volgende bewerkingen: open een |
Oefen met iedere editor de volgende bewerkingen: open een |
2566 |
schijf. In de directory staat niet veel meer dan de naam van dat |
schijf. In de directory staat niet veel meer dan de naam van dat |
2567 |
bestand en de plaats waar het op de harde schijf te vinden is. In \gl\ |
bestand en de plaats waar het op de harde schijf te vinden is. In \gl\ |
2568 |
is het ook mogelijk om twee directory-items naar dezelfde plaats op de |
is het ook mogelijk om twee directory-items naar dezelfde plaats op de |
2569 |
harde schijf te laten wijzen -- dan zijn er dus twee namen voor |
harde schijf te laten wijzen --- dan zijn er dus twee namen voor |
2570 |
\'e\'en bestand. We zeggen dan dat er twee links zijn naar dat |
\'e\'en bestand. We zeggen dan dat er twee links zijn naar dat |
2571 |
bestand. Het commando dat daarvoor gebruikt wordt, is \com{ln}, van |
bestand. Het commando dat daarvoor gebruikt wordt, is \com{ln}, van |
2572 |
link. |
link. |
2592 |
gewoon blijven bestaan, met de gewijzigde inhoud. |
gewoon blijven bestaan, met de gewijzigde inhoud. |
2593 |
|
|
2594 |
\begin{opgave} |
\begin{opgave} |
2595 |
Doe nog eens \com{ln origfile secondfile}; secondfile is dan de |
Verwijder \file{secondfile}. Doe nog eens \com{ln origfile |
2596 |
(eventueel gewijzigde) message of the day. Als we nu |
secondfile}; secondfile is dan de (eventueel gewijzigde) message |
2597 |
achtereenvolgens \com{mv origfile oldorigfile} en \com{cp /etc/issue |
of the day. Als we nu achtereenvolgens \com{mv origfile oldorigfile} |
2598 |
origfile} doen, zal secondfile nog steeds de message of the day |
en \com{cp /etc/issue origfile} doen, zal secondfile nog steeds de |
2599 |
zijn. |
message of the day zijn. |
2600 |
\end{opgave} |
\end{opgave} |
2601 |
|
|
2602 |
Dat hoort ook zo, want secondfile verwijst naar een plaats op de harde |
Dat hoort ook zo, want secondfile verwijst naar een plaats op de harde |
2641 |
|
|
2642 |
Met het commando \com{mkdir testdirectory} (van make directory) kunnen |
Met het commando \com{mkdir testdirectory} (van make directory) kunnen |
2643 |
we een nieuwe subdirectory aanmaken (bekijk met \com{ls -alF}). Met |
we een nieuwe subdirectory aanmaken (bekijk met \com{ls -alF}). Met |
2644 |
\com{cd testdirectory} `duik' je erin en met \com{cd ..} ga je weer |
\com{cd testdirectory} `duiken' we erin en met \com{cd ..} ga we weer |
2645 |
terug. Het weghalen van een lege(!) directory gaat met \com{rmdir |
terug. Het weghalen van een lege(!) directory gaat met \com{rmdir |
2646 |
testdirectory} (van remove directory). Als we de directory niet |
testdirectory} (van remove directory). Als we de directory niet |
2647 |
zelf helemaal willen leeghalen (bijvoorbeeld als er veel |
zelf helemaal willen leeghalen (bijvoorbeeld als er veel |
2648 |
subdirectory's zijn) kun je \com{rm -rf testdirectory} gebruiken. |
subdirectories zijn) kunnen we \com{rm -rf testdirectory} gebruiken. |
2649 |
|
|
2650 |
LET OP: dan worden zonder waarschuwing alle bestanden en |
LET OP: dan worden zonder waarschuwing alle bestanden en |
2651 |
subdirectory's in die directory verwijderd! Denk dus heel goed na voor |
subdirectory's in die directory verwijderd! Denk dus heel goed na voor |
2653 |
mee vernield! |
mee vernield! |
2654 |
|
|
2655 |
\begin{opgave} |
\begin{opgave} |
2656 |
Maak enkele directorys aan in je homedir en verwijder ze terug. |
Maak enkele directories aan in je homedir en verwijder ze terug. |
2657 |
\end{opgave} |
\end{opgave} |
2658 |
|
|
2659 |
\section{Virtuele consoles} |
\section{Virtuele consoles} |
2662 |
daarvan gebruik te maken, zijn de virtuele consoles. |
daarvan gebruik te maken, zijn de virtuele consoles. |
2663 |
|
|
2664 |
\begin{opgave} |
\begin{opgave} |
2665 |
Zorg dat we ingelogd zijn en doe iets als \com{less /etc/fb.modes}, |
Zorg dat we ingelogd zijn, doe iets als \com{less /etc/fb.modes} |
2666 |
en blader er een stukje doorheen. Toets dan LinkseAlt-F2, ofwel ga |
en blader er een stukje doorheen. Toets dan LinkseAlt-F2, ofwel ga |
2667 |
naar de tweede virtuele console. De tekst die we aan het bekijken |
naar de tweede virtuele console. De tekst die we aan het bekijken |
2668 |
waren verdwijnt en er verschijnt een login prompt. Als we weer |
waren verdwijnt en er verschijnt een login prompt. Als we weer |
2669 |
LinkseAlt-F1 toetsen, verschijnt de tekst weer -- op de eerste |
LinkseAlt-F1 toetsen, verschijnt de tekst weer --- op de eerste |
2670 |
virtuele console. Ga met LinkseAlt-F2 weer naar de tweede virtuele |
virtuele console. Ga met LinkseAlt-F2 weer naar de tweede virtuele |
2671 |
console en geef gewoon onze eigen username en password (let ook op |
console en geef gewoon onze eigen username en password (let ook op |
2672 |
`tty2' net boven de login prompt -- dat is de naam van die virtuele |
`tty2' net boven de login prompt --- dat is de naam van die virtuele |
2673 |
console. We krijgen gewoon weer een shell gepresenteerd. Type daar |
console. We krijgen gewoon weer een shell gepresenteerd. Type daar |
2674 |
bijvoorbeeld \com{ls -al /}. En we hebben een directory-listing |
bijvoorbeeld \com{ls -al /}. En we hebben een directory-listing |
2675 |
gekregen terwijl we (op de andere virtuele console) een bestand aan |
gekregen terwijl we (op de andere virtuele console) een bestand aan |
2702 |
vraagteken (`?') onder `TT' staat, is er geen controlling terminal en |
vraagteken (`?') onder `TT' staat, is er geen controlling terminal en |
2703 |
draait het programma `in de achtergrond'. |
draait het programma `in de achtergrond'. |
2704 |
|
|
2705 |
Gebruik \com{ps aux} om een uitgebreide lijst te zien van alle processen |
Gebruik \com{ps aux} om een uitgebreide lijst te zien van alle |
2706 |
die op dit moment draaien (de aux is een switch, maar dan zonder `-' |
processen die op dit moment draaien (de aux is een switch, maar dan |
2707 |
ervoor). En dat blijken er nogal wat te zijn. We zullen ze hier niet |
zonder `-' ervoor). En dat blijken er nogal wat te zijn. We zullen ze |
2708 |
allemaal behandelen, maar neem aan dat ze allemaal nodig zijn om het |
hier niet allemaal behandelen, maar neem aan dat ze allemaal nodig |
2709 |
systeem correct te laten functioneren. In ieder geval is er een proces |
zijn om het systeem correct te laten functioneren. In ieder geval is |
2710 |
met de naam init, dat pid 1 heeft. Dat is het programma /sbin/init dat |
er een proces met de naam init, dat pid 1 heeft. Dat is het programma |
2711 |
als eerste door de kernel is gestart. Init heeft er bijvoorbeeld voor |
/sbin/init dat als eerste door de kernel is gestart. Init heeft er |
2712 |
gezorgd dat er zes virtuele consoles beschikbaar zijn gekomen. Niet |
bijvoorbeeld voor gezorgd dat er zes virtuele consoles beschikbaar |
2713 |
alle processen doen trouwens altijd iets. Sterker nog, de meeste |
zijn gekomen. Niet alle processen doen trouwens altijd iets. Sterker |
2714 |
processen `liggen te slapen' en wachten tot ze `wakker' gemaakt |
nog, de meeste processen `liggen te slapen' en wachten tot ze `wakker' |
2715 |
worden. De shell bash doet niets anders dan wachten tot jij eens een |
gemaakt worden. De shell bash doet niets anders dan wachten tot we |
2716 |
toets in gaat drukken, of wachten tot het programma wat erdoor gestart |
eens een toets in gaan drukken, of wachten tot het programma wat |
2717 |
is, is afgelopen. Dit slapen kunnen we zien aan de letter `S' (van sleep) |
erdoor gestart is, is afgelopen. Dit slapen kunnen we zien aan de |
2718 |
in de kolom `STAT' (van state of status, toestand). De `R' daar is van |
letter `S' (van sleep) in de kolom `STAT' (van state of status, |
2719 |
running, dan is een proces ook echt iets aan het doen -- zoals ps |
toestand). De `R' daar is van running, dan is een proces dat ook echt |
2720 |
zelf, die de lijst van processen aan het presenteren is. Onder `TIME' |
iets aan het doen is --- zoals ps zelf, die de lijst van processen aan het |
2721 |
staat het aantal minuten:seconden dat een programma totaal al heeft |
presenteren is. Onder `TIME' staat het aantal minuten:seconden dat een |
2722 |
ge-run-d sinds het gestart is (kolom `START'), en meestal is dat niet |
programma totaal al heeft gerund sinds het gestart is (kolom |
2723 |
zo lang. |
`START'), en meestal is dat niet zo lang. |
2724 |
|
|
2725 |
\section{Process en job control} |
\section{Process en job control} |
2726 |
\label{jobs} |
\label{jobs} |
2731 |
een signaal kan gebeuren met het commando kill. |
een signaal kan gebeuren met het commando kill. |
2732 |
|
|
2733 |
\begin{opgave} |
\begin{opgave} |
2734 |
Log in op twee virtuele consoles en geef in één het commando \com{more |
Log in op twee virtuele consoles en geef in één het commando |
2735 |
/etc/fb.modes} (dit is een minder krachtige variant van less, die voor |
\com{more /etc/fb.modes} (dit is een minder krachtige variant van |
2736 |
deze demonstratie beter werkt). Zoek op de andere virtuele console |
less, die voor deze demonstratie beter werkt). Zoek op de andere |
2737 |
uit, wat de pid is van more, bijvoorbeeld 274 (gebruik ps u of ps |
virtuele console uit, wat de pid is van more, bijvoorbeeld 274 |
2738 |
aux). Geef vervolgens het commando \com{kill 274} (vul de goede pid in) |
(gebruik \com{ps u} of \com{ps aux}). Geef vervolgens het commando |
2739 |
en kijk op de andere virtuele console wat er is gebeurd. |
\com{kill 274} (vul de goede pid in) en kijk op de andere virtuele |
2740 |
|
console wat er is gebeurd. |
2741 |
\end{opgave} |
\end{opgave} |
2742 |
|
|
2743 |
Juist, het proces more is be\"eindigd, (terminated) ofwel gekilled. Als |
Juist, het proces more is be\"eindigd, (terminated) ofwel gekilled. Als |
2757 |
Dan moeten we vanaf een andere terminal kill gebruiken. (Ctrl-C stuurt |
Dan moeten we vanaf een andere terminal kill gebruiken. (Ctrl-C stuurt |
2758 |
trouwens een INT signaal, dat ongeveer hetzelfde doet als een TERM |
trouwens een INT signaal, dat ongeveer hetzelfde doet als een TERM |
2759 |
signaal). Er zijn ook programma's die niet op het TERM signaal |
signaal). Er zijn ook programma's die niet op het TERM signaal |
2760 |
reageren. Om zo'n programma toch te stoppen, gebruik je het KILL |
reageren. Om zo'n programma toch te stoppen, gebruiken we het KILL |
2761 |
signaal, met \com{kill -KILL $<$pi$d$>}. Met KILL krijgt het programma echter |
signaal, met \com{kill -KILL $<$pid$>$}. Met KILL krijgt het programma echter |
2762 |
geen gelegenheid om zichzelf netjes af te sluiten (met TERM en INT |
geen gelegenheid om zichzelf netjes af te sluiten (met TERM en INT |
2763 |
wel), dus gebruik KILL alleen in noodgevallen. |
wel), dus gebruik KILL alleen in noodgevallen. |
2764 |
|
|
2765 |
Om een programma te pauzeren (stoppen of suspenden) gebruik je Ctrl-Z |
Om een programma te pauzeren (stoppen of suspenden) gebruiken we Ctrl-Z |
2766 |
of \c{kill -STOP $<$pid$>$}. |
of \c{kill -STOP $<$pid$>$}. |
2767 |
|
|
2768 |
\begin{opgave} |
\begin{opgave} |
2769 |
Start de more weer eens en druk op Ctrl-Z. Er komt een regeltje met |
Start \com{more} weer eens en druk op Ctrl-Z. Er komt een regeltje met |
2770 |
`stopped...' op het scherm en je krijgt de bash-prompt weer terug. |
`stopped...' op het scherm en we krijgen de bash-prompt weer terug. |
2771 |
\end{opgave} |
\end{opgave} |
2772 |
|
|
2773 |
Met ps u kunnen we zien dat het proces nog wel bestaat, maar het heeft |
Met \com{ps u} kunnen we zien dat het proces nog wel bestaat, maar het |
2774 |
nu de status `T' (van stopped). Nu kunnen we bijvoorbeeld even |
heeft nu de status `T' (van stopped). Nu kunnen we bijvoorbeeld even |
2775 |
`tussendoor' een directory-listing opvragen met \com{ls -al}. |
`tussendoor' een directory-listing opvragen met \com{ls -al}. |
2776 |
|
|
2777 |
\begin{opgave} |
\begin{opgave} |
2778 |
Ga dan weer terug naar more met het commando \com{fg} (van |
Ga dan weer terug naar more met het commando \com{fg} (van |
2779 |
foreground), geef een paar keer Enter om verder te scrollen. |
foreground), geef een paar keer Enter om verder te scrollen. |
2780 |
\end{opgave} |
\end{opgave} |
2781 |
|
|
2782 |
Met fg wordt het laatst gepauzeerde programma weer opnieuw gestart |
Met \com{fg} wordt het laatst gepauzeerde programma weer opnieuw gestart |
2783 |
(\com{kill -CONT $<$pid$>$} doet het zelfde, maar dat vindt de shell |
(\com{kill -CONT $<$pid$>$} doet het zelfde, maar dat vindt de shell |
2784 |
niet leuk). |
niet leuk). |
2785 |
|
|
2798 |
pseudo-commando als \%2 kan ook bijvoorbeeld job 2 `geforceerd' naar |
pseudo-commando als \%2 kan ook bijvoorbeeld job 2 `geforceerd' naar |
2799 |
de voorgrond gehaald worden. Met iets als \com{kill \%3} wordt job 3 |
de voorgrond gehaald worden. Met iets als \com{kill \%3} wordt job 3 |
2800 |
`afgemaakt', zonder op de voorgrond gekomen te zijn. Hier neemt |
`afgemaakt', zonder op de voorgrond gekomen te zijn. Hier neemt |
2801 |
\%<jobno> dus de plaats in van <pid>. Om alle more jobs netjes af te |
\%$<$jobno$>$ dus de plaats in van $<$pid$>$. Om alle \com{more} jobs |
2802 |
sluiten, geef je een aantal keer fg gevolgd door `q' (van quit). |
netjes af te sluiten, geven we een aantal keer \com{fg} gevolgd door |
2803 |
|
`q' (van quit). |
2804 |
|
|
2805 |
\section{In- en uitvoer van programma's} |
\section{In- en uitvoer van programma's} |
2806 |
\label{ioredirection} |
\label{ioredirection} |
2807 |
|
|
2808 |
De meeste programma's zullen iets op het scherm zetten, zoals |
De meeste programma's zullen iets op het scherm zetten, zoals |
2809 |
bijvoorbeeld cat. Andere programma's verwachten ook dat we wat op het |
bijvoorbeeld \com{cat}. Andere programma's verwachten ook dat we wat |
2810 |
toetsenbord intypen, zoals less. Die uitvoer en invoer gaan normaal |
op het toetsenbord intypen, zoals \com{less}. Die uitvoer en invoer |
2811 |
naar het scherm en van het toetsenbord (de standard output en standard |
gaan normaal naar het scherm en van het toetsenbord (de standard |
2812 |
input, afgekort met stdout en stdin), maar dat kan ook anders. Zowel |
output en standard input, afgekort met \begrip{stdout} en |
2813 |
in- als uitvoer kunnen namelijk worden `omgeleid'. Dat gaat met de |
\begrip{stdin}), maar dat kan ook anders. Zowel in- als uitvoer kunnen |
2814 |
`kleiner dan', `groter dan' en `pipe' tekens `$<$', `$>$' en `$|$' |
namelijk worden `omgeleid'. Dat gaat met de `kleiner dan', `groter |
2815 |
(meestal Shift-`$\backslash$'). |
dan' en `pipe' tekens `$<$', `$>$' en `$|$' (meestal |
2816 |
|
Shift-`$\backslash$'). |
2817 |
|
|
2818 |
Bijvoorbeeld met \com{cat /etc/motd $>$ uitvoer\_van\_cat} wordt de |
Bijvoorbeeld met \com{cat /etc/motd $>$ uitvoer\_van\_cat} wordt de |
2819 |
uitvoer van cat niet op het scherm getoond, maar naar een bestand |
uitvoer van \com{cat} niet op het scherm getoond, maar naar een bestand |
2820 |
uitvoer\_van\_cat geschreven. Als je daarna \com{cat /etc/issue $>$ |
uitvoer\_van\_cat geschreven. Als we daarna \com{cat /etc/issue $>$ |
2821 |
uitvoer\_van\_cat doet}, zullen we zien dat z'n oorspronkelijke |
uitvoer\_van\_cat doet}, zullen we zien dat z'n oorspronkelijke |
2822 |
inhoud verdwenen is. Dat is te verhelpen door twee $>$'s te gebruiken: |
inhoud verdwenen is. Dat is te verhelpen door twee $>$'s te gebruiken: |
2823 |
\com{cat /etc/motd $>>$ uitvoer\_van\_cat} voegt de uitvoer toe aan |
\com{cat /etc/motd $>>$ uitvoer\_van\_cat} voegt de uitvoer toe aan |
2829 |
dat simpelweg z'n argumenten op het scherm zet. |
dat simpelweg z'n argumenten op het scherm zet. |
2830 |
|
|
2831 |
\begin{opgave} |
\begin{opgave} |
2832 |
Probeer maar eens \com{echo Dit is een test}. |
Probeer maar eens \com{echo Dit is een test}. |
2833 |
\end{opgave} |
\end{opgave} |
2834 |
|
|
2835 |
Ook deze uitvoer kunnen we omleiden en zo een kort bestandje maken. |
Ook deze uitvoer kunnen we omleiden en zo een kort bestandje maken. |
2836 |
|
|
2837 |
\begin{opgave} |
\begin{opgave} |
2838 |
Type \com{echo Dit wordt omgeleid > uitvoer\_van\_echo}. |
Type \com{echo Dit wordt omgeleid $>$ uitvoer\_van\_echo}. Bekijk |
2839 |
Bekijk het bestandje met \com{cat uitvoer\_van\_echo}. |
het bestandje met \com{cat uitvoer\_van\_echo}. |
2840 |
\end{opgave} |
\end{opgave} |
2841 |
|
|
2842 |
\begin{opgave} |
\begin{opgave} |
2843 |
Geef eens alleen het commando \com{cat}. Er lijkt niets te gebeuren, |
Geef eens alleen het commando \com{cat}. Er lijkt niets te gebeuren, |
2844 |
maar type eens wat tekens gevolgd door Enter. We zien dat ze |
maar type eens wat tekens gevolgd door Enter. We zien dat ze |
2845 |
gedupliceerd worden. |
gedupliceerd worden. |
2846 |
\end{opgave} |
\end{opgave} |
2847 |
|
|
2848 |
\begin{opgave} |
\begin{opgave} |
2849 |
Type nog een paar regels en sluit af met Ctrl-D |
Type nog een paar regels en sluit af met Ctrl-D op een lege regel |
2850 |
op een lege regel (einde-van-tekst teken). |
(einde-van-tekst teken). |
2851 |
\end{opgave} |
\end{opgave} |
2852 |
|
|
2853 |
Met een commando \com{cat $>$ uitvoer\_van\_cat} kunnen we dus op een |
Met een commando \com{cat $>$ uitvoer\_van\_cat} kunnen we dus op een |
2867 |
|
|
2868 |
\begin{opgave} |
\begin{opgave} |
2869 |
Probeer eerst eens \com{ls -alF /dev}, wat wel erg lang is. Maar als |
Probeer eerst eens \com{ls -alF /dev}, wat wel erg lang is. Maar als |
2870 |
we die uitvoer nu eens met less zouden bekijken, zou het een stuk |
we die uitvoer nu eens met \com{less} zouden bekijken, zou het een stuk |
2871 |
beter gaan. Geef daarom \com{ls -alF /dev | less}. |
beter gaan. Geef daarom \com{ls -alF /dev | less}. |
2872 |
\end{opgave} |
\end{opgave} |
2873 |
|
|
2878 |
klein beetje kunnen, en door ze met pipes achter elkaar te `hangen' |
klein beetje kunnen, en door ze met pipes achter elkaar te `hangen' |
2879 |
kan praktisch elk gewenst resultaat worden bereikt. |
kan praktisch elk gewenst resultaat worden bereikt. |
2880 |
|
|
2881 |
Iets wat in \linux\ vaak voorkomt, is dat we de uitvoer dan een |
Iets wat in \gl\ vaak voorkomt, is dat we de uitvoer dan een |
2882 |
programma niet willen zien, bijvoorbeeld omdat die veel te uitgebreid |
programma niet willen zien, bijvoorbeeld omdat die veel te uitgebreid |
2883 |
is en we er toch niets wijzer van worden. Dan wordt die uitvoer |
is en we er toch niets wijzer van worden. Dan wordt die uitvoer |
2884 |
omgeleid naar /dev/null, een `apparaat' dat als een zwart gat |
omgeleid naar \file{/dev/null}, een `apparaat' dat als een zwart gat |
2885 |
functioneert. Bijvoorbeeld \com{ls -alF /etc > /dev/null}. |
functioneert. Bijvoorbeeld \com{ls -alF /etc > /dev/null}. |
2886 |
|
|
2887 |
\section{Processen in de achtergrond} |
\section{Processen in de achtergrond} |
2888 |
\label{bgjobs} |
\label{bgjobs} |
2889 |
|
|
2890 |
Stel voor dat we het commando \com{cat /usr/bin/* | gzip | od | gzip | |
Stel voor dat we het commando \com{cat /usr/bin/* $|$ gzip $|$ od $|$ |
2891 |
od | gzip | md5sum $>$ /tmp/testchecksum} zouden willen geven |
gzip $|$ od $|$ gzip $|$ md5sum $>$ /tmp/testchecksum} zouden willen |
2892 |
(waarom doet er trouwens niet toe). Dat commando doet er flink lang |
geven (waarom doet er trouwens niet toe). Dat commando doet er flink |
2893 |
over, zeker een paar minuten. En ondertussen willen we wel doorwerken. |
lang over, zeker een paar minuten. En ondertussen willen we wel |
2894 |
Dan zouden we het natuurlijk op een aparte virtuele console kunnen |
doorwerken. Dan zouden we het natuurlijk op een aparte virtuele |
2895 |
doen, maar dan moeten we daar ook weer inloggen. Er is echter een |
console kunnen doen, maar dan moeten we daar ook weer inloggen. Er is |
2896 |
makkelijkere manier, namelijk het uitvoeren in de achtergrond |
echter een makkelijkere manier, namelijk het uitvoeren in de |
2897 |
(background). |
achtergrond (background). |
2898 |
|
|
2899 |
Dat kan, omdat het programma toch geen schermuitvoer heeft, alles |
Dat kan, omdat het programma toch geen schermuitvoer heeft, alles |
2900 |
wordt omgeleid naar een bestand. E\'en manier om dat te doen, is het |
wordt omgeleid naar een bestand. E\'en manier om dat te doen, is het |
2901 |
programma gewoon starten door het in te typen. Suspend het dan (als je |
programma gewoon starten door het in te typen. Suspend het dan (als we |
2902 |
het te lang vindt gaan duren) met Ctrl-Z. Geef dan het commando |
het te lang vinden gaan duren) met Ctrl-Z. Geef dan het commando |
2903 |
\com{bg} (van background, vergelijk fg) en we krijgen een melding dat |
\com{bg} (van background, vergelijk \com{fg}) en we krijgen een melding dat |
2904 |
het tijdrovende commando weer is gestart. Maar tegelijk krijgen we de |
het tijdrovende commando weer is gestart. Maar tegelijk krijgen we de |
2905 |
prompt weer terug en kun je andere nuttige dingen gaan doen. Vragen we |
prompt weer terug en kunen we andere nuttige dingen gaan doen. Vragen we |
2906 |
bijvoorbeeld de jobs op en dan zien we dat de job `Running' is. Als de |
bijvoorbeeld de jobs op en dan zien we dat de job `Running' is. Als de |
2907 |
job klaar is, wacht de shell totdat er weer een prompt op het scherm |
job klaar is, wacht de shell totdat er weer een prompt op het scherm |
2908 |
gezet moet worden (bijvoorbeeld als we op Enter drukken), en dan wordt |
gezet moet worden (bijvoorbeeld als we op Enter drukken), en dan wordt |
2911 |
Als we van tevoren weten, dat het commando lang gaat duren, dan |
Als we van tevoren weten, dat het commando lang gaat duren, dan |
2912 |
plakken we er een ampersand (`\&', en-teken) achter, dus ....testcksum |
plakken we er een ampersand (`\&', en-teken) achter, dus ....testcksum |
2913 |
\&. De job wordt dan meteen in de achtergrond gestart. Het jobnummer |
\&. De job wordt dan meteen in de achtergrond gestart. Het jobnummer |
2914 |
wordt afgedrukt, en de pid van het eerste proces in de job. De rest |
wordt afgedrukt en de pid van het eerste proces in de job. De rest |
2915 |
gaat zoals boven beschreven. Ook een job die in de achtergrond |
gaat zoals boven beschreven. Ook een job die in de achtergrond |
2916 |
draait, kun je met \com{\%1} of \com{fg} weer in de voorgrond halen; |
draait, kun je met \com{\%1} of \com{fg} weer in de voorgrond halen; |
2917 |
met Ctrl-Z en bg weer terug in de achtergrond. |
met Ctrl-Z en bg weer terug in de achtergrond. |
2920 |
\com{top} gebruikt. Dat commando geeft elke paar seconden een lijst |
\com{top} gebruikt. Dat commando geeft elke paar seconden een lijst |
2921 |
zoals \com{ps}, maar dan gesorteerd op processor-belasting. Tijdens ons |
zoals \com{ps}, maar dan gesorteerd op processor-belasting. Tijdens ons |
2922 |
voorbeeld-commando blijkt dat de gzip's het meeste "CPU- tijd vreten", |
voorbeeld-commando blijkt dat de gzip's het meeste "CPU- tijd vreten", |
2923 |
zie de kolom `\%CPU'. Je kunt de update-snelheid van top veranderen |
zie de kolom `\%CPU'. We kunnen de update-snelheid van top veranderen |
2924 |
door de `s' in te typen, gevolgd door een aantal seconden (probeer |
door de `s' in te typen, gevolgd door een aantal seconden (probeer |
2925 |
eens 0.01 en kijk naar de `\%CPU' van top zelf). We kunnen top afsluiten |
eens 0.01 en kijk naar de `\%CPU' van top zelf). We kunnen top afsluiten |
2926 |
door `q' in te typen. |
door `q' in te typen. |
2937 |
.tar en .gz; er zijn in principe ook twee programma's voor nodig, tar |
.tar en .gz; er zijn in principe ook twee programma's voor nodig, tar |
2938 |
en gzip (vandaar dat we ook vaak .tar.gz zien). |
en gzip (vandaar dat we ook vaak .tar.gz zien). |
2939 |
|
|
2940 |
Met tar (van tape archive) wordt eerst een on-ingepakt |
Met \begrip{tar} (van tape archive) wordt eerst een on-ingepakt |
2941 |
(niet-gecompresst) archief gemaakt, door simpelweg alle te archiveren |
(niet-gecompresst) archief gemaakt, door simpelweg alle te archiveren |
2942 |
bestanden achter elkaar te plakken in \'e\'en groot bestand. |
bestanden achter elkaar te plakken in \'e\'en groot bestand. |
2943 |
Vervolgens wordt dat \`ene grote bestand met gzip ingepakt |
Vervolgens wordt dat \`ene grote bestand met \begrip{gzip} ingepakt |
2944 |
(gecompresst). Een voorbeeld: |
(gecompresst). Een voorbeeld: |
2945 |
|
|
2946 |
\begin{opgave} |
\begin{opgave} |
2952 |
\end{opgave} |
\end{opgave} |
2953 |
|
|
2954 |
Als we nu met \com{ls -alF /tmp} de directory bekijken, zien we dat er |
Als we nu met \com{ls -alF /tmp} de directory bekijken, zien we dat er |
2955 |
een bestand testtarfile.tar.gz staat -- gzip plakt namelijk altijd .gz |
een bestand testtarfile.tar.gz staat --- gzip plakt namelijk altijd .gz |
2956 |
achter de naam van het ingepakte bestand. De naam kunnen we eventueel |
achter de naam van het ingepakte bestand. De naam kunnen we eventueel |
2957 |
met mv veranderen, bijvoorbeeld in testtarfile.tgz. In \gl\ kunnen we |
met mv veranderen, bijvoorbeeld in testtarfile.tgz. In \gl\ kunnen we |
2958 |
de twee stappen ook in \'e\'en keer doen, omdat gzip `ingebakken' zit |
de twee stappen ook in \'e\'en keer doen, omdat gzip `ingebakken' zit |
2988 |
bestandsnaam leest danwel schrijft van/naar standard input en |
bestandsnaam leest danwel schrijft van/naar standard input en |
2989 |
output. |
output. |
2990 |
|
|
2991 |
We kunnen ze dus ook `aan elkaar koppelen': \com{tar cvf - /etc/* | gzip $>$ |
We kunnen ze dus ook `aan elkaar koppelen': \com{tar cvf - /etc/* $|$ |
2992 |
/tmp/testtarfile3.tgz} om in te pakken en \com{gunzip $<$ |
gzip $>$ /tmp/testtarfile3.tgz} om in te pakken en \com{gunzip $<$ |
2993 |
/tmp/testtarfile3.tgz | tar tvf -} om te bekijken, bijvoorbeeld. |
/tmp/testtarfile3.tgz $|$ tar tvf -} om te bekijken, bijvoorbeeld. |
2994 |
|
|
2995 |
Dat zijn handige manieren om op andere \unix\ systemen met |
Dat zijn handige manieren om op andere \unix\ systemen met |
2996 |
.tgz-bestanden te werken, omdat tar daar meestal geen compressie heeft |
.tgz-bestanden te werken, omdat tar daar meestal geen compressie heeft |
2997 |
ingebouwd. We zien trouwens, dat hier \file{etc/} in de bestandsnamen wordt |
ingebouwd. We zien trouwens, dat hier \file{etc/} in de bestandsnamen |
2998 |
meegenomen (en hiervoor niet) -- die hebben we immers ook opgegeven! Let |
wordt meegenomen (en hiervoor niet) --- die hebben we immers ook |
2999 |
wel: dat eerste pad-stuk wordt ook meegenomen bij het uitpakken, en |
opgegeven! Let wel: dat eerste pad-stuk wordt ook meegenomen bij het |
3000 |
dat hoeft niet altijd te zijn wat je bedoelt; daar moeten we dus bij het |
uitpakken, en dat hoeft niet altijd te zijn wat je bedoelt; daar |
3001 |
inpakken al rekening mee houden. |
moeten we dus bij het inpakken al rekening mee houden. |
3002 |
|
|
3003 |
Een recente ontwikkeling is bzip2, een `vervanger' voor gzip die |
Een recente ontwikkeling is bzip2, een `vervanger' voor gzip die |
3004 |
vooral tekstbestanden aanzienlijk kleiner inpakt. Het grote nadeel is |
vooral tekstbestanden aanzienlijk kleiner inpakt. Het grote nadeel is |
3028 |
zelf heel wat hulp kunnen bieden. |
zelf heel wat hulp kunnen bieden. |
3029 |
|
|
3030 |
\begin{opgave} |
\begin{opgave} |
3031 |
Probeer maar eens alleen cp en op diens aanwijzing \com{cp --help}. |
Probeer maar eens alleen \com{cp} en op diens aanwijzing \com{cp --help}. |
3032 |
\end{opgave} |
\end{opgave} |
3033 |
|
|
3034 |
Een hele lijst met mogelijke switches verschijnt op het scherm, |
Een hele lijst met mogelijke switches verschijnt op het scherm, |
3039 |
\label{mangebruiken} |
\label{mangebruiken} |
3040 |
Er zijn in \gl\ ook vele uitgebreide handleidingen (manuals) |
Er zijn in \gl\ ook vele uitgebreide handleidingen (manuals) |
3041 |
beschikbaar. Het commando om een manual page te bekijken, is \com{man |
beschikbaar. Het commando om een manual page te bekijken, is \com{man |
3042 |
<programmanaam>}. Met \com{man -k <zoekwoord>} (van keyword) wordt |
$<$programmanaam$>$}. Met \com{man -k <zoekwoord>} (van keyword) wordt |
3043 |
in de lijst van manual pages gezocht naar titels die dat zoekwoord |
in de lijst van manual pages gezocht naar titels die dat zoekwoord |
3044 |
bevatten. |
bevatten. |
3045 |
|
|
3046 |
De manual pages zijn onderverdeeld in een aantal secties (of |
De manual pages zijn onderverdeeld in een aantal secties (of |
3047 |
hoofdstukken), genummerd van 1 tot 9. Wat in welke sectie thuishoort |
hoofdstukken), genummerd van 1 tot 9. Wat in welke sectie thuishoort |
3048 |
kun je lezen in de manpage van man zelf (met \com{man man} dus). Het |
kunnen we lezen in de manpage van man zelf (met \com{man man} dus). Het |
3049 |
komt voor dat er in twee secties een manpage met dezelfde naam staat |
komt voor dat er in twee secties een manpage met dezelfde naam staat |
3050 |
-- bijvoorbeeld van man zelf, in sectie 1 en sectie 7. Om de juiste te |
--- bijvoorbeeld van man zelf, in sectie 1 en sectie 7. Om de juiste te |
3051 |
kunnen bekijken, geven we \com{man 1 man} en/of \com{man 7 man}, in |
kunnen bekijken, geven we \com{man 1 man} en/of \com{man 7 man}, in |
3052 |
het algemeen \com{man <sectie> <programmanaam>}. Gebruik de `/'-toets |
het algemeen \com{man $<$sectie$>$ $<$programmanaam$>$}. Gebruik de `/'-toets |
3053 |
(slash) om in een lange manpage naar een bepaalde term te zoeken. |
(slash) om in een lange manpage naar een bepaalde term te zoeken. |
3054 |
|
|
3055 |
\begin{opgave} |
\begin{opgave} |
3078 |
alleen info voor een lijst. |
alleen info voor een lijst. |
3079 |
\end{opgave} |
\end{opgave} |
3080 |
|
|
3081 |
Texinfo is een `hypertext'-systeem, wat wil zeggen dat er in de tekst |
\begrip{Texinfo} is een `hypertext'-systeem, wat wil zeggen dat er in de tekst |
3082 |
links zijn naar andere punten in de tekst. Meestal komen we binnen in |
links zijn naar andere punten in de tekst. Meestal komen we binnen in |
3083 |
een inhoudsopgave-pagina; met de pijltjestoetsen kunnen we naar een |
een inhoudsopgave-pagina; met de pijltjestoetsen kunnen we naar een |
3084 |
item lopen, en met Enter spring je daarheen. Links staan meestal |
item lopen, en met Enter spring je daarheen. Links staan meestal |
3090 |
document ook in volgorde van voor naar achter doorlezen door steeds |
document ook in volgorde van voor naar achter doorlezen door steeds |
3091 |
aan het einde van een pagina op de spatiebalk te drukken. |
aan het einde van een pagina op de spatiebalk te drukken. |
3092 |
|
|
3093 |
Zoeken gaat met Ctrl-S; de zoekterm wordt gezocht terwijl je 'm |
Zoeken gaat met Ctrl-S; de zoekterm wordt gezocht terwijl we hem |
3094 |
intypt, weer Ctrl-S zoekt de volgende, Escape stopt het zoekproces. In |
intypten, weer Ctrl-S zoekt de volgende, Escape stopt het zoekproces. In |
3095 |
info geeft `H' of `?' meer informatie over het gebruik. Als er geen |
info geeft `H' of `?' meer informatie over het gebruik. Als er geen |
3096 |
specifieke info-pagina van een bepaald commando is, wordt de normale |
specifieke info-pagina van een bepaald commando is, wordt de normale |
3097 |
manual page weergegeven. |
manual page weergegeven. |