Linux Fundamentals (What to Learn First)
Linux is everywhere! From web servers to smartphones, understanding its fundamentals unlocks a deeper appreciation for the technology we use every day.
This post will help you to understanding the core concepts of Linux, making you a savvy user in no time. (But make sure to practice these to become expert)System Fundamentals
- Kernel - The core of the operating system
- Shell - A program that provides a command line interface to the operating system
- System calls - Functions that provide an interface for user programs to access the operating system's functionalities
- System libraries - Collections of functions and routines used by programs
- Processes - An instance of a computer program that is being executed
- User - An account on a computer system that is used to identify a person or process
- Group - A collection of users that share common permissions on a computer system
- Permissions - Controls who can access a file or directory and what they can do with it
- Ownership - Refers to the user and group that owns a file or directory
Filesystem Hierarchy
- /etc: The directory on a Linux system that stores configuration files.
- /var: The directory on a Linux system that stores variable data files.
- /home: The directory on a Linux system that stores user data files.
- /root: The home directory of the root user on a Linux system.
- /bin: The directory on a Linux system that stores essential executable programs.
- /sbin: The directory on a Linux system that stores executable programs for system administration.
- /usr/bin: The directory on a Linux system that stores user executable programs.
- /usr/sbin: The directory on a Linux system that stores system administration executable programs.
- /tmp: The directory on a Linux system that stores temporary files.
User Management
useradd: A command in Linux used to create a new user account.
usermod: A command in Linux used to modify an existing user account.
/etc/passwd: A file on a Linux system that stores information about user accounts.
/etc/shadow: A file on a Linux system that stores hashed passwords for user accounts.
UID (User ID): A unique identifier for a user account on a Linux system.
GID (Group ID): A unique identifier for a group of users on a Linux system.
Package Management
apt: A package manager for Debian-based Linux systems.
yum: A package manager for Red Hat-based Linux systems.
dnf: A newer package manager that replaces yum in Red Hat-based Linux systems.
DEB (Debian package file): A type of package file used by Debian-based Linux systems.
RPM (Red Hat Package Manager): A type of package file used by Red Hat-based Linux systems.
Tarball: A compressed archive file format used to distribute software in Linux.
Security
Firewall: A software program that filters incoming and outgoing network traffic.
iptables: A command-line tool for managing firewall rules in Linux.
firewalld: A firewall management tool for Linux that is easier to use than iptables.
SELinux (Security-Enhanced Linux): A security system for Linux that restricts what programs can do.
Processes
PID (Process ID): A unique identifier for a running process on a Linux system.
ps: A command in Linux used to display information about running processes.
Foreground process: A process that is currently running and has the user's attention.
Background process: A process that is running in the background and does not have the user's attention.
Command-line Tools
Shell: A program that provides a command-line interface for interacting with the Linux operating system.
grep: A command-line tool used to search for text in files.
sed: A command-line tool used to edit text files.
awk: A command-line tool used to process text files.
kill: A command-line tool used to send a signal to a process.
top: A command-line tool used to display information about running processes.
man: A command-line tool used to display the manual page for a command.
Text Editors
nano: A simple text editor for Linux.
qedit: A more advanced text editor for Linux.
Networking
- TCP/IP (Transmission Control Protocol/Internet Protocol): The suite of protocols used for communication over the internet.
- ifconfig: A command-line tool used to configure network interfaces.
- netstat: A command-line tool used to display information about network connections.
- scp: A command-line tool used to securely copy files between computers.
- ssh: A command-line tool used to securely login to a remote computer.
- wget: A command-line tool used to download files from the internet.
Comments