Introduction to Linux and the Most Common Commands

A Foodie Software Engineer's Journey to Eating Healthy and Learning Something New Every Day
What is Linux?
Similar to Mac OS, iOS, Windows, and Linux, it is an operating system. In actuality, the Linux operating system powers Android, one of the most widely used platforms worldwide. The software that controls all of the physical components connected to your laptop or desktop computer is called an operating system. In short, the operating system controls how your software and hardware communicate with each other. Software cannot operate without the operating system (OS).
Key Points
Open-source and used by 91% of the applications Internet.
Allows Multi-User and Multi-Tasking with powerful Shell and Multiple flavors.
Allow High Security does not need any antivirus.
Architecture of Linux
Linux is an open-source UNIX-based operating system. The main component of the Linux operating system is the Linux kernel. It is developed to provide low-cost or free operating system service to personal system users, which includes an X-window system, Emacs editor, IP/TCP GUI, etc.
The main components of the Linux operating system are Application, Shell, Kernel, and Hardware.

Kernel is the main core component of Linux, it controls the activity of other hardware components. It visualizes the common hardware resources and provides each process with the necessary virtual resources. It makes the process to wait in the ready queue and execute consequently to avoid any kind of conflict.
Shell can be determined as the interface to the kernel, which hides the internal execution of functions of the kernel from the user. Users can just enter the command and using the kernel’s function that specific task is performed accordingly.
Hardware is the lowest level of the operating system track. It plays a vital role in managing all the hardware components. It includes device drivers, kernel functions, memory management, CPU control, and I/O operations.
Application software are the user-facing programs and software that run on the Linux system, like web browsers, development tools, office suites, etc.
Why Linux for DevOps?
Linux is widely used in the DevOps world for several reasons:
Open-source nature: Linux is an open-source operating system, which means that its source code is freely available and can be modified and distributed by anyone.
Stability and reliability: Linux is known for its stability and reliability, making it a preferred choice for critical systems and production environments. It has a robust architecture and a strong track record of performance and uptime, which is crucial for DevOps teams aiming for continuous delivery and high availability.
Rich command-line interface (CLI): Linux provides a powerful command-line interface that allows DevOps professionals to efficiently manage and automate various tasks. The CLI provides extensive control over the system, making it easier to script and automate repetitive tasks, configure servers, and perform system administration tasks.
Vast ecosystem and tooling: Linux has a vast ecosystem of open-source tools and software that are widely used in the DevOps space. Linux offers a wide range of tools and technologies that facilitate automation, scalability, and infrastructure management.
Compatibility with cloud platforms: Linux is the dominant operating system in the cloud computing space. Major cloud providers, such as Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure, heavily rely on Linux as the foundation for their services.
Overall, Linux provides the necessary stability, flexibility, and tooling required for efficient and scalable DevOps practices. Its open-source nature and compatibility with cloud platforms make it a popular choice among DevOps teams worldwide.
Basic Linux Commands
ls option_flag arguments --> list the subdirectories and files available in the present
ls -l--> List the files and directories in long list format with extra informationls -a--> List all including hidden files and directoryls *.sh--> List all the files having .sh extension.ls -d */--> List only directories.(we can also specify a pattern)

pwd--> print work directory. Gives the present working directory.cd path_to_directory--> change directory to the provided pathcd ~or justcd--> change directory to the home directorycd ---> Go to the last working directory.cd ..--> change directory to one step back.cd ../..--> Change directory to 2 levels back.mkdir directoryName--> to make a directory in a specific location


