# Ubuntu: Linux voor mensen/De werkomgeving/Opruimen

Naast het rm commando zijn er nog andere manieren om op te ruimen. We bespreken een aantal methodes in de volgende paragrafen.

# Bestanden leegmaken

Some is de inhoud van een bestand niet belangrijk, maar wil je het niet weggooien omdat je het bestand nodig hebt als merkpunt. Bijvoorbeeld: je hebt enkel de datumstempel van een bestand nodig (als referentie: op die dag heb ik dat bestand gemaakt/gekregen), of je wilt een herinnering dat het bestand er was, of dat er een bestand moet komen in de toekomst. Hiervoor kan je de output van een zogenaamd nul commando gebruiken, zoals we reeds zagen in de paragraaf “Beknotten van bestanden”. Eventueel kan je het bestand eerst van naam veranderen:
* willy@ubuntu:~$ mv leeg_te_maken plaatshouder
* willy@ubuntu:~$ > plaatshouder
* willy@ubuntu:~$ ls -l plaatshouder
* -rw-rw-r 1 willy willy 0 2006-07-10 13:23 plaatshouder
Om gewoon een leeg nieuw bestand aan te maken, gebruik je het touch commando, zoals we reed zagen toen we testbestanden aanmaakten in de paragraaf “Testbestanden aanmaken”. Als je de naam van een reeds bestaand bestand opgeeft, pas je enkel de datumstempel aan maar blijft de inhoud ongewijzigd.
Om een bestand bijna leeg te maken, kan je de laatste nuttige lijnen bewaren, of de eerste, met behulp van tail of head (zie de paragraaf “Begin en eind”):
* willy@ubuntu:~$ tail -5 verlanglijst > nieuwe_lijst
* willy@ubuntu:~$ cat nieuwe_lijst > verlanglijst
* willy@ubuntu:~$ rm nieuwe_lijst

# Logbestanden

Sommige Linux programma's willen absoluut allerlei output in een logbestand kwijt. Gewoonlijk zijn er wel opties om enkel errors op te slaan, of om enkel minimale informatie op te slaan. Maar zelfs dan nog kan het zijn dat de inhoud van een logbestand je gewoon niet interesseert en dat er toch altijd maar lijnen bijgeschreven worden in het logbestand. In zo'n gevallen kan je het volgende proberen:
* Probeer het logbestand te verwijderen wanneer het programma niet draait, als je zeker bent dat je de opgeslagen informatie niet meer nodig hebt. Sommige programma's zien bij het opstarten dat er geen logbestand is, en zullen daarom niet loggen;
* OF
* Als je het logbestand hebt verwijderd, maar het programma maakt er een nieuw aan de volgende keer dat je het opstart, lees dan de documentatie van dat programma en ga na of er geen optie bestaat die het loggen verhindert;
* OF
* Probeer kleinere logbestanden te maken door enkel nuttige informatie op te slaan, of informatie die voor jou relevant is;
* OF
* Probeer het logbestand te vervangen door een symbolische link naar /dev/null, de bodemloze put van het systeem. Met een beetje geluk zal het programma niet klagen over deze ingreep. Doe dit niet met logbestanden van programma's die door het systeem opgestart worden of met programma's die altijd automatisch via cron lopen. Deze programma's zouden de symbolische link kunnen vervangen door een bestand dat dan toch weer begint te groeien.
* Logbestand
* Een logbestand kan je vergelijken met het logboek dat de kapitein van een schip bijhoudt: alle acties en resultaten daarvan worden erin bijgehouden. Elke actie heeft een datumstempel, zodat je te weten kan komen wanneer een bepaalde actie plaatsvond.

# E-mail

Kuis je mailbox regelmatig uit. Maak submappen aan. Maak gebruik van automatische klassementen door middel van filters. Als je een prullenmand map hebt in je mailbox, maak ook die dan regelmatig leeg.
Om de mail, die je mogelijk van je eigen systeem krijgt, naar een nuttige plaats te sturen, maak je een bestand aan in je home map met de naam .forward en daarin het e-mailadres waar je de mails naartoe wilt sturen. Bijvoorbeeld:
* willy@ubuntu:~$ cat .forward
* willy@walvis.nl
Uiteraard werkt dit enkel op machines die genetwerkt zijn.
Door gebruik te maken van mail forwarding (letterlijk: mail voortsturen) voorkom je ook dat je verschillende mailboxen moet controleren en beheren. Je kan elk adres op een centraal en makkelijk toegankelijk punt laten toekomen.
Je kan je systeembeheerder vragen om mail forwarding voor je op te zetten in het aliases bestand, bijvoorbeeld als je toegang tot een machine afgesloten wordt, maar je wilt dat E-mail nog een tijdje actief blijft.

