0% found this document useful (0 votes)
46 views17 pages

Linux OS Overview and Commands Guide

The document provides an overview of Linux OS, its applications in real-time environments, and comparisons with Windows OS. It covers Linux history, distributions, commands, user management, file permissions, and networking commands. Additionally, it includes instructions for setting up a Linux machine and using various text editors and package managers.

Uploaded by

jovisec598
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views17 pages

Linux OS Overview and Commands Guide

The document provides an overview of Linux OS, its applications in real-time environments, and comparisons with Windows OS. It covers Linux history, distributions, commands, user management, file permissions, and networking commands. Additionally, it includes instructions for setting up a Linux machine and using various text editors and package managers.

Uploaded by

jovisec598
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

=========

Linux OS
=========

=> Where we will use linux os in real-time

=> Jenkis Server


=> Docker Server
=> K8S cluster
=> SonarQube server
=> Nexus Server
=> ELK stack
=> Grafana & Promethues servers
=> Ansible server

=============
What is OS ?
=============

=> It is a software which acts as mediator between user and computer.

=> Users will communicate with computers using OS

=> Without OS we can't use any computer

=> OS provides platform to run our applications in computer.

Ex: notepad, calculator, browser, tomcat....

=> We have several operating systems in market

Ex: Windows, Linux, Mac, Android, IOS etc...

===========
Windows OS
===========

=> Developed by Microsoft company (Bill Gates)

=> Windows os is licensed (commercial)

=> Windows is single user based os

=> Security features are less in windows os (anti virus s/w required)

=> Windows is GUI based (graphical user interface)

=> Windows is recommended for personal use

Ex: watch movies, play games, online classes....

==========
Linux OS
==========

=> Linux is community based os (not specific to any company)

=> Linux is free and open source os


=> Linux is Multi User based OS

=> Linux is highly secured (anti virus is not required)

=> Linux is CLI based os (command line interface)

=> Linux is highly recommended for business use (servers management)

Ex: App Servers, DB servers, jenkins, docker, k8s, nexus....

==============
Linux History
==============

=> Linux OS developed by "Linus Torvalds"

-> Linus Torvalds identified some challenges/issues in Unix OS

-> Linus Torvalds identified one OS which is matching with his ideas

i.e Minux os

-> Linus Torvalds used Minux OS code and made some changes and released into market
as new OS i.e Linux OS.

(Li) nus + Mi (nux) = Linux

======================
Linux Distributions
======================

-> Linus Torvalds provided Linux OS source code for free of cost

-> So many companies downloaded Linux OS source code and modified according to
their requirement and released into market with their brand names

Those are called as Linux Distributions/ Linux Flavours.

-> We have 200+ Linux Distributions in the market.

Ex: Amazon Linux, Ubuntu, Red HAT, suse, debian, kali, fedora....

=============================
How to setup Linux Machine ?
=============================

Approach-1 : Download and Install Linux OS in our System.

Approach-2 : Use Virtual Box and install Linux os as guest os

Approach-3 : Setup Linux VM in AWS Cloud for free of cost

(1 year & monthly 750 hours you can use)

======================================================================

👉 *AWS Account Setup* : [Link]

👉 *Linux VM Setup in AWS* : [Link]


👉 *Connect Linux VM with MobaXterm* : [Link]
si=ZuZs0lQTxoRpbRMk

👉 *Connect Linux VM with putty* : [Link]

=============================================================================

================
Linux Commands
================

whoami : display logged in username

pwd : display present working directory

date : display today's date

cal : display current month calendar

cal 2025 : display 2025 year calendar

clear : clear the terminal content

mkdir : make directory (create folder)

mkdir aws
mkdir devops
mkdir docker

rmdir : remove empty directory (delete)

rmdir devops

rm -rf <dir> : remove non-empty directory

rm -rf devops

ls : display present working directory content

ls -l : long list the files in alphabetical order

ls -lr : display files in reverse of alphabetical order

ls -lt : display latest files on top

ls -ltr : display old files on top

ls -la : display hidden files

touch : To create empty files in linux

touch [Link]
touch [Link] [Link]

cd : change directory

cd dir-name
cd ..

rm : to delete file

rm [Link]

rm -rf <dir-name>

mv : For rename & move

mv existing-name new-name

mv presention-location new-location

cat : create new file with data + append data to file + print file data

# create new file with data


cat > [Link]

# append data to existing file


cat >> [Link]

# print file data


cat [Link]

# print file data along with line numbers


cat -n [Link]

tac : To print file data from bottom to top

==============================
10-July-2024 (Linux Commands)
==============================

cp : copy file data from one file to another file

