-
Hoe vraag je op de command-line documentatie op voor het commando
passwd
?$ COMMANDO man passwd UITVOER PASSWD(1) User utilities PASSWD(1) NAME passwd - update user's authentication tokens SYNOPSIS passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [user‐ name] DESCRIPTION The passwd utility is used to [...]
-
Hoe vraag je documentatie op voor het configuratiebestand
/etc/passwd
?$ COMMANDO man /etc/passwd UITVOER <standard input>:4: warning [p 1, 0.2i]: cannot adjust line <standard input>:5: warning [p 1, 0.3i]: cannot adjust line <standard input>:6: warning [p 1, 0.5i]: cannot adjust line <standard input>:11: warning [p 1, 1.2i]: cannot adjust line <standard input>:23: warning [p 1, 3.2i]: cannot adjust line <standard input>:24: warning [p 1, 3.3i]: cannot adjust line root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shut‐ down:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin opera‐ tor:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP Us‐ er:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin [...]
-
Hoe vraag je een lijst op van alle documentatie die de string
passwd
bevat?$ COMMANDO man -k passwd UITVOER chgpasswd (8) - update group passwords in batch mode chpasswd (8) - update passwords in batch mode fgetpwent_r (3) - get passwd file entry reentrantly getpwent_r (3) - get passwd file entry reentrantly gpasswd (1) - administer /etc/group and /etc/gshadow grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash. htpasswd (1) - Manage user files for basic authentication lpasswd (1) - Change group or user password pam_localuser (8) - require users to be listed in /etc/passwd pam_passwdqc (8) - Password quality-control PAM module [...]
-
Wat is de huidige datum en uur?
$ COMMANDO date UITVOER Sun Oct 8 15:03:01 CEST 2017
-
Wat is de huidige directory?
$ COMMANDO pwd UITVOER /home/admin
-
Toon de inhoud van de huidige directory. De uitvoer zou er ongeveer zo moeten uit zien:
$ COMMANDO ls UITVOER Desktop Documents Downloads Music Pictures Public Templates Videos
-
Toon de inhoud van de huidige directory, maar toon voor elk bestand meer informatie en ook "verborgen" bestanden.
$ COMMANDO ls -la UITVOER total 96 drwx------. 14 student student 4096 Sep 24 09:14 . drwxr-xr-x. 3 root root 4096 Sep 20 13:46 .. -rw-------. 1 student student 146 Sep 20 14:06 .bash_history -rw-r--r--. 1 student student 18 Mar 11 2013 .bash_logout -rw-r--r--. 1 student student 193 Mar 11 2013 .bash_profile -rw-r--r--. 1 student student 124 Mar 11 2013 .bashrc drwx------. 8 student student 4096 Sep 20 13:54 .cache drwxr-xr-x. 16 student student 4096 Sep 20 13:55 .config drwxr-xr-x. 2 student student 4096 Sep 20 13:53 Desktop drwxr-xr-x. 2 student student 4096 Sep 20 13:53 Documents drwxr-xr-x. 2 student student 4096 Sep 20 13:53 Downloads [...]
-
Toon de inhoud van de hoofddirectory van het Linux-systeem, ook vaak de root-directory genoemd. Geef een uitgebreide listing zoals in de vorige vraag, maar zonder verborgen bestanden.
$ COMMANDO ls -l / UITVOER total 64 -rw-r--r--. 1 root root 0 Nov 15 2016 1 lrwxrwxrwx. 1 root root 7 Feb 3 2016 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 Oct 7 23:54 boot drwxr-xr-x. 20 root root 3820 Oct 8 00:11 dev drwxr-xr-x. 132 root root 12288 Oct 8 00:11 etc drwxr-xr-x. 3 root root 4096 Oct 1 19:40 home lrwxrwxrwx. 1 root root 7 Feb 3 2016 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Feb 3 2016 lib64 -> usr/lib64 drwx------. 2 root root 16384 Nov 15 2016 lost+found drwxr-xr-x. 2 root root 4096 Feb 3 2016 media drwxr-xr-x. 2 root root 4096 Feb 3 2016 mnt -rw-r--r--. 1 root root 0 Oct 7 23:06 null drwxr-xr-x. 3 root root 4096 Oct 7 23:11 opt dr-xr-xr-x. 200 root root 0 Oct 8 00:11 proc dr-xr-x---. 6 root root 4096 Oct 7 23:49 root drwxr-xr-x. 46 root root 1340 Oct 8 00:43 run lrwxrwxrwx. 1 root root 8 Feb 3 2016 sbin -> usr/sbin drwxr-xr-x. 2 root root 4096 Feb 3 2016 srv dr-xr-xr-x. 13 root root 0 Oct 8 00:11 sys drwxrwxrwt. 12 root root 240 Oct 8 00:21 tmp drwxr-xr-x. 12 root root 4096 Nov 15 2016 usr drwxr-xr-x. 22 root root 4096 Nov 15 2016 var
-
Wat betekenen volgende elementen van de uitvoer hierboven?
- 1e kolom (bv.
drwxr-xr-x.
): het geeft aan welk type bestand het is en wat de permissies hiervoor zijn - 2e kolom (getal): aantal links of mappen in het bestand
- 3e kolom (bv.
root
,student
): eigenaar - 4e kolom (bv.
root
): groep die eigenaaar van het bestand - 5e kolom (getal): grootte van het bestand in bytes
- 6e - 8e kolom (datum): datum van laatste aanpassing
- de aanduiding
->
(bv.bin -> usr/bin
): toont aan naar welk bestand de link verwijst
- 1e kolom (bv.
-
Hoe kan je commando's die je voordien uitgevoerd hebt terug ophalen (de "commandogeschiedenis")?
$ COMMANDO history UITVOER 1 man apt-get 2 man apt 3 man sudo 4 man dnf 5 apt-get 6 sudo dnf install git 7 pid 8 ps 9 sudo dnf install git 10 ps -aux [...]
Vul de tabel hieronder aan. In de linkerkolom vind je de namen van een directory, in de rechter het soort bestanden dat er in thuis hoort.
Directory | Inhoud |
---|---|
/bin , /usr/bin |
commando's |
/etc/ |
Uitvoerbare bestanden voor systeembeheertaken |
/var |
bevat bestanden die door het OS gebruikt worden |
/var/temp |
Tijdelijke bestanden |
/opt , /usr/local |
Mappen waar sommige software packages geïnstalleerd worden |
/root/ |
Home-directory van de root gebruiker |
/home/student/ |
Home-directory van de gebruiker student |
/usr/local/share/man , /usr/share/man |
De inhoud van de man-pages |
/usr/share/man/man1/ |
Andere documentatie |
/lib , /usr/lib , lib64 , enz. |
Bevat shared libraries en kernel modules |
/opt/VBoxGuestAdditions-5.1.28 |
De inhoud van de installatie-cd voor Guest Additions(*) |
/dev |
Map met met bestanden die apparaten voorstellen |
/proc |
Bevat kernel documentatie en process status als text bestanden |
/sbin/ |
Systeemconfiguratiebestanden |
(*) Je kan het insteken van de cd simuleren in het VirtualBox-venster van je VM in het menu "Devices" > "Insert Guest Additions CD image..." (of het Nederlandstalige equivalent).
Om het verschil tussen een bestand en directory te verduidelijken, wordt in wat volgt de naam van een directory telkens afgesloten met “/”.
Open eerst een terminalvenster, start de oefening vanuit je eigen home-directory. Ga enkel naar een andere directory als dat expliciet gevraagd wordt. Geef telkens de gevraagde commando's niet alleen om de taak uit te voeren, maar ook om te testen of dit correct gebeurd is.
In deze oefening leer je onderscheid maken tussen relatieve en absolute paden. Een absoluut pad begint altijd met een /
, wat overeenkomt met de root-directory. Een relatief pad geldt vanaf de huidige directory.
-
Blijf in je home-directory en maak van hieruit een directory
tijdelijk/
aan onder/tmp/
$ COMMANDO mkdir /tmp/tijdelijk
-
Verwijder deze directory meteen
$ COMMANDO rm -r /tmp/tijdelijk
-
Maak onder je home-directory een submap aan met de naam
linux/
$ COMMANDO mkdir /home/admin/linux/
-
Ga naar deze directory
$ COMMANDO cd /home/admin/linux/
-
Maak met één commando de subdirectory
a/b/
aan onderlinux/
. Als je nadien het commandotree
geeft, moet je de gegeven uitvoer zien.$ COMMANDO mkdir -p a/b/ UITVOER $ tree . └── a └── b 2 directories, 0 files
-
Verwijder directory
b/
en daarnaa/
(in twee commando's)$ COMMANDO rm -d a/b rmdir a UITVOER
-
Maak met één commando deze directorystructuur aan.
$ COMMANDO mkdir -p c/d c/e UITVOER $ tree . └── c ├── d └── e 3 directories, 0 files
-
Verwijder in één commando de directory
c/
en alle onderliggende$ COMMANDO rm -r c UITVOER
-
Maak met één commando deze directorystructuur aan. Het is de bedoeling de opdrachtregel zo kort mogelijk te maken, dus niet alle directories apart opgeven!
$ COMMANDO mkdir -p f/g/i f/h/i UITVOER $ tree . └── f ├── g │ └── i └── h └── i 5 directories, 0 files
Behoud deze directorystructuur voor de volgende oefeningen over bestanden.
-
Maak een leeg bestand aan met de naam
file1
$ COMMANDO touch file1
-
Maak een verborgen bestand aan met de naam
hidden
. Verborgen betekent dat je het niet kan zien met een "gewone"ls
, maar wel met de gepaste optie.$ COMMANDO touch .hidden UITVOER
-
Tik volgend commando in, leg uit wat er hier precies gebeurt, wat het effect is.
$ echo hello world > file2"
Antwoord: De output van de echo commando wordt weggeschreven naar het bestand file2
-
Toon de inhoud van
file2
$ COMMANDO echo hello world > file2 UITVOER hello world
-
Kopieer
file1
naar een nieuw bestandfile3
in de huidige directory$ COMMANDO cp file1 file3 UITVOER
-
Kopieer
file1
naar de directoryf/
(die zou je nog moeten hebben van vorige oefening)$ COMMANDO cp file1 f UITVOER
-
Kopieer
file1
en file2 in één keer naarf/g/
. Je zou de gegeven situatie moeten krijgen.$ COMMANDO cp file1 file2 f/g UITVOER $ tree . ├── f │ ├── file1 │ ├── g │ │ ├── file1 │ │ ├── file2 │ │ └── i │ └── h │ └── i ├── file1 ├── file2 └── file3
-
Hernoem
file3
naarfile4
$ COMMANDO mv file3 file4 UITVOER
-
Verplaats
file2
naar directoryf/
$ COMMANDO UITVOER
-
Verplaats
file1
enfile4
in één keer naarf/h/
. Je zou de gegeven situatie moeten krijgen.$ COMMANDO mv file1 file4 f/h UITVOER $ tree . └── f ├── file1 ├── file2 ├── g │ ├── file1 │ ├── file2 │ └── i └── h ├── file1 ├── file4 └── i 5 directories, 6 files
-
Kopieer
f/h/
, inclusief de inhoud, naar een nieuwe directoryf/j/
$ COMMANDO cp -r f/h f/j UITVOER
Creëer in de directory linux/
een aantal lege bestanden met de naam filea
t/m filed
, file1
t/m file9
en file10
t/m file19
. Hier is een trucje om dat snel te doen:
[student@localhost ~/linux] $ touch filea fileb filec filed
[student@localhost ~/linux] $ for i in {1..19}; do touch "file${i}"; done
[student@localhost ~/linux] $ ls
f file11 file14 file17 file2 file5 file8 fileb
file1 file12 file15 file18 file3 file6 file9 filec
file10 file13 file16 file19 file4 file7 filea filed
Toon met ls
telkens de gevraagde bestanden, niet meer en niet minder.
-
Alle bestanden die beginnen met
file
$ COMMANDO ls | grep file* UITVOER file2
-
Alle bestanden die beginnen met
file
, gevolgd door één letterteken (cijfer of letter)$ COMMANDO ls | grep "^file?" UITVOER file2
-
Alle bestanden die beginnen met
file
, gevolgd door één letter, maar geen cijfer$ COMMANDO ls | grep "^file[a-Z]" UITVOER
-
Alle bestanden die beginnen met
file
, gevolgd door één cijfer, maar geen letter$ COMMANDO ls | grep "^file[0-9]" UITVOER file2
-
De bestanden
file12
t/mfile16
$ COMMANDO ls | grep file1[2-6] UITVOER
-
Bestandern die beginnen met
file
, niet gevolgd door een1
$ COMMANDO ls | grep "file[^1]" UITVOER file2
Maak in de directory linux/
twee tekstbestanden aan, met naam tekst1a
en tekst2a
. Beide hebben als inhoud “Dit is bestand tekst1” en “Dit is bestand tekst2”, respectievelijk.
-
Voer het volgende commando uit en geef de uitvoer:
$ ls -l tekst* UITVOER -rw-rw-r--. 1 admin admin 22 Oct 9 15:07 tekst1a -rw-rw-r--. 1 admin admin 22 Oct 9 15:07 tekst2a
-
Maak een harde link van
tekst1a
naartekst1b
-
Maak een symbolische link van
tekst2a
naartekst2b
-
Voor het volgende commando uit en geef de uitvoer:
$ ls -l tekst* UITVOER
-
Hoe zie je aan de uitvoer van
ls
dattekst1b
een harde link is entekst2b
een symbolische? Tip: Vergelijk met de uitvoer uit vraag 1!Antwoord: De harde link ziet er hetzelfde uit als het originele maar voor een symbolische link is het anders. Het eerste karakter is een 'l' ipv '-' .
-
Verwijder de oorspronkelijke bestanden,
tekst1a
entekst2a
. Maak het commando zo kort mogelijk!$ COMMANDO rm tekst1a tekst2a UITVOER
-
Toon opnieuw de uitvoer van
ls -l tekst*
, en bekijk de inhoud vantekst1b
entekst2b
. Wat valt je op?$ COMMANDO ls -l tekst* UITVOER -rw-rw-r--. 1 admin admin 22 Oct 9 15:07 tekst1b lrwxrwxrwx. 1 admin admin 7 Oct 9 15:15 tekst2b -> tekst2a
Antwoord: De inhoud van tekst1b is hetzelfde gebleven maar tekst2b heeft geen inhoud meer aangezien tekst2a niet meer bestaat.
-
Creëer in je home-directory een archief
linux.tar.bz2
van de directorylinux/
en alle inhoud.$ COMMANDO tar -cjf linux.tar.bz2 linux UITVOER
-
Verwijder nu volledig de directory
linux/
$ COMMANDO rm -dr linux UITVOER
-
Toon de inhoud van het archief zonder opnieuw uit te pakken
$ COMMANDO tar -tjf linux.tar.bz2 UITVOER linux/ linux/.hidden linux/f/ linux/f/h/ linux/f/h/file4 linux/f/h/i/ linux/f/h/file1 linux/f/g/ linux/f/g/file2 linux/f/g/i/ linux/f/g/file1 linux/f/file1 linux/f/j/ linux/f/j/file4 linux/f/j/i/ linux/f/j/file1 linux/file2 linux/tekst2b linux/tekst1b
-
Pak het archief opnieuw uit in je home-directory.
$ COMMANDO tar -xjf linux.tar.bz2 UITVOER