<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sumit Mukharjee</title>
    <description>The latest articles on DEV Community by Sumit Mukharjee (@sumitmukharjii).</description>
    <link>https://dev.to/sumitmukharjii</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F732966%2F3114ec52-b620-48f1-8c54-14fc420c2237.jpg</url>
      <title>DEV Community: Sumit Mukharjee</title>
      <link>https://dev.to/sumitmukharjii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sumitmukharjii"/>
    <language>en</language>
    <item>
      <title>What is DevOps?</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Sun, 13 Feb 2022 14:25:18 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/what-is-devops-30og</link>
      <guid>https://dev.to/sumitmukharjii/what-is-devops-30og</guid>
      <description>&lt;p&gt;We have been hearing a buzz word DevOps which is gaining popularity in recent times. But what is actually is?&lt;/p&gt;

&lt;p&gt;Is DevOps = Development + Operations ? Where do boundaries start and end? Which part of Development is not DevOps? Which part of Operations is not DevOps? Why was there a need for this? Let's see ... &lt;/p&gt;

&lt;p&gt;We all know development and operations are the main important things in the whole application release process.&lt;br&gt;
Development -&amp;gt; Operations -&amp;gt; Release&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Initial Software Release Process *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JL4Ovg0O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644581921697/cH8KiGhTF.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JL4Ovg0O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644581921697/cH8KiGhTF.jpeg" alt="Software-Release-Management.jpg" width="818" height="828"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you see above the whole process includes : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The idea of Application comes up.&lt;/li&gt;
&lt;li&gt;Team gathers all the requirement &lt;/li&gt;
&lt;li&gt;Developer Team codes the project&lt;/li&gt;
&lt;li&gt;Testers test all sorts of test cases.&lt;/li&gt;
&lt;li&gt;Then it's built and Deployed, Operated, and monitored.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All future updates and features are monitored and are being pushed.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;After Launch of Application *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is there any problem with the application?&lt;/li&gt;
&lt;li&gt;Are users experiencing any issues?&lt;/li&gt;
&lt;li&gt;Can the application handle higher user loads?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on the above questions all sorts of new features are added, bugs are fixed and performance is optimized.&lt;br&gt;
And the big part of this is that whenever new changes or fixes are made, it has to be accessible to the user immediately.&lt;/p&gt;