cp [Link] [Link]

Note: If we want to copy data from multiple files then we should use cat command

cat [Link] [Link] > [Link]

head : print first 10 lines of the file

head [Link]

head -n 20 [Link]

head -n 50 [Link]

tail : print last 10 lines of the file

tail [Link]

tail -n 25 [Link]
Note: To get latest log message from log file we will use tail command.

grep : grep stands for global regular expression print

Note: Using grep command we can search for content in the file

# print lines which contains teen keyword


grep 'teen' [Link]

# ignore case sentiveness


grep -i 'teen' [Link]

# print lines contains teen with line number


grep -n 'teen' [Link]

# print lines which doesn't contain teen keyword


grep -v 'teen' [Link]

# search for teen keyword in all files of pwd


grep 'teen' *

# tail with grep combination


# in last 10 lines of file search for 'teen' keyword
tail [Link] | grep 'teen'

wc : word count

=======================
Text Editors in Linux
=======================

=> vi (visual editor) it is default editor in linux machines

=> Using 'vi' we can create new files and we can modify existing file data.

=> vi command is having 3 modes

1) command mode (just to open the file)

Ex: vi <filename>

2) insert mode (to edit the file ) ---> press 'i' in keyboard

3) esc mode (to comeout from insert mode) --> press 'esc' in keyboard

## Save changes & close the file => :wq

## Without saving changes close the file => :q!

Note: vi command will open the file if it is avilable otherwise it will create new
file and it will open that file.

========================
file creation commands
=======================

touch : to create empty file


cat : create file with data
cp : copy one file data into another file (cp [Link] [Link])
vi : create and open file for editing (vi [Link])

====================
reading file data
===================
cat : print file data from top to bottom
tac : print file data from bottom to top
head : print first 10 lines of file data
tail : print last 10 lines of file data
vi : open the file

###############
11-July-2024
###############

=============
SED Command
=============

=> SED stands for stream editor

=> SED is used to process the data (substitute, delete, print, insert)

=> Using SED command we can perform operations on the file without opening the
file.

=> SED is very powerful command in linux

# replace first occurance of linux keyword with unix


sed 's/linux/unix/' [Link]

# replace second occurance of linux keyword with unix


sed 's/linux/unix/2' [Link]

# replace 3rd occurance of linux keyword with unix


sed 's/linux/unix/3' [Link]

# replace all occurances of linux keyword with unix


sed 's/linux/unix/g' [Link]

# substitute and save changes in original file


sed -i 's/linux/unix/g' [Link]

# delete first line of the file


sed -i '1d' [Link]

# delete fourth line of the file


sed -i '4d' [Link]

#delete last line of the file


sed -i '$d' [Link]
# delete data from nth line to last line
sed -i 'n,$d' [Link]

Note: n is a number

# delete data from 5th line to 15th line


sed -i '5, 15d' [Link]

# print data from line number 10 to 20


sed -n '10,20p' [Link]

# insert data at 2nd line


sed '2i\i love india' [Link]

# insert data at last line


sed '$a\i am from ashokit' [Link]

=================
User Management
=================

=> Linux is a multi user based OS

=> Multiple users can acces single linux machine and can perform multi tasking at
time.

Note: "ec2-user" is a default user in amazon linux vm. ec2-user having sudo
priviliges.

=> Within one linux machine we can create multiple user accounts

=> when we create user account, for user one home directory will be created.

ec2-user => /home/ec2-user

john => /home/john

smith => /home/smith

# create user
sudo useradd <uname>

# set password for user & update pwd for user


sudo passwd <uname>

# display all users created


cat /etc/passwd

# swith user account


su <uname>

# navigate to current user home directory


cd ~

# Delete user
$ sudo userdel <uname>

# Delete user along with user home directory


$ sudo userdel <uname> --remove
# how to change username
$ sudo usermod -l <new-name> <old-name>

/etc/passwd: Contains general user information.


/etc/shadow: Contains hashed passwords and other security-related information.

===================================
Working with user groups in linux
===================================

=> When we create user in linux, for every user one user group also will be created
with the given username.

# Display all groups in linux


$ cat /etc/group

# Create group in linux


$ sudo groupadd <group-name>

# Adding user to group


$ sudo usermod -aG <group-name> <username>

# Remove user from the group


$ sudo gpasswd -d <username> <group-name>

# display users belongs to a group


$ sudo lid -g <group-name>

# display user belongs to which groups


$ id <username>

# delete group
$ sudo groupdel <group-name>

# changing group name


$ sudo groupmod -n <new-name> <old-name>

===================================================================================
====
Assignment : create new user and connect with linux vm using newly created user
account
===================================================================================
====

