Linux is a free and open-source operating system that was developed in the early 1990s by Linus Torvalds. It is based on the Unix operating system and has become a popular choice for both personal and enterprise use due to its stability, security, and flexibility.
1 Open Source
Linux is distributed under open-source licenses, meaning its source code is freely accessible, allowing users to view, modify, and distribute it without cost. some of linux distributions (like Ubuntu, CentOS, Debian, etc.).
2 Stability
Linux is renowned for its reliability and is widely used in server environments, providing robust performance.
3 Security
It prioritizes security and is actively maintained, making it a secure choice for various computing needs.
5 Command-Line Power
It offers a powerful command-line interface with a rich set of command-line tools, essential for automation and scripting.
Linux Architecture
• Hardware Layer : This is the bottommost 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 I/O 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.
• Shell Layer : In Linux, the term "shell" refers to the command-line interface that allows users to interact with the operating system. The shell is a program that interprets and executes commands entered by the user. It provides a text-based interface for performing various tasks, such as running programs, navigating the file system, and managing system resources. There are different types of shells in Linux, with the most common are (Bash,Zsh,Fish,ksh,csh).
Filesystem Hierarchy
1. / – Root
Every single file and directory starts from the root directory.
Only root user has write privilege under this directory.
Please note that /root is root user’s home directory, which is not same as /.
2. /bin – User Binaries
Contains binary executables.
Common linux commands you need to use in single-user modes are located under this directory.
Commands used by all the users of the system are located here.
For example: ps, ls, ping, grep, cp.
3. /sbin – System Binaries
Just like /bin, /sbin also contains binary executables.
But, the linux commands located under this directory are used typically by system aministrator, for system maintenance purpose.
For example: iptables, reboot, fdisk, ifconfig, swapon
4. /etc – Configuration Files
Contains configuration files required by all programs.
This also contains startup and shutdown shell scripts used to start/stop individual programs.
For example: /etc/resolv.conf, /etc/logrotate.conf
5. /dev – Device Files
Contains device files.
These include terminal devices, usb, or any device attached to the system.
For example: /dev/tty1, /dev/usbmon0
6. /proc – Process Information
Contains information about system process.
This is a pseudo filesystem contains information about running process. For example: /proc/{pid} directory contains information about the process with that particular pid.
This is a virtual filesystem with text information about system resources. For example: /proc/uptime
7. /var – Variable Files
var stands for variable files.
Content of the files that are expected to grow can be found under this directory.
This includes — system log files (/var/log); packages and database files (/var/lib); emails (/var/mail); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp);
8. /tmp – Temporary Files
Directory that contains temporary files created by system and users.
Files under this directory are deleted when system is rebooted.
9. /usr – User Programs
Contains binaries, libraries, documentation, and source-code for second level programs.
/usr/bin contains binary files for user programs. If you can’t find a user binary under /bin, look under /usr/bin. For example: at, awk, cc, less, scp
/usr/sbin contains binary files for system administrators. If you can’t find a system binary under /sbin, look under /usr/sbin. For example: atd, cron, sshd, useradd, userdel
/usr/lib contains libraries for /usr/bin and /usr/sbin
/usr/local contains users programs that you install from source. For example, when you install apache from source, it goes under /usr/local/apache2
10. /home – Home Directories
Home directories for all users to store their personal files.
For example: /home/john, /home/nikita
11. /boot – Boot Loader Files
Contains boot loader related files.
Kernel initrd, vmlinux, grub files are located under /boot
For example: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic
12. /lib – System Libraries
Contains library files that supports the binaries located under /bin and /sbin
Library filenames are either ld* or lib*.so.*
For example: ld-2.11.1.so, libncurses.so.5.7
13. /opt – Optional add-on Applications
opt stands for optional.
Contains add-on applications from individual vendors.
add-on applications should be installed under either /opt/ or /opt/ sub-directory.
14. /mnt – Mount Directory
Temporary mount directory where sysadmins can mount filesystems.
15. /media – Removable Media Devices
Temporary mount directory for removable devices.
For examples, /media/cdrom for CD-ROM; /media/floppy for floppy drives; /media/cdrecorder for CD writer
16. /srv – Service Data
srv stands for service.
Contains server specific services related data.
For example, /srv/cvs contains CVS related data.
some basic command for linux
commands to create file
• cat
The cat command is a utility command in Linux. One of its most common usages is to print the content of a file onto the standard output stream. Other than that, the cat command also allows us to write some texts into a file
• cat >filename.txt
•touch
• touch newfile.txt
The "touch" command in Linux is used to create empty files or update the access and modification timestamps of existing files.
•vi/vim
vim test.txt
The vi command is used to open and edit text files in a terminal on Linux. It's a powerful and versatile text editor.
•nano
• nano file2.txt
The nano command in Linux is a simple and user-friendly text editor that allows you to create and edit text files directly from the command line.
some other useful commands
• mkdir --> to make directory.
• cd --> to change directory.
• cd .. --> to go back one step back.
• pwd --> present working directory to know location.
• whoami --> to know who am I user or a root .
• ls --> to see list.
• ls -a --> to see all hidden or normal file/directory.
• cp --> to copy any file.
•mv --> to move any file.
• rm -rf --> to remove all file and directory.