arikchakma-feat/badges
Arik Chakma 1 year ago
commit d4678721a3
  1. BIN
      public/images/partners/apollo-workshop.png
  2. BIN
      public/pdfs/roadmaps/devops.pdf
  3. 4
      readme.md
  4. 7
      scripts/roadmap-content.cjs
  5. 3
      scripts/roadmap-dirs.cjs
  6. 1
      src/data/link-groups/1.md
  7. 1
      src/data/roadmaps/angular/content/100-typescript-basics/104-union-types.md
  8. 1
      src/data/roadmaps/angular/content/100-typescript-basics/106-type-guard.md
  9. 1
      src/data/roadmaps/backend/content/100-internet/101-what-is-http.md
  10. 1
      src/data/roadmaps/backend/content/103-learn-a-language/102-java.md
  11. 1
      src/data/roadmaps/backend/content/105-repo-hosting-services/100-github.md
  12. 1
      src/data/roadmaps/backend/content/109-apis/106-authentication/105-openid.md
  13. 1
      src/data/roadmaps/blockchain/content/100-blockchain-basics/index.md
  14. 1
      src/data/roadmaps/computer-science/content/101-pick-a-language/100-c-plus-plus.md
  15. 1
      src/data/roadmaps/computer-science/content/104-common-algorithms/102-graph-algorithms/100-breadth-first-search.md
  16. 2
      src/data/roadmaps/cpp/content/100-introduction/100-what-is-cpp.md
  17. 2
      src/data/roadmaps/cpp/content/100-introduction/index.md
  18. 4
      src/data/roadmaps/cpp/content/101-setting-up/101-code-editors.md
  19. 5
      src/data/roadmaps/cpp/content/103-functions/100-lambda.md
  20. 8
      src/data/roadmaps/cpp/content/105-pointers-and-references/raw-pointers/100-new-delete-operators.md
  21. 4
      src/data/roadmaps/cpp/content/libraries/102-poco.md
  22. 3
      src/data/roadmaps/cyber-security/content/100-basic-it-skills/101-connection-types/100-nfc.md
  23. 2
      src/data/roadmaps/cyber-security/content/100-basic-it-skills/104-basics-of-computer-networking.md
  24. 2
      src/data/roadmaps/cyber-security/content/103-security-skills-and-knowledge/100-cryptography/index.md
  25. 2
      src/data/roadmaps/cyber-security/content/103-security-skills-and-knowledge/107-blue-team-read-team-purple-team.md
  26. 3
      src/data/roadmaps/cyber-security/content/103-security-skills-and-knowledge/attack-types/100-phishing-vishing-whaling-smishing.md
  27. 2
      src/data/roadmaps/cyber-security/content/extras/certifications/beginner-certifications/200-comptia-aplus.md
  28. 0
      src/data/roadmaps/devops/content/101-operating-systems/103-windows.md
  29. 0
      src/data/roadmaps/devops/content/101-operating-systems/index.md
  30. 7
      src/data/roadmaps/devops/content/101-operating-systems/linux/100-ubuntu.md
  31. 0
      src/data/roadmaps/devops/content/101-operating-systems/linux/101-suse-linux.md
  32. 0
      src/data/roadmaps/devops/content/101-operating-systems/linux/102-rhel.md
  33. 1
      src/data/roadmaps/devops/content/101-operating-systems/linux/index.md
  34. 0
      src/data/roadmaps/devops/content/101-operating-systems/unix/100-free-bsd.md
  35. 0
      src/data/roadmaps/devops/content/101-operating-systems/unix/101-open-bsd.md
  36. 0
      src/data/roadmaps/devops/content/101-operating-systems/unix/102-net-bsd.md
  37. 1
      src/data/roadmaps/devops/content/101-operating-systems/unix/index.md
  38. 11
      src/data/roadmaps/devops/content/101-os-concepts/100-networking.md
  39. 9
      src/data/roadmaps/devops/content/101-os-concepts/101-io-management.md
  40. 9
      src/data/roadmaps/devops/content/101-os-concepts/102-virtualization.md
  41. 10
      src/data/roadmaps/devops/content/101-os-concepts/103-memory-storage.md
  42. 7
      src/data/roadmaps/devops/content/101-os-concepts/104-file-system.md
  43. 12
      src/data/roadmaps/devops/content/101-os-concepts/105-sockets.md
  44. 15
      src/data/roadmaps/devops/content/101-os-concepts/106-posix.md
  45. 15
      src/data/roadmaps/devops/content/101-os-concepts/107-processes.md
  46. 11
      src/data/roadmaps/devops/content/101-os-concepts/108-startup-management.md
  47. 11
      src/data/roadmaps/devops/content/101-os-concepts/109-service-management.md
  48. 19
      src/data/roadmaps/devops/content/101-os-concepts/110-threads-concurrency.md
  49. 9
      src/data/roadmaps/devops/content/101-os-concepts/index.md
  50. 0
      src/data/roadmaps/devops/content/102-live-in-terminal/102-editors.md
  51. 37
      src/data/roadmaps/devops/content/102-live-in-terminal/103-process-monitoring.md
  52. 32
      src/data/roadmaps/devops/content/102-live-in-terminal/104-performance-monitoring.md
  53. 74
      src/data/roadmaps/devops/content/102-live-in-terminal/105-networking-tools.md
  54. 80
      src/data/roadmaps/devops/content/102-live-in-terminal/106-text-manipulation.md
  55. 0
      src/data/roadmaps/devops/content/102-live-in-terminal/index.md
  56. 1
      src/data/roadmaps/devops/content/102-live-in-terminal/scripting/100-bash-scripting.md
  57. 1
      src/data/roadmaps/devops/content/102-live-in-terminal/scripting/101-powershell.md
  58. 1
      src/data/roadmaps/devops/content/102-live-in-terminal/scripting/index.md
  59. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-screen-multiplexer.md
  60. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/100-terminal-multiplexers.md
  61. 12
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/101-tmux-multiplexer.md
  62. 11
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-ps.md
  63. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/102-top.md
  64. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/103-htop.md
  65. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-atop.md
  66. 19
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/104-bash-scripting.md
  67. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/105-lsof.md
  68. 21
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-compiling-apps.md
  69. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/106-nmon.md
  70. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/107-iostat.md
  71. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/108-sar.md
  72. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/109-vmstat.md
  73. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/110-traceroute.md
  74. 11
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/111-mtr.md
  75. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/112-ping.md
  76. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/113-nmap.md
  77. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/114-netstat.md
  78. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/116-tcpdump.md
  79. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/118-iptables.md
  80. 13
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/119-dig.md
  81. 13
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/120-awk.md
  82. 13
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/121-sed.md
  83. 13
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/122-grep.md
  84. 13
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/123-sort.md
  85. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/124-cut.md
  86. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/125-uniq.md
  87. 17
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/126-cat.md
  88. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/127-echo.md
  89. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/128-fmt.md
  90. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/129-tr.md
  91. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/130-nl.md
  92. 10
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/131-wc.md
  93. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/134-strace.md
  94. 8
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/135-dtrace.md
  95. 1
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/136-systemtap.md
  96. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/137-uname.md
  97. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/138-df.md
  98. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/139-history.md
  99. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/140-du.md
  100. 9
      src/data/roadmaps/devops/content/102-managing-servers/101-live-in-terminal/141-scp.md
  101. Some files were not shown because too many files have changed in this diff Show More

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