###############
12-July-2024
###############

=> In linux, to enable password based authentication we need to modify below 2


files

1) sudoers
2) sshd_config

=================================
What is sudoers file in Linux
=================================

=> It is very important configuration file in linux machine.

=> Using this file we can control which user can run command as a superuser.

# print sudoersfile content


$ sudo cat /etc/sudeors

Note: We should be very careful while working with sudoers file. If we do any
mistakes in sudoers file then system will be crashed.

########## Giving sudo previliges for user #######

# open sudoers file


$ sudo visudo

# Add below line


<username> ALL=(ALL:ALL) ALL

=> After making changes to close sudoers file => ( CTRL + X + Y + Enter)

========================================================
How to enable password based authentication for users ?
========================================================

=> In linux vm, by default passwordauthentication is no

=> If we want to connect with linux vm using username and password then we need to
set that value as yes.

=> WE WLL MODIFY THIS IN "sshd_config" file.

# Display sshd_configurration file data


$ sudo cat /etc/ssh/sshd_config

# Open file
$ sudo vi /etc/ssh/sshd_config

Note: Go to insert mode and enable pwdbasedauthentication as yes

# restart sshd service


# sudo systemctl restart sshd

Note : Now we can connect with linux vm using username and pwd

$ ssh username@public-ip

==========================
File Permissions in Linux
==========================

=> Using file permissions we can secure our files and we can protect our file data.

=> We have 3 types of permissions in linux

r => read
w => write

x => execute

=> file/directory permissions will be represented like below

rwxrwxrwx [Link]

=> file permissions contains in 9 characters

first 3 characters => user/owner permissions

middle 3 characters => group permissions

last 3 characters => others permissions

r--r-xr-- [Link]

user : read
group : read + execute
others : read

r-xrw--w- [Link]

user: read + execute


group: read + write
others : write

=> To change file/directory permissions we will use 'chmod'command

+ => add

- => remove

# Giving execute permission for user


$ chmod u+x [Link]

# giving write permission for group


$ chmod g+w [Link]

# Remove execute permission for others


$ chmod o-x [Link]

# Removeall permissions for others


$ chmod o-rwx [Link]

# give all permissions for group


$ chmod g+rwx [Link]

====================================
File Permissions in Numeric Format
====================================

0 => no permissions

1 => Execute
2 => Write

3 => (2+1) => Write + Execute

4 => Read

5 => (4 + 1) => Read + Execute

6 => (4+2) => Read + Write

7 => (6+1) => Read + Write + Execute

# ugo+x
$ chmod 111 [Link]

# ugo+w
$ chmod 222 [Link]

# u+rwx, g+rw o+rx


$ chmod 765 [Link]

# u+r, g+rx, o+rw


$ chmod 456 [Link]

# u+rwx, g+rwx, o+rwx


$ chmod 777 [Link]

# u-rwx, g-rwx, o+rwx


$ chmod 7 [Link]

###############
15-July-2024
###############

===============
chown command
===============

=> It is used to change file/directory ownership

# change owner
sudo chown new-owner file/directory

# change owner-group
sudo chown :new-group file/directory

# change owner & group of file/directory


sudo chown new-owner:new-group file/directory

============================================
Q) What is the diff between chmod & chown ?
============================================

chmod => To change file/directory permissions

chown => To change owner/group


=============================================
How to find the location of files in linux?
=============================================

=> in linux we can use 'find' command to search file paths.

# search for the files which are having name as [Link]


sudo find /home -name [Link]

# search for empty files inside /home


sudo find /home -type f -empty

# search for empty directories inside /home


sudo find /home -type d -empty

# print 30 days old files in linux vm


sudo find /home -mtime 30 -print

# print 1 day old files in linux vm


sudo find /home -mtime 1 -print

# delete 30 days old files in linux vm


sudo find /home -mtime 30 -delete

=================================
Working with Zip files in linux
=================================

=> Zip is used for files archieve (compress)

## syntax to create zip file : $ zip <zip-file-name> <content>

# create some empty files


touch [Link] [Link] [Link]

# create zip file with content


zip ashokit_data *.txt

# unzip the zip file


unzip ashokit_data.zip

======================
Networking commands
======================

ping : To check connectivity


ping [Link]

wget : It is used to download files from internet


wget <url>

curl : It is used to send HTTP request to server

curl [Link]

ifconfig : To get ip address of the machine

###############################################################################
Date : 16-July-2024
###############################################################################

==========================
Package Managers in Linux
==========================

=> package means a software

Ex: git, maven, java, python etc...