&lt;p&gt;This process gives us a new term the &lt;strong&gt;Software Versioning&lt;/strong&gt; which gives an endless cycle of improvements and continuous delivery of applications. And &lt;strong&gt;DevOps&lt;/strong&gt; is making this process : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fast &lt;/li&gt;
&lt;li&gt;Bug-free**** or minimal errors.
&lt;em&gt;With DevOps improvements are delivered to users fast and they are of high quality and well-tested&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*&lt;em&gt;Challenges that DevOps tries to solve *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Miss communication and lack of collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers code the app but can't deploy and run the app whereas Operations deploy and operate the app but don't know how it works.&lt;/li&gt;
&lt;li&gt;Developers don't consider where the app gets deployed.&lt;/li&gt;
&lt;li&gt;Deployment guides are not well documented, so release takes longer.
These stretches release period for weeks, days, or even months.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;Conflicts of Interest *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers want new features fast while Operations wants to maintain stability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers code it, test it, and build it.&lt;/li&gt;
&lt;li&gt;Operations care about the system's stability and security.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Application testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testing specific features.&lt;/li&gt;
&lt;li&gt;End to end tests.&lt;/li&gt;
&lt;li&gt;Testing on different environments.&lt;/li&gt;
&lt;li&gt;Performance tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tests are often done manually and it takes a lot of resources and time but also we can't rely on fully automated tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How DevOps can be used as a solution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, let's see some info about DevOps,&lt;br&gt;
DevOps is a combination of cultural philosophy, practices, and loads.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anything that creates the process of releasing the software fast and with high quality.&lt;/li&gt;
&lt;li&gt;Main part was that &lt;strong&gt;dev&lt;/strong&gt; and &lt;strong&gt;ops&lt;/strong&gt; should work together and more often.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How DevOps can be seen as a separate role ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Previously, companies adopted different methods but gradually as it became more common they have now more common practices like - &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1. Planning and Collaboration.&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
**&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Source code management and Package management.**
**&lt;/li&gt;
&lt;li&gt;CI/CD**
&lt;strong&gt;4. Infrastructure as A code(IAAC).&lt;/strong&gt;
**&lt;/li&gt;
&lt;li&gt;Container Orchestration**
&lt;strong&gt;6. Cloud&lt;/strong&gt;
&lt;strong&gt;7. Continuous Monitoring&lt;/strong&gt;
With these, DevOps evolved as separate roles as either developer doing DevOps or operations doing DevOps or someone is doing DevOps exclusively.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*&lt;em&gt;CI/CD Pipeline&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i588jWQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644583719718/dD1g39BWn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i588jWQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644583719718/dD1g39BWn.png" alt="CICD_CICD.png" width="612" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This picture describes DevOps. Or A CI/CD pipeline is a series of steps that must be performed in order to deliver a new version of the software. Continuous integration/continuous delivery (CI/CD) pipelines are a practice focused on improving software delivery using either a DevOps or site reliability engineering (SRE) approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools and concepts to know while learning DevOps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concepts of Software Development (Development)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How developers work.&lt;/li&gt;
&lt;li&gt;Git Workflow.&lt;/li&gt;
&lt;li&gt;How the application is Configured.&lt;/li&gt;
&lt;li&gt;Automated Testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;OS and Linux Basics (Operations)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preparing infrastructure to run applications.&lt;/li&gt;
&lt;li&gt;CLI comfort.&lt;/li&gt;
&lt;li&gt;Shell Commands.&lt;/li&gt;
&lt;li&gt;Linux file systems.&lt;/li&gt;
&lt;li&gt;Server Management Basics.&lt;/li&gt;
&lt;li&gt;SSH keys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Networking and Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firewall proxy servers.&lt;/li&gt;
&lt;li&gt;Load Balancers.&lt;/li&gt;
&lt;li&gt;HTTP/S.&lt;/li&gt;
&lt;li&gt;DNS, IP, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Containers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtualization.&lt;/li&gt;
&lt;li&gt;Able to work with containerized applications ex - Docker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Understand Packaging&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Providers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS or Azure or GC&lt;/li&gt;
&lt;li&gt;only learn services you need.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Container Orchestration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes - deploy manage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor software.&lt;/li&gt;
&lt;li&gt;Monitor infrastructure.&lt;/li&gt;
&lt;li&gt;Ex - Prometheus or Nagios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;IAAC&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform.&lt;/li&gt;
&lt;li&gt;Ansible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scripting Language&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go, python or ruby.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You may be overwhelmed by thinking about why this many tools and concepts but Learn only one and most popular tools in each category and learn only those services which are needed.&lt;br&gt;
You can see the reference image below - &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N9Xy6ok9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644584507236/g8pjo65Jq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N9Xy6ok9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1644584507236/g8pjo65Jq.png" alt="1__eJaw96xLBR-xEzlwbTOyw.png" width="437" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for Reading!!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>operations</category>
      <category>docker</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Introduction to Linux Commands</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Fri, 04 Feb 2022 05:09:37 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/introduction-to-linux-commands-agc</link>
      <guid>https://dev.to/sumitmukharjii/introduction-to-linux-commands-agc</guid>
      <description>&lt;p&gt;I am learning DevOps for a while and I will be writing about everything I learn, which will eventually be beneficial for the community and aspiring DevOps learners.&lt;br&gt;
I previously wrote about YAML which is very important for the DevOps journey have a look &lt;a href="https://dev.to/sumitmukharjii/introduction-to-yaml-18e"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisite&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*1. A Linux terminal *&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2. Enthusiasm for learning&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For setting up Ubuntu in windows terminal head over to this &lt;a href="https://ubuntu.com/wsl"&gt;article&lt;/a&gt;&lt;/strong&gt; officially by &lt;strong&gt;Ubuntu&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Okk...Let's start with &lt;strong&gt;shell&lt;/strong&gt;, this is the place where we write our commands but what it is??&lt;br&gt;
A shell is a command-line interface that will take all our command as input, interprets them, and converts them into useful things.&lt;/p&gt;

&lt;p&gt;For some commands I have not included screenshot as they have to done by self.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Dk08u2Go--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643268353299/Q7oPG92tp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dk08u2Go--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643268353299/Q7oPG92tp6.png" alt="Screenshot (2).png" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Here's an image of what shell looks like.&lt;/p&gt;

