Linux Notes

Managing Users 🇺🇸

In Linux, user management is a crucial aspect of system administration. A user is essentially an entity that can log into the computer system and perform tasks based on the permissions granted to them. The Linux operating system stores user-related information in a couple of key files: /etc/passwd a...

Shells and Bash Configuration 🇺🇸

A Unix shell is an essential tool that provides a command-line interface for users to interact with the operating system. This interaction occurs in a sequence where the shell reads the user's inputs, translates them into system commands, and then communicates these commands to the operating system ...

Firewall 🇺🇸

A firewall is like a guard for your computer. It keeps your computer safe from others who shouldn't use it. It checks the information going in and out and follows safety rules. In Linux, there are several utilities to manage your firewall, including iptables, ufw, and firewalld...

Log Files and Journals 🇺🇸

Logging is an essential part of system administration. It provides crucial insights into the system's operation by keeping a record of significant events. System logs are valuable resources for troubleshooting issues, auditing security, and optimizing system performance. Linux utilizes various loggi...

Sed and Awk 🇺🇸

Sed (Stream Editor) and Awk are powerful command-line utilities used for manipulating text in data streams or files. Originating from Unix, they have become indispensable tools in Unix-like systems for various tasks that involve text processing...

Services 🇺🇸

A service in computing is a background process that performs specific tasks or offers various functionalities to other programs. These services typically communicate using methods such as sockets or inter-process communication (IPC). The primary purposes of a service include...

Virtual Machines 🇺🇸

Virtualization is the method of creating software-based representations of computing resources such as servers, storage devices, networks, or even an operating system. Virtual machines (VMs) are software emulations of physical computers that allow for the execution of programs as if they were being ...

Kernel 🇺🇸

The kernel is the central part of an operating system (OS) that interfaces directly with the hardware. It acts as a bridge, mediating interactions between the software and the hardware. The kernel manages system resources, allocates memory, manages input and output requests from software, and organi...

Utilities 🇺🇸

These notes discuss various tools that can be used on Linux systems for tasks such as taking screenshots, recording screens, preparing bootable sticks, and detecting malware. It provides brief explanations of each tool and includes installation and usage instructions...

Tar and Gzip 🇺🇸

In Unix-based systems such as Linux, tar and gzip are commonly used command-line tools for file packaging and compression. Understanding these tools is crucial for managing files efficiently...

Performance Monitoring 🇺🇸

Performance monitoring is essential for maintaining the health of your system. It helps you identify bottlenecks or issues that may be affecting your system's performance. We'll now explore some tools and techniques available for monitoring performance and explain some usage statistics, such as CPU ...

Permissions 🇺🇸

File permissions are crucial in any Unix-like operating systems, including Linux, which employ several mechanisms for controlling access to files and directories. These mechanisms include standard permissions, special permissions, and access control lists (ACLs)...

Mounting 🇺🇸

Mounting is the process of making a file system, disk, DVD, or USB drive accessible to the operating system so that you can read and write data on it. In Linux, you need to mount these devices before using them...

Ldap 🇺🇸

LDAP is an open, vendor-neutral, industry standard application protocol that is used for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. It is predominantly employed for user authentication and authorization, as well as other directory-bas...

Selinux 🇺🇸

SELinux, or Security-Enhanced Linux, is a mandatory access control (MAC) security mechanism implemented in the Linux kernel. It enforces security policies on a system to limit the access and capabilities of users and applications, preventing unauthorized access to system resources...

Inodes and Symlinks 🇺🇸

An inode (short for "index node") is a fundamental concept in many filesystems, serving as a data structure that describes a file or a directory. Each inode contains crucial metadata about a file, but not the file's actual data...

Networking 🇺🇸

Networking is the practice of connecting computers and devices so that they can communicate and exchange data. It forms the backbone of the internet, local area networks, and even small home networks. To grasp the intricacies of networking, it's imperative to familiarize oneself with key terminologi...

Cron Jobs 🇺🇸

Cron is a utility that automates the execution of scripts or commands. This automation can be scheduled to occur at fixed times, dates, or intervals. The utility is commonly used for system maintenance tasks such as log rotation, backups, and system updates. ...

Package Managers 🇺🇸

Debian and Ubuntu are popular Linux distributions for home users. These distributions and their derivatives use the Advanced Package Tool (APT). Other distributions use alternative package managers, like DNF, YUM, Pacman, which have unique functionalities and syntax...

