167 lines
5.6 KiB
Markdown
167 lines
5.6 KiB
Markdown
|
# Introduction
|
||
|
|
||
|
## Pre - Reads
|
||
|
|
||
|
- Experience of working on any operating systems like Windows, Linux or Mac
|
||
|
- Basics of operating system
|
||
|
|
||
|
## What to expect from this training
|
||
|
|
||
|
This course is divided into three parts. In the first part, we will cover the
|
||
|
fundamentals of linux operating systems. We will talk about linux architecture,
|
||
|
linux distributions and uses of linux operating systems. We will also talk about
|
||
|
difference between GUI and CLI.
|
||
|
|
||
|
In the second part, we will study about some of the basic commands that are used
|
||
|
in linux. We will focus on commands used for navigating file system, commands used
|
||
|
for manipulating files, commands used for viewing files, I/O redirection etc.
|
||
|
|
||
|
In the third part, we will study about linux system administration. In this part, we
|
||
|
will focus on day to day tasks performed by linux admins like managing users/groups,
|
||
|
managing file permissions, monitoring system performance, log files etc.
|
||
|
|
||
|
In the second and third part, we will be taking examples to understand the concepts.
|
||
|
|
||
|
## What is not covered under this training
|
||
|
|
||
|
We are not covering advanced linux commands and bash scripting in this
|
||
|
course. We will also not be covering linux internals.
|
||
|
|
||
|
## Training Content
|
||
|
|
||
|
The following topics has been covered in this course:
|
||
|
|
||
|
- Introduction to Linux
|
||
|
- What are Linux Operating Systems
|
||
|
- Linux Distributions
|
||
|
- Uses of Linux Operating Systems
|
||
|
- Linux Architecture
|
||
|
- GUI vs CLI
|
||
|
- Command Line Basics
|
||
|
- Navigating File System
|
||
|
- Manipulating Files
|
||
|
- Viewing Files
|
||
|
- Text Processing Commands
|
||
|
- I/O Redirection
|
||
|
- Linux system administration
|
||
|
- User/Groups management
|
||
|
- Superuser in Linux
|
||
|
- File Permissions
|
||
|
- SSH Command
|
||
|
- Package Management
|
||
|
- Process Management
|
||
|
- Memory Management
|
||
|
- Daemons and Systemd
|
||
|
- Logs
|
||
|
|
||
|
|
||
|
## What are Linux operating systems
|
||
|
|
||
|
Most of us will be familiar with the windows operating system which is
|
||
|
used in more than 75% of the personal computers. The windows operating systems
|
||
|
are based on windows NT kernel. A kernel is the most important part of
|
||
|
an operating system which performs important functions like process
|
||
|
management, memory management, filesystem management etc.
|
||
|
|
||
|
Linux operating systems are based on the Linux kernel. A linux based
|
||
|
operating system will consist of linux kernel, GUI/CLI, system libraries
|
||
|
and system utilities. The Linux kernel was independently developed and
|
||
|
released by Linus Torvalds. The linux kernel is free and open-source -
|
||
|
[https://github.com/torvalds/linux](https://github.com/torvalds/linux)
|
||
|
|
||
|
History of Linux -
|
||
|
[https://en.wikipedia.org/wiki/History_of_Linux](https://en.wikipedia.org/wiki/History_of_Linux)
|
||
|
|
||
|
## What are popular Linux distributions
|
||
|
|
||
|
A linux distribution(distro) is an operating system that is based on
|
||
|
the linux kernel and a package management system. A package management
|
||
|
system consists of tools that helps in installing, upgrading,
|
||
|
configuring and removing softwares on the operating system.
|
||
|
|
||
|
Softwares are usually adopted to a distribution and are packaged in a
|
||
|
distro specific format. These packages are available through a distro
|
||
|
specific repository. Packages are installed and managed in the operating
|
||
|
system by a package manager.
|
||
|
|
||
|
**List of popular Linux distributions:**
|
||
|
|
||
|
- Fedora
|
||
|
|
||
|
- Ubuntu
|
||
|
|
||
|
- Debian
|
||
|
|
||
|
- Centos
|
||
|
|
||
|
- Red Hat Enterprise Linux
|
||
|
|
||
|
- Suse
|
||
|
|
||
|
- Arch Linux
|
||
|
|
||
|
|
||
|
| Packaging systems | Distributions | Package manager
|
||
|
| ---------------------- | ------------------------------------------ | -----------------
|
||
|
| Debian style (.deb) | Debian, Ubuntu | APT
|
||
|
| Red Hat style (.rpm) | Fedora, CentOS, Red Hat Enterprise Linux | YUM
|
||
|
|
||
|
## Linux Architecture
|
||
|
|
||
|

|
||
|
|
||
|
- The Linux kernel is monolithic in nature.
|
||
|
|
||
|
- System calls are used to interact with the linux kernel space.
|
||
|
|
||
|
- Kernel code can only be executed in the kernel mode. Non-kernel code is executed in the user mode.
|
||
|
|
||
|
- Device drivers are used to communicate with the hardware devices.
|
||
|
|
||
|
## Uses of Linux Operating Systems
|
||
|
|
||
|
Operating system based on linux kernel are widely used in:
|
||
|
|
||
|
- Personal computers
|
||
|
|
||
|
- Servers
|
||
|
|
||
|
- Mobile phones - Android is based on linux operating system
|
||
|
|
||
|
- Embedded devices - watches, televisions, traffic lights etc
|
||
|
|
||
|
- Satelites
|
||
|
|
||
|
- Network devices - routers, switches etc.
|
||
|
|
||
|
## Graphical user interface (GUI) vs Command line interface (CLI)
|
||
|
|
||
|
A user interacts with a computer with the help of user interfaces. The
|
||
|
user interface can be either GUI or CLI.
|
||
|
|
||
|
Graphical user interface allows a user to interact with the computer
|
||
|
using graphics such as icons and images. When a user clicks on an icon
|
||
|
to open an application on a computer, he or she is actually using the
|
||
|
GUI. It's easy to perform tasks using GUI.
|
||
|
|
||
|
Command line interface allows a user to interact with the computer using
|
||
|
commands. A user types the command in a terminal and the system helps in
|
||
|
executing these commands. A new user with experience on GUI may find it
|
||
|
difficult to interact with CLI as he/she needs to be aware of the commands
|
||
|
to perform a particular operation.
|
||
|
|
||
|
## Shell vs Terminal
|
||
|
|
||
|
Shell is a program that takes command or a group of commands from the
|
||
|
users and gives them to the operating system for processing. Shell is an
|
||
|
example of command line interface. Bash is one of the most popular shell
|
||
|
programs available on linux servers. Other popular shell programs are
|
||
|
zsh, ksh and tcsh.
|
||
|
|
||
|
Terminal is a program that opens a window and lets you interact with the
|
||
|
shell. Some popular examples of terminals are gnome-terminal, xterm,
|
||
|
konsole etc.
|
||
|
|
||
|
Linux users do use the terms shell, terminal, prompt, console etc.
|
||
|
interchangeably. In simple terms, these all refer to a way of taking
|
||
|
commands from the user.
|