=> Package Managers are used to install / update / manage software packages in
linux machines.

=> Package managers are specific to linux distribution.

amazon linux / Red Hat Linux / Cent OS : yum

ubuntu / debian : apt

# check git client installed or not


git -version

# install git client s/w


sudo yum install git

# check git installation path


whereis git

# check java version


java -version

# check java path


whereis java

# install java
sudo yum install java

======================================================
Assignment : Remove git and java from linux machine
======================================================

=============================
Webserver Setup in Linux VM
============================

=> Webserver is a software which is used to run websites.

=> Website means collection of web pages

ex: login page, register page, dashboard page, about us page ....

=> Websites are divided into 2 types

1) Static website
2) Dynamic website

=> The website which gives same response for every user is called as static
website.

=> The website which gives response based on logged in user is called as dynamic
website.

=> To run static websites we can use 'httpd' as webserver.

=> To run dynamic websites we can use 'tomcat, iis' as webservers.

# install httpd webserver


sudo yum install httpd -y

# check webserver status


sudo service httpd status

# start httpd server


sudo service httpd start

Note: httpd webserver runs on http protocol with 80 port number.

Note: To access our webserver we need to enable http protocol in ec2 vm security
group inbound rules.

=> Once http protocol enabled we can access our webserver using ec2-linux-vm public
ip

# navigate to website content directory


cd /var/www/html

# create a file with a name : [Link] and write the content


sudo vi [Link]

================================
Static website hostig in linux
================================

# install webserver
$ sudo yum install httpd

# start webserver
$ sudo service httpd start

# Navigate to website content directory


$ cd /var/www/html

# create [Link] file with website content


$ sudo vi [Link]

Note: httpd webserver runs on 80 port number.

=> To access our webserver we need to enable 80 port number in security group
inbound rules.

=> We can access our webserver using ec2-vm public ip.


================================
What is systemctl in linux ?
================================

=> systemctl is used to manage services in linux machines.

=> using systemctl we can perform below operations

a) start a service
b) stop a service
c) restart a service
d) enable/disable service

# stop httpd server


sudo systemctl stop httpd

# start httpd server


sudo systemctl start httpd

# reload service
sudo systemctl reload http

====================================================

uptime : from when our linux vm is running

free : to display memory details

top : display running processes

htop : display running process in table format

Q) How to check linux os version ?


Ans) cat /etc/os-release

Q) How to check linux kernel version ?


Ans) uname -r

###############################################################################
Date : 18-July-2024
###############################################################################

===========================
Working with Link Files
===========================

=> In linux we can create link files ( similar to shorcut files in windows )

=> We have 2 types of link files in linux

1) Hard link
2) Soft link (symbolic link)

--------------------------------
Syntax To create Hard Link
--------------------------------

$ ln <orginal-file> <link-file>
$ touch [Link]

# create link file


$ ln [Link] [Link]

Note: [Link] is link file for [Link]

# print files along with inode numbers


# ls -li

Note: If we write some data to original file, it is reflecting in link file also.

Note: when we delete original file, link file is not effected (hard link).

------------------------------
Syntax To create Soft Link
------------------------------

$ ln -s <orginal-file> <soft-link-file>

Ex:

$ touch [Link]

$ ln -s [Link] [Link]

$ ls -li

Note: Original file and link file having diff inode numbes

$ cat >> [Link]

Note: Original file data reflecting in link file also.

$ rm [Link]

Note: When we remove original file then soft link file will become dangling file.
We can't access that file.

=====================
process management
=====================

Process management in Linux involves controlling and monitoring the execution of


programs (processes) on the system.

# display processing running


$ ps aux

Note: Every process will process id (PID)

$ kill PID

# terminate process immediatley (forcefully)


$ kill -9 PID
=============================================
How to change hostname in vm (temporarly) ?
=============================================

# set hostname
$ sudo hostname <new-name>

# re-start session
$ exit

Note: connect back to vm then we can see configured hostname

===================================
How to set hostname permanentley
===================================

# update hostname in below file


$ sudo vi /etc/hostname

# restart the vm

Note: After restart hostname configured in file will be reflected in terminal.

=========
Summary
=========

1) What is Linux OS
2) Windows Vs Linux
3) Linux VM Setup in AWS cloud
4) Connecting with Linux VM using SSH client
5) Directories & Files Based Operations
6) Text Editors
7) Text filters
8) User & Group Management
9) File Permissions
10) File Ownership
11) Archieves
12) Networking
13) suderos file
14) sshd_config
15) package managers
16) static website hosting (httpd)
17) Service Management (systemctl)
18) Process management
19) Working with link files
20) Changing Hostname

You might also like