1. Introduction

This book is about using GNU/Linux as an operating system and various important server software which comes with it. As an example we will use Mint GNU/Linux distribution although most of it can be applied to any GNU/Linux distribution. The reason for choosing Mint GNU/Linux is its popularity and having apt based package management system. It is a well known fact(although many will/can argue against this fact) that apt based systems are superior to yum or rpm based systems for package management and default repositories are larger.

GNU/Linux is not yet a popular desktop environment if you compare it with the most popular proprietary operating system. However, in server market it is very popular and those of us who are programmers, either in a company or a freelancer, know that it is very important to know about GNU/Linux system. That is because it is in general an accepted fact that GNU/Linux provides superior development experience and its total cost of ownership is much lower than a proprietary operating system. One of the most important points in favor of GNU/Linux operating system is that its resource consumption is quite low as compared to other operating system. Without GUI a GNU/Linux system can provide many facilities even with as little as 128 or 256 MB of RAM. This makes it very favorable when you want to own a server on internet for say a VPS(virtual private server) or a VM(virtual machine) or dedicated servers for hosting a website or mail server or for some other purpose.

Other than that most popular mobile operating system Android is nothing but a GNU/Linux variant with customization. Similarly, companies like Google, Facebook, Twitter, Amazon etc. use GNU/Linux servers to power their massive websites.

1.1. Who this book is for?

This book is written for anyone who wants to use GNU/Linux as an operating system whether as a desktop or server. There is no prior experience with computers is necessary although if you have such experience then you will be able to proceed at a faster pace and possibly skip many basics which are mandatory for a person absolutely new to computers.

One document comes to my mind which has very high quality of documentation. It is the coreutils documentation which can be found at https://www.gnu.org/software/coreutils/manual/. However, the first line of the manual itself says that it is not for novices. I will take a lot of information from this document and dilute it enough to make it suitable for beginners.