Disk Usage 🇺🇸

The ability to manage and monitor disk usage is crucial when maintaining servers. Disk usage is often checked when diagnosing system issues, planning for future storage requirements, or cleaning up unused files and directories...

Introduction 🇺🇸

Linux is a versatile and powerful open-source operating system that forms the backbone of countless technological infrastructures, from servers and desktops to mobile devices and embedded systems. Known for its stability, security, and flexibility, Linux provides a robust platform that can be custom...

Enviroment Variable 🇺🇸

In Unix-like operating systems, variables play a crucial role in the functionality of the shell, acting as containers to store data, configuration settings, and system information. There are primarily two types of variables in a shell environment: environment variables and shell variables...

Encryption 🇺🇸

Encryption is crucial for maintaining data confidentiality and integrity, as it transforms clear text into coded, unintelligible text to prevent unauthorized access...

Nfs 🇺🇸

NFS (Network File System) lets computers share files with other computers. It works on Linux, Mac, and Windows. You can use files on another computer like they are on your own computer...

Ports 🇺🇸

In computer networking, ports serve as crucial endpoints for communication between devices, similar to doors through which data flows in and out of a computer...

Processes 🇺🇸

Processes are fundamental elements in any computing system. They represent an instance of a running program and are essential for the execution of various tasks. A process is more than just the program code (often referred to as the text section in Unix); it also includes the current activity, inclu...

Partitions 🇺🇸

Partitioning a disk means dividing the disk into smaller areas called partitions. Each partition can store different types of data or provide extra storage. There are two main partition tables: MBR (Master Boot Record) and GPT (GUID Partition Table)...

Logical Volume Management 🇺🇸

Think of data storage devices, such as DVDs, USB flash drives, and hard drives (HDDs or SSDs), as an entire cake. This cake can be cut into smaller slices or 'partitions'. These partitions are essentially divisions or sections within the storage device, helping to categorize or organize the storage ...

Ssh and Scp 🇺🇸

SSH, SFTP, and SCP are network protocols that provide secure data communication and file transfer over insecure networks. Here's a brief overview of each...

System Startup 🇺🇸

What happens between the time you push the power button and the time you see the login prompt...

Pipe and Redirect 🇺🇸

In Unix, input redirection, streams, pipes, and filters are fundamental concepts for efficient data processing. Input redirection (<) allows commands to read from files, while output redirection (>) sends output to files. Streams (stdin, stdout, stderr) manage the flow of data between commands and t...

Grep 🇺🇸

The grep command is a powerful tool used in Unix-based systems for searching and filtering text. Its name stands for "global regular expression print". grep is primarily used to search text or files for lines that match a certain pattern...

Finding Files 🇺🇸

The find, locate, and which commands are commonly used for file search operations. The find command performs a comprehensive search using attributes such as name, size, and type. locate provides a faster, albeit periodically updated, search by filename. which locates the path of a program's executab...

File System 🇺🇸

In Unix, files and filesystems are fundamental components of the operating system's structure. A file is a collection of data stored on disk, which can include anything from text documents and images to executable programs. Files are organized within directories in a hierarchical structure, allowing...

Files and Dirs 🇺🇸

One of the fundamental skills is to navigate and manage files and directories effectively. Here, we focus on the crucial concepts that will facilitate your work within the file system...

Dwm 🇺🇸

The Dynamic Window Manager (DWM) is a minimal, lightweight, and highly efficient tiling window manager designed to help you manage application windows in a clean and distraction-free manner. Instead of overlapping windows as seen in traditional window managers, DWM organizes windows in a tiled layou...

Hardware 🇺🇸

Linux is a known for its ability to run on a broad range of hardware, from desktops and servers to embedded systems and IoT devices. Its modular kernel design allows efficient hardware management, enabling Linux to support various processors, GPUs, storage devices, and peripherals. With a vast colle...

Enviroment Modules 🇺🇸

Environment Modules is a powerful and flexible tool that enables dynamic modification of a user's environment via modulefiles. Each modulefile contains the information necessary to configure the shell for a specific application or version, allowing users to seamlessly switch between different softwa...

Commands 🇺🇸

This comprehensive guide covers essential commands and techniques for retrieving information about command-line utilities and effectively navigating the terminal. It includes detailed explanations of the history, man, and apropos commands, along with valuable tips for command-line navigation and eff...