Linux Basics
Tags: linux, beginners
Published: 2021-03-22 12:27:37

#What is LINUX ?

--Linux is open source & free - Derived from UNIX, written in C - low level language 

--Terminal - It's the place where you can interact with OS using commands.

--All the distributions providers [ ubuntu, linux mint, Centos, Fedora, Redhat, Kali linux, etc] they will take the kernal & they will modify & release  their own linux version. That means "ubuntu, linux mint, Centos, Fedora, Redhat,Kali linux, etc ] all are Linux only

#Basics Linux commands:

cd -- moves to home directory (change directory) , used to move to different directory.

man   -- manual (like an user manual)
help  -- provide information about each command
ls    -- To list files and directories under a folder.
ls -lh -- human readable


#Wildcards:
ls *.Txt - - list all the Txt files
ls ?.Txt  -- list only Txt file which has one character 
eg:  a.txt b.txt
ls file[1234].txt 

mkdir -p nee/folder/subfolder -- To create directory under specified path

-p    --  to create subfolders

#create and delete (File/Directory)

touch filename --create a file
rm filename    --remove a file

mkdir "Hello world"  --creates a dir
To include space in folder name
rmdir           -- empty directory
rm -r           -- to remove directory that has files
rm -ri folder   -- interactive 

#To edit a file user nano or vi editor:
NANO:

nano filename -- brings you to editor

^ ctrl
M - alt

#FIND:

find -name "*.Txt"
find -iname "*.TXT"
find -type f       --file
find -type d       --dir
find -maxdepth 2   --levels to search
-i                 -- case insensitive


#Viewing files:
cat file.txt
tac           ----- reverse order vertically
rev           ------ reverse horizontally
less file.txt -----when file size is big 
head -n 20 test.txt -----first 20 lines
tail -n 20 -----last 20 lines

#Sorting:

sort test.txt
sort -n test.txt ------> for numbers
sort -r          -----> for reverse order
sort -u          -----> for unique list



#ARCHIVING-COMPRESSING:
It involves two steps: 

1.creating tar balls
tar -cvf tarballname file1.txt file2.txt
C- creating tar
V - verbose
F ----file

Extracting ----x

tar -xvf tarballname

2.zip tarball using gzip or bzip2

gzip name.tar --> this will give --> name.tar.gz
gunzip name.tar.gz


creating Zip file:
zip name.zip file1 file 2
Unzip name.zip

To make file executable
chmod +x file.txt

#CRONTAB:
To auto schedule jobs/commands

crontab -e ------- take u to crontab,where you can view cronjobs and can add new cron jobs


To find about the machine like Version, flavor:

uname -o
Uname -r
hostnamectl
cat /etc/os-release

Installation and Removal
rpm -i --install (install new RPM; error if already installed)
rpm -U --upgrade (delete existing RPM, if any; install new)
rpm -F --freshen (update RPM only if package already installed)
rpm -e --erase (remove, delete, expunge)



PACKAGE
rpm -q [packages] [information]
rpm -qa (all installed packages)
rpm -q package_name
rpm -qf (filename)
rpm -qp (package filename)
rpm -qa | grep foo


#Tee 

ls -l | tee new.txt | cat > t.txt


Tee command is literally a "T"

COMMAND flows from left to right 

It will spit out the result of command in new.txt

#File Permissions
Owner : Group : Others
    Read - 4
    Write - 2
    Execute - 1 [ Clicking the directory & going inside]
    ls test.txt shows 10 indexs -rw-rw-r--
    	1st index -> Indicates file if it is a Directory it will show as d
        2nd,3rd,4th -> Indicates Owner has read,write,execute permission
	5th,6th,7th -> Indicates Group has read,write,execute permission
	8th,9th,10th -> Indicates Others has read,write,execute permission