Avans Informatica
OPERATING SYSTEMS 1 GUIDE
March 31, 2019
Styn vd. Haterd
Versie 1.1
,Contents
1 Introductie 1
2 Wat is een script 2
2.1 Shebang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Variabelen 3
4 Argumenten 5
5 Exit Status 6
5.1 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Flow Control 7
6.1 Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.2 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7 Functions 9
7.1 Functie argumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2 shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.3 getopts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Filesystem 12
8.1 inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.1 Bestandsnamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.2 Hard Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.3 Maken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.2 Symlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.2.1 Maken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9 Unix Directory 14
9.1 Mounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.2 Relative/Absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.3 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3.1 stdout naar stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3.2 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.4 /dev/null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10 Filters 17
10.1 Conventies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.2 Commando: sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.2.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.2.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2
, 10.3 Commando: uniq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.3.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.4 Commando: tr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.4.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.4.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.5 Commando: wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.5.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.5.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.6 Commando: grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.6.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.6.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.7 Commando: head/tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.7.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.7.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.8 Commando: sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.8.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.9 Commando: awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10.9.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10.10Commando: find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.3 exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.11Commando: xargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.11.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11 Short circuit 28
11.1 && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11.2 || . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12 Users & Groups 29
13 Processen 30
13.1 Parent/Child . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.2 ID’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.3 Process termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.4 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
13.5 Commando: ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
14 Signals 32
14.1 Commando: kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
14.2 Signal trapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
15 Jobs 35
3
, 1 Introductie
Deze samenvatting bevat alle relevante informatie vergaard vanuit de presentaties van
Operating Systems 1. Het zal niet ingaan op wat het verschil tussen Windows en Linux
is maar over scripting gaan. Het wordt ook aangeraden om zelf verder te zoeken op
internet naar de genoemde methodes en commando’s, vooral de grootte complexe
onderwerpen zullen niet in complete detail worden beschreven.
1
OPERATING SYSTEMS 1 GUIDE
March 31, 2019
Styn vd. Haterd
Versie 1.1
,Contents
1 Introductie 1
2 Wat is een script 2
2.1 Shebang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Variabelen 3
4 Argumenten 5
5 Exit Status 6
5.1 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Flow Control 7
6.1 Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.2 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7 Functions 9
7.1 Functie argumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.2 shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.3 getopts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Filesystem 12
8.1 inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.1 Bestandsnamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.2 Hard Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1.3 Maken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.2 Symlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.2.1 Maken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9 Unix Directory 14
9.1 Mounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.2 Relative/Absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.3 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3.1 stdout naar stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3.2 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.4 /dev/null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10 Filters 17
10.1 Conventies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.2 Commando: sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.2.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.2.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2
, 10.3 Commando: uniq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.3.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.4 Commando: tr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.4.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.4.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.5 Commando: wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.5.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.5.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.6 Commando: grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.6.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.6.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.7 Commando: head/tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.7.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.7.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.8 Commando: sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.8.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.9 Commando: awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10.9.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10.10Commando: find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.1 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.10.3 exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.11Commando: xargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.11.1 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11 Short circuit 28
11.1 && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11.2 || . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12 Users & Groups 29
13 Processen 30
13.1 Parent/Child . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.2 ID’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.3 Process termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.4 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
13.5 Commando: ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
14 Signals 32
14.1 Commando: kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
14.2 Signal trapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
15 Jobs 35
3
, 1 Introductie
Deze samenvatting bevat alle relevante informatie vergaard vanuit de presentaties van
Operating Systems 1. Het zal niet ingaan op wat het verschil tussen Windows en Linux
is maar over scripting gaan. Het wordt ook aangeraden om zelf verder te zoeken op
internet naar de genoemde methodes en commando’s, vooral de grootte complexe
onderwerpen zullen niet in complete detail worden beschreven.
1