@ -30,9 +30,9 @@ Roadmaps are now interactive, you can click the nodes to read more about the top
Here is the list of available roadmaps with more being actively worked upon.
- [Frontend Roadmap](https://roadmap.sh/frontend)
- [Frontend Roadmap](https://roadmap.sh/frontend) / [Frontend Beginner Roadmap](https://roadmap.sh/frontend?r=frontend-beginner)
- [Backend Roadmap](https://roadmap.sh/backend)
- [DevOps Roadmap](https://roadmap.sh/devops)
- [DevOps Roadmap](https://roadmap.sh/devops) / [DevOps Beginner Roadmap](https://roadmap.sh/devops?r=devops-beginner)
- [Full Stack Roadmap](https://roadmap.sh/full-stack)
- [Computer Science Roadmap](https://roadmap.sh/computer-science)
- [QA Roadmap](https://roadmap.sh/qa)

@ -3,7 +3,6 @@ const path = require('path');
const OPEN_AI_API_KEY = process.env.OPEN_AI_API_KEY;
const ALL_ROADMAPS_DIR = path.join(__dirname, '../src/data/roadmaps');
const ROADMAP_JSON_DIR = path.join(__dirname, '../public/jsons/roadmaps');
const roadmapId = process.argv[2];
@ -139,7 +138,11 @@ async function writeFileForGroup(group, topicUrlToPathMapping) {
async function run() {
const topicUrlToPathMapping = getFilesInFolder(ROADMAP_CONTENT_DIR);
const roadmapJson = require(path.join(ROADMAP_JSON_DIR, `${roadmapId}.json`));
const roadmapJson = require(path.join(
ALL_ROADMAPS_DIR,
`${roadmapId}/${roadmapId}`
));
const groups = roadmapJson?.mockup?.controls?.control?.filter(
(control) =>
control.typeID === '__group__' &&

@ -84,8 +84,9 @@ function prepareDirTree(control, dirTree, dirSortOrders) {
const roadmap = require(path.join(
__dirname,
`../public/jsons/roadmaps/${roadmapId}`
`../src/data/roadmaps/${roadmapId}/${roadmapId}`
));
const controls = roadmap.mockup.controls.control;
// Prepare the dir tree that we will be creating and also calculate the sort orders

@ -1,4 +1,5 @@
---
byte-byte-go: https://blog.bytebytego.com/archive
speedup-js: https://marvinh.dev/blog/speeding-up-javascript-ecosystem/
23-min-ts: https://www.youtube.com/watch?v=YmxwicpROps
bun-vs-node: https://www.youtube.com/watch?v=qCX8rw4qOSA

@ -6,3 +6,4 @@ Visit the following resources to learn more:
- [Union Types - typescriptlang](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html)
- [Union Type video for Beginners](https://www.youtube.com/watch?v=uxjpm4W5pCo)
- [Union Types - typescriptlang](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)

@ -9,3 +9,4 @@ Type guards are typically used for narrowing a type and are pretty similar to fe
Visit the following resources to learn more:
- [Types Guards - Blog](https://blog.logrocket.com/how-to-use-type-guards-typescript/)
- [TypeScript Type Guards Explained](https://www.youtube.com/watch?v=feeeitmtdwg)

@ -11,3 +11,4 @@ Visit the following resources to learn more:
- [HTTP/3 From A To Z: Core Concepts](https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/)
- [HTTP/1 to HTTP/2 to HTTP/3](https://www.youtube.com/watch?v=a-sBfyiXysI)
- [HTTP Crash Course & Exploration](https://www.youtube.com/watch?v=iYM2zFP3Zn0)
- [SSL, TLS, HTTPS Explained](https://www.youtube.com/watch?v=j9qmmewmcfo)

@ -10,3 +10,4 @@ Visit the following resources to learn more:
- [Codeacademy - Free Course](https://www.codecademy.com/learn/learn-java)
- [W3 Schools Tutorials](https://www.w3schools.com/java/)
- [Java Crash Course](https://www.youtube.com/watch?v=eIrMbAQSU34)
- [Complete Java course](https://www.youtube.com/watch?v=xk4_1vdrzzo)

@ -11,3 +11,4 @@ Visit the following resources to learn more:
- [Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU)
- [Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk)
- [Git and GitHub - CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I)
- [Learn Git Branching](https://learngitbranching.js.org/?locale=en_us)

@ -9,3 +9,4 @@ Visit the following resources to learn more:
- [What is OpenID](https://openid.net/connect/)
- [OAuth vs OpenID](https://securew2.com/blog/oauth-vs-openid-which-is-better)
- [An Illustrated Guide to OAuth and OpenID Connect](https://www.youtube.com/watch?v=t18YB3xDfXI)
- [OAuth 2.0 and OpenID Connect (in plain English)](https://www.youtube.com/watch?v=996oiexhze0)

@ -8,3 +8,4 @@ Visit the following resources to learn more:
- [Blockchain Explained](https://www.investopedia.com/terms/b/blockchain.asp)
- [How does a blockchain work?](https://youtu.be/SSo_EIwHSd4)
- [What Is a Blockchain? | Blockchain Basics for Developers](https://youtu.be/4ff9esY_4aU)
- [An Elementary and Slightly Distilled Introduction to Blockchain](https://markpetherbridge.co.uk/blog/an-elementary-and-slightly-distilled-introduction-to-blockchain/)

@ -6,3 +6,4 @@ Visit the following resources to learn more:
- [Learn Cpp](https://learncpp.com/)
- [C++ Reference](https://en.cppreference.com/)
- [C++ TutorialsPoint](https://www.tutorialspoint.com/cplusplus/index.htm)

@ -6,3 +6,4 @@ Visit the following resources to learn more:
- [Breadth First Search or BFS for a Graph](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/)
- [Graph Algorithms II - DFS, BFS, Kruskals Algorithm, Union Find Data Structure - Lecture 7](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- [Breadth-first search in 4 minutes](https://www.youtube.com/watch?v=hz5ytanv5qe)

@ -45,4 +45,4 @@ int main() {
In the above program, we define a simple function `add` and a class `Calculator` with a member function `multiply`. The `main` function demonstrates how to use these to perform basic arithmetic.
- [C++ Tutorial for Beginners - Full Course](https://youtu.be/vlnpwxzdw4y)
- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vlnpwxzdw4y)

@ -129,4 +129,4 @@ int main() {
This basic introduction to C++ should provide you with a good foundation for further learning. Explore more topics such as classes, objects, inheritance, polymorphism, templates, and the Standard Template Library (STL) to deepen your understanding of C++ and start writing more advanced programs.
- [C++ Tutorial for Beginners - Full Course](https://youtu.be/vLnPwxZdW4Y)
- [LearnC++](https://www.learncpp.com/)

@ -10,4 +10,6 @@ Code editors are programs specifically designed for editing, managing and writin
These are just a few examples, and there are many other code editors available, including Atom, Notepad++, and Geany. They all have their features and may suit different developers' needs. Finding the right code editor is often a matter of personal preference and workflow.
To work with C++ in your chosen code editor, you often need to install some additional tools and add-ons, such as compilers, linters, and debugger support. Make sure to follow the instructions provided by the editor's documentation to set up C++ correctly.
To work with C++ in your chosen code editor, you often need to install some additional tools and add-ons, such as compilers, linters, and debugger support. Make sure to follow the instructions provided by the editor's documentation to set up C++ correctly.
- [Using C++ on Linux in VSCode](https://code.visualstudio.com/docs/cpp/config-linux)

@ -59,4 +59,7 @@ auto updateDays = [&expiresInDays](int newDays) {
updateDays(30); // expiresInDays = 30
```
Note that, when using the capture by reference, any change made to the captured variable *inside* the lambda function will affect its value in the surrounding scope.
Note that, when using the capture by reference, any change made to the captured variable *inside* the lambda function will affect its value in the surrounding scope.
- [Lambdas in C++](https://youtu.be/mwgmbbz0y8c)
- [Lambda Expressions](https://en.cppreference.com/w/cpp/language/lambda)

@ -2,7 +2,7 @@
Raw pointers in C++ are low-level constructs that directly hold a memory address. They can be used for manually allocating memory, creating dynamic arrays, and passing values efficiently, among other things.
##`new` Operator
## `new` Operator
The `new` operator is used to allocate memory on the heap. The memory allocated using `new` remains available until you explicitly deallocate it using the corresponding `delete` operator.
@ -13,7 +13,7 @@ int* ptr = new int; // Dynamically allocates an int on the heap
*ptr = 42; // Assigns the value 42 to the allocated int
```
##`delete` Operator
## `delete` Operator
The `delete` operator is used to deallocate memory that has been allocated using `new`. After memory is deallocated, it's available to be reallocated for other purposes. Failing to properly deallocate memory can lead to memory leaks.
@ -26,7 +26,7 @@ int* ptr = new int; // Dynamically allocates an int on the heap
delete ptr; // Deallocates the memory assigned to ptr
```
##`new[]` and `delete[]` Operators
## `new[]` and `delete[]` Operators
The `new[]` and `delete[]` operators are used for allocating and deallocating memory for an array of objects. The syntax for `new[]` and `delete[]` is very similar to that of `new` and `delete`.
@ -44,4 +44,4 @@ for (int i = 0; i < n; i++) {
delete[] arr; // Deallocates the memory assigned to the array
```
In summary, raw pointers, and `new` and `delete` operators allow manual memory management in C++, providing control over allocation and deallocation. Make sure to always deallocate memory allocated with `new` or `new[]`, to avoid memory leaks in your programs.
In summary, raw pointers, and `new` and `delete` operators allow manual memory management in C++, providing control over allocation and deallocation. Make sure to always deallocate memory allocated with `new` or `new[]`, to avoid memory leaks in your programs.

@ -68,4 +68,6 @@ int main()
}
```
In the above example, Poco is used to send an HTTP GET request and process the response. It manages tasks like connecting to the server, handling exceptions, and managing HTTP headers.
In the above example, Poco is used to send an HTTP GET request and process the response. It manages tasks like connecting to the server, handling exceptions, and managing HTTP headers.
- [Official Docs for Poco Library](https://docs.pocoproject.org/)

@ -33,3 +33,6 @@ To minimize the risks associated with NFC, follow these best practices:
- Ensure you're using trusted and secure apps to handle your NFC transactions.
In conclusion, understanding the basics of NFC and adhering to security best practices will help ensure that you can safely and effectively use this innovative technology.
- [The Beginner's Guide to NFCs](https://www.spiceworks.com/tech/networking/articles/what-is-near-field-communication/)
- [NFC Guide: All You Need to Know About Near Field Communication](https://squareup.com/us/en/the-bottom-line/managing-your-finances/nfc)

@ -50,3 +50,5 @@ The Open Systems Interconnection (OSI) model is a conceptual framework used to u
- **Application Layer**: Represents the user interface with which applications interact.
Mastering the basics of computer networking is key to understanding and implementing effective cyber security measures. This chapter has covered essential networking concepts, but it is important to continually expand your knowledge in this ever-evolving field.
- [What is Computer Networking?](https://tryhackme.com/room/whatisnetworking)

@ -31,3 +31,5 @@ Proper key management is crucial to maintain the security of encrypted data. Key
Cryptanalysis is the process of attempting to break cryptographic systems, often by exploiting weaknesses in the algorithms, protocols, or key management processes. The strength of a cryptographic system lies in its resistance to cryptanalysis. As a cyber security professional, understanding cryptanalysis techniques can help you identify and protect against potential vulnerabilities in your organization's cryptographic infrastructure.
In conclusion, cryptography is a fundamental aspect of cyber security, offering a layer of protection for sensitive data in digital networks. To effectively implement cryptography in your organization, you should be familiar with the various types of cryptography, cryptographic protocols, and key management best practices, and understand the potential threats posed by cryptanalysis.
- [Cryptography for Dummies (TryHackMe)](https://tryhackme.com/room/cryptographyfordummies)

@ -40,3 +40,5 @@ The Purple Team bridges the gap between the Blue Team and Red Team, helping to c
- Foster a culture of continuous improvement and collaboration
By investing in Blue, Red, and Purple Team efforts, organizations can achieve a more robust and resilient security posture, capable of withstanding and adapting to ever-evolving threats.
- [Red Team Fundamentals (TryHackMe)](https://tryhackme.com/room/redteamfundamentals)

@ -47,3 +47,6 @@ Smishing, or SMS phishing, is the act of using text messages to deceive victims
- Install mobile security software to protect your device from potential threats
By staying informed about these various attack types, you can better protect yourself and your organization from falling victim to cyber threats. Remain vigilant and ensure you have proper security measures in place to minimize the risk of these attacks.
- [What is Phishing?](https://www.phishing.org/what-is-phishing)
- [Phishing Examples](https://www.phishing.org/phishing-examples)

@ -35,3 +35,5 @@ Achieving a CompTIA A+ certification can offer several benefits, such as:
- Serving as a prerequisite for more advanced certifications, such as CompTIA Network+ and CompTIA Security+
Overall, if you're an aspiring IT professional, the CompTIA A+ certification is a great starting point to kick off your IT career and begin acquiring the skills and knowledge needed to thrive in this ever-evolving industry.
- [CompTIA A+ 220-1101 - Professor Messer](https://www.youtube.com/watch?v=87t6p5zhtp0&list=plg49s3nxzannomvg5ugvenb_qqgsh01uc&index=1)

@ -7,10 +7,7 @@ Ubuntu is a free and open-source Linux distribution based on Debian. Ubuntu is a
Visit the following resources to learn more:
- [Debian Website](https://www.debian.org/)
- [Official Debian Documentation](https://www.debian.org/doc/)
- [Debian Installation Guide](https://www.debian.org/releases/stable/installmanual)
- [Ubuntu Website](https://ubuntu.com/)
- [Ubuntu Documentation](https://help.ubuntu.com/)
- [Install Ubuntu Desktop Documentation](https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview)
- [Getting Started with Ubuntu Tutorials](https://itsfoss.com/getting-started-with-ubuntu/)
- [Learn the ways of Linux-fu, for free](https://linuxjourney.com/)
- [Linux Operating System - Crash Course for Beginners](https://www.youtube.com/watch?v=ROjZy1WbCIA)
- [The Linux Command Line by William Shotts](https://linuxcommand.org/tlcl.php)

@ -1,11 +0,0 @@
# Networking
Computer networking refers to interconnected computing devices that can exchange data and share resources with each other. These networked devices use a system of rules, called communications protocols, to transmit information over physical or wireless technologies.
Begin by studying the [OSI Model](https://en.wikipedia.org/wiki/OSI_model). This model will assist in constructing an understanding of the linked topics, and help you contextualize the items linked to the Networking, Security, and Protocols node. Higher level networking concepts may be implemented and named differently across cloud providers. Don't let this confuse you - the basics of TCP/IP are useful and used in the same ways across all implementations.
Visit the following resources to learn more:
- [What is Computer Networking?](https://aws.amazon.com/what-is/computer-networking/)
- [Full Networking Course](https://youtu.be/IPvYjXCsTg8)
- [OSI Model Explained](https://www.youtube.com/watch?v=dV8mjZd1OtU)

@ -1,9 +0,0 @@
# I/O Management
One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touchpad, disk drives, display adapters, USB devices, Bit-mapped screens, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers, etc.
Visit the following resources to learn more:
- [Operating System - I/O Hardware](https://www.tutorialspoint.com/operating_system/os_io_hardware.htm)
- [IO Management](https://www.omscs-notes.com/operating-systems/io-management/)
- [Basics of OS (I/O Structure)](https://www.youtube.com/watch?v=F18RiREDkwE)

@ -1,9 +0,0 @@
# Virtualization
Virtualization is the creation of a virtual -- rather than actual -- version of something, such as an operating system (OS), a server, a storage device or network resources. It uses software that simulates hardware functionality to create a virtual system. This practice allows IT organizations to operate multiple operating systems, more than one virtual system and various applications on a single server.
Visit the following resources to learn more:
- [What is Virtualization? and its types?](https://www.techtarget.com/searchitoperations/definition/virtualization)
- [What is Hypervisor and VM?](https://opensource.com/resources/virtualization)
- [Containers vs VM](https://www.atlassian.com/microservices/cloud-computing/containers-vs-vms)

@ -1,10 +0,0 @@
# Memory Management
The term Memory can be defined as a collection of data in a specific format. It is used to store instructions and process data. The memory comprises a large array or group of words or bytes, each with its own location. The primary motive of a computer system is to execute programs. These programs, along with the information they access, should be in the main memory during execution. The CPU fetches instructions from memory according to the value of the program counter.
To achieve a degree of multiprogramming and proper utilization of memory, memory management is important. There are several memory management methods, reflecting various approaches, and the effectiveness of each algorithm depends on the situation.
Visit the following resources to learn more:
- [Demystifying memory management in modern programming languages](https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd)
- [Memory Management in Operating System](https://www.geeksforgeeks.org/memory-management-in-operating-system/)

@ -1,7 +0,0 @@
# File System
A file is a named collection of related information recorded on secondary storage such as magnetic disks, magnetic tapes, and optical disks. Generally, a file is a sequence of bits, bytes, lines, or records whose meaning is defined by the file's creator and user.
Visit the following resources to learn more:
- [Operating System - File System](https://www.tutorialspoint.com/operating_system/os_file_system.htm)

@ -1,12 +0,0 @@
# Sockets
Socket is an endpoint of a two way **communication** link between **two different processes** on the network (same or different machines). The socket mechanism provides a means of inter-process communication (IPC) by establishing named contact points between client and server. It is the combination of IP Address and Port Number.
e.g. `http://192.168.0.1:8080`
Visit the following resources to learn more:
- [What are Sockets?](https://www.geeksforgeeks.org/socket-in-computer-network/)
- [Types of Sockets](https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm)
- [Port vs Socket](https://www.baeldung.com/cs/port-vs-socket)
- [Socket.io Library Bidirectional and low-latency communication for every platform](https://socket.io/)

@ -1,15 +0,0 @@
# POSIX Basics
POSIX (Portable Operating System Interface) is a family of standards for maintaining compatibility between operating systems. It describes utilities, APIs, and services that a compliant OS should provide to software, thus making it easier to port programs from one system to another.
A practical example: in a Unix-like operating system, there are three _standard streams_, `stdin`, `stdout` and `stderr` - they are I/O connections that you will probably come across when using a terminal, as they manage the flow from the **standard input** (stdin), **standard output** (stdout) and **standard error** (stderr).
So, in this case, when we want to interact with any of these streams (through a process, for example), the POSIX operating system API makes it easier - for example, in the `<unistd.h>` C header where the stdin, stderr, and stdout are defined as `STDIN_FILENO`, `STDERR_FILENO` and `STDOUT_FILENO`.
POSIX also adds a standard for exit codes, filesystem semantics, and several other command line utility API conventions.
Visit the following resources to learn more:
- [POSIX standard by IEEE](https://pubs.opengroup.org/onlinepubs/9699919799/)
- [Summary of some POSIX implementations](https://unix.stackexchange.com/a/220877)
- [A guide to POSIX](https://www.baeldung.com/linux/posix)

@ -1,15 +0,0 @@
# Processes
A process means program in execution. It generally takes an input, processes it and gives us the appropriate output. `ps` command can be used in linux to get the list of processes running in foreground. Each process will have a unique identifier called **PID**, which can be used to track it or `kill` it through shell.
**Types of processes:**
- Foreground processes
- Background processes
Visit the following resources to learn more:
- [Intro to Process Management](https://www.geeksforgeeks.org/introduction-of-process-management/)
- [Process Management in Linux](https://www.geeksforgeeks.org/process-management-in-linux/)
- [Process related commands in Linux](https://www.geeksforgeeks.org/processes-in-linuxunix/)
- [Process vs Thread](https://www.geeksforgeeks.org/difference-between-process-and-thread/)

@ -1,11 +0,0 @@
# Startup Management (init.d)
`init.d` is a daemon which is the **first process** (PID = 1) of the Linux system. Then other processes, services, daemons, and threads are started by init. One can write their own scripts in _'/etc/init.d'_ location to start services automatically on system boot. Services can be started and stopped manually by using `service` command.
It has following syntax: `$ service [service_name] [action]` e.g. `$ service ssh start`
Visit the following resources to learn more:
- [Linux Booting Process](https://www.freecodecamp.org/news/the-linux-booting-process-6-steps-described-in-detail/)
- [What is init.d?](https://www.geeksforgeeks.org/what-is-init-d-in-linux-service-management/)
- [What are Daemons in Linux?](https://itsfoss.com/linux-daemons/)

@ -1,11 +0,0 @@
# Service Management (systemd)
`systemd` is a **System** Management **D**aemon which replaces the sysvinit process to become the first process with PID = 1, which gets executed in user space during the Linux start-up process. It is a system that is designed specifically for the Linux kernel. It is now being used as a **replacement of init.d** to overcome shortcomings of it. It uses `systemctl` command to perform related operations.
e.g. `$ systemctl start [service-name]`, `$ systemctl poweroff`
Visit the following resources to learn more:
- [What is systemd? and its commands](https://www.geeksforgeeks.org/linux-systemd-and-its-components/)
- [init.d vs systemd](https://uace.github.io/learning/init-vs-systemd-what-is-an-init-daemon)
- [Why Systemd as a replacement of init.d?](https://www.tecmint.com/systemd-replaces-init-in-linux/)

@ -1,19 +0,0 @@
# Thread in OS
`Thread` is an active entity which executes a **part of a process**. It is a sequential flow of tasks within a process. It is also called lightweight process as they **share common resources**. A process can contain multiple threads. Threads are used to increase the performance of the applications.
Each thread has its own program counter, stack, and set of registers. But the threads of a single process might share the same code and data/file.
**Key Terminologies:**
- `proc`
- `fork`
- `join`
Visit the following resources to learn more:
- [Process Synchronization](https://www.geeksforgeeks.org/introduction-of-process-synchronization/)
- [What is Thread in OS?](https://www.geeksforgeeks.org/thread-in-operating-system/)
- [Process vs Thread & Multi-Threading](https://www.scaler.com/topics/operating-system/threads-in-operating-system/)
- [What Concurrency in OS?](https://www.geeksforgeeks.org/concurrency-in-operating-system/)
- [Threads vs Concurrency](https://medium.com/@azizomarck/how-is-concurrency-different-from-parallelism-334b6d5c869a)
- [How Concurrency is achieved in Threads](https://medium.com/@akhandmishra/operating-system-threads-and-concurrency-aec2036b90f8)

@ -1,9 +0,0 @@
# Operating System
An Operating System is a program that manages a computer’s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections.
Visit the following resources to learn more:
- [What is an operating system?](https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/)
- [Operating Systems: Crash Course Computer Science #18](https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse)
- [Introduction to Operating System](https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1)

@ -0,0 +1,37 @@
# Process Monitoring
A process is an instance of a computer program that is being executed. Each process is identified by a unique number called a process ID (PID). A process is a running program. The operating system tracks processes through the use of process identifiers. A process identifier (PID) is a unique number that identifies a specific process. A PID is automatically assigned to each process when it is created on the system.
There are several linux commands that can be used to monitor processes. The most common ones are:
- `ps` - report a snapshot of the current processes.
- `top` - display Linux processes.
- `htop` - interactive process viewer.
- `atop` - advanced interactive monitor to view the load on a Linux system.
- `lsof` - list open files.
The `ps` utility displays a header line, followed by lines containing information about all of your processes that have controlling terminals.
- [ps Documentation](https://man7.org/linux/man-pages/man1/ps.1.html)
- [ps Cheat Sheet](https://www.sysadmin.md/ps-cheatsheet.html)
- [Linux Crash Course - The ps Command](https://www.youtube.com/watch?v=wYwGNgsfN3I)
The `top` program periodically displays a sorted list of system processes. The default sorting key is pid, but other keys can be used instead. Various output options are available.
- [top Documentation](https://man7.org/linux/man-pages/man1/top.1.html)
- [top Cheat Sheet](https://gist.github.com/ericandrewlewis/4983670c508b2f6b181703df43438c37)
htop is a cross-platform ncurses-based process. It is similar to top, but allows you to scroll vertically and horizontally, and interact using a pointing device (mouse). You can observe all processes running on the system, along with their command line arguments, as well as view them in a tree format, select multiple processes and act on them all at once.
- [htop Documentation](https://www.man7.org/linux/man-pages/man1/htop.1.html)
- [htop Cheat Sheet](https://www.maketecheasier.com/power-user-guide-htop/)
The top program periodically displays a sorted list of system processes. The default sorting key is pid, but other keys can be used instead. Various output options are available.
- [top Documentation](https://man7.org/linux/man-pages/man1/top.1.html)
- [top Cheat Sheet](https://gist.github.com/ericandrewlewis/4983670c508b2f6b181703df43438c37)
Lsof lists on its standard output file information about files opened by processes.
- [lsof Cheat Sheet](https://neverendingsecurity.wordpress.com/2015/04/13/lsof-commands-cheatsheet/)
- [lsof Documentation](https://man7.org/linux/man-pages/man8/lsof.8.html)

@ -0,0 +1,32 @@
# Performance Monitoring
There are many tools available to monitor the performance of your application. Some of the most popular are:
- `nmon` - A system monitor tool for Linux and AIX systems.
- `iostat` - A tool that reports CPU statistics and input/output statistics for devices, partitions and network filesystems.
- `sar` - A system monitor command used to report on various system loads, including CPU activity, memory/paging, device load, network.
- `vmstat` - A tool that reports virtual memory statistics.
Nmon is a fully interactive performance monitoring command-line utility tool for Linux. It is a benchmark tool that displays performance about the cpu, memory, network, disks, file system, nfs, top processes, resources, and power micro-partition.
- [nmon Documentation](https://www.ibm.com/docs/en/aix/7.2?topic=n-nmon-command)
- [nmon Command Guide](https://www.geeksforgeeks.org/linux-nmon/)
The iostat command in Linux is used for monitoring system input/output statistics for devices and partitions. It monitors system input/output by observing the time the devices are active in relation to their average transfer rates. The iostat produce reports may be used to change the system configuration to raised balance the input/output between the physical disks.
- [iostat Documentation](https://man7.org/linux/man-pages/man1/iostat.1.html)
- [iostat Command Guide](https://www.geeksforgeeks.org/iostat-command-in-linux-with-examples/)
Short for **S**ystem **A**ctivity **R**eport, `sar` is a command line tool for Unix and Unix-like operating systems that shows a report of different information about the usage and activity of resources in the operating system.
- [SAR command in Linux to monitor system performance](https://www.geeksforgeeks.org/sar-command-linux-monitor-system-performance/)
- [SAR Man Page](https://man7.org/linux/man-pages/man1/sar.1.html)
- [SAR Man Page 2](https://linux.die.net/man/1/sar)
- [Sar tutorial for beginners](https://linuxhint.com/sar_linux_tutorial/)
Short for **V**irtual **m**emory **stat**istic reporter, `vmstat` is a command line tool for Unix and Unix-like operating systems that reports various information about the operating system such as memory, paging, processes, I/O, CPU and disk usage.
- [vmstat command in Linux with Examples](https://www.geeksforgeeks.org/vmstat-command-in-linux-with-examples/)
- [Linux commands: exploring virtual memory with vmstat](https://www.redhat.com/sysadmin/linux-commands-vmstat)
- [VMstat Man Page](https://man7.org/linux/man-pages/man8/vmstat.8.html)
- [vmstat tutorial](https://phoenixnap.com/kb/vmstat-command)

@ -0,0 +1,74 @@
# Networking Tools
Networking tools are used to troubleshoot network issues. They are also used to monitor network traffic and to test network connectivity. Some of the most common networking tools are:
- `traceroute` - Traces the route taken by packets over an IP network.
- `ping` - sends echo request packets to a host to test the Internet connection.
- `mtr` - Combines the functionality of `traceroute` and `ping` into a single diagnostic tool.
- `nmap` - Scans hosts for open ports.
- `netstat` - Displays network connections, routing tables, interface statistics, masquerade connections, and multicast memberships.
- `ufw` and `firewalld` - Firewall management tools.
- `iptables` and `nftables` - Firewall management tools.
- `tcpdump` - Dumps traffic on a network.
- `dig` - DNS lookup utility.
- `scp` - Secure copy.
`traceroute` command is a command in Linux that prints the route a network packet takes from its source (e.g. your computer) to the destination host (e.g., roadmap.sh). It is quite valuable in investigating slow network connections as it can help us spot the slow leg of the network packet journey through the internet.
- [How to Run Traceroute in Linux](https://linuxhint.com/run_traceroute_linux/)
- [Traceroute command in Linux with examples](https://www.geeksforgeeks.org/traceroute-command-in-linux-with-examples/)
`ping` (**P**acket **In**ternet **G**roper) command is used to check the network connectivity between host and server/host. This command takes as input the IP address or the URL and sends a data packet to the specified address with the message “PING” and get a response from the server/host this time is recorded which is called latency.
- [What is ping command?](https://linuxize.com/post/linux-ping-command/)
- [ping command with examples](https://www.geeksforgeeks.org/ping-command-in-linux-with-examples/)
`mtr` combines the functionality of the traceroute and ping programs in a single network diagnostic tool.
- [Javatpoint: Linux mtr Command](https://www.javatpoint.com/linux-mtr)
- [mtr Linux command](https://www.tutorialspoint.com/unix_commands/mtr.htm)
- [How to traceroute use mtr command in Linux](https://www.devopsroles.com/how-to-traceroute-use-mtr-command-in-linux/)
NMAP stands for Network Mapper and is an open-source tool used to explore and audit the network's security, such as checking firewalls and scanning ports.
- [NMAP Official Manual Book](https://nmap.org/book/man.html)
- [What is Nmap and How to Use it](https://www.freecodecamp.org/news/what-is-nmap-and-how-to-use-it-a-tutorial-for-the-greatest-scanning-tool-of-all-time/)
Netstat is a command line utility to display all the network connections on a system. It displays all the tcp, udp and unix socket connections. Apart from connected sockets it also displays listening sockets that are waiting for incoming connections.
- [netstat command in Linux with Examples](https://www.tutorialspoint.com/unix_commands/netstat.htm)
- [Netstat Tutorial](http://www.c-jump.com/CIS24/Slides/Networking/html_utils/netstat.html)
- [Netstat Commands - Network Administration Tutorial](https://www.youtube.com/watch?v=bxFwpm4IobU)
- [Linux Command Line Tutorial For Beginners - netstat command](https://www.youtube.com/watch?v=zGNcvBaN5wE)
UFW, or _uncomplicated firewall_, is command-line based utility for managing firewall rules in Arch Linux, Debian and Ubuntu. It's aim is to make firewall configuration as simple as possible. It is a frontend for the `iptables` firewalling tool.
- [ufw Documentation](https://manpages.ubuntu.com/manpages/trusty/man8/ufw.8.html)
- [Basic Introduction to UFW](https://www.linux.com/training-tutorials/introduction-uncomplicated-firewall-ufw/)
- [UFW Essentials](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands)
IPtables is a command-line firewall utility that uses policy chains to allow or block traffic that will be enforced by the linux kernel’s netfilter framework. Iptables packet filtering mechanism is organized into three different kinds of structures: tables, chains and targets.
- [Iptables tutorial](https://www.hostinger.in/tutorials/iptables-tutorial)
- [Beginners to Advanced Guide Iptables](https://erravindrapawadia.medium.com/iptables-tutorial-beginners-to-advanced-guide-to-linux-firewall-839e10501759)
`tcpdump` is a command line tool used for analysing network traffic passing through your system. It can be used to capture and filter packets and display them in a human-readable format. The captured information can be analysed at a later date as well.
- [tcpdump Documentation](https://www.tcpdump.org/manpages/tcpdump.1.html)
- [Basic Introduction to Tcpdump](https://opensource.com/article/18/10/introduction-tcpdump)
- [50 ways to isolate traffic with Tcpdump](https://danielmiessler.com/study/tcpdump/)
- [Interpreting Tcpdump output and data](https://www.youtube.com/watch?v=7bsQP9sKHrs)
`dig` command stands for **D**omain **I**nformation **G**roper. It is used for retrieving information about DNS name servers. It is mostly used by network administrators for verifying and troubleshooting DNS problems and to perform DNS lookups. It replaces older tools such as `nslookup` and the `host`.
- [What is dig command?](https://www.geeksforgeeks.org/dig-command-in-linux-with-examples/)
- [More on dig](https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/)
- [What is host command?](https://www.geeksforgeeks.org/host-command-in-linux-with-examples/)
- [What is nslookup command?](https://www.geeksforgeeks.org/nslookup-command-in-linux-with-examples/)
- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/)
`SCP` is an acronym for Secure Copy Protocol.It is a command line utility that allows the user to securely copy files and directories between two locations usually between unix or linux systems.The protocol ensures the transmission of files is encrypted to prevent anyone with suspicious intentions from getting sensitive information.`SCP` uses encryption over an `SSH` (Secure Shell) connection, this ensures that the data being transferred is protected from suspicious attacks.
- [SCP Linux Command](https://www.freecodecamp.org/news/scp-linux-command-example-how-to-ssh-file-transfer-from-remote-to-local/)
- [10 SCP command examples](https://www.tecmint.com/scp-commands-examples/)
- [SCP command explained](https://phoenixnap.com/kb/linux-scp-command)

@ -0,0 +1,80 @@
# Text Manipulation
Some of the most common commands you will use in the terminal are text manipulation commands. These commands allow you to search, replace, and manipulate text in files and streams. Here are some of the most common commands you will use:
- `awk` - A programming language designed for text processing and typically used as a data extraction and reporting tool.
- `sed` - A stream editor for filtering and transforming text.
- `grep` - A command-line utility for searching plain-text data sets for lines that match a regular expression.
- `sort` - A command-line utility for sorting lines of text files.
- `cut` - A command-line utility for cutting sections from each line of files.
- `uniq` - A command-line utility for reporting or omitting repeated lines.
- `cat` - A command-line utility for concatenating files and printing on the standard output.
- `echo` - A command-line utility for displaying a line of text.
- `fmt` - A command-line utility for simple optimal text formatting.
- `tr` - A command-line utility for translating or deleting characters.
- `nl` - A command-line utility for numbering lines of files.
- `wc` - A command-line utility for printing newline, word, and byte counts for files.
`awk` is a general-purpose scripting language used for manipulating data or text and generating reports in the Linux world. It is mostly used for pattern scanning and processing. It searches one or more files to see if they contain lines that match the specified patterns and then performs the associated actions.
- [What is AWK? How to use it?](https://www.geeksforgeeks.org/awk-command-unixlinux-examples/)
- [How AWK works?](https://linuxize.com/post/awk-command/)
- [Linux Crash Course - awk](https://www.youtube.com/watch?v=oPEnvuj9QrI)
`sed`(**S**tream **Ed**itor) command in UNIX can perform lots of functions on file like searching, finding and replacing, insertion or deletion. By using SED you can edit files even without opening them in editors like [VI Editor](https://www.redhat.com/sysadmin/introduction-vi-editor).
- [What is SED? with examples](https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/)
- [Detailed Manual](https://www.gnu.org/software/sed/manual/sed.html)
- [Linux Crash Course - The sed Command](https://www.youtube.com/watch?v=nXLnx8ncZyE&t=218s)
The `grep` command (**g**lobal search for **r**egular **e**xpression and **p**rint out) searches file(s) for a particular pattern of characters, and displays all lines that contain that pattern. It can be used with other commands like `ps` making it more useful.
- [What is Grep? with examples](https://www.geeksforgeeks.org/grep-command-in-unixlinux/)
- [Detailed Manual](https://www.gnu.org/software/grep/manual/grep.html)
- [Linux Crash Course - The grep Command](https://www.youtube.com/watch?v=Tc_jntovCM0)
`sort` command is used to sort the contents of a file in a particular order. By default, it sorts a file assuming the contents are in ASCII. But it also can also be used to sort numerically by using appropriate options.
- [Sort command with examples](https://www.geeksforgeeks.org/sort-command-linuxunix-examples/)
- [Options](<https://en.wikipedia.org/wiki/Sort_(Unix)>)
- [Linux Tutorials|sort command GeeksforGeeks](https://www.youtube.com/watch?v=fEx5rnbDKO4)
The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output.
- [cut Documentation](https://man7.org/linux/man-pages/man1/cut.1.html)
- [cut Cheat Sheet](https://bencane.com/2012/10/22/cheat-sheet-cutting-text-with-cut/)
The uniq utility reads the specified input_file comparing adjacent lines, and writes a copy of each unique input line to the output_file.
- [uniq Documentation](https://man7.org/linux/man-pages/man1/uniq.1.html)
- [uniq Cheat Sheet](https://www.geeksforgeeks.org/uniq-command-in-linux-with-examples/)
`cat` (concatenate) command is very frequently used in Linux. It reads data from the file and gives its content as output. It helps us to create, view, and concatenate files.
- [Cat Command with examples](https://www.tecmint.com/13-basic-cat-command-examples-in-linux/)
- [Options](<https://en.wikipedia.org/wiki/Cat_(Unix)>)
- [Linux Tutorials|cat command|GeeksforGeeks](https://www.youtube.com/watch?v=exj5WMUJ11g)
`echo` is a built-in command in Linux used to display lines of text/string that are passed as an argument. It is mostly used in shell scripts and batch files to output status text or `ENV` variables to the screen or a file.
- [Echo command with Examples](https://www.tecmint.com/echo-command-in-linux/)
- [Linux Crash Course - The echo Command](https://www.youtube.com/watch?v=S_ySzMHxMjw)
`fmt` command is for formatting and optimizing contents in text files. It will be really useful when it comes to beautify large text files by setting uniform column width and spaces.
- [Fmt command with Examples](https://www.devopsroles.com/fmt-command-in-linux-with-example/)
The tr utility copies the standard input to the standard output with substitution or deletion of selected characters.
- [tr Documentation](https://linuxcommand.org/lc3_man_pages/tr1.html)
- [tr Cheat Sheet](https://linuxopsys.com/topics/tr-command-in-linux)
The nl utility reads lines from the named file or the standard input if the file argument is omitted, applies a configurable line numbering filter operation and writes the result to the standard output.
- [nl Documentation](https://man7.org/linux/man-pages/man1/nl.1.html)
- [nl Cheat Sheet](https://www.geeksforgeeks.org/nl-command-in-linux-with-examples/)
The wc utility displays the number of lines, words, and bytes contained in each input file, or standard input (if no file is specified) to the standard output.
- [wc Documentation](https://linux.die.net/man/1/wc)
- [wc Cheat Sheet](https://onecompiler.com/cheatsheets/wc)

@ -1,10 +0,0 @@
# Screen
Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). Each virtual terminal provides the functions of a DEC VT100 terminal and, in addition, several control functions from the ISO 6429 (ECMA 48, ANSI X3.64) and ISO 2022 standards (e.g. insert/delete line and support for multiple character sets). There is a scrollback history buffer for each virtual terminal and a copy-and-paste mechanism that allows moving text regions between windows.
See `man screen` or `screen -h` for further information
Visit the following resources to learn more:
- [Screen Cheat Sheet](https://kapeli.com/cheat_sheets/screen.docset/Contents/Resources/Documents/index)
- [Screen Users Manual](https://www.gnu.org/software/screen/manual/screen.html)

@ -1,8 +0,0 @@
# Terminal multiplexers
Terminal multiplexers are programs that allow us to [multiplex](https://en.wikipedia.org/wiki/Multiplexing) a terminal into several sub-processes or terminals inside a single terminal session, this means that we can have multiple open sessions using a single login session to a local or remote machine.
Visit the following resources to learn more:
- [Terminal Multiplexer](https://en.wikipedia.org/wiki/Terminal_multiplexer)
- [Terminal Multiplexers](https://linuxcommand.org/lc3_adv_termmux.php)

@ -1,12 +0,0 @@
# Tmux
Tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. Tmux may be detached from a screen and continue running in the background, then later reattached.
When tmux is started it creates a new session with a single window and displays it on screen. A status line at the bottom of the screen shows information on the current session and is used to enter interactive commands.
See `man tmux` further information
Visit the following resources to learn more:
- [Tmux Documentation](https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html)
- [Tmux Cheat Sheet](https://tmuxcheatsheet.com/)

@ -1,11 +0,0 @@
# ps - process status
The ps utility displays a header line, followed by lines containing information about all of your processes that have controlling terminals.
See `man ps` further information
Visit the following resources to learn more:
- [ps Documentation](https://man7.org/linux/man-pages/man1/ps.1.html)
- [ps Cheat Sheet](https://www.sysadmin.md/ps-cheatsheet.html)
- [Linux Crash Course - The ps Command](https://www.youtube.com/watch?v=wYwGNgsfN3I)

@ -1,10 +0,0 @@
# top
The top program periodically displays a sorted list of system processes. The default sorting key is pid, but other keys can be used instead. Various output options are available.
See `man top` further information.
Visit the following resources to learn more:
- [top Documentation](https://man7.org/linux/man-pages/man1/top.1.html)
- [top Cheat Sheet](https://gist.github.com/ericandrewlewis/4983670c508b2f6b181703df43438c37)

@ -1,8 +0,0 @@
# htop
htop is a cross-platform ncurses-based process. It is similar to top, but allows you to scroll vertically and horizontally, and interact using a pointing device (mouse). You can observe all processes running on the system, along with their command line arguments, as well as view them in a tree format, select multiple processes and act on them all at once.
Visit the following resources to learn more:
- [htop Documentation](https://www.man7.org/linux/man-pages/man1/htop.1.html)
- [htop Cheat Sheet](https://www.maketecheasier.com/power-user-guide-htop/)

@ -1,8 +0,0 @@
# atop
The program atop is an interactive monitor to view the load on a Linux system. It shows the occupation of the most critical hardware resources (from a performance point of view) on system level, i.e. cpu, memory, disk and network.
Visit the following resources to learn more:
- [atop Documentation](https://linux.die.net/man/1/atop)
- [atop Command Guide](https://www.digitalocean.com/community/tutorials/atop-command-in-linux)

@ -1,19 +0,0 @@
# Bash scripting
Bash is a command-line interface shell program used extensively in Linux and macOS. The name Bash is an acronym for "Bourne Again Shell," developed in 1989 as a successor to the Bourne Shell.
"What's a shell?" you ask? A shell is a computer program that allows you to directly control a computer's operating system (OS) with a graphical user interface (GUI) or command-line interface (CLI).
You actually use GUI shells all the time. For example, Windows 10 is based on the Windows shell that allows you to control your OS with a desktop, taskbar, and menus.
With a CLI shell like Bash, you type commands into the program to directly control your computer's OS. Opening up the terminal on your Mac or command line in Linux will look similar to consoles and integrated development environments (IDEs) for other programming languages such as R, Ruby, or Python. You can type commands directly in the command line or run Bash scripts to perform longer and more complex tasks.
Visit the following resources to learn more:
- [The Shell Scripting Tutorial](https://www.shellscript.sh/)
- [Writing Shell Scripts](https://linuxcommand.org/lc3_writing_shell_scripts.php)
- [Shell Scripting for Beginners](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/)
- [A guide to Bash](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html)
- [The Bash Hackers Wiki](https://wiki.bash-hackers.org/)
- [Bash Shell Scripting Guide](https://rudrakshi.hashnode.dev/bash-shell-scripting-guide)
- [Codecademy - Learn Bash Scripting](https://www.codecademy.com/learn/bash-scripting)

@ -1,10 +0,0 @@
# lsof
Lsof lists on its standard output file information about files opened by processes.
See `man lsof` or `lsof --help` for further information.
Visit the following resources to learn more:
- [lsof Cheat Sheet](https://neverendingsecurity.wordpress.com/2015/04/13/lsof-commands-cheatsheet/)
- [lsof Documentation](https://man7.org/linux/man-pages/man8/lsof.8.html)

@ -1,21 +0,0 @@
# Compiling Apps
# gcc
The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages also known as GCC. GCC is a key component of the GNU tool chain and the standard compiler for most Unix-like operating systems. Compiler Collection is a set of compilers and development tools available for Linux and an array of other operating systems. It includes support primarily for C and C++. It provides all of the infrastructure for building software in those languages from source code to assembly.
"What is GCC used for?" GCC is a toolchain that compiles code, links it with any library dependencies, converts that code to assembly, and then prepares executable files.It is responsible for the conversion of the “high level” source code in the respective language and ensuring that it is semantically valid, performing well formed optimizations, and converting it to assembly code (which is then handed off to the assembler).
Visit the following resources to learn more:
- [Intro to GCC](https://courses.cs.washington.edu/courses/cse451/99wi/Section/gccintro.html)
- [GCC Linux](https://www.javatpoint.com/gcc-linux)
- [GCC Commands](https://www.geeksforgeeks.org/gcc-command-in-linux-with-examples/)
- [Makefile Tutorial](https://makefiletutorial.com)
- [Documentation for make](https://www.gnu.org/software/make/manual/)
- [Using Make and writing Makefiles](https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html)
- [Sbt Documentation](https://www.scala-sbt.org/1.x/docs/)
- [Sbt By Example](https://www.scala-sbt.org/1.x/docs/sbt-by-example.html)
- [Gradle Tutorial](https://www.tutorialspoint.com/gradle/index.htm)
- [Gradle for absolute beginners](https://tomgregory.com/gradle-tutorial-for-complete-beginners/)
- [Gradle Guides](https://gradle.org/guides/)

@ -1,8 +0,0 @@
# Nmon
Nmon is a fully interactive performance monitoring command-line utility tool for Linux. It is a benchmark tool that displays performance about the cpu, memory, network, disks, file system, nfs, top processes, resources, and power micro-partition.
Visit the following resources to learn more:
- [nmon Documentation](https://www.ibm.com/docs/en/aix/7.2?topic=n-nmon-command)
- [nmon Command Guide](https://www.geeksforgeeks.org/linux-nmon/)

@ -1,8 +0,0 @@
# Iostat
The iostat command in Linux is used for monitoring system input/output statistics for devices and partitions. It monitors system input/output by observing the time the devices are active in relation to their average transfer rates. The iostat produce reports may be used to change the system configuration to raised balance the input/output between the physical disks.
Visit the following resources to learn more:
- [iostat Documentation](https://man7.org/linux/man-pages/man1/iostat.1.html)
- [iostat Command Guide](https://www.geeksforgeeks.org/iostat-command-in-linux-with-examples/)

@ -1,10 +0,0 @@
# Sar
Short for **S**ystem **A**ctivity **R**eport, it is a command line tool for Unix and Unix-like operating systems that shows a report of different information about the usage and activity of resources in the operating system.
Visit the following resources to learn more:
- [SAR command in Linux to monitor system performance](https://www.geeksforgeeks.org/sar-command-linux-monitor-system-performance/)
- [SAR Man Page](https://man7.org/linux/man-pages/man1/sar.1.html)
- [SAR Man Page 2](https://linux.die.net/man/1/sar)
- [Sar tutorial for beginners](https://linuxhint.com/sar_linux_tutorial/)

@ -1,10 +0,0 @@
# Vmstat
Short for **V**irtual **m**emory **stat**istic reporter, it is a command line tool for Unix and Unix-like operating systems that reports various information about the operating system such as memory, paging, processes, I/O, CPU and disk usage.
Visit the following resources to learn more:
- [vmstat command in Linux with Examples](https://www.geeksforgeeks.org/vmstat-command-in-linux-with-examples/)
- [Linux commands: exploring virtual memory with vmstat](https://www.redhat.com/sysadmin/linux-commands-vmstat)
- [VMstat Man Page](https://man7.org/linux/man-pages/man8/vmstat.8.html)
- [vmstat tutorial](https://phoenixnap.com/kb/vmstat-command)

@ -1,10 +0,0 @@
# Traceroute
`traceroute` command is a command in Linux that prints the route a network packet takes from its source (e.g. your computer) to the destination host (e.g., roadmap.sh). It is quite valuable in investigating slow network connections as it can help us spot the slow leg of the network packet journey through the internet.
It has the following syntax: `$ traceroute [OPTIONS] DESTINATION` e.g. `$ traceroute roadmap.sh`
Visit the following resources to learn more:
- [How to Run Traceroute in Linux](https://linuxhint.com/run_traceroute_linux/)
- [Traceroute command in Linux with examples](https://www.geeksforgeeks.org/traceroute-command-in-linux-with-examples/)

@ -1,11 +0,0 @@
# mtr
`mtr` combines the functionality of the traceroute and ping programs in a single network diagnostic tool.
As `mtr` starts, it investigates the network connection between the host `mtr` runs on and `HOSTNAME` by sending packets with purposely low TTLs. It continues sending packets with low TTL, noting the response time of the intervening routers. This allows `mtr` to print the internet route's response percentage and response times to HOSTNAME. A sudden packet loss or response time increase often indicates a bad (or simply overloaded) link.
Visit the following resources to learn more:
- [Javatpoint: Linux mtr Command](https://www.javatpoint.com/linux-mtr)
- [mtr Linux command](https://www.tutorialspoint.com/unix_commands/mtr.htm)
- [How to traceroute use mtr command in Linux](https://www.devopsroles.com/how-to-traceroute-use-mtr-command-in-linux/)

@ -1,10 +0,0 @@
# ping
`ping` (**P**acket **In**ternet **G**roper) command is used to check the network connectivity between host and server/host. This command takes as input the IP address or the URL and sends a data packet to the specified address with the message “PING” and get a response from the server/host this time is recorded which is called latency.
It has the following syntax: `$ ping [OPTIONS] DESTINATION` e.g. `$ ping roadmap.sh`
Visit the following resources to learn more:
- [What is ping command?](https://linuxize.com/post/linux-ping-command/)
- [ping command with examples](https://www.geeksforgeeks.org/ping-command-in-linux-with-examples/)

@ -1,8 +0,0 @@
# NMAP
NMAP stands for Network Mapper and is an open-source tool used to explore and audit the network's security, such as checking firewalls and scanning ports.
Visit the following resources to learn more:
- [NMAP Official Manual Book](https://nmap.org/book/man.html)
- [What is Nmap and How to Use it](https://www.freecodecamp.org/news/what-is-nmap-and-how-to-use-it-a-tutorial-for-the-greatest-scanning-tool-of-all-time/)

@ -1,10 +0,0 @@
# netstat
Netstat is a command line utility to display all the network connections on a system. It displays all the tcp, udp and unix socket connections. Apart from connected sockets it also displays listening sockets that are waiting for incoming connections.
Visit the following resources to learn more:
- [netstat command in Linux with Examples](https://www.tutorialspoint.com/unix_commands/netstat.htm)
- [Netstat Tutorial](http://www.c-jump.com/CIS24/Slides/Networking/html_utils/netstat.html)
- [Netstat Commands - Network Administration Tutorial](https://www.youtube.com/watch?v=bxFwpm4IobU)
- [Linux Command Line Tutorial For Beginners - netstat command](https://www.youtube.com/watch?v=zGNcvBaN5wE)

@ -1,10 +0,0 @@
# Tcpdump
`tcpdump` is a command line tool used for analysing network traffic passing through your system. It can be used to capture and filter packets and display them in a human-readable format. The captured information can be analysed at a later date as well.
Visit the following resources to learn more:
- [tcpdump Documentation](https://www.tcpdump.org/manpages/tcpdump.1.html)
- [Basic Introduction to Tcpdump](https://opensource.com/article/18/10/introduction-tcpdump)
- [50 ways to isolate traffic with Tcpdump](https://danielmiessler.com/study/tcpdump/)
- [Interpreting Tcpdump output and data](https://www.youtube.com/watch?v=7bsQP9sKHrs)

@ -1,8 +0,0 @@
# Iptables
IPtables is a command-line firewall utility that uses policy chains to allow or block traffic that will be enforced by the linux kernel’s netfilter framework. Iptables packet filtering mechanism is organized into three different kinds of structures: tables, chains and targets.
Visit the following resources to learn more:
- [Iptables tutorial](https://www.hostinger.in/tutorials/iptables-tutorial)
- [Beginners to Advanced Guide Iptables](https://erravindrapawadia.medium.com/iptables-tutorial-beginners-to-advanced-guide-to-linux-firewall-839e10501759)

@ -1,13 +0,0 @@
# dig
`dig` command stands for **D**omain **I**nformation **G**roper. It is used for retrieving information about DNS name servers. It is mostly used by network administrators for verifying and troubleshooting DNS problems and to perform DNS lookups. It replaces older tools such as `nslookup` and the `host`.
It has the following syntax: `$ dig [server] [name] [type]` e.g. `$ dig roadmap.sh`
Visit the following resources to learn more:
- [What is dig command?](https://www.geeksforgeeks.org/dig-command-in-linux-with-examples/)
- [More on dig](https://linuxize.com/post/how-to-use-dig-command-to-query-dns-in-linux/)
- [What is host command?](https://www.geeksforgeeks.org/host-command-in-linux-with-examples/)
- [What is nslookup command?](https://www.geeksforgeeks.org/nslookup-command-in-linux-with-examples/)
- [What is DNS?](https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/)

@ -1,13 +0,0 @@
# awk
`awk` is a general-purpose scripting language used for manipulating data or text and generating reports in the Linux world. It is mostly used for pattern scanning and processing. It searches one or more files to see if they contain lines that match the specified patterns and then performs the associated actions.
It has the below syntax:
`awk options 'selection_criteria {action}' input-file > output-file` e.g. `$ awk '{print}' file.txt`
Visit the following resources to learn more:
- [What is AWK? How to use it?](https://www.geeksforgeeks.org/awk-command-unixlinux-examples/)
- [How AWK works?](https://linuxize.com/post/awk-command/)
- [Linux Crash Course - awk](https://www.youtube.com/watch?v=oPEnvuj9QrI)

@ -1,13 +0,0 @@
# sed
`sed`(**S**tream **Ed**itor) command in UNIX can perform lots of functions on file like searching, finding and replacing, insertion or deletion. By using SED you can edit files even without opening them in editors like [VI Editor](https://www.redhat.com/sysadmin/introduction-vi-editor).
It has the following syntax:
`$ sed [options].. [script] [input-file]` e.g. `$ sed 's/search-regex/replacement-txt/g' file.txt`
Visit the following resources to learn more:
- [What is SED? with examples](https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/)
- [Detailed Manual](https://www.gnu.org/software/sed/manual/sed.html)
- [Linux Crash Course - The sed Command](https://www.youtube.com/watch?v=nXLnx8ncZyE&t=218s)

@ -1,13 +0,0 @@
# grep
The `grep` command (**g**lobal search for **r**egular **e**xpression and **p**rint out) searches file(s) for a particular pattern of characters, and displays all lines that contain that pattern. It can be used with other commands like `ps` making it more useful.
It has the following syntax:
`$ grep [options] pattern [files]` e.g. `$ grep "search-regex" file-1.txt`
Visit the following resources to learn more:
- [What is Grep? with examples](https://www.geeksforgeeks.org/grep-command-in-unixlinux/)
- [Detailed Manual](https://www.gnu.org/software/grep/manual/grep.html)
- [Linux Crash Course - The grep Command](https://www.youtube.com/watch?v=Tc_jntovCM0)

@ -1,13 +0,0 @@
# sort
`sort` command is used to sort the contents of a file in a particular order. By default, it sorts a file assuming the contents are in ASCII. But it also can also be used to sort numerically by using appropriate options.
It has the following syntax
`$ sort [options].. input-file` e.g. `$ sort file.txt`
Visit the following resources to learn more:
- [Sort command with examples](https://www.geeksforgeeks.org/sort-command-linuxunix-examples/)
- [Options](<https://en.wikipedia.org/wiki/Sort_(Unix)>)
- [Linux Tutorials|sort command GeeksforGeeks](https://www.youtube.com/watch?v=fEx5rnbDKO4)

@ -1,10 +0,0 @@
# cut
The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output.
See `man cut` for further information.
Visit the following resources to learn more:
- [cut Documentation](https://man7.org/linux/man-pages/man1/cut.1.html)
- [cut Cheat Sheet](https://bencane.com/2012/10/22/cheat-sheet-cutting-text-with-cut/)

@ -1,10 +0,0 @@
# uniq
The uniq utility reads the specified input_file comparing adjacent lines, and writes a copy of each unique input line to the output_file.
See `man uniq` for further information.
Visit the following resources to learn more:
- [uniq Documentation](https://man7.org/linux/man-pages/man1/uniq.1.html)
- [uniq Cheat Sheet](https://www.geeksforgeeks.org/uniq-command-in-linux-with-examples/)

@ -1,17 +0,0 @@
# cat
`cat` (concatenate) command is very frequently used in Linux. It reads data from the file and gives its content as output. It helps us to create, view, and concatenate files.
It has the following syntax:
- View : `$ cat [option] [input-file]`
- Create : `$ cat [content] > [new-file]`
- Append : `$ cat [append_content] >> [existing-file]`
e.g. `$ cat file.txt`
Visit the following resources to learn more:
- [Cat Command with examples](https://www.tecmint.com/13-basic-cat-command-examples-in-linux/)
- [Options](<https://en.wikipedia.org/wiki/Cat_(Unix)>)
- [Linux Tutorials|cat command|GeeksforGeeks](https://www.youtube.com/watch?v=exj5WMUJ11g)

@ -1,10 +0,0 @@
# echo
`echo` is a built-in command in Linux used to display lines of text/string that are passed as an argument. It is mostly used in shell scripts and batch files to output status text or `ENV` variables to the screen or a file.
It has the following syntax: `$ echo [options] [string]` e.g. `$ echo "Hello World!"`
Visit the following resources to learn more:
- [Echo command with Examples](https://www.tecmint.com/echo-command-in-linux/)
- [Linux Crash Course - The echo Command](https://www.youtube.com/watch?v=S_ySzMHxMjw)

@ -1,9 +0,0 @@
# fmt
`fmt` command is for formatting and optimizing contents in text files. It will be really useful when it comes to beautify large text files by setting uniform column width and spaces.
It has the following syntax: `$ fmt [-width] [option] [file]` e.g. `$ fmt file.txt`
Visit the following resources to learn more:
- [Fmt command with Examples](https://www.devopsroles.com/fmt-command-in-linux-with-example/)

@ -1,10 +0,0 @@
# tr
The tr utility copies the standard input to the standard output with substitution or deletion of selected characters.
See `man tr` for further information.
Visit the following resources to learn more:
- [tr Documentation](https://linuxcommand.org/lc3_man_pages/tr1.html)
- [tr Cheat Sheet](https://linuxopsys.com/topics/tr-command-in-linux)

@ -1,10 +0,0 @@
# nl
The nl utility reads lines from the named file or the standard input if the file argument is omitted, applies a configurable line numbering filter operation and writes the result to the standard output.
See `man nl` for further information.
Visit the following resources to learn more:
- [nl Documentation](https://man7.org/linux/man-pages/man1/nl.1.html)
- [nl Cheat Sheet](https://www.geeksforgeeks.org/nl-command-in-linux-with-examples/)

@ -1,10 +0,0 @@
# wc
The wc utility displays the number of lines, words, and bytes contained in each input file, or standard input (if no file is specified) to the standard output.
See `man wc` for further information.
Visit the following resources to learn more:
- [wc Documentation](https://linux.die.net/man/1/wc)
- [wc Cheat Sheet](https://onecompiler.com/cheatsheets/wc)

@ -1,8 +0,0 @@
# strace
`strac` is a useful diagnsotic, debugging tool for unix based operating systems. It traces the system calls and signals a process uses during its lifetime. And usually returns the name of the each system calls , its arguments and what it returned.
Visit the following resources to learn more:
- [Strace Official Website](https://strace.io/)
- [Strace — Linux manual page](https://man7.org/linux/man-pages/man1/strace.1.html)

@ -1,8 +0,0 @@
# DTrace
DTrace is a comprehensive dynamic tracing framework ported from Solaris. DTrace provides a powerful infrastructure that permits administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs.
Visit the following resources to learn more:
- [df manual](https://man7.org/linux/man-pages/man1/dtrace.1.html)
- [Wikipedia - DTrace](https://en.wikipedia.org/wiki/DTrace)

@ -1,9 +0,0 @@
# Uname
Uname is a short form of Unix name and it helps to print the system information for both hardware and software in the current running system.
Visit the following resources to learn more:
- [Uname Command Tutorial](https://www.tutorialspoint.com/unix_commands/uname.htm)
- [Uname Tutorial For Beginners](https://www.howtoforge.com/linux-uname-command/)
- [Uname Command In Linux](https://linuxize.com/post/uname-command-in-linux/)

@ -1,9 +0,0 @@
# df
`df` is a standard Unix command used to display the amount of available disk space for file systems on which the invoking user has appropriate read access. df is typically implemented using the statfs or statvfs system calls.
Visit the following resources to learn more:
- [df manual](https://man7.org/linux/man-pages/man1/df.1.html)
- [Redhat - Check your disk space use with the Linux df command](https://www.redhat.com/sysadmin/Linux-df-command)
- [df command with examples](https://www.geeksforgeeks.org/df-command-linux-examples/)

@ -1,9 +0,0 @@
# history
`history` command is used to view the **previously executed command**. Every command executed is treated as the event and is associated with an event number using which they can be recalled and changed if required. These commands are saved in a history file.
It has the below syntax: `$ history`
Visit the following resources to learn more:
- [What is history command? How to recall previous commands?](https://www.geeksforgeeks.org/history-command-in-linux-with-examples/)

@ -1,9 +0,0 @@
# Du
The `du` utility, short for disk usage, displays the file system block usage for each file argument and for each directory in the file hierarchy rooted in each directory argument. If no file is specified, the block usage of the hierarchy rooted in the current directory is displayed.
Visit the following resources to learn more:
- [du manual](https://man7.org/linux/man-pages/man1/du.1.html)
- [Redhat - du and the options you should be using](https://www.redhat.com/sysadmin/du-command-options)
- [Du command with examples](https://linuxhint.com/linux-du-command-examples/)

@ -1,9 +0,0 @@
# SCP
`SCP` is an acronym for Secure Copy Protocol.It is a command line utility that allows the user to securely copy files and directories between two locations usually between unix or linux systems.The protocol ensures the transmission of files is encrypted to prevent anyone with suspicious intentions from getting sensitive information.`SCP` uses encryption over an `SSH` (Secure Shell) connection, this ensures that the data being transferred is protected from suspicious attacks.
Visit the following resources to learn more:
- [SCP Linux Command](https://www.freecodecamp.org/news/scp-linux-command-example-how-to-ssh-file-transfer-from-remote-to-local/)
- [10 SCP command examples](https://www.tecmint.com/scp-commands-examples/)
- [SCP command explained](https://phoenixnap.com/kb/linux-scp-command)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save