Table of contents
What is Linux?
Linux® is an open-source operating system (OS). An operating system is software that directly manages a system’s hardware and resources, like CPU, memory, and storage. The OS sits between applications and hardware and makes the connections between all of your software and the physical resources that do the work.
Linux is built on a modular architecture, which means it is made up of several different components that work together to form a complete operating system. These components are organized into layers, each of which serves a specific purpose and interacts with the other layers to provide the functionality that users expect from an operating system.
Following is an overview of the main layers of the Linux architecture:
Hardware layer: This is the bottom-most layer of the Linux architecture and represents the physical hardware components of the computer, such as the processor, memory, and storage. The hardware layer is responsible for interacting with the various hardware devices and providing access to them for the rest of the operating system.
Kernel layer: The kernel is the core of the operating system and is responsible for managing the resources of the computer, such as the CPU, memory, and Input/Output devices. It also provides services to the other components of the operating system and acts as the intermediary between the hardware and the software layers.
System libraries layer: This layer consists of a set of libraries that provide functions for the applications to use. These libraries include system calls, which are used to invoke kernel functions, as well as other functions that perform tasks such as file manipulation, networking, and memory management.
System utilities layer: This layer consists of a set of programs that perform various system-level tasks, such as managing processes, controlling user accounts, and configuring system settings. These utilities are usually command-line programs that are invoked by the user or by other programs.
Desktop environment layer: This layer is optional and is not present on all Linux systems. It provides a graphical user interface (GUI) that allows users to interact with the operating system using a mouse and keyboard. The most common desktop environments in Linux are Gnome, KDE, and Xfce.
Applications layer: This is the topmost layer of the Linux architecture and consists of the various applications that run on the operating system. These can be anything from productivity software and games to web browsers and media players.
In summary, the Linux architecture is made up of a number of different layers that work together to provide a stable and flexible operating system. Each layer has a specific purpose and interacts with the other layers to provide the functionality that users expect from an operating system.
Linux Directory Structure
Basic Commands of Linux
ls - Command in Linux to list directories and files
pwd - Print working directory command in Linux
cd - Linux command to navigate through directories
mkdir - Command used to create directories in Linux
mv - Move or rename files in Linux
cp - Similar usage as mv but for copying files in Linux
rm - Delete files or directories
touch - Create blank/empty files
ln - Create symbolic links (shortcuts) to other files
cat - Display file contents on the terminal
clear - Clear the terminal display
echo - Print any text that follows the command
less - Linux command to display paged outputs in the terminal
man - Access manual pages for all Linux commands
uname - Linux command to get basic information about the OS
whoami - Get the active username
tar - Command to extract and compress files in Linux
grep - Search for a string within an output
head - Return the specified number of lines from the top
tail - Return the specified number of lines from the bottom
diff - Find the difference between two files
cmp - Allows you to check if two files are identical
comm - Combines the functionality of diff and cmp
sort - Linux command to sort the content of a file while outputting
export - Export environment variables in Linux
zip - Zip files in Linux
unzip - Unzip files in Linux
ssh - Secure Shell command in Linux
service - Linux command to start and stop services
ps - Display active processes
kill and killall - Kill active processes by process ID or name
df - Display disk filesystem information
mount - Mount file systems in Linux
chmod - Command to change file permissions
chown - Command for granting ownership of files or folders
ifconfig - Display network interfaces and IP addresses
traceroute - Trace all the network hops to reach the destination
wget - Direct download files from the internet
ufw - Firewall command
iptables - Base firewall for all other firewall utilities to interface with
apt, pacman, yum, rpm - Package managers depending on the distro
sudo - Command to escalate privileges in Linux
cal - View a command-line calendar
alias - Create custom shortcuts for your regularly used commands
dd - Majorly used for creating bootable USB sticks
whereis - Locate the binary, source, and manual pages for a command
whatis - Find what a command is used for
top - View active processes live with their system usage
useradd and usermod - Add a new user or change existing users data
passwd - Create or update passwords for existing users