2.2 Maken en schrijven
Hier bouw je op verder: Bestanden lezen met cat
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
Een nieuwe map maak je met mkdir (make directory):
mkdir project
cd project
pwd
/home/student/project
Wat je hier maakt, is weg als je de pagina herlaadt. Op een echte computer blijft het staan.
Een bestand maken
Met touch maak je een leeg bestand:
touch leesmij.txt
ls
leesmij.txt
Een leeg bestand heb je niet vaak nodig. Meestal wil je er meteen iets in hebben. Dat doe je met echo en een pijltje:
echo "Mijn eerste project" > leesmij.txt
cat leesmij.txt
Mijn eerste project
echo zet tekst op het scherm. Het teken > stuurt die tekst niet naar het scherm, maar een bestand in. Dat heet omleiden, en het werkt met elk commando Een opdracht die je in de terminal typt, zoals whoami of ls; na Enter voert de computer hem uit.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen: ls /etc > lijst.txt zet de lijst met bestanden in lijst.txt.
Voorspel
Je typt deze twee regels na elkaar. Wat staat er daarna in leesmij.txt?
echo "regel een" > leesmij.txt
echo "regel twee" > leesmij.txt
Klik hier als je het hebt geprobeerd
Alleen regel twee. Eén pijltje maakt het bestand eerst leeg. Wil je er iets onder zetten, gebruik dan twee:
echo "regel een" > leesmij.txt
echo "regel twee" >> leesmij.txt
cat leesmij.txt
regel een
regel twee
Opdracht 2.2.a: een boodschappenlijst
- Maak in je thuismap Je eigen map,
/home/studentin de oefenterminal; de prompt kort hem af tot~.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen een maplijstjes. - Zet daarin een bestand
boodschappen.txtmet drie regels:brood,kaasenappels. - Laat met één commando zien hoeveel regels het bestand heeft.
Klik hier voor een tip
De eerste regel schrijf je met >, de andere twee met >>. Tellen deed je in de vorige les.
Klik hier voor het antwoord
cd ~
mkdir lijstjes
echo brood > lijstjes/boodschappen.txt
echo kaas >> lijstjes/boodschappen.txt
echo appels >> lijstjes/boodschappen.txt
wc -l lijstjes/boodschappen.txt
Je hoeft niet met cd de map in: een pad De weg naar een bestand of map, met een / tussen de mappen, zoals /home/student/notities.txt.Uitgelegd in 1.2 Door mappen lopenAlle begrippen naar het bestand werkt ook achter >.
Er gaat iets mis
File exists
mkdir: cannot create directory ‘project’: File exists
Oorzaak: er staat al een map of bestand met die naam.
Oplossing: kies een andere naam, of gebruik de map die er al is. Met ls zie je wat er staat.
Een map in een map die er nog niet is
mkdir: cannot create directory ‘a/b’: No such file or directory
Oorzaak: mkdir a/b maakt alleen b, en verwacht dat a er al is.
Oplossing: maak eerst a, of gebruik -p (parents): dan maakt mkdir de mappen erboven ook.
# FOUT
mkdir a/b
# GOED
mkdir -p a/b
Je bestand is leeg
Oorzaak: het commando voor de > gaf een fout, zoals ech "hallo" > a.txt met een typfout. Bash maakt het bestand leeg voordat het commando start. De foutmelding gaat niet het bestand in maar komt op je scherm, dus het bestand blijft leeg. Stond er al iets in, dan is dat ook weg.
Oplossing: verbeter het commando en schrijf het bestand opnieuw. Kijk met cat of het nu klopt.
Door naar 2.3 Kopiëren, verplaatsen en weggooien.