# Plaats besparen met links

Wanneer verschillende gebruikers vanop verschillende plaatsen toegang moeten hebben tot hetzelfde bestand, of wanneer de originele bestandsnaam te lang of te moeilijk is om te onthouden, kan je een symbolische link gebruiken in plaats van kopieën van het bestand.
Symbolische links kunnen verschillende namen hebben en naar hetzelfde bestand verwijzen: zo kan goals_for_2006.ods voor de ene gebruiker doelstellingen_voor_2006.ods noemen, en voor de andere buts_pour_2006.ods, terwijl de links toch allemaal naar hetzelfde rekenblad verwijzen. Je kan zelfs verschillende links naar hetzelfde bestand hebben in eenzelfde map.
Dit komt vaak voor wanneer het bibliotheekbestanden betreft, zoals we reeds zagen in de paragraaf “Links aanmaken”. De grootte van bestanden limiteren
De shell beschikt over een ingebouwd commando om de grootte van bestanden te beknotten, ulimit. Het wordt ook gebruikt om limieten op systeemresources te tonen: Handeling met de muis.
* willy@ubuntu:~$ ulimit -a
* core file size (blocks, -c) 0
* data seg size (kbytes, -d) unlimited
* file size (blocks, -f) unlimited
* max locked memory (kbytes, -l) unlimited
* max memory size (kbytes, -m) unlimited
* open files (-n) 1024
* pipe size (512 bytes, -p) 8
* stack size (kbytes, -s) 8192
* cpu time (seconds, -t) unlimited
* max user processes (-u) 512
* virtual memory (kbytes, -v) unlimited
Een veelvoorkomend probleem is het optreden van core bestanden, die aangemaakt worden als er iets misgaat met een programma. De core bestanden bevatten de inhoud van het geheugen van de computer op het moment van falen en kunnen onderzocht worden door een ontwikkelaar van software. Onze Willy is geen programmeur en core bestanden zullen hem worst wezen: als een programma crasht, start hij het gewoon opnieuw op. Om te voorkomen dat de core bestanden, die makkelijk een aantal megabytes tot gigabytes groot kunnen zijn, zijn home map opvullen, geeft hij de volgende opdracht in:
* willy@ubuntu:~$ ulimit -c 0
Daarmee wordt de eerste regel van het ulimit commando op 0 gezet zoals in bovenstaand voorbeeld, en is de maximum grootte van een core bestand 0 kilobytes, wat dus effectief betekent dat er geen cores aangemaakt kunnen worden. Deze instelling vind je ook vaak terug in de configuratiebestanden van de shell, zoals we zullen zien in de paragraaf “Configuratiebestanden van de shell”.
Met ulimit kan je nog allerlei andere zaken beperken, of juist meer ruimte geven. In de output van ulimit -a vind je telkens tussen haakjes de grootheden en de optie die je moet gebruiken om het desbetreffende object te veranderen. Meer informatie vind je in de man pagina van ulimit.

# Bestanden comprimeren

Gecomprimeerde bestanden nemen minder plaats in op je harde schijf. Bovendien nemen ze ook minder bandbreedte in beslag als je ze wilt verzenden over een netwerk. Veel bestanden, zoals bijvoorbeeld de man pagina's, worden in gecomprimeerde vorm opgeslagen op de harde schijf. Maar telkens een bestand uitpakken, de informatie zoeken en dan weer comprimeren is een vervelend karweitje. De meeste mensen zullen waarschijnlijk vergeten het bestand weer te comprimeren, eens ze de juiste informatie erin gevonden hebben.
Daarom hebvben we gereedschappen die werken met gecomprimeerde bestanden:
* Voor gezipte bestanden (uitgang op .zip) hebben we bijvoorbeeld zipless en zipgrep.
* Voor GNU zipbestanden (uitgang op .gz) is er onder andere zcat, zgrep en zless.
* Voor bzip bestanden (uitgang op .bz) bestaat er bzcat, bzgrep en bzless.
De syntax van deze commando's is gelijkaardig als die van cat, less en grep.