Linux for Beginners
Agenda
1. Getting Started
2. Understanding Linux
3. Your First Linux Experience
4. Post Installation Activities
5. Using the Linux Command Line
6. Basic Administration & Security
7. Introduction to Scripting
Chapter 1: Getting Started
● Overview of Linux
● Differences with Other OS
What is an A special kind of software which
is between the hardware of the
Operating System? PC and the programs that you
want to use and work with.
The OS is the software that brings
together the a computer’s
hardware and the different
programs you want to install on it.
The OS is 1. Detect hardware
2. Manage processes
responsible for the 3. Manage memory
following tasks: 4. Initiate user interfaces
5. Establish file systems
6. Manage access and user
authentication
7. Provide a platform for
administrative use
8. Startup-services
1. Detect An OS is responsible for
Hardware validating the components of
a computer during boot up
and loading the corresponding
drivers and modules for the
hardware to properly run.
Similar to the way our mind
works, several processes or
applications are running on a
2. Manage computer at the same time.
Processes
It is the OS that is responsible
for allocating CPU resources
and sharing it among the
processes.
The OS also provides the user
the option to start, stop, or
restart a process.
3. Manage Memory Each application needs a
specific amount of RAM and
swap memory to function.
The OS is responsible for
assigning memory allocations
and for handling memory
requests.
4. Initiate User An OS offers users ways to
Interfaces access the system either via a
command line or a graphical
user interface (GUI).
5. Establish File The OS handles the
Systems management of files (access,
directories, and structure),
including the access to the file
system.
6. Manage Access An OS allows for creating user
and User accounts with different
permissions for access to files
Authentication
and processes.
7. Provide a A computer’s OS provides a
Platform for platform for the administrator
to add users, allocate disk
Administrative
space, install software, and to
Use perform activities to manage
the computer.
8. Start-up The OS manages several
Services processes running in the
background known as daemon
processes.
Linux is Open-Source
Linux is continuously developed
collaboratively.
No single company owns the
development and support of Linux.
100+ Companies
There are more than 100 companies and over 1,000 developers who
work together for every kernel release.
Kernel
Linux is composed of a kernel, the
core control software, plus plenty
of libraries and utilities that
provide different features.
Distributions
Linux is available in many
distributions.
These are called Linux flavors.
Distributions are groups of
specific kernels and programs.
Linux has the largest market
share when it comes to server OS
Least popular for personal and home use
Linux has the 1. Supports clustering
2. Runs virtualization
following 3. Cloud computing
additional 4. Options for storage
characteristics:
1. Supports Multiple Linux systems can be
Clustering configured to appear as one
system from the outside.
Service can be configured
among clusters and still offer
a seamless experience.
Virtualization allows one
computer to appear as several
computers to users.
2. Runs Linux can be configured as a
Virtualization virtualization host - where
you can run other OS such as
Windows, macOS, or other
Linux systems.
All the virtualized systems
appear as separate systems to
the outside world
3. Cloud
Computing
4. Options for Data need not always be
Storage stored in your hard disk.
Linux offers different local
and networked storage
options such as Fiber Channel
and iSCSI.
Linus Torvalds
A student from Finland, he
created Linux in 1991 using C
and assembly language.
Initially, he named it Freax, a
combination of the words
“Free” + “Freak” + “x”
Ari Lemmke
He was the FTP server
administrator where Linus
uploaded the files for the
operating system.
He didn’t think Freax sounded
good so he renamed the folder
to Linux without telling Linus.
GNU GPL License In 1992, Linux was licensed
under the GNU GPL and the
first Linux distributions (also
called distro) were created.
GPL = General Public License
Slackware
The oldest existing Linux
distro
Debian
The largest community
distribution
Suse
Red Hat
Commercial distributions
Market Share Server market revenue has
already passed that of UNIX.
Android mobile OS has gained
75% market share.
98.8%
98.8% of the world’s fastest systems use the Linux kernel.
Is Linux Better than 1. Cost
Other Operating 2. Viruses
3. System Stability
Systems?
4. Installation
5. Support
Windows, if obtained legally,
1. Cost costs at least $100 and even
more for the Pro and
Commercial versions.
Linux is free of charge, even
for commercial distros.
Companies sell services for
support and documentation
but not for the software.
2. Viruses Linux hardly gets any viruses.
Since most people use
Windows, attackers target
windows.
Since its open-source, more
developers are able to look for
security flaws and help with
fixes.
3. System Stability Large scale systems can go for
years without restarting the
server.
Only time when restart is
needed is kernel updates.
Even upgrading software only
requires a service restart, not
a node restart.
Basic software is provided
with Linux OS installation:
4. Installation ● Text Editor
● Spreadsheet
● Presentation Program
● Photo Editor
● Web Browser
● Movie Player
● PDF Reader
Drivers are pre-installed and
configured with the install
5. Support Large online community:
● Get information
● Read FAQs
● Ask Questions
Unlimited number of
resources to use and learn
from. All for free.
Axiom Certified Cloud Native
Specialist
https://web.facebook.com/g
roups/369055357195837/
● You need to use
proprietary software and
Stick to your cannot find an open-
current OS if these source equivalent
● If you are a serious gamer.
conditions apply:
Most PC games are made
for Windows.
● Hardware compatibility
issues - many hardware
devices don’t come with
Linux drivers
Chapter 2: Understanding Linux
● OS Architecture
● Different Flavors for Beginners
Linux Architecture Linux architecture can be
divided into two spaces.
1. User Space
2. Kernel Space
USER KERNEL
SPACE SPACE
This is where applications are
used.
The GNU C library, in the User
Space, is the interface that
USER connects to the kernel and
SPACE transitions between User and
Kernel space. This uses all
available memory.
All Kernel services are
processed here. The Kernel
space is divided into 3 parts.
1. System Call Interface
KERNEL 2. Kernel Code
SPACE 3. Architecture-Dependent
Kernel Code
A User process can access
1. System Call Kernel space through a
Interface System Call.
When a System Call is
performed, arguments are
passed from User to Kernel
space.
This is the layer that
implements basic functions.
This is architecture-
2. Kernel Code independent code, and can be
seen in all architectures that
Linux supports.
This is the layer for platform-
3. Architecture- specific codes.
Dependent
Kernel Code
Linux Distributions Let’s take a look at how
several of the popular distros
differ from each other based
on the following criteria:
1. Availability
Each Linux distro consists of 2. Package Format
a Linux kernel plus utilities 3. Release Cycle
and configuration files
1. Availability Linux is a free software, but
companies offering a support
contract and proprietary
components offer it for a fee.
Red Hat Enterprise and SUSE
Enterprise both offer Linux
commercially, but they also
have the free alternatives -
Fedora and openSUSE
2. Package Format Linux distros come in
packages.
Packages are files grouped
into one single file.
RPM is the most commonly
used.
3. Release Cycle How often a distro releases
new software.
Shorter release cycles mean
latest software is provided in
the shortest possible time.
Longer release cycles aim to
provide more stable
environments.
Ubuntu offers a long term
support (LTS) version with a
longer release cycle which
offers a more stable
environment.
Also offers the latest software
with a 6 month release cycle.
Distribution Availability Package Format Release Cycle
Arch Free Pacman Rolling
CentOS Free RPM Approx. 2-yr
Debian Free Debian 2-yr
Fedora Free RPM Approx. 6-mo
Gentoo Free Ebuild Rolling
Mint Free Debian 6-month
openSUSE Free RPM 8-month
Red Hat Enterprise Commercial RPM Approx. 2-yr
Scientific Free RPM Approx. 6-mo
Slackware Free Tarballs Irregular
SUSE Enterprise Commercial RPM 2-3 years
Ubuntu Free Debian 6-month
Choosing the Right To choose the right distro for
Distribution you, please consider all
previously mentioned points.
In addition, research these:
1. Desktop Environment
2. Hardware Compatibility
3. Community Support
1. Desktop Find out if the particular
Environment distribution that you’re eyeing
has a basic look and feel that
you like.
Is it customizable?
2. Hardware Depending on the hardware
Compatibility that you are using, some
drivers may not be available.
Check from online resources
first to know which ones can
be supported out-of-the-box.
3. Community Find a distro with a large
Support online community.
The bigger the community,
the easier to get support and
find documentation.
Assignment: Install Ubuntu
● Linux OS
● Dual Boot
● Virtual Machine with VirtualBox
Chapter 4: Your First Linux
Experience
Once Linux boots, a graphical
Turning on Your PC login screen will be shown.
Other distros don’t require
login on startup.
Each distro uses the root
username for administrator
access.
The desktop that comes up is
either KDE or GNOME.
Getting to Know Open Terminal.
Shell The shell is where you can run
executable files and shell
scripts.
The shell is what we call the
command line.
Commands are written using
this general syntax:
command option1 option2 … optionN
Let’s run some 1. uptime
commands 2. uname -srv
3. man uname
uptime
Uptime is the command that shows the duration the system has been
up.
uname -srv
uname is the command to show
the operating system name.
● -s (print the OS name)
● -r (print the OS release)
● -v (print the OS version)
● -a (display all options)
man uname
The man command displays all
the commands you can use.
Switching to Root Enter the ‘su -’ command and
input your root password to
switch to root.
This will allow you to run tasks
that only administrators and
superusers can do.
There are 2
Commonly Used
GUIs that come
with Linux
Criteria GNOME KDE
Availability Free Free
Minimum System Requirements
Development Priorities
Customization Experience
Default Appearance
Universal Search
Resource Usage and User Experience
Commands for Processing Files
Copy Lines of Data - dd
https://www.computerhope.com/unix/dd.h Use dd cautiously — improper
tm
usage or entering the wrong
The dd command copies a file, values could inadvertently
converting the format of the data in wipe, destroy, or overwrite the
the process, according to the
data on your hard drive.
operands specified.
Copy Lines of Data - dd
dd if=/dev/sda of=/dev/sdb
Comparing Files - diff
https://www.computerhope.com/unix/udiff.htm
The diff command analyzes two files and prints the lines that are different.
In essence, it outputs a set of instructions for how to change one file to
make it identical to the second file.
Comparing Files - diff
file1.txt: file2.txt:
apples apples
oranges kiwis
kiwis carrots
carrots grapefruits
Comparing Files - diff
diff -y file1.txt file2.txt
Displaying Contents of Files - more
https://www.computerhope.com/unix/umore.htm
The more command displays text, one screen at a time.
more is a filter for paging through text one screen at a time. It does not
provide as many options or enhancements as less, but is nevertheless quite
useful and simple to use.
Displaying Contents of Files - more
more +3 file1.txt
more +/"carrots" file2.txt
Displaying Contents of Files - less
https://www.computerhope.com/unix/uless.htm
the less command is a feature-rich command-line file viewer.
less is a program similar to more, but it has many more features. less does
not have to read the entire input file before starting, so with large input files
it starts up faster than text editors like vi.
Displaying Contents of Files - less
less file1.txt
less -N file1.txt
Word Counts - wc
https://www.computerhope.com/unix/uless.htm
The wc command counts the words, newlines, or bytes of each input file,
and outputs the result.
wc prints newline, word, and byte counts for each FILE, and a total if more
than one FILE is specified. With no FILE, or when FILE is a dash ("-"), wc
operates on standard input. (A word is a non-zero-length sequence of
characters delimited by white space.)
Displaying Contents of Files - less
wc file1.txt
ls -1 | wc -l
Get Sections of a File - cut
https://www.computerhope.com/unix/ucut.htm
The cut command removes ("cuts out") sections of each line of a file or files.
Get Sections of a File - cut
cut -c 3 file1.txt
cut -c 1-3 file1.txt
cut -c 3- file.txt
Display Results of Finding Expressions - grep
https://www.computerhope.com/unix/ugrep.htm
The grep command processes text line by line, and prints any lines which
match a specified pattern.
Display Results of Finding Expressions - grep
grep -w "kiwi" file1.txt
Editing Commands - sed
https://www.computerhope.com/unix/used.htm
sed is a stream editor: it filters and transforms text.
A stream editor is used to perform basic text transformations on an input
stream. sed works by making only one pass over the input(s).
Editing Commands - sed
sed 's/carrots/mangos/g'
file.txt > newfile1.txt
Splitting Files - split
https://www.computerhope.com/unix/usplit.htm
The split command splits a file into pieces.
Splitting Files - split
split -b 22 file.txt new
split -l 1 file1.txt new
Sorting data - sort
https://www.computerhope.com/unix/usort.htm
sort sorts the contents of a text file, line by line.
Sorting data - sort
sort file1.txt
sort file1.txt > file3.txt
sort -r file1.txt
Removing repeated lines - uniq
https://www.computerhope.com/unix/uuniq.htm
the uniq command reports or filters out repeated lines in a file.
uniq filters out adjacent, matching lines from input file INPUT, writing the
filtered data to output file OUTPUT.
file4.txt
This is a line.
This is a line.
This is a line.
This is also a line.
This is also a line.
This is also also a line.
Removing repeated lines - uniq
uniq file4.txt
uniq -c myfile.txt
uniq -d myfile.txt
uniq -u myfile.txt
Compressing files - compress
https://www.computerhope.com/unix/ucompres.htm
The compress command compresses a file so that it becomes smaller.
Compressing files - compress
compress -v file1.txt
Uncompressing files - uncompress
https://www.computerhope.com/unix/uuncompr.htm
The uncompress command decompresses files that have been compressed
using the compress command.
Uncompressing files - uncompress
uncompress file1.txt.Z
uncompress file1.txt