diff --git a/src/data/roadmaps/linux/content/archiving-and-compressing@iD073xTmpzvQFfXwcwXcY.md b/src/data/roadmaps/linux/content/archiving-and-compressing@iD073xTmpzvQFfXwcwXcY.md index ee817ef42..02d7a4102 100644 --- a/src/data/roadmaps/linux/content/archiving-and-compressing@iD073xTmpzvQFfXwcwXcY.md +++ b/src/data/roadmaps/linux/content/archiving-and-compressing@iD073xTmpzvQFfXwcwXcY.md @@ -1,25 +1,6 @@ -# Archiving - -Linux offers powerful utilities for archiving, where multiple files and directories are combined into a single file, primarily for backup and simplification of distribution. The main tools used for this purpose are `tar`, `gzip`, and `bzip2`. - -The `tar` command, originally for tape archiving, is a versatile tool that can manage and organize files into one archive. Meanwhile, `gzip` and `bzip2` are used for file compression, reducing the file size and making data transmission easier. - -Take a look at the following commands in use: - - # To create a tar archive: - tar cvf archive_name.tar directory_to_archive/ - - # To extract a tar archive: - tar xvf archive_name.tar - - # To create a gzip compressed tar archive: - tar cvzf archive_name.tar.gz directory_to_archive/ - - #To create a bzip2 compressed tar archive: - tar cvjf archive_name.tar.bz2 directory_to_archive/ - - -Remember, in Linux, archiving and compression are separate processes, hence `tar` to archive and `gzip`/`bzip2` to compress. Although they're commonly used together, they can very much be used separately as per the requirements. +# Archiving and Compressing + +Archiving bundles multiple files into a single file, typically using `tar`, while compressing reduces that file's size using tools like `gzip` or `bzip2`. A common pattern combines both steps at once, such as `tar -czvf archive.tar.gz folder/`, which archives and compresses a folder in one command. These tools are widely used for backups, transferring multiple files as one, and distributing software packages. Visit the following resources to learn more: diff --git a/src/data/roadmaps/linux/content/authentication-logs@WwybfdKuP9ogCGpT7d3NU.md b/src/data/roadmaps/linux/content/authentication-logs@WwybfdKuP9ogCGpT7d3NU.md index 495ca07c1..9600dc948 100644 --- a/src/data/roadmaps/linux/content/authentication-logs@WwybfdKuP9ogCGpT7d3NU.md +++ b/src/data/roadmaps/linux/content/authentication-logs@WwybfdKuP9ogCGpT7d3NU.md @@ -2,10 +2,6 @@ Authentication logs in Linux record all auth-related events like logins, password changes, and sudo commands. Located at `/var/log/auth.log` (Debian) or `/var/log/secure` (RHEL/CentOS), these logs help detect brute force attacks and unauthorized access attempts. Use `tail /var/log/auth.log` to view recent entries. Regular log analysis is essential for server security monitoring. -Here is an example of how you can use the `tail` command to view the last few entries of the authentication log: - - tail /var/log/auth.log - Visit the following resources to learn more: - [@article@Monitoring Linux Authentication Logs](https://betterstack.com/community/guides/logging/monitoring-linux-auth-logs/) diff --git a/src/data/roadmaps/linux/content/awk@QTmECqpRVMjNgQU70uCF8.md b/src/data/roadmaps/linux/content/awk@QTmECqpRVMjNgQU70uCF8.md index a7ec8f472..b7db16d9b 100644 --- a/src/data/roadmaps/linux/content/awk@QTmECqpRVMjNgQU70uCF8.md +++ b/src/data/roadmaps/linux/content/awk@QTmECqpRVMjNgQU70uCF8.md @@ -2,12 +2,9 @@ AWK is a powerful text-processing language for Unix-like systems, named after its creators Aho, Weinberger, and Kernighan. It reads files line by line, identifies patterns, and executes actions on matches. Commonly used in bash scripts for sorting, filtering, and report generation. -Example: `awk '{print $1,$2}' filename` prints first two fields of each line. - Visit the following resources to learn more: - [@article@IBM.com: Awk by Example](https://developer.ibm.com/tutorials/l-awk1/) - [@article@AWK Tutorial](https://linuxhandbook.com/awk-command-tutorial/) - [@article@Linux awk Command: Text Processing](https://labex.io/tutorials/linux-linux-awk-command-text-processing-388493) -- [@video@Learning Awk Is Essential For Linux Users](https://www.youtube.com/watch?v=9YOZmI-zWok) -- [@feed@Explore top posts about Bash](https://app.daily.dev/tags/bash?ref=roadmapsh) \ No newline at end of file +- [@video@Learning Awk Is Essential For Linux Users](https://www.youtube.com/watch?v=9YOZmI-zWok) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/background--foreground-processes@mUKoiGUTpIaUgQNF3BND_.md b/src/data/roadmaps/linux/content/background--foreground-processes@mUKoiGUTpIaUgQNF3BND_.md index 6ebc01f5c..2d26bc5ed 100644 --- a/src/data/roadmaps/linux/content/background--foreground-processes@mUKoiGUTpIaUgQNF3BND_.md +++ b/src/data/roadmaps/linux/content/background--foreground-processes@mUKoiGUTpIaUgQNF3BND_.md @@ -5,5 +5,4 @@ Linux processes run in foreground (taking direct user input) or background (runn Visit the following resources to learn more: - [@article@Understanding Foreground and Background Processes](https://linuxconfig.org/understanding-foreground-and-background-linux-processes) -- [@article@Running Linux Commands in Background and Foreground](https://linuxhandbook.com/run-process-background/) -- [@article@Foreground and Background Processes - LinuxOPsys](https://linuxopsys.com/foreground-and-background-processes-co11/) \ No newline at end of file +- [@article@Running Linux Commands in Background and Foreground](https://linuxhandbook.com/run-process-background/) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/command-path@moGMHNR58wFlzhS7je1wc.md b/src/data/roadmaps/linux/content/command-path@moGMHNR58wFlzhS7je1wc.md index c0d956d5b..85cb52b5d 100644 --- a/src/data/roadmaps/linux/content/command-path@moGMHNR58wFlzhS7je1wc.md +++ b/src/data/roadmaps/linux/content/command-path@moGMHNR58wFlzhS7je1wc.md @@ -2,8 +2,6 @@ The command path is a variable that is used by the shell to determine where to look for the executable files to run. Linux commands are nothing but programs residing in particular directories. But, one does not have to navigate to these directories every time to run these programs. The command path comes to the rescue! -Usually, when you type a command in the terminal, the shell needs to know the absolute path of the command's executable to run it. Instead of typing the full path each time, command paths allow the shell to automatically search the indicated directories in the correct order. These paths are stored in the $PATH environment variable. - Visit the following resources to learn more: - [@article@Linux path environment variable](https://linuxconfig.org/linux-path-environment-variable) diff --git a/src/data/roadmaps/linux/content/conditionals@rQxfp7UWqN72iqewZhOdc.md b/src/data/roadmaps/linux/content/conditionals@rQxfp7UWqN72iqewZhOdc.md index 1790e1971..75379697a 100644 --- a/src/data/roadmaps/linux/content/conditionals@rQxfp7UWqN72iqewZhOdc.md +++ b/src/data/roadmaps/linux/content/conditionals@rQxfp7UWqN72iqewZhOdc.md @@ -5,4 +5,4 @@ Shell conditionals allow scripts to make decisions based on conditions using `if Visit the following resources to learn more: - [@article@Bash Scripting: Conditionals](https://linuxconfig.org/bash-scripting-conditionals) -- [@article@Using If Else in Bash Scripts [Examples] - Linux Handbook](https://linuxhandbook.com/if-else-bash/) \ No newline at end of file +- [@article@Using If Else in Bash Scripts \[Examples\] - Linux Handbook](https://linuxhandbook.com/if-else-bash/) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/directory-hierarchy-overview@3fzuXKH7az_LVnmnoXB1p.md b/src/data/roadmaps/linux/content/directory-hierarchy-overview@3fzuXKH7az_LVnmnoXB1p.md index a4067720f..c6d747221 100644 --- a/src/data/roadmaps/linux/content/directory-hierarchy-overview@3fzuXKH7az_LVnmnoXB1p.md +++ b/src/data/roadmaps/linux/content/directory-hierarchy-overview@3fzuXKH7az_LVnmnoXB1p.md @@ -2,17 +2,6 @@ In Linux, understanding the directory hierarchy is crucial for efficient navigation and file management. A Linux system's directory structure, also known as the Filesystem Hierarchy Standard (FHS), is a defined tree structure that helps to prevent files from being scattered all over the system and instead organise them in a logical and easy-to-navigate manner. -* `/`: Root directory, the top level of the file system. -* `/home`: User home directories. -* `/bin`: Essential binary executables. -* `/sbin`: System administration binaries. -* `/etc`: Configuration files. -* `/var`: Variable data (logs, spool files). -* `/usr`: User programs and data. -* `/lib`: Shared libraries. -* `/tmp`: Temporary files. -* `/opt`: Third-party applications. - Visit the following resources to learn more: - [@article@Linux Directory Structure Explained for Beginners](https://linuxhandbook.com/linux-directory-structure/) diff --git a/src/data/roadmaps/linux/content/disks-and-filesystems@Fn_uYKigJRgb7r_iYGVBr.md b/src/data/roadmaps/linux/content/disks-and-filesystems@Fn_uYKigJRgb7r_iYGVBr.md index 46952ebaf..7a520d977 100644 --- a/src/data/roadmaps/linux/content/disks-and-filesystems@Fn_uYKigJRgb7r_iYGVBr.md +++ b/src/data/roadmaps/linux/content/disks-and-filesystems@Fn_uYKigJRgb7r_iYGVBr.md @@ -4,7 +4,6 @@ Linux uses various filesystems to organize, store, and retrieve data from storag Visit the following resources to learn more: -- [@official@Filesystems in the Linux Kernel](https://www.kernel.org/doc/html/v6.16-rc2/filesystems/index.html) - [@article@Partitions And Filesystems In Linux - Introduction](https://www.linuxfordevices.com/tutorials/linux/partitions-and-filesystems) - [@article@Overview of File System Hierarchy Standard (FHS)](https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/4/html/reference_guide/s1-filesystem-fhs#s3-filesystem-usr) - [@article@Understanding Linux Filesystems: Inodes, Block Sizes, and Data](https://www.linuxjournal.com/content/understanding-linux-filesystems-inodes-block-sizes-and-data-structures) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/environment-variables@zwXEmpPYjA7_msS43z7I0.md b/src/data/roadmaps/linux/content/environment-variables@zwXEmpPYjA7_msS43z7I0.md index 166649f76..706ded824 100644 --- a/src/data/roadmaps/linux/content/environment-variables@zwXEmpPYjA7_msS43z7I0.md +++ b/src/data/roadmaps/linux/content/environment-variables@zwXEmpPYjA7_msS43z7I0.md @@ -2,8 +2,6 @@ Environment variables are dynamic named values that can affect the behavior of running processes in a shell. They exist in every shell session. A shell session's environment includes, but is not limited to, the user's home directory, command search path, terminal type, and program preferences. -Environment variables help to contribute to the fantastic and customizable flexibility you see in Unix systems. They provide a simple way to share configuration settings between multiple applications and processes in Linux. - Visit the following resources to learn more: - [@article@Environment Variables in Linux](https://labex.io/tutorials/linux-environment-variables-in-linux-385274) diff --git a/src/data/roadmaps/linux/content/file-permissions@TnrT-cqMA8urew9nLv0Ns.md b/src/data/roadmaps/linux/content/file-permissions@TnrT-cqMA8urew9nLv0Ns.md index 0a1d110f5..e966b8a9c 100644 --- a/src/data/roadmaps/linux/content/file-permissions@TnrT-cqMA8urew9nLv0Ns.md +++ b/src/data/roadmaps/linux/content/file-permissions@TnrT-cqMA8urew9nLv0Ns.md @@ -1,19 +1,6 @@ -# Linux File Permissions - -In Linux systems, rights and privileges are assigned to files and directories in the form of permissions. These permissions indicate who can read, write, or execute (run) them. In Linux, there are three types of users: owners, groups, and others who can have a different set of permissions. - -In fact, permissions on the system are there for a reason: to prevent unprivileged users from making changes on the system that would ultimately affect other users. With inadequate permissions, unprivileged users are able to make changes that would be beneficial or harmless to the Linux system. - -Let's have a look at an example: - - -rwxr--r-- 1 root root 4096 Jan 1 12:00 filename - - -From the above example, the first character `-` indicates if it is a regular file(`-`) or directory(`d`). The following group of three characters(`rwx`) represents the permissions for the file owner. The next three characters(`r--`) represent permissions for the group and the last set of three characters(`r--`) represents permissions for others. - -The `r` indicates that the file can be read, `w` indicates that the file can be written to, and `x` indicates that the file can be executed. - -The permissions can be changed using the `chmod`, `chown`, and `chgrp` commands. +# File Permissions + +File permissions control who can read, write, or execute a file, split into three categories: owner, group, and others. Each category can have any combination of read (r), write (w), and execute (x) permissions, often represented as a numeric value like 755. The `chmod` command changes these permissions, while `chown` changes which user or group owns the file. Visit the following resources to learn more: diff --git a/src/data/roadmaps/linux/content/filesystems@LFPhSHOhUqM98fUxMjQUw.md b/src/data/roadmaps/linux/content/filesystems@LFPhSHOhUqM98fUxMjQUw.md index 660214824..8e33a6de6 100644 --- a/src/data/roadmaps/linux/content/filesystems@LFPhSHOhUqM98fUxMjQUw.md +++ b/src/data/roadmaps/linux/content/filesystems@LFPhSHOhUqM98fUxMjQUw.md @@ -4,6 +4,6 @@ Filesystems define how files are stored and organized on Linux storage disks, en Visit the following resources to learn more: -- [@official@Filesystems in the Linux Kernel](https://www.kernel.org/doc/html/v6.16-rc2/filesystems/index.html) +- [@official@Filesystems in the Linux Kernel](https://docs.kernel.org/filesystems/index.html) - [@article@df command in Linux (Check Disk Space)](https://linuxize.com/post/how-to-check-disk-space-in-linux-using-the-df-command/) - [@article@Partitions And Filesystems In Linux - Introduction](https://www.linuxfordevices.com/tutorials/linux/partitions-and-filesystems) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/grep@umlhxidsvtZG9k40Ca0Ac.md b/src/data/roadmaps/linux/content/grep@umlhxidsvtZG9k40Ca0Ac.md index 16de3878b..4b551f96e 100644 --- a/src/data/roadmaps/linux/content/grep@umlhxidsvtZG9k40Ca0Ac.md +++ b/src/data/roadmaps/linux/content/grep@umlhxidsvtZG9k40Ca0Ac.md @@ -6,5 +6,4 @@ Visit the following resources to learn more: - [@opensource@Ripgrep: GitHub Repository](https://github.com/BurntSushi/ripgrep) - [@article@Grep and Regular Expressions for Beginners](https://ryanstutorials.net/linuxtutorial/grep.php) -- [@article@bgsu.edu: Advanced Grep Topics](https://caspar.bgsu.edu/~courses/Stats/Labs/Handouts/grepadvanced.htm) - [@article@Linux grep Command: Pattern Searching](https://labex.io/tutorials/linux-linux-grep-command-pattern-searching-219192) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/package-repositories@2oQiuQ2j02SCt9t5eV6hg.md b/src/data/roadmaps/linux/content/package-repositories@2oQiuQ2j02SCt9t5eV6hg.md index 5ef74faa3..805ab4690 100644 --- a/src/data/roadmaps/linux/content/package-repositories@2oQiuQ2j02SCt9t5eV6hg.md +++ b/src/data/roadmaps/linux/content/package-repositories@2oQiuQ2j02SCt9t5eV6hg.md @@ -6,5 +6,4 @@ Visit the following resources to learn more: - [@official@APT Package Manager](https://www.debian.org/doc/manuals/apt-guide/index.en.html) - [@article@What is Repository in Linux?](https://linuxsimply.com/what-is-repository-in-linux/) -- [@article@Official Repositories - ArchWiki](https://wiki.archlinux.org/title/Official_repositories) -- [@article@Understanding Linux Repositories](https://blogs.maalavs.com/linux/understanding-linux-repositories/) \ No newline at end of file +- [@article@Official Repositories - ArchWiki](https://wiki.archlinux.org/title/Official_repositories) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/pipe@v32PJl4fzIFTOirOm6G44.md b/src/data/roadmaps/linux/content/pipe@v32PJl4fzIFTOirOm6G44.md index 896a50e54..04b848cd8 100644 --- a/src/data/roadmaps/linux/content/pipe@v32PJl4fzIFTOirOm6G44.md +++ b/src/data/roadmaps/linux/content/pipe@v32PJl4fzIFTOirOm6G44.md @@ -2,13 +2,6 @@ The pipe (`|`) is a powerful feature in Linux used to connect two or more commands together. This mechanism allows output of one command to be "piped" as input to another. With regards to text processing, using pipe is especially helpful since it allows you to manipulate, analyze, and transform text data without the need to create intermediary files or programs. -Here is a simple example of piping two commands, `ls` and `grep`, to list all the text files in the current directory: - - ls | grep '\.txt$' - - -In this example, `ls` lists the files in the current directory and `grep '\.txt$'` filters out any files that don't end with `.txt`. The pipe command, `|`, takes the output from `ls` and uses it as the input to `grep '\.txt$'`. The output of the entire command is the list of text files in the current directory. - Visit the following resources to learn more: - [@article@An In-Depth Guide to Pipes in Linux - TheLinuxCode](https://thelinuxcode.com/linux-pipe-command-examples/) diff --git a/src/data/roadmaps/linux/content/redirects@JgoZzx4BfK7tmosgpZOsf.md b/src/data/roadmaps/linux/content/redirects@JgoZzx4BfK7tmosgpZOsf.md index 2e04d27df..459bae65b 100644 --- a/src/data/roadmaps/linux/content/redirects@JgoZzx4BfK7tmosgpZOsf.md +++ b/src/data/roadmaps/linux/content/redirects@JgoZzx4BfK7tmosgpZOsf.md @@ -1,13 +1,8 @@ # Redirects - -The shell in Linux provides a robust way of managing input and output streams of a command or program, this mechanism is known as Redirection. Linux being a multi-user and multi-tasking operating system, every process typically has 3 streams opened: - -* Standard Input (stdin) - This is where the process reads its input from. The default is the keyboard. -* Standard Output (stdout) - The process writes its output to stdout. By default, this means the terminal. -* Standard Error (stderr) - The process writes error messages to stderr. This also goes to the terminal by default. + +Redirects change where a command's input comes from or where its output goes, instead of the default terminal screen. The `>` operator sends output to a file, overwriting it, while `>>` appends to the end of a file instead. The `<` operator redirects input from a file, feeding its contents into a command instead of typing them manually. Visit the following resources to learn more: - [@article@Input Output & Error Redirection in Linux](https://linuxhandbook.com/redirection-linux/) -- [@article@Redirections (Bash Reference Manual)](https://www.gnu.org/software/bash/manual/html_node/Redirections.html) -- [@article@Redirections in Linux with Examples](https://linuxopsys.com/redirections-in-linux-with-examples) \ No newline at end of file +- [@article@Redirections (Bash Reference Manual)](https://www.gnu.org/software/bash/manual/html_node/Redirections.html) \ No newline at end of file diff --git a/src/data/roadmaps/linux/content/super-user@NIBSZGE9PskVrluJpdom0.md b/src/data/roadmaps/linux/content/super-user@NIBSZGE9PskVrluJpdom0.md index 2d64f566d..c6e4e8141 100644 --- a/src/data/roadmaps/linux/content/super-user@NIBSZGE9PskVrluJpdom0.md +++ b/src/data/roadmaps/linux/content/super-user@NIBSZGE9PskVrluJpdom0.md @@ -1,8 +1,6 @@ # Super User - -The Super User, also known as "root user", represents a user account in Linux with extensive powers, privileges, and capabilities. This user has complete control over the system and can access any data stored on it. This includes the ability to modify system configurations, change other user's passwords, install software, and perform more administrative tasks in the shell environment. - -The usage of super user is critical to operating a Linux system properly and safely as it can potentially cause serious damage. The super user can be accessed through the `sudo` or `su` commands. + +The super user, commonly referred to as root, is the account with unrestricted access to every file, process, and setting on a Linux system. Regular users run commands with `sudo` to temporarily gain root privileges for a single command, rather than logging in as root directly. Because root can modify or delete anything on the system, using `sudo` only when necessary reduces the risk of accidental damage. Visit the following resources to learn more: diff --git a/src/data/roadmaps/linux/content/vim@XiZz7EFIey1XKS292GN4t.md b/src/data/roadmaps/linux/content/vim@XiZz7EFIey1XKS292GN4t.md index 40da18b26..21ea638f5 100644 --- a/src/data/roadmaps/linux/content/vim@XiZz7EFIey1XKS292GN4t.md +++ b/src/data/roadmaps/linux/content/vim@XiZz7EFIey1XKS292GN4t.md @@ -2,12 +2,6 @@ Vim (Vi Improved) is a powerful and flexible text editor used in Unix-like systems. It builds on the original Vi editor with additional features and improvements, including multi-level undo, syntax highlighting, and an extensive set of commands for text manipulation. -Vim operates primarily in three modes: - -* Normal (for navigation and manipulation). -* Insert (for editing text). -* Command (for executing commands). - Visit the following resources to learn more: - [@course@Learn Vimscript The Hard Way](https://learnvimscriptthehardway.stevelosh.com/)