Paul Cobbaut
,Linux Fundamentals
Paul Cobbaut
Publication date 2015-05-24 CEST
Abstract
This book is meant to be used in an instructor-led training. For self-study, the intent is to read
this book next to a working Linux computer so you can immediately do every subject, practicing
each command.
This book is aimed at novice Linux system administrators (and might be interesting and useful
for home users that want to know a bit more about their Linux system). However, this book
is not meant as an introduction to Linux desktop applications like text editors, browsers, mail
clients, multimedia or office applications.
More information and free .pdf available at http://linux-training.be .
Feel free to contact the author:
• Paul Cobbaut: , http://www.linkedin.com/in/cobbaut
Contributors to the Linux Training project are:
• Serge van Ginderachter: , build scripts and infrastructure setup
• Ywein Van den Brande: , license and legal sections
• Hendrik De Vloed: , buildheader.pl script
We'd also like to thank our reviewers:
• Wouter Verhelst: , http://grep.be
• Geert Goossens: , http://www.linkedin.com/in/
geertgoossens
• Elie De Brauwer: , http://www.de-brauwer.be
• Christophe Vandeplas: , http://christophe.vandeplas.com
• Bert Desmet: , http://blog.bdesmet.be
• Rich Yonts: ,
Copyright 2007-2015 Netsec BVBA, Paul Cobbaut
Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.3 or any later version published by the Free
Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled 'GNU Free Documentation
License'.
,Table of Contents
I. introduction to Linux ................................................................................................................................... 1
1. Linux history .................................................................................................................................... 3
1.1. 1969 ....................................................................................................................................... 4
1.2. 1980s ...................................................................................................................................... 4
1.3. 1990s ...................................................................................................................................... 4
1.4. 2015 ....................................................................................................................................... 5
2. distributions ...................................................................................................................................... 6
2.1. Red Hat .................................................................................................................................. 7
2.2. Ubuntu ................................................................................................................................... 7
2.3. Debian .................................................................................................................................... 7
2.4. Other ...................................................................................................................................... 7
2.5. Which to choose ? ................................................................................................................. 8
3. licensing ............................................................................................................................................. 9
3.1. about software licenses ....................................................................................................... 10
3.2. public domain software and freeware ................................................................................. 10
3.3. Free Software or Open Source Software ............................................................................ 10
3.4. GNU General Public License .............................................................................................. 11
3.5. using GPLv3 software ......................................................................................................... 11
3.6. BSD license ......................................................................................................................... 12
3.7. other licenses ....................................................................................................................... 12
3.8. combination of software licenses ........................................................................................ 12
II. installing Linux ......................................................................................................................................... 13
4. installing Debian 8 ......................................................................................................................... 15
4.1. Debian .................................................................................................................................. 16
4.2. Downloading ........................................................................................................................ 16
4.3. virtualbox networking ......................................................................................................... 32
4.4. setting the hostname ............................................................................................................ 34
4.5. adding a static ip address .................................................................................................... 34
4.6. Debian package management .............................................................................................. 35
5. installing CentOS 7 ........................................................................................................................ 36
5.1. download a CentOS 7 image .............................................................................................. 37
5.2. Virtualbox ............................................................................................................................ 39
5.3. CentOS 7 installing ............................................................................................................. 44
5.4. CentOS 7 first logon ........................................................................................................... 52
5.5. Virtualbox network interface .............................................................................................. 53
5.6. configuring the network ...................................................................................................... 54
5.7. adding one static ip address ................................................................................................ 54
5.8. package management ........................................................................................................... 55
5.9. logon from Linux and MacOSX ......................................................................................... 56
5.10. logon from MS Windows ................................................................................................. 56
6. getting Linux at home ................................................................................................................... 58
6.1. download a Linux CD image .............................................................................................. 59
6.2. download Virtualbox ........................................................................................................... 59
6.3. create a virtual machine ...................................................................................................... 60
6.4. attach the CD image ............................................................................................................ 65
6.5. install Linux ......................................................................................................................... 68
III. first steps on the command line .............................................................................................................. 69
7. man pages ....................................................................................................................................... 71
7.1. man $command ................................................................................................................... 72
7.2. man $configfile .................................................................................................................... 72
7.3. man $daemon ...................................................................................................................... 72
7.4. man -k (apropos) ................................................................................................................. 72
7.5. whatis ................................................................................................................................... 72
7.6. whereis ................................................................................................................................. 72
7.7. man sections ........................................................................................................................ 73
iii
, Linux Fundamentals
7.8. man $section $file ............................................................................................................... 73
7.9. man man .............................................................................................................................. 73
7.10. mandb ................................................................................................................................ 73
8. working with directories ............................................................................................................... 74
8.1. pwd ...................................................................................................................................... 75
8.2. cd .......................................................................................................................................... 75
8.3. absolute and relative paths .................................................................................................. 76
8.4. path completion ................................................................................................................... 77
8.5. ls ........................................................................................................................................... 77
8.6. mkdir .................................................................................................................................... 79
8.7. rmdir .................................................................................................................................... 79
8.8. practice: working with directories ....................................................................................... 81
8.9. solution: working with directories ...................................................................................... 82
9. working with files ........................................................................................................................... 84
9.1. all files are case sensitive ................................................................................................... 85
9.2. everything is a file .............................................................................................................. 85
9.3. file ........................................................................................................................................ 85
9.4. touch .................................................................................................................................... 86
9.5. rm ......................................................................................................................................... 87
9.6. cp .......................................................................................................................................... 88
9.7. mv ........................................................................................................................................ 89
9.8. rename .................................................................................................................................. 90
9.9. practice: working with files ................................................................................................ 91
9.10. solution: working with files .............................................................................................. 92
10. working with file contents ........................................................................................................... 94
10.1. head .................................................................................................................................... 95
10.2. tail ...................................................................................................................................... 95
10.3. cat ....................................................................................................................................... 96
10.4. tac ....................................................................................................................................... 97
10.5. more and less ..................................................................................................................... 98
10.6. strings ................................................................................................................................. 98
10.7. practice: file contents ........................................................................................................ 99
10.8. solution: file contents ...................................................................................................... 100
11. the Linux file tree ...................................................................................................................... 101
11.1. filesystem hierarchy standard .......................................................................................... 102
11.2. man hier ........................................................................................................................... 102
11.3. the root directory / ........................................................................................................... 102
11.4. binary directories ............................................................................................................. 103
11.5. configuration directories .................................................................................................. 105
11.6. data directories ................................................................................................................ 107
11.7. in memory directories ..................................................................................................... 109
11.8. /usr Unix System Resources ............................................................................................ 114
11.9. /var variable data ............................................................................................................. 116
11.10. practice: file system tree ............................................................................................... 118
11.11. solution: file system tree ............................................................................................... 120
IV. shell expansion ...................................................................................................................................... 122
12. commands and arguments ........................................................................................................ 125
12.1. arguments ......................................................................................................................... 126
12.2. white space removal ........................................................................................................ 126
12.3. single quotes .................................................................................................................... 127
12.4. double quotes ................................................................................................................... 127
12.5. echo and quotes ............................................................................................................... 127
12.6. commands ........................................................................................................................ 128
12.7. aliases ............................................................................................................................... 129
12.8. displaying shell expansion .............................................................................................. 130
12.9. practice: commands and arguments ................................................................................ 131
12.10. solution: commands and arguments .............................................................................. 133
13. control operators ........................................................................................................................ 135
iv