&lt;p&gt;Shells are of many types like Bourne shell,c-shell,z-shell, etc but here we won't discuss that as it is a very different topic, but as always you can head over &lt;a href="https://www.tutorialspoint.com/unix/unix-what-is-shell.htm"&gt;here&lt;/a&gt; to know about it.&lt;/p&gt;

&lt;p&gt;Let's deep dive with the commands -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ clear&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;``` - Clears the shell.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ ls&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;This command lists all files and folders in the current directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0WuOyUqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269252944/mH_07NNWc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0WuOyUqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269252944/mH_07NNWc.png" alt="Screenshot (3).png" width="880" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;```
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;$ mkdir&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;``` - Makes new folder&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2LL_zsGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269355911/RdC7Gh6Bh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2LL_zsGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269355911/RdC7Gh6Bh.png" alt="Screenshot (4).png" width="880" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$ cd - This one changes the directory
if we write ```
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;cd ..&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;``` then this takes us one folder back.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ whereis&lt;/strong&gt; - This gives the exact directory of any file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ xdg-open&lt;/strong&gt; - Opens particular directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ ls -a&lt;/strong&gt; - Shows hidden files and folders.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U5pytcSo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269424623/wnfzmdChz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U5pytcSo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269424623/wnfzmdChz.png" alt="Screenshot (5).png" width="880" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ pwd&lt;/strong&gt; - This prints the current working directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uwbTh_H2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269680832/4pMdPwG7sG.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uwbTh_H2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269680832/4pMdPwG7sG.png" alt="Screenshot (6).png" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;. -&amp;gt; current directory&lt;br&gt;
.. -&amp;gt; previous directory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ ls -l&lt;/strong&gt; - Gives more arguments like writable, readable, and executable state of the file, permission, and stuff.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gdt1YJR2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269813606/5tEwhxg9R.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gdt1YJR2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269813606/5tEwhxg9R.png" alt="Screenshot (7).png" width="880" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ ls -R&lt;/strong&gt; - Lists all-recursive folder i.e folder inside folder .... and so on&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ cat&lt;/strong&gt; - This outputs the content of a file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VSyFD6lC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269943866/reeJ0PdvY4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VSyFD6lC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643269943866/reeJ0PdvY4.png" alt="Screenshot (8).png" width="880" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If there is no file then &lt;strong&gt;$ cat &amp;gt; hello.txt&lt;/strong&gt; can be used to make a file and give inputs to it.&lt;/p&gt;

&lt;p&gt;Also &lt;strong&gt;$ cat file.txt hello.txt &amp;gt; sumit.txt&lt;/strong&gt; can be used to replace the content of sumit.txt with the other two.&lt;br&gt;
&lt;strong&gt;$ echo "Hello World" &amp;gt; file.txt&lt;/strong&gt; this replaces all content of file.txt with Hello-World.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ man&lt;/strong&gt; - This command gives information about a particular command. If you specify &lt;strong&gt;$ man sudo&lt;/strong&gt; in the terminal you will get something like this 👇&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--55X-N7Dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270242573/KErv7YsIW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--55X-N7Dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270242573/KErv7YsIW.png" alt="Screenshot (9).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ touch&lt;/strong&gt; - touch command create a new file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;$ touch new.txt&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ cp&lt;/strong&gt; - copy contents of one file to another.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;cp file.txt newFile.txt&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ mv&lt;/strong&gt; - this can rename as well as move a file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;mv fike.txt newName.txt&lt;/strong&gt; (This renames)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mv file.txt usr/local/bin&lt;/strong&gt;  (This copies)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ rm&lt;/strong&gt; - Remove a file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;rm file.txt&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ rmdir&lt;/strong&gt; - Removes a directory only if it is empty.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;$ rmdir &lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ sudo&lt;/strong&gt; - This command gives administrative privileges, if you are a Linux user you may be fully aware of it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ df&lt;/strong&gt; - gives a capacity of the disk.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;df -m&lt;/strong&gt; (Size in Megabytes)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;df -k&lt;/strong&gt;  (Size in Kilobytes)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;df -h&lt;/strong&gt; (In human-readable form)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8CHePEpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270938295/uF92u9GBe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8CHePEpL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270938295/uF92u9GBe.png" alt="Screenshot (11).png" width="880" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AL2OSdqi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270945874/oJhfkCOoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AL2OSdqi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643270945874/oJhfkCOoj.png" alt="Screenshot (10).png" width="880" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ du&lt;/strong&gt; - This gives disk usage statistics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;du -l&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;du -h&lt;/strong&gt; (In human-readable form)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XV379fdR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643271109699/U2yZnW_2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XV379fdR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643271109699/U2yZnW_2q.png" alt="Screenshot (12).png" width="684" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ head&lt;/strong&gt; - Used to vies first few lines of any file, by default,
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Alietlt5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643271358562/xT4wBBa0d.png" alt="Screenshot (13).png" width="809" height="809"&gt;
it's 10.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see after using the head command it's only showing 10 lines.&lt;br&gt;
&lt;strong&gt;$ tail&lt;/strong&gt; command shows the last few lines.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ diff&lt;/strong&gt; - This differentiate content of a file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ locate ** - This locates any file. **$ locate ".txt"&lt;/strong&gt; this will locate all the files which have .txt extension.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;$ whoami&lt;/strong&gt; - Displays username.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hFlrw_SS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643271847326/CkNxTxW7M.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hFlrw_SS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643271847326/CkNxTxW7M.png" alt="Screenshot (14).png" width="697" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*&lt;em&gt;File Permissions - *&lt;/em&gt; There are 3 file permissions Read, Write and Execute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;$ chmod&lt;/strong&gt; is the command to change file permissions.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Performing action on multiple files *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you wanna let's say remove multiple files at once then use:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$ find . -type f -name "*.txt" -exec rm -rf {} +&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;basically {} is the placeholder and rm shows that remove these.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$ grep&lt;/strong&gt; - Global regular expression print, grep allows to look for particular text in the file. GREP is case-sensitive.
I have made a text file that contains names of different random people and applied the following commands 👇&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$ grep "Kunal" names.txt


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$ grep -w "Kunal" names.txt


``` (Shows complete word)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;br&gt;
$ grep -i "kunal" names.txt&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;``` (shows case sensitive names too)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$ grep -iw "kunal" names.txt


``` (shows case sensitive names with word specified)

