Updates to the Linux Roadmap (#7149)

* add Practice Linux Commands with Hands-on Labs

* Update public/roadmap-content/devops.json

Co-authored-by: Arik Chakma <arikchangma@gmail.com>

* Update public/roadmap-content/devops.json

* add linux free tutorials

---------

Co-authored-by: huhuhang <huhuhang@github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: huhuhang <no-reply@huhuhang.com>
pull/7081/head^2
Hang 2 months ago committed by GitHub
parent 024c7cbda1
commit 84184724c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      src/data/roadmaps/linux/content/100-navigation-basics/100-basic-commands.md
  2. 4
      src/data/roadmaps/linux/content/100-navigation-basics/101-moving-files.md
  3. 5
      src/data/roadmaps/linux/content/100-navigation-basics/102-creating-files.md
  4. 2
      src/data/roadmaps/linux/content/100-navigation-basics/index.md
  5. 4
      src/data/roadmaps/linux/content/101-editing-files/100-vim.md
  6. 4
      src/data/roadmaps/linux/content/101-editing-files/101-nano.md
  7. 1
      src/data/roadmaps/linux/content/102-shell-basics/100-command-path.md
  8. 4
      src/data/roadmaps/linux/content/102-shell-basics/101-environment-variables.md
  9. 1
      src/data/roadmaps/linux/content/102-shell-basics/102-command-help.md
  10. 4
      src/data/roadmaps/linux/content/102-shell-basics/103-redirects.md
  11. 1
      src/data/roadmaps/linux/content/103-working-with-files/100-permissions.md
  12. 5
      src/data/roadmaps/linux/content/103-working-with-files/101-archiving.md
  13. 5
      src/data/roadmaps/linux/content/103-working-with-files/102-copying-renaming.md
  14. 7
      src/data/roadmaps/linux/content/103-working-with-files/index.md
  15. 4
      src/data/roadmaps/linux/content/104-text-processing/101-cut.md
  16. 4
      src/data/roadmaps/linux/content/104-text-processing/103-sort.md
  17. 4
      src/data/roadmaps/linux/content/104-text-processing/104-tr.md
  18. 5
      src/data/roadmaps/linux/content/104-text-processing/105-head.md
  19. 4
      src/data/roadmaps/linux/content/104-text-processing/106-tail.md
  20. 4
      src/data/roadmaps/linux/content/104-text-processing/107-join.md
  21. 4
      src/data/roadmaps/linux/content/104-text-processing/111-nl.md
  22. 4
      src/data/roadmaps/linux/content/104-text-processing/112-wc.md
  23. 4
      src/data/roadmaps/linux/content/104-text-processing/115-uniq.md
  24. 1
      src/data/roadmaps/linux/content/104-text-processing/116-grep.md
  25. 1
      src/data/roadmaps/linux/content/104-text-processing/117-awk.md
  26. 4
      src/data/roadmaps/linux/content/107-user-management/index.md
  27. 4
      src/data/roadmaps/linux/content/109-package-management/index.md

@ -2,7 +2,6 @@
Linux Navigation Basics is about using simple commands to move around and manage files on your computer. For example, cd lets you go into different folders, ls shows you what files and folders are inside, and pwd tells you where you are currently. These commands help you easily find and organize your files.
```bash
# Change directory
cd /path/to/directory
@ -18,3 +17,7 @@ man ls
```
In this brief introduction, we will discuss and explore these basic commands and how they aid us in navigation around the Linux environment.
Learn more from the following resources:
- [@article@Linux pwd Command: Directory Displaying](https://labex.io/tutorials/linux-file-and-directory-operations-17997)

@ -11,3 +11,7 @@ mv [options] source destination
Here, `source` denotes the file or directory that you want to move while `destination` denotes the location where you want to move your source file or directory.
The `mv` command is widely used because of its simplicity and versatility. Whether you want to organize your files by moving them into different directories or rename a bunch of files, the `mv` command is your go-to tool in Linux.
Learn more from the following resources:
- [@article@Linux mv Command: File Moving and Renaming](https://labex.io/tutorials/linux-linux-mv-command-file-moving-and-renaming-209743)

@ -29,7 +29,12 @@ rm example.txt
# Ask for confirmation
rm -i [filename]
```
```bash
# Removes an empty directory
rmdir [directory]
```
Learn more from the following resources:
- [@article@Linux rm Command: File Removing](https://labex.io/tutorials/linux-linux-rm-command-file-removing-209741)

@ -15,8 +15,10 @@ cd /path/to/directory
```bash
ls
```
Visit the following resources to learn more:
- [@article@Intro to Linux](https://www.linkedin.com/pulse/intro-linux-fundamentals-what-hillary-nyakundi-4u7af/)
- [@video@Linux fundamentals](https://www.youtube.com/watch?v=kPylihJRG70&t=1381s&ab_channel=TryHackMe)
- [@article@Practice on Linux fundamentals](https://linuxjourney.com/)
- [@course@Linux for Noobs (Hands-on)](https://labex.io/courses/linux-for-noobs)

@ -1,7 +1,7 @@
# Vim: An Essential Tool for Editing Files
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.
<br>
Vim operates primarily in three modes:
- Normal (for navigation and manipulation).
@ -17,7 +17,7 @@ vim example.txt
To insert new content, press 'i' for 'insert mode'. After editing, press 'ESC' to go back to 'command mode', and type ':wq' to save and quit.
To learn more, visit this:
<br>
Check out this [Github repo](https://github.com/iggredible/Learn-Vim?tab=readme-ov-file) on Vim from basic to advanced.
- [@article@Learn Vim Progressively](https://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/)

@ -8,17 +8,19 @@ Nano comes pre-installed with many Linux distributions but if it's not installed
# Ubuntu based distributions
sudo apt update
sudo apt install nano
```
```bash
# Arch Linux
sudo pacman -S nano
```
To use Nano to edit or create files in Linux, the following command can be used:
```bash
nano filename
```
Visit the following resources to learn more:
- [@article@Blog on nano](https://ioflood.com/blog/nano-linux-command/)

@ -7,6 +7,7 @@ Usually, when you type a command in the terminal, the shell needs to know the ab
```sh
echo $PATH
```
Running this command in a Linux terminal will return all the directories that the shell will search, in order, to find the command it has to run. The directories are separated by a colon.
This feature makes using Linux command-line interface convenient and efficient.

@ -17,3 +17,7 @@ $ echo $PATH
```
Remember, every shell, such as Bourne shell, C shell, or Korn shell in Unix or Linux has different syntax and semantics to define and use environment variables.
Learn more from the following resources:
- [@article@Environment Variables in Linux](https://labex.io/tutorials/linux-environment-variables-in-linux-385274)

@ -24,3 +24,4 @@ Learn more from the following resources:
- [@article@How to use the man page](https://www.baeldung.com/linux/man-command)
- [@opensource@tldr-pages/tldr](https://github.com/tldr-pages/tldr)
- [@article@Get Help on Linux Commands](https://labex.io/tutorials/linux-get-help-on-linux-commands-18000)

@ -15,3 +15,7 @@ ls -al > file_list.txt
```
This command will write the output of 'ls -al' into 'file_list.txt', whether or not the file initially existed. It will be created if necessary, and if it already exists – it will be overwritten.
Learn more from the following resources:
- [@article@Logical Commands and Redirection](https://labex.io/tutorials/linux-logical-commands-and-redirection-387332)

@ -20,3 +20,4 @@ Learn more from the following resources:
- [@article@Linux File Permissions](https://linuxhandbook.com/linux-file-permissions/)
- [@video@Linux File Permissions in 5 Minutes](https://www.youtube.com/watch?v=LnKoncbQBsM)
- [@article@Linux Permissions of Files](https://labex.io/tutorials/linux-permissions-of-files-270252)

@ -19,4 +19,9 @@ 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.
Learn more from the following resources:
- [@article@Linux File Packaging and Compression](https://labex.io/tutorials/linux-file-packaging-and-compression-385413)

@ -15,3 +15,8 @@ mv /path/to/original/file /path/to/new/file
```
Remember that Linux commands are case sensitive so make sure to enter the commands exactly as they are.
Learn more from the following resources:
- [@article@Linux cp Command: File Copying](https://labex.io/tutorials/linux-linux-cp-command-file-copying-209744)
- [@article@Linux mv Command: File Moving and Renaming](https://labex.io/tutorials/linux-linux-mv-command-file-moving-and-renaming-209743)

@ -4,12 +4,19 @@ Working with files is an essential part of Linux and it's a skill every Linux us
Linux provides multiple command-line utilities to create, view, move or search files. Some of the basic commands for file handling in Linux terminal include `touch` for creating files, `mv` for moving files, `cp` for copying files, `rm` for removing files, and `ls` for listing files and directories.
For instance, to create a file named "example.txt", we use the command:
```bash
touch example.txt
```
To list files in the current directory, we use the command:
```bash
ls
```
Knowing how to effectively manage and manipulate files in Linux is crucial for administering and running a successful Linux machine.
Learn more from the following resources:
- [@article@Linux Basic Files Operations](https://labex.io/tutorials/linux-basic-files-operations-270248)

@ -17,3 +17,7 @@ echo "one,two,three,four" | cut -d "," -f 2
```
This command will output the second field (`two`) by using the comma as a field delimiter (`-d ","`).
Learn more from the following resources:
- [@article@Linux cut Command: Text Cutting](https://labex.io/tutorials/linux-linux-cut-command-text-cutting-219187)

@ -15,3 +15,7 @@ sort filename.txt > sorted_filename.txt
```
This command sorts the content of filename.txt and redirects the sorted content into sorted_filename.txt.
Learn more from the following resources:
- [@article@Linux sort Command: Text Sorting](https://labex.io/tutorials/linux-linux-sort-command-text-sorting-219196)

@ -9,3 +9,7 @@ echo 'hello' | tr 'a-z' 'A-Z'
```
In this example, `tr` is used to convert the lowercase 'hello' to uppercase 'HELLO'. It's an essential tool for text processing tasks in the Linux environment.
Learn more from the following resources:
- [@article@Linux tr Command: Character Translating](https://labex.io/tutorials/linux-linux-tr-command-character-translating-388064)

@ -5,8 +5,13 @@ The `head` command in Linux is a text processing utility that allows a user to o
```bash
head file.txt
```
The number of output lines can be customized using an option. For example, to display first 5 lines, we use `-n` option followed by the number of lines:
```bash
head -n 5 file.txt
```
Learn more from the following resources:
- [@article@Linux head Command: File Beginning Display](https://labex.io/tutorials/linux-linux-head-command-file-beginning-display-214302)

@ -9,3 +9,7 @@ tail /var/log/syslog
```
In the above example, the `tail` command will print the last 10 lines of the `/var/log/syslog` file. This is particularly useful in checking the most recent system log entries.
Learn more from the following resources:
- [@article@Linux tail Command: File End Display](https://labex.io/tutorials/linux-linux-tail-command-file-end-display-214303)

@ -11,3 +11,7 @@ join file1.txt file2.txt
Please note that `join` command works properly only when the files are sorted.
It's crucial to understand all the provided options and flags to use `join` effectively in text processing tasks.
Learn more from the following resources:
- [@article@Linux join Command: File Joining](https://labex.io/tutorials/linux-linux-join-command-file-joining-219193)

@ -9,3 +9,7 @@ nl [options] [file_name]
```
If no file is specified, `nl` will wait for input from user's terminal (stdin). Its clear and readable output makes it a valuable part of any Linux user's text processing toolkit.
Learn more from the following resources:
- [@article@Linux nl Command: Line Numbering](https://labex.io/tutorials/linux-linux-nl-command-line-numbering-210988)

@ -9,3 +9,7 @@ wc myfile.txt
```
This command would output the number of lines, words, and characters in `myfile.txt`. The output is displayed in the following order: line count, word count, character count, followed by the filename.
Learn more from the following resources:
- [@article@Linux wc Command: Text Counting](https://labex.io/tutorials/linux-linux-wc-command-text-counting-219200)

@ -9,3 +9,7 @@ sort names.txt | uniq
```
In this example, `names.txt` is a file containing a list of names. The `sort` command sorts all the lines in the file, and then the `uniq` command removes all the duplicate lines. The resulting output would be a list of unique names from `names.txt`.
Learn more from the following resources:
- [@article@Linux uniq Command: Duplicate Filtering](https://labex.io/tutorials/linux-linux-uniq-command-duplicate-filtering-219199)

@ -21,3 +21,4 @@ Visit the following resources to learn more:
- [@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)
- [@opensource@Ripgrep: Github Repository](https://github.com/BurntSushi/ripgrep)
- [@article@Linux grep Command: Pattern Searching](https://labex.io/tutorials/linux-linux-grep-command-pattern-searching-219192)

@ -20,3 +20,4 @@ Visit the following resources to learn more:
- [@article@Linux Handbook: Awk](https://linuxhandbook.com/awk-command-tutorial/)
- [@video@YouTube](https://www.youtube.com/watch?v=9YOZmI-zWok)
- [@feed@Explore top posts about Bash](https://app.daily.dev/tags/bash?ref=roadmapsh)
- [@article@Linux awk Command: Text Processing](https://labex.io/tutorials/linux-linux-awk-command-text-processing-388493)

@ -17,3 +17,7 @@ sudo deluser newuser
```
The entire concept of user management circles around providing proper accessibility, and maintaining the security of the Linux operating system. Other commands such as `passwd` for password management or `su` for switching users further emphasize the depth and importance of user management in Linux.
Learn more from the following resources:
- [@article@User Account Management](https://labex.io/tutorials/linux-user-account-management-49)

@ -11,3 +11,7 @@ sudo apt-get install <package-name>
```
Such vital features have made package management systems an integral part of Linux distributions, allowing users to handle applications efficiently.
Learn more from the following resources:
- [@article@Software Installation on Linux](https://labex.io/tutorials/linux-software-installation-on-linux-18005)
Loading…
Cancel
Save