![Screenshot (15).png](https://cdn.hashnode.com/res/hashnode/image/upload/v1643281349556/Rz4x2zYHC.png)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
$ grep -n "Kunal" names.txt&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;``` (Shows line number)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$ grep -win "Rahul" names.txt


``` (Combined with the word, case sensitive, and line number)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
$ grep -b 3 "Rahul"  ./.*txt"&lt;br&gt;
&lt;br&gt;
``` (WIll search for Rahul in all txt files)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$ grep -rwin "Rahul" ./.*txt

``` (Will search recursively in all directories)


![Screenshot (16).png](https://cdn.hashnode.com/res/hashnode/image/upload/v1643281962227/9b3S-V2b_.png)

**Terminal Shortcuts** - 


1. *Ctrl + A* - Moves the cursor to begin.
2. *Ctrl + E* - Moves the cursor to end.
3 *Ctrl + U* - Removes Everything written.
4. *Ctrl + K* - Removes a word after the cursor.
5. *Up and Down Keys* - Previous commands.
6. *$ !&amp;lt;Previous_Command&amp;gt;* - With ! sign it will run the previous command.
7.  *$ command_1;command_2;command_3* - Multiple commands with semi-colon.
8. *$ sort names.txt* - will sort in Ascending order.
9. *$ sort -r names.txt* - will sort all the names in reverse order.
10. *$  jobs* - displays current job.
11. *$ ping &amp;lt;url&amp;gt;* - Check your server.
12. *$ wget &amp;lt;URL&amp;gt;* - Download file.
13. *$ top* - shows all the running processes.
14 . *$ kill &amp;lt;process_id&amp;gt;* - Kills the running process.
15. *$ zip file_name.zip file_to_be_zipped* - Zips the file

if this doesn't work then use   ```

 $ sudo apt install zip

 ``` (installs package). Multiple files can be zipped.

16. *$ unzip file_name.zip* - Unzipes the file
17. *$ hostname* - Displays hostname.
18. *$ hostname -i* - Displays IP too
19. *$ uname* - Gives OS name
20. *$ uname -m* - Gives Architecture of os.
20. *$ uname -r* - Gives Kernal version.
21. *$ cat /etc/os-release* - Gives Operating System Info.
22. *$ free -h* - Displays free memory.


**Networking Commands - **

 - ```

$ nslookup google.com

``` - Gives IP address of the particular site, here google.com .

- ```

$ netstat

``` - Looks all active stat.

**Some more useful commands - **

- ```

$ cut -c 1-2 names.txt

``` - Gives names after cutting two letters and we can specify the condition as we need.


![Screenshot (18).png](https://cdn.hashnode.com/res/hashnode/image/upload/v1643290282731/n5NuTAjSh.png)

- ```

$ ps aux

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Gives all the processes and it'd ids.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So this was it from my side and there are tons of commands but you will get everything while learning. Things will come naturally.&lt;/p&gt;

&lt;p&gt;If you have read till here..then thanks.&lt;br&gt;
Keep Learning😊😊&lt;/p&gt;

</description>
      <category>linux</category>
      <category>devops</category>
      <category>terminal</category>
      <category>programming</category>
    </item>
    <item>
      <title>YAML DataTypes and Real-World Examples</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Tue, 25 Jan 2022 18:50:48 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/yaml-datatypes-and-real-world-examples-10dh</link>
      <guid>https://dev.to/sumitmukharjii/yaml-datatypes-and-real-world-examples-10dh</guid>
      <description>&lt;p&gt;This is the continuation of the YAML introduction head over &lt;a href="https://sumitmukharjii.hashnode.dev/introduction-to-yaml"&gt;here&lt;/a&gt; for part 1.&lt;br&gt;
So let's continue with the remaining portion of YAML.&lt;br&gt;
&lt;strong&gt;Key Datatype&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Key-Value pairs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"apple" : "I am a red fruit"
1 : "This is a roll number"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;List Datatype&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- apple
- mango
- banannananna
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Block Style&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cities:
 - new delhi
 - mumbai
 - ahmedabad
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;YAML Parsers can be used to check if YAML is valid or not.&lt;br&gt;
One such website is &lt;a href="http://www.yamllint.com/"&gt;YAMLLINT&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Differentiating Between Documents&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cities:
 - new delhi
 - mumbai
 - ahmedabad
 ---
 cities: [new Delhi, mumbai]
 ---
 {mango: "fruit", age:5}
 ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;--- is used to differentiate the type of document.&lt;br&gt;
... is used to define that document is finished now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Files&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://onlineyamltools.com/"&gt;Onlineyamltools&lt;/a&gt; is a website for conversion and stuff for YAML files.&lt;/p&gt;

&lt;p&gt;YAML FILE 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cities:
 - new delhi
 - mumbai
 - ahmedabad
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;converted to JSON 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "cities": [
    "new delhi",
    "mumbai",
    "ahmedabad"
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flow Type&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; cities: [new Delhi, mumbai]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This doesn't give an indentation error&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;br&gt;
YAML doesn't support multiline comments, we have to use the # sign&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Mango
# Apple
# Grapes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;String Variables&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Sumit Mukharjee
fruit: "Apple"
job: 'swe'
message: !!str Hello There
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Write a single line in multiple lines&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;message: &amp;gt;
this will
all be 
in one single line
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;same as &lt;em&gt;This will all be in one single line&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YAML auto detects data type&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specifying the data types&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zero: !!int 0
positiveNum: !!int 45
negativeNum: !!int -45
binaryNum: !!int 0b11001
octalNum: !!int 06574
hexNum: !!int 0x45
commaValue: !!+540_000 # 540,000
exponentialNumbers: 6.023E56
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Float Value:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;marks: !!float 56.89
infinity: !!float .inf
noANumber: .nan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Boolean Value&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;booleanValues: !!bool No
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Null Value&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;surname: !!null Null
~: this is a null key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;DateTime in YAML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;date: !!timestamp 2022-01-25
india time: 2001-12-15T02:59:43.10 +5:30
no time zone: 2001-12-15T02:59:43.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Advanced-Data Type&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When some of the sequences will be empty they are known as a sparse sequence.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```sparse seq:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hey&lt;/li&gt;
&lt;li&gt;how&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;Null &lt;/li&gt;
&lt;li&gt;sup
```
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Nested Sequence&lt;/strong&gt;&lt;br&gt;
sequence inside sequence&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; - marks
 - name
 - roll_no
- 
 - simplemarks
 - avgMarks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Maps DataType&lt;/strong&gt;&lt;br&gt;
key:value pairs are called map datatype&lt;br&gt;
Nested Maps&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;```name: Sumit Mukharjee&lt;br&gt;
 role:&lt;br&gt;
   age: 78&lt;br&gt;
   job: student&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


**Pairs Datatype**
Sometimes one key may require duplicate values




```pair examples: !!pairs
 - job: student
 - job: teacher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Real World Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FS1I6Pkh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iji1oh96ee76o3h9m359.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FS1I6Pkh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iji1oh96ee76o3h9m359.jpg" alt="Image description" width="880" height="480"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Storing Above data in XML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"&amp;gt;
&amp;lt;School name="DPS" principal="Someone"&amp;gt;
  &amp;lt;Students&amp;gt;
     &amp;lt;Student&amp;gt;
          &amp;lt;rno&amp;gt;23&amp;lt;/rno&amp;gt;
          &amp;lt;name&amp;gt;"Sumit"&amp;lt;/name&amp;gt;
          &amp;lt;marks&amp;gt;94&amp;lt;/marks&amp;gt;
        &amp;lt;/Student&amp;gt;
   &amp;lt;/Students&amp;gt;
&amp;lt;/School&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;** In JSON**&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "School": [
        {
            "name": "DPS",
            "principal": "Someone",
            "Students": [
                {
                    "rno": 12,
                    "name": "Sumit Mukharjee",
                    "marks": 67
                }
            ]
        }
    ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In YAML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  - name: DPS
    principal: Someone
    Students:
      - rno: 12
        name: Sumit Mukharjee
        marks: 67
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was it. Thanks for reading😊.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>yaml</category>
    </item>
    <item>
      <title>Introduction to YAML</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Tue, 25 Jan 2022 18:13:55 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/introduction-to-yaml-18e</link>
      <guid>https://dev.to/sumitmukharjii/introduction-to-yaml-18e</guid>
      <description>&lt;p&gt;Let's start getting info about &lt;strong&gt;YAML&lt;/strong&gt; by firstly knowing its full form.&lt;br&gt;
&lt;strong&gt;YAML&lt;/strong&gt; stands for &lt;em&gt;YAML ain't markup language&lt;/em&gt;.&lt;br&gt;
&lt;strong&gt;What is YAML?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YAML is actually a data format used to exchange data.&lt;/li&gt;
&lt;li&gt;It is similar to &lt;a href="https://developer.mozilla.org/en-US/docs/Web/XML/XML_introduction"&gt;XML&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"&gt;JSON&lt;/a&gt; data-type.&lt;/li&gt;
&lt;li&gt;So, YAML is a simple human-readable language that can be used to &lt;strong&gt;represent data&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In YAML you can store only data and not commands, unlike other programming languages.
&lt;strong&gt;Data Serialization and Deserialization&lt;/strong&gt;
&lt;strong&gt;Serialization - **
This is actually the process of converting the data objects into complex data structures or streams of bytes. Basically, data objects present in complex data structure into the stream of storage that can be used to transfer data in your physical device.
The below image can be helpful to understand this concept: 👇
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9JTuOxxy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643133313800/XHIIxqHYh.jpeg" alt="1643133237799.jpg" width="880" height="277"&gt;
The above thing happens on JSON too in which we call **API&lt;/strong&gt; which gets converted to JSON DATA which is more human-readable.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--77GKVkkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1643133520980/1ifrws7Xp.jpeg" alt="1643133431800.jpg" width="880" height="360"&gt;
The above image shows how the &lt;strong&gt;Serialization&lt;/strong&gt; process stores data.&lt;/li&gt;
&lt;li&gt;Objects are basically, code together with some data.&lt;/li&gt;
&lt;li&gt;Data Objects are converted into a series of bytes which saves the state of an object in a form that is easily transmittable
&lt;strong&gt;This is known as Serialization&lt;/strong&gt;.
Fields like Big Data, Machine Learning, DevOps, etc. uses this concept
&lt;strong&gt;Serialization Languages: ** JSON,XML and YAML
*&lt;em&gt;De-serialization- *&lt;/em&gt;
The file which was converted during serialization can be converted back to an object is Deserialization.
**Object - &amp;gt; File&lt;/strong&gt;  (&lt;em&gt;Serialization&lt;/em&gt;)
&lt;strong&gt;File - &amp;gt; Object&lt;/strong&gt;  (&lt;em&gt;Deserialization&lt;/em&gt;)
See how simple could it be😊.
&lt;strong&gt;Types of Objects YAML stores-&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Configuration Files of any tools or whatever, some are Kubernetes Config File, Flutter Pubspec YAML file, Docker, etc.&lt;/li&gt;
&lt;li&gt;Log files, caches, etc.
&lt;strong&gt;Benefits of YAML&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Simple and Easy to read.&lt;/li&gt;
&lt;li&gt;It has a strict syntax(Mistakes aren't allowed like indentation).&lt;/li&gt;
&lt;li&gt;Easily convertible to JSON, XML.&lt;/li&gt;
&lt;li&gt;Most languages use YAML.&lt;/li&gt;
&lt;li&gt;More powerful while representing complex data&lt;/li&gt;
&lt;li&gt;Various tools are available like parsers.&lt;/li&gt;
&lt;li&gt;Parsing is easy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was it for now, for the next and last article about YAML and it's datatypes click &lt;a href="https://dev.to/sumitmukharjii/yaml-datatypes-and-real-world-examples-10dh"&gt;here&lt;/a&gt;.&lt;br&gt;
Also available in Hashnode &lt;a href="https://sumitmukharjii.hashnode.dev/introduction-to-yaml"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>yaml</category>
    </item>
    <item>
      <title>Go Introduction #1</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Sun, 26 Dec 2021 08:14:49 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/go-introduction-1-1bde</link>
      <guid>https://dev.to/sumitmukharjii/go-introduction-1-1bde</guid>
      <description>&lt;h2&gt;
  
  
  Introduction :
&lt;/h2&gt;

&lt;p&gt;Go is the language made at &lt;strong&gt;Google&lt;/strong&gt; by &lt;em&gt;Robert Griesemer, Rob Pike,&lt;/em&gt; and &lt;em&gt;Ken Thompson&lt;/em&gt; in 2007, which was &lt;strong&gt;open-sourced&lt;/strong&gt; in 2009.&lt;br&gt;
Go is &lt;strong&gt;statically-typed&lt;/strong&gt; which means variables are declared explicitly and determined at runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why another programming language?
&lt;/h3&gt;

&lt;p&gt;Whenever we learn any programming language the first question obviously comes to the mind why learn a different language when there are many others.&lt;br&gt;
So the answers may be the following:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure changed a lot.&lt;/li&gt;
&lt;li&gt;Multicore processors were included everywhere.&lt;/li&gt;
&lt;li&gt;Cloud infrastructure became common.&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.geeksforgeeks.org/an-overview-of-cluster-computing/"&gt;Big Network Computation Clusters&lt;/a&gt;  became universal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, existing languages were not able to take full advantage of it.&lt;br&gt;
Here comes the use of the Go programming language which had Multicore concurrency support.&lt;br&gt;
This support is on &lt;strong&gt;C++&lt;/strong&gt; and &lt;strong&gt;Java&lt;/strong&gt; but they have complex code and are slow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go was designed to run on multiple cores and built to support concurrency(Dealing with lots of things at once).&lt;/li&gt;
&lt;li&gt;Concurrency in Go is cheap and easy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use cases of GO
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Writing applications that need to be very quick&lt;/li&gt;
&lt;li&gt;Application that will run on &lt;em&gt;modern, scaled, and distributed infrastructure&lt;/em&gt; with hundreds of thousands of servers typically on a &lt;strong&gt;cloud platform&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go is used in server-side backend applications, these can be:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://aws.amazon.com/microservices/"&gt;Microservices&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Web-Applications&lt;/li&gt;
&lt;li&gt;Data-Base services
It is interesting to know that many cloud clusters are already written in Go.
Docker, Kubernetes, and Cockroach Db are written in Go.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Go characteristics
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Simple and Readable&lt;/strong&gt; - Has syntax of dynamically typed language like &lt;strong&gt;Python&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Efficiency and Safety&lt;/strong&gt; - of lower-lever, statically-typed language like &lt;strong&gt;C++&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Simple syntax which makes it easy to learn and write code.&lt;/li&gt;
&lt;li&gt;Fast in building time, startup, and running.&lt;/li&gt;
&lt;li&gt;Requires fewer resources.&lt;/li&gt;
&lt;li&gt;Easy to maintain.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Compiled Type Language-&lt;/strong&gt;&lt;br&gt;
Go compiles into single binary code(machine code) which can be run on any system unlike Python.&lt;br&gt;
This was the end of 1st part in Go series more will be coming.&lt;br&gt;
It's also available in my hashnode  page &lt;a href="https://hadesinc.io/go-introduction-1-ckxmz99va04my71s11mk516vo"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BASICALLY simplicity + speed= GO........&lt;/p&gt;

</description>
      <category>go</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Functional vs Class Component in React.js</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Sat, 04 Dec 2021 16:13:53 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/functional-vs-class-component-in-reactjs-49j0</link>
      <guid>https://dev.to/sumitmukharjii/functional-vs-class-component-in-reactjs-49j0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt; are the most important part of React, it let's us to write code in different piece and split in independent states.&lt;br&gt;
It literally is a function which "returns something" like in &lt;strong&gt;JavaScript Functions&lt;/strong&gt;. &lt;em&gt;You write something you get that thing.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Functional Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Way to define a functional component which accepts a prop can be :&lt;br&gt;
&lt;code&gt;function Welcome(props) {&lt;br&gt;
  return &amp;lt;h1&amp;gt;Hello, {props.name}&amp;lt;/h1&amp;gt;;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Here input can be &lt;strong&gt;props&lt;/strong&gt; and output can be &lt;strong&gt;JSX&lt;/strong&gt;, very straight forward right??.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Functional components don't support &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html"&gt;State&lt;/a&gt; until React &lt;a href="https://reactjs.org/docs/hooks-intro.html"&gt;Hooks&lt;/a&gt; came into existence &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.Class Based Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With react &lt;a href="https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets"&gt;ES7 Snippet&lt;/a&gt;  installed type &lt;em&gt;rcc&lt;/em&gt; it's gonna give react class component :&lt;br&gt;
&lt;code&gt;class Welcome extends React.Component {&lt;br&gt;
  render() {&lt;br&gt;
    return &amp;lt;h1&amp;gt;Hello, {this.props.name}&amp;lt;/h1&amp;gt;;&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In class based function we have to first use render() then return something (whereas in functional components directly return something). A bunch of things can be written under render that comes under state and lifecycle topic, to know refer &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all from my side, I will write next article continuing Components and how to use them with State and Props which are building blocks to learn and master React.&lt;/p&gt;

&lt;p&gt;If there is anything I can add please let me know😊.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Things to get started as a Web Developer quickly.</title>
      <dc:creator>Sumit Mukharjee</dc:creator>
      <pubDate>Thu, 02 Dec 2021 05:07:19 +0000</pubDate>
      <link>https://dev.to/sumitmukharjii/things-to-get-started-as-a-web-developer-quickly-23i9</link>
      <guid>https://dev.to/sumitmukharjii/things-to-get-started-as-a-web-developer-quickly-23i9</guid>
      <description>&lt;p&gt;Woo.. you are in that part of your life when you want to start learning something new, something that excites you well you are on a good path in your life.&lt;br&gt;
Today we look at how you can get yourself in the Computer Science world and be a web developer. We will be looking at quick steps without wasting any time, so let’s get started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Learn HTML&lt;/strong&gt;&lt;br&gt;
The basic part of every web page. HyperText Markup Language defines the structure of the web page just like a skeleton in the human body, without this no one can imagine a page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. CSS&lt;/strong&gt;&lt;br&gt;
When you have a nice body you have to make yourself look good, just like that, a website needs styling to make it catchy to the user so that they come back again and again. UI is the most important part of any project, making it look cool makes you cool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. JavaScript&lt;/strong&gt;&lt;br&gt;
A webpage has to function for which it has been made, you have seen when you click on Google’s search button it redirects to another page and shows you some results, when you click login on your Instagram account it opens your feed. In this situation, JavaScript comes into play where you add functionality to your pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Projects&lt;/strong&gt;&lt;br&gt;
Stop right here, these were the basics of web development, now It’s time for you to make some projects by using these three. Make your simple clone projects or whatever you like, remember to get a good grasp on JavaScript and CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Further&lt;/strong&gt;&lt;br&gt;
Later things you can learn are Create pages with &lt;strong&gt;API&lt;/strong&gt;, then you can go further to learn React.JS, A database of your choice, and Node.JS which is very important to create a full-fledged awesome Website.&lt;br&gt;
Thanks for reading, this was the first article I have written. If there’s a mistake please correct me I will surely improve in the future.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
